summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2024-09-13 19:29:53 +0700
committerGitHub <[email protected]>2024-09-13 19:29:53 +0700
commit3ff128bacfae3b82e80439981bebed9134b121ae (patch)
tree352ee0e037c491acf11e059419505a23cf89a38b
parent91c8700a9ffea5ea2b81303ec61abe895758b396 (diff)
parentc419b1e7c57ab701c904adfe6ebf14f780862557 (diff)
Merge pull request #2799 from hathach/add-pico2
add pico2 rp2350 (arm) board
-rw-r--r--.idea/cmake.xml4
-rw-r--r--hw/bsp/rp2040/boards/feather_rp2040_max3421/board.cmake1
-rw-r--r--hw/bsp/rp2040/boards/raspberry_pi_pico/board.cmake1
-rw-r--r--hw/bsp/rp2040/boards/raspberry_pi_pico2/board.cmake2
-rw-r--r--hw/bsp/rp2040/family.cmake27
-rw-r--r--test/hil/hil_test.py20
-rw-r--r--test/hil/rpi.json10
7 files changed, 50 insertions, 15 deletions
diff --git a/.idea/cmake.xml b/.idea/cmake.xml
index fec01a08e..96ff19c89 100644
--- a/.idea/cmake.xml
+++ b/.idea/cmake.xml
@@ -2,7 +2,9 @@
<project version="4">
<component name="CMakeSharedSettings">
<configurations>
- <configuration PROFILE_NAME="raspberry_pi_pico" ENABLED="false" CONFIG_NAME="MinSizeRel" GENERATION_OPTIONS="-DBOARD=raspberry_pi_pico -DLOG=1" />
+ <configuration PROFILE_NAME="raspberry_pi_pico" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=raspberry_pi_pico -DLOG=1" />
+ <configuration PROFILE_NAME="raspberry_pi_pico2" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=raspberry_pi_pico2 -DLOG=1" />
+ <configuration PROFILE_NAME="raspberry_pi_pico2_riscv" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=raspberry_pi_pico2_riscv -DLOG=1" />
<configuration PROFILE_NAME="raspberry_pi_pico-pio_host" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=raspberry_pi_pico -DLOG=1 -DCFLAGS_CLI=&quot;-DCFG_TUH_RPI_PIO_USB=1&quot;" />
<configuration PROFILE_NAME="feather_rp2040" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=pico_sdk -DPICO_BOARD=adafruit_feather_rp2040 -DLOG=1" />
<configuration PROFILE_NAME="feather_rp2040_max3421" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=feather_rp2040_max3421 -DLOG=1" />
diff --git a/hw/bsp/rp2040/boards/feather_rp2040_max3421/board.cmake b/hw/bsp/rp2040/boards/feather_rp2040_max3421/board.cmake
index b8e5890f3..2afe0f264 100644
--- a/hw/bsp/rp2040/boards/feather_rp2040_max3421/board.cmake
+++ b/hw/bsp/rp2040/boards/feather_rp2040_max3421/board.cmake
@@ -1,3 +1,4 @@
+set(PICO_PLATFORM rp2040)
set(PICO_BOARD adafruit_feather_rp2040)
# Enable MAX3421E USB Host
diff --git a/hw/bsp/rp2040/boards/raspberry_pi_pico/board.cmake b/hw/bsp/rp2040/boards/raspberry_pi_pico/board.cmake
index f9887c09c..804cdb50a 100644
--- a/hw/bsp/rp2040/boards/raspberry_pi_pico/board.cmake
+++ b/hw/bsp/rp2040/boards/raspberry_pi_pico/board.cmake
@@ -1 +1,2 @@
+set(PICO_PLATFORM rp2040)
set(PICO_BOARD pico)
diff --git a/hw/bsp/rp2040/boards/raspberry_pi_pico2/board.cmake b/hw/bsp/rp2040/boards/raspberry_pi_pico2/board.cmake
new file mode 100644
index 000000000..3482e2674
--- /dev/null
+++ b/hw/bsp/rp2040/boards/raspberry_pi_pico2/board.cmake
@@ -0,0 +1,2 @@
+set(PICO_PLATFORM rp2350-arm-s)
+set(PICO_BOARD pico2)
diff --git a/hw/bsp/rp2040/family.cmake b/hw/bsp/rp2040/family.cmake
index d91821ffa..8f01eac74 100644
--- a/hw/bsp/rp2040/family.cmake
+++ b/hw/bsp/rp2040/family.cmake
@@ -6,21 +6,32 @@ if (NOT BOARD)
set(BOARD pico_sdk)
endif()
-if (TOOLCHAIN STREQUAL "clang")
- set(PICO_COMPILER "pico_arm_clang")
-else()
- set(PICO_COMPILER "pico_arm_gcc")
-endif()
+include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake)
+
+#if (TOOLCHAIN STREQUAL "clang")
+# set(PICO_COMPILER "pico_arm_clang")
+#else()
+# set(PICO_COMPILER "pico_arm_gcc")
+#endif()
# add the SDK in case we are standalone tinyusb example (noop if already present)
include(${CMAKE_CURRENT_LIST_DIR}/pico_sdk_import.cmake)
# include basic family CMake functionality
set(FAMILY_MCUS RP2040)
-set(JLINK_DEVICE rp2040_m0_0)
-set(OPENOCD_OPTION "-f interface/cmsis-dap.cfg -f target/rp2040.cfg -c \"adapter speed 5000\"")
-include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake)
+if (PICO_PLATFORM STREQUAL "rp2040")
+ set(JLINK_DEVICE rp2040_m0_0)
+ set(OPENOCD_TARGET rp2040)
+elseif (PICO_PLATFORM STREQUAL "rp2350-arm-s" OR PICO_PLATFORM STREQUAL "rp2350")
+ set(JLINK_DEVICE rp2350_m33_0)
+ set(OPENOCD_TARGET rp2350)
+elseif (PICO_PLATFORM STREQUAL "rp2350-riscv")
+ set(JLINK_DEVICE rp2350_riscv_0)
+ set(OPENOCD_TARGET rp2350-riscv)
+endif()
+
+set(OPENOCD_OPTION "-f interface/cmsis-dap.cfg -f target/${OPENOCD_TARGET}.cfg -c \"adapter speed 5000\"")
if (NOT PICO_TINYUSB_PATH)
set(PICO_TINYUSB_PATH ${TOP})
diff --git a/test/hil/hil_test.py b/test/hil/hil_test.py
index 52ec5ae1d..a569e7666 100644
--- a/test/hil/hil_test.py
+++ b/test/hil/hil_test.py
@@ -43,6 +43,8 @@ STATUS_OK = "\033[32mOK\033[0m"
STATUS_FAILED = "\033[31mFailed\033[0m"
STATUS_SKIPPED = "\033[33mSkipped\033[0m"
+verbose = False
+
# get usb serial by id
def get_serial_dev(id, vendor_str, product_str, ifnum):
if vendor_str and product_str:
@@ -111,7 +113,6 @@ def read_disk_file(uid, lun, fname):
# Flashing firmware
# -------------------------------------------------------------
def run_cmd(cmd):
- #print(cmd)
r = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
if r.returncode != 0:
title = f'COMMAND FAILED: {cmd}'
@@ -123,6 +124,9 @@ def run_cmd(cmd):
else:
print(title)
print(r.stdout.decode("utf-8"))
+ elif verbose:
+ print(cmd)
+ print(r.stdout.decode("utf-8"))
return r
@@ -260,14 +264,14 @@ def test_device_cdc_dual_ports(board):
str1 = b"test_no1"
ser1.write(str1)
ser1.flush()
- assert ser1.read(100) == str1.lower(), 'Port1 wrong data'
- assert ser2.read(100) == str1.upper(), 'Port2 wrong data'
+ assert ser1.read(len(str1)) == str1.lower(), 'Port1 wrong data'
+ assert ser2.read(len(str1)) == str1.upper(), 'Port2 wrong data'
str2 = b"test_no2"
ser2.write(str2)
ser2.flush()
- assert ser1.read(100) == str2.lower(), 'Port1 wrong data'
- assert ser2.read(100) == str2.upper(), 'Port2 wrong data'
+ assert ser1.read(len(str2)) == str2.lower(), 'Port1 wrong data'
+ assert ser2.read(len(str2)) == str2.upper(), 'Port2 wrong data'
def test_device_cdc_msc(board):
@@ -279,7 +283,7 @@ def test_device_cdc_msc(board):
str = b"test_str"
ser.write(str)
ser.flush()
- assert ser.read(100) == str, 'CDC wrong data'
+ assert ser.read(len(str)) == str, 'CDC wrong data'
# Block test
data = read_disk_file(uid,0,'README.TXT')
@@ -447,13 +451,17 @@ def main():
"""
Hardware test on specified boards
"""
+ global verbose
+
parser = argparse.ArgumentParser()
parser.add_argument('config_file', help='Configuration JSON file')
parser.add_argument('-b', '--board', action='append', default=[], help='Boards to test, all if not specified')
+ parser.add_argument('-v', '--verbose', action='store_true', help='Verbose output')
args = parser.parse_args()
config_file = args.config_file
boards = args.board
+ verbose = args.verbose
# if config file is not found, try to find it in the same directory as this script
if not os.path.exists(config_file):
diff --git a/test/hil/rpi.json b/test/hil/rpi.json
index 36376a873..77919f346 100644
--- a/test/hil/rpi.json
+++ b/test/hil/rpi.json
@@ -53,6 +53,16 @@
}
},
{
+ "name": "raspberry_pi_pico2",
+ "uid": "560AE75E1C7152C9",
+ "flasher": "openocd",
+ "flasher_sn": "E6633861A3978538",
+ "flasher_args": "-f interface/cmsis-dap.cfg -f target/rp2350.cfg -c \"adapter speed 5000\"",
+ "tests": {
+ "dual_attached": [{"vid_pid": "1a86_55d4", "serial": "533D004242"}]
+ }
+ },
+ {
"name": "stm32f072disco",
"uid": "3A001A001357364230353532",
"flasher": "jlink",