From 09bce3532c9279b54f5dc1e48c51959344df6c56 Mon Sep 17 00:00:00 2001 From: HiFiPhile Date: Sun, 9 Feb 2025 00:04:16 +0100 Subject: Add CMake presets. Signed-off-by: HiFiPhile --- tools/gen_presets.py | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100755 tools/gen_presets.py (limited to 'tools') diff --git a/tools/gen_presets.py b/tools/gen_presets.py new file mode 100755 index 000000000..98b1a7d46 --- /dev/null +++ b/tools/gen_presets.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python3 +import os +import json + + +def main(): + board_list = [] + + # Find all board.cmake files + for root, dirs, files in os.walk("hw/bsp"): + for file in files: + if file == "board.cmake": + board_list.append(os.path.basename(root)) + + print('Generating presets for the following boards:') + print(board_list) + + # Generate the presets + presets = {} + presets['version'] = 6 + + # Configure presets + presets['configurePresets'] = [ + {"name": "default", + "hidden": True, + "description": r"Configure preset for the ${presetName} board", + "generator": "Ninja", + "binaryDir": r"${sourceDir}/build/${presetName}", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "BOARD": r"${presetName}" + } + }] + + presets['configurePresets'].extend( + [{'name': board, 'inherits': 'default'} for board in board_list] + ) + + # Build presets + # no inheritance since 'name' doesn't support macro expansion + presets['buildPresets'] = [ + { + 'name': board, + 'description': "Build preset for the " + board + " board", + 'configurePreset': board + } + for board in board_list + ] + + # Workflow presets + presets['workflowPresets'] = [ + { + "name": board, + "steps": [ + { + "type": "configure", + "name": board + }, + { + "type": "build", + "name": board + } + ] + } + for board in board_list + ] + + with open("hw/bsp/BoardPresets.json", "w") as f: + f.write('{}\n'.format(json.dumps(presets, indent=2))) + + # Generate presets for examples + presets = { + "version": 6, + "include": [ + "../../../hw/bsp/BoardPresets.json" + ] + } + + example_list = [] + for root, dirs, files in os.walk("examples"): + for file in files: + if file == "CMakeLists.txt": + with open(os.path.join(root, 'CMakePresets.json'), 'w') as f: + f.write('{}\n'.format(json.dumps(presets, indent=2))) + example_list.append(os.path.basename(root)) + + print('Generating presets for the following examples:') + print(example_list) + +if __name__ == "__main__": + main() -- cgit v1.3.1 From 1208f88b6ecc899bfac908aaf90a8be0997efb5d Mon Sep 17 00:00:00 2001 From: HiFiPhile Date: Sun, 9 Feb 2025 18:40:30 +0100 Subject: Sort list (bettter for Clion) Signed-off-by: HiFiPhile --- hw/bsp/BoardPresets.json | 1952 +++++++++++++++++++++++----------------------- tools/gen_presets.py | 70 +- 2 files changed, 1017 insertions(+), 1005 deletions(-) (limited to 'tools') diff --git a/hw/bsp/BoardPresets.json b/hw/bsp/BoardPresets.json index c295efbdd..fee8f2c97 100644 --- a/hw/bsp/BoardPresets.json +++ b/hw/bsp/BoardPresets.json @@ -5,175 +5,195 @@ "name": "default", "hidden": true, "description": "Configure preset for the ${presetName} board", - "generator": "Ninja", + "generator": "Ninja Multi-Config", "binaryDir": "${sourceDir}/build/${presetName}", "cacheVariables": { - "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "CMAKE_DEFAULT_BUILD_TYPE": "RelWithDebInfo", "BOARD": "${presetName}" } }, { - "name": "raspberrypi_zero", + "name": "adafruit_clue", "inherits": "default" }, { - "name": "raspberrypi_cm4", + "name": "adafruit_feather_esp32_v2", "inherits": "default" }, { - "name": "raspberrypi_zero2", + "name": "adafruit_feather_esp32s2", "inherits": "default" }, { - "name": "ch32v103r_r1_1v0", + "name": "adafruit_feather_esp32s3", "inherits": "default" }, { - "name": "ch32v203c_r0_1v0", + "name": "adafruit_magtag_29gray", "inherits": "default" }, { - "name": "ch32v203g_r0_1v0", + "name": "adafruit_metro_esp32s2", "inherits": "default" }, { - "name": "nanoch32v203", + "name": "apard32690", "inherits": "default" }, { - "name": "ch32v307v_r1_1v0", + "name": "arduino_nano33_ble", "inherits": "default" }, { - "name": "da14695_dk_usb", + "name": "atsamd21_xpro", "inherits": "default" }, { - "name": "da1469x_dk_pro", + "name": "atsaml21_xpro", "inherits": "default" }, { - "name": "adafruit_feather_esp32s2", + "name": "b_g474e_dpow1", "inherits": "default" }, { - "name": "adafruit_feather_esp32s3", + "name": "b_u585i_iot2a", "inherits": "default" }, { - "name": "adafruit_feather_esp32_v2", + "name": "ch32v103r_r1_1v0", "inherits": "default" }, { - "name": "adafruit_magtag_29gray", + "name": "ch32v203c_r0_1v0", "inherits": "default" }, { - "name": "adafruit_metro_esp32s2", + "name": "ch32v203g_r0_1v0", "inherits": "default" }, { - "name": "espressif_addax_1", + "name": "ch32v307v_r1_1v0", "inherits": "default" }, { - "name": "espressif_c3_devkitc", + "name": "circuitplayground_bluefruit", "inherits": "default" }, { - "name": "espressif_c6_devkitc", + "name": "circuitplayground_express", "inherits": "default" }, { - "name": "espressif_kaluga_1", + "name": "curiosity_nano", "inherits": "default" }, { - "name": "espressif_p4_function_ev", + "name": "cynthion_d11", "inherits": "default" }, { - "name": "espressif_s2_devkitc", + "name": "cynthion_d21", "inherits": "default" }, { - "name": "espressif_s3_devkitc", + "name": "d5035_01", "inherits": "default" }, { - "name": "espressif_s3_devkitm", + "name": "da14695_dk_usb", "inherits": "default" }, { - "name": "espressif_saola_1", + "name": "da1469x_dk_pro", "inherits": "default" }, { - "name": "f1c100s", + "name": "daisyseed", "inherits": "default" }, { - "name": "fomu", + "name": "double_m33_express", "inherits": "default" }, { - "name": "sipeed_longan_nano", + "name": "ea4088_quickstart", "inherits": "default" }, { - "name": "metro_m7_1011", + "name": "ea4357", "inherits": "default" }, { - "name": "metro_m7_1011_sd", + "name": "ek_tm4c123gxl", "inherits": "default" }, { - "name": "mimxrt1010_evk", + "name": "espressif_addax_1", "inherits": "default" }, { - "name": "mimxrt1015_evk", + "name": "espressif_c3_devkitc", "inherits": "default" }, { - "name": "mimxrt1020_evk", + "name": "espressif_c6_devkitc", "inherits": "default" }, { - "name": "mimxrt1024_evk", + "name": "espressif_kaluga_1", "inherits": "default" }, { - "name": "mimxrt1050_evkb", + "name": "espressif_p4_function_ev", "inherits": "default" }, { - "name": "mimxrt1060_evk", + "name": "espressif_s2_devkitc", "inherits": "default" }, { - "name": "mimxrt1064_evk", + "name": "espressif_s3_devkitc", "inherits": "default" }, { - "name": "mimxrt1170_evkb", + "name": "espressif_s3_devkitm", "inherits": "default" }, { - "name": "teensy_40", + "name": "espressif_saola_1", "inherits": "default" }, { - "name": "teensy_41", + "name": "f1c100s", "inherits": "default" }, { - "name": "frdm_k64f", + "name": "feather_m0_express", "inherits": "default" }, { - "name": "teensy_35", + "name": "feather_m4_express", + "inherits": "default" + }, + { + "name": "feather_nrf52840_express", + "inherits": "default" + }, + { + "name": "feather_nrf52840_sense", + "inherits": "default" + }, + { + "name": "feather_rp2040_max3421", + "inherits": "default" + }, + { + "name": "feather_stm32f405", + "inherits": "default" + }, + { + "name": "fomu", "inherits": "default" }, { @@ -185,7 +205,7 @@ "inherits": "default" }, { - "name": "kuiic", + "name": "frdm_k64f", "inherits": "default" }, { @@ -193,43 +213,51 @@ "inherits": "default" }, { - "name": "lpcxpresso11u37", + "name": "frdm_mcxa153", "inherits": "default" }, { - "name": "lpcxpresso11u68", + "name": "frdm_mcxn947", "inherits": "default" }, { - "name": "lpcxpresso1347", + "name": "itsybitsy_m0", "inherits": "default" }, { - "name": "lpcxpresso1549", + "name": "itsybitsy_m4", "inherits": "default" }, { - "name": "lpcxpresso1769", + "name": "itsybitsy_nrf52840", "inherits": "default" }, { - "name": "mbed1768", + "name": "kuiic", "inherits": "default" }, { - "name": "lpcxpresso18s37", + "name": "lpcxpresso11u37", "inherits": "default" }, { - "name": "mcb1800", + "name": "lpcxpresso11u68", "inherits": "default" }, { - "name": "ea4088_quickstart", + "name": "lpcxpresso1347", "inherits": "default" }, { - "name": "ea4357", + "name": "lpcxpresso1549", + "inherits": "default" + }, + { + "name": "lpcxpresso1769", + "inherits": "default" + }, + { + "name": "lpcxpresso18s37", "inherits": "default" }, { @@ -252,10 +280,6 @@ "name": "lpcxpresso54628", "inherits": "default" }, - { - "name": "double_m33_express", - "inherits": "default" - }, { "name": "lpcxpresso55s28", "inherits": "default" @@ -264,10 +288,6 @@ "name": "lpcxpresso55s69", "inherits": "default" }, - { - "name": "mcu_link", - "inherits": "default" - }, { "name": "max32650evkit", "inherits": "default" @@ -288,10 +308,6 @@ "name": "max32666fthr", "inherits": "default" }, - { - "name": "apard32690", - "inherits": "default" - }, { "name": "max32690evkit", "inherits": "default" @@ -301,107 +317,103 @@ "inherits": "default" }, { - "name": "frdm_mcxa153", - "inherits": "default" - }, - { - "name": "frdm_mcxn947", + "name": "mbed1768", "inherits": "default" }, { - "name": "mcxn947brk", + "name": "mcb1800", "inherits": "default" }, { - "name": "mm32f327x_mb39", + "name": "mcu_link", "inherits": "default" }, { - "name": "mm32f327x_pitaya_lite", + "name": "mcxn947brk", "inherits": "default" }, { - "name": "msp_exp430f5529lp", + "name": "metro_m0_express", "inherits": "default" }, { - "name": "msp_exp432e401y", + "name": "metro_m4_express", "inherits": "default" }, { - "name": "adafruit_clue", + "name": "metro_m7_1011", "inherits": "default" }, { - "name": "arduino_nano33_ble", + "name": "metro_m7_1011_sd", "inherits": "default" }, { - "name": "circuitplayground_bluefruit", + "name": "mimxrt1010_evk", "inherits": "default" }, { - "name": "feather_nrf52840_express", + "name": "mimxrt1015_evk", "inherits": "default" }, { - "name": "feather_nrf52840_sense", + "name": "mimxrt1020_evk", "inherits": "default" }, { - "name": "itsybitsy_nrf52840", + "name": "mimxrt1024_evk", "inherits": "default" }, { - "name": "pca10056", + "name": "mimxrt1050_evkb", "inherits": "default" }, { - "name": "pca10059", + "name": "mimxrt1060_evk", "inherits": "default" }, { - "name": "pca10095", + "name": "mimxrt1064_evk", "inherits": "default" }, { - "name": "pca10100", + "name": "mimxrt1170_evkb", "inherits": "default" }, { - "name": "portenta_c33", + "name": "mm32f327x_mb39", "inherits": "default" }, { - "name": "ra2a1_ek", + "name": "mm32f327x_pitaya_lite", "inherits": "default" }, { - "name": "ra4m1_ek", + "name": "msp_exp430f5529lp", "inherits": "default" }, { - "name": "ra4m3_ek", + "name": "msp_exp432e401y", "inherits": "default" }, { - "name": "ra6m1_ek", + "name": "nanoch32v203", "inherits": "default" }, { - "name": "ra6m5_ek", + "name": "pca10056", "inherits": "default" }, { - "name": "ra8m1_ek", + "name": "pca10059", "inherits": "default" }, { - "name": "uno_r4", + "name": "pca10095", "inherits": "default" }, { - "name": "feather_rp2040_max3421", + "name": "pca10100", "inherits": "default" }, { @@ -409,107 +421,103 @@ "inherits": "default" }, { - "name": "raspberry_pi_pico", - "inherits": "default" - }, - { - "name": "raspberry_pi_pico2", + "name": "portenta_c33", "inherits": "default" }, { - "name": "cynthion_d11", + "name": "pybadge", "inherits": "default" }, { - "name": "samd11_xplained", + "name": "pyboardv11", "inherits": "default" }, { - "name": "atsamd21_xpro", + "name": "pyportal", "inherits": "default" }, { - "name": "circuitplayground_express", + "name": "qtpy", "inherits": "default" }, { - "name": "curiosity_nano", + "name": "ra2a1_ek", "inherits": "default" }, { - "name": "cynthion_d21", + "name": "ra4m1_ek", "inherits": "default" }, { - "name": "feather_m0_express", + "name": "ra4m3_ek", "inherits": "default" }, { - "name": "itsybitsy_m0", + "name": "ra6m1_ek", "inherits": "default" }, { - "name": "metro_m0_express", + "name": "ra6m5_ek", "inherits": "default" }, { - "name": "qtpy", + "name": "ra8m1_ek", "inherits": "default" }, { - "name": "seeeduino_xiao", + "name": "raspberry_pi_pico", "inherits": "default" }, { - "name": "sparkfun_samd21_mini_usb", + "name": "raspberry_pi_pico2", "inherits": "default" }, { - "name": "trinket_m0", + "name": "raspberrypi_cm4", "inherits": "default" }, { - "name": "d5035_01", + "name": "raspberrypi_zero", "inherits": "default" }, { - "name": "feather_m4_express", + "name": "raspberrypi_zero2", "inherits": "default" }, { - "name": "itsybitsy_m4", + "name": "samd11_xplained", "inherits": "default" }, { - "name": "metro_m4_express", + "name": "same54_xplained", "inherits": "default" }, { - "name": "pybadge", + "name": "samg55_xplained", "inherits": "default" }, { - "name": "pyportal", + "name": "saml22_feather", "inherits": "default" }, { - "name": "same54_xplained", + "name": "seeeduino_xiao", "inherits": "default" }, { - "name": "samg55_xplained", + "name": "sensorwatch_m0", "inherits": "default" }, { - "name": "atsaml21_xpro", + "name": "sipeed_longan_nano", "inherits": "default" }, { - "name": "saml22_feather", + "name": "sparkfun_samd21_mini_usb", "inherits": "default" }, { - "name": "sensorwatch_m0", + "name": "stlinkv3mini", "inherits": "default" }, { @@ -528,10 +536,6 @@ "name": "stm32f072eval", "inherits": "default" }, - { - "name": "stm32f103ze_iar", - "inherits": "default" - }, { "name": "stm32f103_bluepill", "inherits": "default" @@ -541,19 +545,15 @@ "inherits": "default" }, { - "name": "stm32f207nucleo", - "inherits": "default" - }, - { - "name": "stm32f303disco", + "name": "stm32f103ze_iar", "inherits": "default" }, { - "name": "feather_stm32f405", + "name": "stm32f207nucleo", "inherits": "default" }, { - "name": "pyboardv11", + "name": "stm32f303disco", "inherits": "default" }, { @@ -588,10 +588,6 @@ "name": "stm32f439nucleo", "inherits": "default" }, - { - "name": "stlinkv3mini", - "inherits": "default" - }, { "name": "stm32f723disco", "inherits": "default" @@ -616,10 +612,6 @@ "name": "stm32g0b1nucleo", "inherits": "default" }, - { - "name": "b_g474e_dpow1", - "inherits": "default" - }, { "name": "stm32g474nucleo", "inherits": "default" @@ -640,10 +632,6 @@ "name": "stm32h573i_dk", "inherits": "default" }, - { - "name": "daisyseed", - "inherits": "default" - }, { "name": "stm32h723nucleo", "inherits": "default" @@ -660,16 +648,12 @@ "name": "stm32h745disco", "inherits": "default" }, - { - "name": "stm32h750bdk", - "inherits": "default" - }, { "name": "stm32h750_weact", "inherits": "default" }, { - "name": "waveshare_openh743i", + "name": "stm32h750bdk", "inherits": "default" }, { @@ -700,10 +684,6 @@ "name": "stm32l4r5nucleo", "inherits": "default" }, - { - "name": "b_u585i_iot2a", - "inherits": "default" - }, { "name": "stm32u545nucleo", "inherits": "default" @@ -725,7 +705,27 @@ "inherits": "default" }, { - "name": "ek_tm4c123gxl", + "name": "teensy_35", + "inherits": "default" + }, + { + "name": "teensy_40", + "inherits": "default" + }, + { + "name": "teensy_41", + "inherits": "default" + }, + { + "name": "trinket_m0", + "inherits": "default" + }, + { + "name": "uno_r4", + "inherits": "default" + }, + { + "name": "waveshare_openh743i", "inherits": "default" }, { @@ -739,19 +739,64 @@ ], "buildPresets": [ { - "name": "raspberrypi_zero", - "description": "Build preset for the raspberrypi_zero board", - "configurePreset": "raspberrypi_zero" + "name": "adafruit_clue", + "description": "Build preset for the adafruit_clue board", + "configurePreset": "adafruit_clue" }, { - "name": "raspberrypi_cm4", - "description": "Build preset for the raspberrypi_cm4 board", - "configurePreset": "raspberrypi_cm4" + "name": "adafruit_feather_esp32_v2", + "description": "Build preset for the adafruit_feather_esp32_v2 board", + "configurePreset": "adafruit_feather_esp32_v2" }, { - "name": "raspberrypi_zero2", - "description": "Build preset for the raspberrypi_zero2 board", - "configurePreset": "raspberrypi_zero2" + "name": "adafruit_feather_esp32s2", + "description": "Build preset for the adafruit_feather_esp32s2 board", + "configurePreset": "adafruit_feather_esp32s2" + }, + { + "name": "adafruit_feather_esp32s3", + "description": "Build preset for the adafruit_feather_esp32s3 board", + "configurePreset": "adafruit_feather_esp32s3" + }, + { + "name": "adafruit_magtag_29gray", + "description": "Build preset for the adafruit_magtag_29gray board", + "configurePreset": "adafruit_magtag_29gray" + }, + { + "name": "adafruit_metro_esp32s2", + "description": "Build preset for the adafruit_metro_esp32s2 board", + "configurePreset": "adafruit_metro_esp32s2" + }, + { + "name": "apard32690", + "description": "Build preset for the apard32690 board", + "configurePreset": "apard32690" + }, + { + "name": "arduino_nano33_ble", + "description": "Build preset for the arduino_nano33_ble board", + "configurePreset": "arduino_nano33_ble" + }, + { + "name": "atsamd21_xpro", + "description": "Build preset for the atsamd21_xpro board", + "configurePreset": "atsamd21_xpro" + }, + { + "name": "atsaml21_xpro", + "description": "Build preset for the atsaml21_xpro board", + "configurePreset": "atsaml21_xpro" + }, + { + "name": "b_g474e_dpow1", + "description": "Build preset for the b_g474e_dpow1 board", + "configurePreset": "b_g474e_dpow1" + }, + { + "name": "b_u585i_iot2a", + "description": "Build preset for the b_u585i_iot2a board", + "configurePreset": "b_u585i_iot2a" }, { "name": "ch32v103r_r1_1v0", @@ -768,16 +813,41 @@ "description": "Build preset for the ch32v203g_r0_1v0 board", "configurePreset": "ch32v203g_r0_1v0" }, - { - "name": "nanoch32v203", - "description": "Build preset for the nanoch32v203 board", - "configurePreset": "nanoch32v203" - }, { "name": "ch32v307v_r1_1v0", "description": "Build preset for the ch32v307v_r1_1v0 board", "configurePreset": "ch32v307v_r1_1v0" }, + { + "name": "circuitplayground_bluefruit", + "description": "Build preset for the circuitplayground_bluefruit board", + "configurePreset": "circuitplayground_bluefruit" + }, + { + "name": "circuitplayground_express", + "description": "Build preset for the circuitplayground_express board", + "configurePreset": "circuitplayground_express" + }, + { + "name": "curiosity_nano", + "description": "Build preset for the curiosity_nano board", + "configurePreset": "curiosity_nano" + }, + { + "name": "cynthion_d11", + "description": "Build preset for the cynthion_d11 board", + "configurePreset": "cynthion_d11" + }, + { + "name": "cynthion_d21", + "description": "Build preset for the cynthion_d21 board", + "configurePreset": "cynthion_d21" + }, + { + "name": "d5035_01", + "description": "Build preset for the d5035_01 board", + "configurePreset": "d5035_01" + }, { "name": "da14695_dk_usb", "description": "Build preset for the da14695_dk_usb board", @@ -789,29 +859,29 @@ "configurePreset": "da1469x_dk_pro" }, { - "name": "adafruit_feather_esp32s2", - "description": "Build preset for the adafruit_feather_esp32s2 board", - "configurePreset": "adafruit_feather_esp32s2" + "name": "daisyseed", + "description": "Build preset for the daisyseed board", + "configurePreset": "daisyseed" }, { - "name": "adafruit_feather_esp32s3", - "description": "Build preset for the adafruit_feather_esp32s3 board", - "configurePreset": "adafruit_feather_esp32s3" + "name": "double_m33_express", + "description": "Build preset for the double_m33_express board", + "configurePreset": "double_m33_express" }, { - "name": "adafruit_feather_esp32_v2", - "description": "Build preset for the adafruit_feather_esp32_v2 board", - "configurePreset": "adafruit_feather_esp32_v2" + "name": "ea4088_quickstart", + "description": "Build preset for the ea4088_quickstart board", + "configurePreset": "ea4088_quickstart" }, { - "name": "adafruit_magtag_29gray", - "description": "Build preset for the adafruit_magtag_29gray board", - "configurePreset": "adafruit_magtag_29gray" + "name": "ea4357", + "description": "Build preset for the ea4357 board", + "configurePreset": "ea4357" }, { - "name": "adafruit_metro_esp32s2", - "description": "Build preset for the adafruit_metro_esp32s2 board", - "configurePreset": "adafruit_metro_esp32s2" + "name": "ek_tm4c123gxl", + "description": "Build preset for the ek_tm4c123gxl board", + "configurePreset": "ek_tm4c123gxl" }, { "name": "espressif_addax_1", @@ -864,105 +934,90 @@ "configurePreset": "f1c100s" }, { - "name": "fomu", - "description": "Build preset for the fomu board", - "configurePreset": "fomu" + "name": "feather_m0_express", + "description": "Build preset for the feather_m0_express board", + "configurePreset": "feather_m0_express" }, { - "name": "sipeed_longan_nano", - "description": "Build preset for the sipeed_longan_nano board", - "configurePreset": "sipeed_longan_nano" + "name": "feather_m4_express", + "description": "Build preset for the feather_m4_express board", + "configurePreset": "feather_m4_express" }, { - "name": "metro_m7_1011", - "description": "Build preset for the metro_m7_1011 board", - "configurePreset": "metro_m7_1011" + "name": "feather_nrf52840_express", + "description": "Build preset for the feather_nrf52840_express board", + "configurePreset": "feather_nrf52840_express" }, { - "name": "metro_m7_1011_sd", - "description": "Build preset for the metro_m7_1011_sd board", - "configurePreset": "metro_m7_1011_sd" + "name": "feather_nrf52840_sense", + "description": "Build preset for the feather_nrf52840_sense board", + "configurePreset": "feather_nrf52840_sense" }, { - "name": "mimxrt1010_evk", - "description": "Build preset for the mimxrt1010_evk board", - "configurePreset": "mimxrt1010_evk" + "name": "feather_rp2040_max3421", + "description": "Build preset for the feather_rp2040_max3421 board", + "configurePreset": "feather_rp2040_max3421" }, { - "name": "mimxrt1015_evk", - "description": "Build preset for the mimxrt1015_evk board", - "configurePreset": "mimxrt1015_evk" + "name": "feather_stm32f405", + "description": "Build preset for the feather_stm32f405 board", + "configurePreset": "feather_stm32f405" }, { - "name": "mimxrt1020_evk", - "description": "Build preset for the mimxrt1020_evk board", - "configurePreset": "mimxrt1020_evk" + "name": "fomu", + "description": "Build preset for the fomu board", + "configurePreset": "fomu" }, { - "name": "mimxrt1024_evk", - "description": "Build preset for the mimxrt1024_evk board", - "configurePreset": "mimxrt1024_evk" + "name": "frdm_k32l2a4s", + "description": "Build preset for the frdm_k32l2a4s board", + "configurePreset": "frdm_k32l2a4s" }, { - "name": "mimxrt1050_evkb", - "description": "Build preset for the mimxrt1050_evkb board", - "configurePreset": "mimxrt1050_evkb" + "name": "frdm_k32l2b", + "description": "Build preset for the frdm_k32l2b board", + "configurePreset": "frdm_k32l2b" }, { - "name": "mimxrt1060_evk", - "description": "Build preset for the mimxrt1060_evk board", - "configurePreset": "mimxrt1060_evk" + "name": "frdm_k64f", + "description": "Build preset for the frdm_k64f board", + "configurePreset": "frdm_k64f" }, { - "name": "mimxrt1064_evk", - "description": "Build preset for the mimxrt1064_evk board", - "configurePreset": "mimxrt1064_evk" + "name": "frdm_kl25z", + "description": "Build preset for the frdm_kl25z board", + "configurePreset": "frdm_kl25z" }, { - "name": "mimxrt1170_evkb", - "description": "Build preset for the mimxrt1170_evkb board", - "configurePreset": "mimxrt1170_evkb" + "name": "frdm_mcxa153", + "description": "Build preset for the frdm_mcxa153 board", + "configurePreset": "frdm_mcxa153" }, { - "name": "teensy_40", - "description": "Build preset for the teensy_40 board", - "configurePreset": "teensy_40" - }, - { - "name": "teensy_41", - "description": "Build preset for the teensy_41 board", - "configurePreset": "teensy_41" - }, - { - "name": "frdm_k64f", - "description": "Build preset for the frdm_k64f board", - "configurePreset": "frdm_k64f" + "name": "frdm_mcxn947", + "description": "Build preset for the frdm_mcxn947 board", + "configurePreset": "frdm_mcxn947" }, { - "name": "teensy_35", - "description": "Build preset for the teensy_35 board", - "configurePreset": "teensy_35" + "name": "itsybitsy_m0", + "description": "Build preset for the itsybitsy_m0 board", + "configurePreset": "itsybitsy_m0" }, { - "name": "frdm_k32l2a4s", - "description": "Build preset for the frdm_k32l2a4s board", - "configurePreset": "frdm_k32l2a4s" + "name": "itsybitsy_m4", + "description": "Build preset for the itsybitsy_m4 board", + "configurePreset": "itsybitsy_m4" }, { - "name": "frdm_k32l2b", - "description": "Build preset for the frdm_k32l2b board", - "configurePreset": "frdm_k32l2b" + "name": "itsybitsy_nrf52840", + "description": "Build preset for the itsybitsy_nrf52840 board", + "configurePreset": "itsybitsy_nrf52840" }, { "name": "kuiic", "description": "Build preset for the kuiic board", "configurePreset": "kuiic" }, - { - "name": "frdm_kl25z", - "description": "Build preset for the frdm_kl25z board", - "configurePreset": "frdm_kl25z" - }, { "name": "lpcxpresso11u37", "description": "Build preset for the lpcxpresso11u37 board", @@ -988,31 +1043,11 @@ "description": "Build preset for the lpcxpresso1769 board", "configurePreset": "lpcxpresso1769" }, - { - "name": "mbed1768", - "description": "Build preset for the mbed1768 board", - "configurePreset": "mbed1768" - }, { "name": "lpcxpresso18s37", "description": "Build preset for the lpcxpresso18s37 board", "configurePreset": "lpcxpresso18s37" }, - { - "name": "mcb1800", - "description": "Build preset for the mcb1800 board", - "configurePreset": "mcb1800" - }, - { - "name": "ea4088_quickstart", - "description": "Build preset for the ea4088_quickstart board", - "configurePreset": "ea4088_quickstart" - }, - { - "name": "ea4357", - "description": "Build preset for the ea4357 board", - "configurePreset": "ea4357" - }, { "name": "lpcxpresso43s67", "description": "Build preset for the lpcxpresso43s67 board", @@ -1038,11 +1073,6 @@ "description": "Build preset for the lpcxpresso54628 board", "configurePreset": "lpcxpresso54628" }, - { - "name": "double_m33_express", - "description": "Build preset for the double_m33_express board", - "configurePreset": "double_m33_express" - }, { "name": "lpcxpresso55s28", "description": "Build preset for the lpcxpresso55s28 board", @@ -1053,11 +1083,6 @@ "description": "Build preset for the lpcxpresso55s69 board", "configurePreset": "lpcxpresso55s69" }, - { - "name": "mcu_link", - "description": "Build preset for the mcu_link board", - "configurePreset": "mcu_link" - }, { "name": "max32650evkit", "description": "Build preset for the max32650evkit board", @@ -1083,11 +1108,6 @@ "description": "Build preset for the max32666fthr board", "configurePreset": "max32666fthr" }, - { - "name": "apard32690", - "description": "Build preset for the apard32690 board", - "configurePreset": "apard32690" - }, { "name": "max32690evkit", "description": "Build preset for the max32690evkit board", @@ -1099,20 +1119,85 @@ "configurePreset": "max78002evkit" }, { - "name": "frdm_mcxa153", - "description": "Build preset for the frdm_mcxa153 board", - "configurePreset": "frdm_mcxa153" + "name": "mbed1768", + "description": "Build preset for the mbed1768 board", + "configurePreset": "mbed1768" }, { - "name": "frdm_mcxn947", - "description": "Build preset for the frdm_mcxn947 board", - "configurePreset": "frdm_mcxn947" + "name": "mcb1800", + "description": "Build preset for the mcb1800 board", + "configurePreset": "mcb1800" + }, + { + "name": "mcu_link", + "description": "Build preset for the mcu_link board", + "configurePreset": "mcu_link" }, { "name": "mcxn947brk", "description": "Build preset for the mcxn947brk board", "configurePreset": "mcxn947brk" }, + { + "name": "metro_m0_express", + "description": "Build preset for the metro_m0_express board", + "configurePreset": "metro_m0_express" + }, + { + "name": "metro_m4_express", + "description": "Build preset for the metro_m4_express board", + "configurePreset": "metro_m4_express" + }, + { + "name": "metro_m7_1011", + "description": "Build preset for the metro_m7_1011 board", + "configurePreset": "metro_m7_1011" + }, + { + "name": "metro_m7_1011_sd", + "description": "Build preset for the metro_m7_1011_sd board", + "configurePreset": "metro_m7_1011_sd" + }, + { + "name": "mimxrt1010_evk", + "description": "Build preset for the mimxrt1010_evk board", + "configurePreset": "mimxrt1010_evk" + }, + { + "name": "mimxrt1015_evk", + "description": "Build preset for the mimxrt1015_evk board", + "configurePreset": "mimxrt1015_evk" + }, + { + "name": "mimxrt1020_evk", + "description": "Build preset for the mimxrt1020_evk board", + "configurePreset": "mimxrt1020_evk" + }, + { + "name": "mimxrt1024_evk", + "description": "Build preset for the mimxrt1024_evk board", + "configurePreset": "mimxrt1024_evk" + }, + { + "name": "mimxrt1050_evkb", + "description": "Build preset for the mimxrt1050_evkb board", + "configurePreset": "mimxrt1050_evkb" + }, + { + "name": "mimxrt1060_evk", + "description": "Build preset for the mimxrt1060_evk board", + "configurePreset": "mimxrt1060_evk" + }, + { + "name": "mimxrt1064_evk", + "description": "Build preset for the mimxrt1064_evk board", + "configurePreset": "mimxrt1064_evk" + }, + { + "name": "mimxrt1170_evkb", + "description": "Build preset for the mimxrt1170_evkb board", + "configurePreset": "mimxrt1170_evkb" + }, { "name": "mm32f327x_mb39", "description": "Build preset for the mm32f327x_mb39 board", @@ -1134,34 +1219,9 @@ "configurePreset": "msp_exp432e401y" }, { - "name": "adafruit_clue", - "description": "Build preset for the adafruit_clue board", - "configurePreset": "adafruit_clue" - }, - { - "name": "arduino_nano33_ble", - "description": "Build preset for the arduino_nano33_ble board", - "configurePreset": "arduino_nano33_ble" - }, - { - "name": "circuitplayground_bluefruit", - "description": "Build preset for the circuitplayground_bluefruit board", - "configurePreset": "circuitplayground_bluefruit" - }, - { - "name": "feather_nrf52840_express", - "description": "Build preset for the feather_nrf52840_express board", - "configurePreset": "feather_nrf52840_express" - }, - { - "name": "feather_nrf52840_sense", - "description": "Build preset for the feather_nrf52840_sense board", - "configurePreset": "feather_nrf52840_sense" - }, - { - "name": "itsybitsy_nrf52840", - "description": "Build preset for the itsybitsy_nrf52840 board", - "configurePreset": "itsybitsy_nrf52840" + "name": "nanoch32v203", + "description": "Build preset for the nanoch32v203 board", + "configurePreset": "nanoch32v203" }, { "name": "pca10056", @@ -1183,11 +1243,36 @@ "description": "Build preset for the pca10100 board", "configurePreset": "pca10100" }, + { + "name": "pico_sdk", + "description": "Build preset for the pico_sdk board", + "configurePreset": "pico_sdk" + }, { "name": "portenta_c33", "description": "Build preset for the portenta_c33 board", "configurePreset": "portenta_c33" }, + { + "name": "pybadge", + "description": "Build preset for the pybadge board", + "configurePreset": "pybadge" + }, + { + "name": "pyboardv11", + "description": "Build preset for the pyboardv11 board", + "configurePreset": "pyboardv11" + }, + { + "name": "pyportal", + "description": "Build preset for the pyportal board", + "configurePreset": "pyportal" + }, + { + "name": "qtpy", + "description": "Build preset for the qtpy board", + "configurePreset": "qtpy" + }, { "name": "ra2a1_ek", "description": "Build preset for the ra2a1_ek board", @@ -1218,21 +1303,6 @@ "description": "Build preset for the ra8m1_ek board", "configurePreset": "ra8m1_ek" }, - { - "name": "uno_r4", - "description": "Build preset for the uno_r4 board", - "configurePreset": "uno_r4" - }, - { - "name": "feather_rp2040_max3421", - "description": "Build preset for the feather_rp2040_max3421 board", - "configurePreset": "feather_rp2040_max3421" - }, - { - "name": "pico_sdk", - "description": "Build preset for the pico_sdk board", - "configurePreset": "pico_sdk" - }, { "name": "raspberry_pi_pico", "description": "Build preset for the raspberry_pi_pico board", @@ -1244,9 +1314,19 @@ "configurePreset": "raspberry_pi_pico2" }, { - "name": "cynthion_d11", - "description": "Build preset for the cynthion_d11 board", - "configurePreset": "cynthion_d11" + "name": "raspberrypi_cm4", + "description": "Build preset for the raspberrypi_cm4 board", + "configurePreset": "raspberrypi_cm4" + }, + { + "name": "raspberrypi_zero", + "description": "Build preset for the raspberrypi_zero board", + "configurePreset": "raspberrypi_zero" + }, + { + "name": "raspberrypi_zero2", + "description": "Build preset for the raspberrypi_zero2 board", + "configurePreset": "raspberrypi_zero2" }, { "name": "samd11_xplained", @@ -1254,44 +1334,19 @@ "configurePreset": "samd11_xplained" }, { - "name": "atsamd21_xpro", - "description": "Build preset for the atsamd21_xpro board", - "configurePreset": "atsamd21_xpro" + "name": "same54_xplained", + "description": "Build preset for the same54_xplained board", + "configurePreset": "same54_xplained" }, { - "name": "circuitplayground_express", - "description": "Build preset for the circuitplayground_express board", - "configurePreset": "circuitplayground_express" + "name": "samg55_xplained", + "description": "Build preset for the samg55_xplained board", + "configurePreset": "samg55_xplained" }, { - "name": "curiosity_nano", - "description": "Build preset for the curiosity_nano board", - "configurePreset": "curiosity_nano" - }, - { - "name": "cynthion_d21", - "description": "Build preset for the cynthion_d21 board", - "configurePreset": "cynthion_d21" - }, - { - "name": "feather_m0_express", - "description": "Build preset for the feather_m0_express board", - "configurePreset": "feather_m0_express" - }, - { - "name": "itsybitsy_m0", - "description": "Build preset for the itsybitsy_m0 board", - "configurePreset": "itsybitsy_m0" - }, - { - "name": "metro_m0_express", - "description": "Build preset for the metro_m0_express board", - "configurePreset": "metro_m0_express" - }, - { - "name": "qtpy", - "description": "Build preset for the qtpy board", - "configurePreset": "qtpy" + "name": "saml22_feather", + "description": "Build preset for the saml22_feather board", + "configurePreset": "saml22_feather" }, { "name": "seeeduino_xiao", @@ -1299,69 +1354,24 @@ "configurePreset": "seeeduino_xiao" }, { - "name": "sparkfun_samd21_mini_usb", - "description": "Build preset for the sparkfun_samd21_mini_usb board", - "configurePreset": "sparkfun_samd21_mini_usb" - }, - { - "name": "trinket_m0", - "description": "Build preset for the trinket_m0 board", - "configurePreset": "trinket_m0" - }, - { - "name": "d5035_01", - "description": "Build preset for the d5035_01 board", - "configurePreset": "d5035_01" - }, - { - "name": "feather_m4_express", - "description": "Build preset for the feather_m4_express board", - "configurePreset": "feather_m4_express" - }, - { - "name": "itsybitsy_m4", - "description": "Build preset for the itsybitsy_m4 board", - "configurePreset": "itsybitsy_m4" - }, - { - "name": "metro_m4_express", - "description": "Build preset for the metro_m4_express board", - "configurePreset": "metro_m4_express" - }, - { - "name": "pybadge", - "description": "Build preset for the pybadge board", - "configurePreset": "pybadge" - }, - { - "name": "pyportal", - "description": "Build preset for the pyportal board", - "configurePreset": "pyportal" - }, - { - "name": "same54_xplained", - "description": "Build preset for the same54_xplained board", - "configurePreset": "same54_xplained" - }, - { - "name": "samg55_xplained", - "description": "Build preset for the samg55_xplained board", - "configurePreset": "samg55_xplained" + "name": "sensorwatch_m0", + "description": "Build preset for the sensorwatch_m0 board", + "configurePreset": "sensorwatch_m0" }, { - "name": "atsaml21_xpro", - "description": "Build preset for the atsaml21_xpro board", - "configurePreset": "atsaml21_xpro" + "name": "sipeed_longan_nano", + "description": "Build preset for the sipeed_longan_nano board", + "configurePreset": "sipeed_longan_nano" }, { - "name": "saml22_feather", - "description": "Build preset for the saml22_feather board", - "configurePreset": "saml22_feather" + "name": "sparkfun_samd21_mini_usb", + "description": "Build preset for the sparkfun_samd21_mini_usb board", + "configurePreset": "sparkfun_samd21_mini_usb" }, { - "name": "sensorwatch_m0", - "description": "Build preset for the sensorwatch_m0 board", - "configurePreset": "sensorwatch_m0" + "name": "stlinkv3mini", + "description": "Build preset for the stlinkv3mini board", + "configurePreset": "stlinkv3mini" }, { "name": "stm32c071nucleo", @@ -1383,11 +1393,6 @@ "description": "Build preset for the stm32f072eval board", "configurePreset": "stm32f072eval" }, - { - "name": "stm32f103ze_iar", - "description": "Build preset for the stm32f103ze_iar board", - "configurePreset": "stm32f103ze_iar" - }, { "name": "stm32f103_bluepill", "description": "Build preset for the stm32f103_bluepill board", @@ -1398,6 +1403,11 @@ "description": "Build preset for the stm32f103_mini_2 board", "configurePreset": "stm32f103_mini_2" }, + { + "name": "stm32f103ze_iar", + "description": "Build preset for the stm32f103ze_iar board", + "configurePreset": "stm32f103ze_iar" + }, { "name": "stm32f207nucleo", "description": "Build preset for the stm32f207nucleo board", @@ -1408,16 +1418,6 @@ "description": "Build preset for the stm32f303disco board", "configurePreset": "stm32f303disco" }, - { - "name": "feather_stm32f405", - "description": "Build preset for the feather_stm32f405 board", - "configurePreset": "feather_stm32f405" - }, - { - "name": "pyboardv11", - "description": "Build preset for the pyboardv11 board", - "configurePreset": "pyboardv11" - }, { "name": "stm32f401blackpill", "description": "Build preset for the stm32f401blackpill board", @@ -1458,11 +1458,6 @@ "description": "Build preset for the stm32f439nucleo board", "configurePreset": "stm32f439nucleo" }, - { - "name": "stlinkv3mini", - "description": "Build preset for the stlinkv3mini board", - "configurePreset": "stlinkv3mini" - }, { "name": "stm32f723disco", "description": "Build preset for the stm32f723disco board", @@ -1493,11 +1488,6 @@ "description": "Build preset for the stm32g0b1nucleo board", "configurePreset": "stm32g0b1nucleo" }, - { - "name": "b_g474e_dpow1", - "description": "Build preset for the b_g474e_dpow1 board", - "configurePreset": "b_g474e_dpow1" - }, { "name": "stm32g474nucleo", "description": "Build preset for the stm32g474nucleo board", @@ -1523,11 +1513,6 @@ "description": "Build preset for the stm32h573i_dk board", "configurePreset": "stm32h573i_dk" }, - { - "name": "daisyseed", - "description": "Build preset for the daisyseed board", - "configurePreset": "daisyseed" - }, { "name": "stm32h723nucleo", "description": "Build preset for the stm32h723nucleo board", @@ -1548,20 +1533,15 @@ "description": "Build preset for the stm32h745disco board", "configurePreset": "stm32h745disco" }, - { - "name": "stm32h750bdk", - "description": "Build preset for the stm32h750bdk board", - "configurePreset": "stm32h750bdk" - }, { "name": "stm32h750_weact", "description": "Build preset for the stm32h750_weact board", "configurePreset": "stm32h750_weact" }, { - "name": "waveshare_openh743i", - "description": "Build preset for the waveshare_openh743i board", - "configurePreset": "waveshare_openh743i" + "name": "stm32h750bdk", + "description": "Build preset for the stm32h750bdk board", + "configurePreset": "stm32h750bdk" }, { "name": "stm32h7s3nucleo", @@ -1598,11 +1578,6 @@ "description": "Build preset for the stm32l4r5nucleo board", "configurePreset": "stm32l4r5nucleo" }, - { - "name": "b_u585i_iot2a", - "description": "Build preset for the b_u585i_iot2a board", - "configurePreset": "b_u585i_iot2a" - }, { "name": "stm32u545nucleo", "description": "Build preset for the stm32u545nucleo board", @@ -1629,9 +1604,34 @@ "configurePreset": "stm32wb55nucleo" }, { - "name": "ek_tm4c123gxl", - "description": "Build preset for the ek_tm4c123gxl board", - "configurePreset": "ek_tm4c123gxl" + "name": "teensy_35", + "description": "Build preset for the teensy_35 board", + "configurePreset": "teensy_35" + }, + { + "name": "teensy_40", + "description": "Build preset for the teensy_40 board", + "configurePreset": "teensy_40" + }, + { + "name": "teensy_41", + "description": "Build preset for the teensy_41 board", + "configurePreset": "teensy_41" + }, + { + "name": "trinket_m0", + "description": "Build preset for the trinket_m0 board", + "configurePreset": "trinket_m0" + }, + { + "name": "uno_r4", + "description": "Build preset for the uno_r4 board", + "configurePreset": "uno_r4" + }, + { + "name": "waveshare_openh743i", + "description": "Build preset for the waveshare_openh743i board", + "configurePreset": "waveshare_openh743i" }, { "name": "xmc4500_relax", @@ -1646,41 +1646,158 @@ ], "workflowPresets": [ { - "name": "raspberrypi_zero", + "name": "adafruit_clue", "steps": [ { "type": "configure", - "name": "raspberrypi_zero" + "name": "adafruit_clue" }, { "type": "build", - "name": "raspberrypi_zero" + "name": "adafruit_clue" } ] }, { - "name": "raspberrypi_cm4", + "name": "adafruit_feather_esp32_v2", "steps": [ { "type": "configure", - "name": "raspberrypi_cm4" + "name": "adafruit_feather_esp32_v2" }, { "type": "build", - "name": "raspberrypi_cm4" + "name": "adafruit_feather_esp32_v2" } ] }, { - "name": "raspberrypi_zero2", + "name": "adafruit_feather_esp32s2", "steps": [ { "type": "configure", - "name": "raspberrypi_zero2" + "name": "adafruit_feather_esp32s2" }, { "type": "build", - "name": "raspberrypi_zero2" + "name": "adafruit_feather_esp32s2" + } + ] + }, + { + "name": "adafruit_feather_esp32s3", + "steps": [ + { + "type": "configure", + "name": "adafruit_feather_esp32s3" + }, + { + "type": "build", + "name": "adafruit_feather_esp32s3" + } + ] + }, + { + "name": "adafruit_magtag_29gray", + "steps": [ + { + "type": "configure", + "name": "adafruit_magtag_29gray" + }, + { + "type": "build", + "name": "adafruit_magtag_29gray" + } + ] + }, + { + "name": "adafruit_metro_esp32s2", + "steps": [ + { + "type": "configure", + "name": "adafruit_metro_esp32s2" + }, + { + "type": "build", + "name": "adafruit_metro_esp32s2" + } + ] + }, + { + "name": "apard32690", + "steps": [ + { + "type": "configure", + "name": "apard32690" + }, + { + "type": "build", + "name": "apard32690" + } + ] + }, + { + "name": "arduino_nano33_ble", + "steps": [ + { + "type": "configure", + "name": "arduino_nano33_ble" + }, + { + "type": "build", + "name": "arduino_nano33_ble" + } + ] + }, + { + "name": "atsamd21_xpro", + "steps": [ + { + "type": "configure", + "name": "atsamd21_xpro" + }, + { + "type": "build", + "name": "atsamd21_xpro" + } + ] + }, + { + "name": "atsaml21_xpro", + "steps": [ + { + "type": "configure", + "name": "atsaml21_xpro" + }, + { + "type": "build", + "name": "atsaml21_xpro" + } + ] + }, + { + "name": "b_g474e_dpow1", + "steps": [ + { + "type": "configure", + "name": "b_g474e_dpow1" + }, + { + "type": "build", + "name": "b_g474e_dpow1" + } + ] + }, + { + "name": "b_u585i_iot2a", + "steps": [ + { + "type": "configure", + "name": "b_u585i_iot2a" + }, + { + "type": "build", + "name": "b_u585i_iot2a" } ] }, @@ -1724,28 +1841,93 @@ ] }, { - "name": "nanoch32v203", + "name": "ch32v307v_r1_1v0", "steps": [ { "type": "configure", - "name": "nanoch32v203" + "name": "ch32v307v_r1_1v0" }, { "type": "build", - "name": "nanoch32v203" + "name": "ch32v307v_r1_1v0" } ] }, { - "name": "ch32v307v_r1_1v0", + "name": "circuitplayground_bluefruit", "steps": [ { "type": "configure", - "name": "ch32v307v_r1_1v0" + "name": "circuitplayground_bluefruit" }, { "type": "build", - "name": "ch32v307v_r1_1v0" + "name": "circuitplayground_bluefruit" + } + ] + }, + { + "name": "circuitplayground_express", + "steps": [ + { + "type": "configure", + "name": "circuitplayground_express" + }, + { + "type": "build", + "name": "circuitplayground_express" + } + ] + }, + { + "name": "curiosity_nano", + "steps": [ + { + "type": "configure", + "name": "curiosity_nano" + }, + { + "type": "build", + "name": "curiosity_nano" + } + ] + }, + { + "name": "cynthion_d11", + "steps": [ + { + "type": "configure", + "name": "cynthion_d11" + }, + { + "type": "build", + "name": "cynthion_d11" + } + ] + }, + { + "name": "cynthion_d21", + "steps": [ + { + "type": "configure", + "name": "cynthion_d21" + }, + { + "type": "build", + "name": "cynthion_d21" + } + ] + }, + { + "name": "d5035_01", + "steps": [ + { + "type": "configure", + "name": "d5035_01" + }, + { + "type": "build", + "name": "d5035_01" } ] }, @@ -1776,67 +1958,67 @@ ] }, { - "name": "adafruit_feather_esp32s2", + "name": "daisyseed", "steps": [ { "type": "configure", - "name": "adafruit_feather_esp32s2" + "name": "daisyseed" }, { "type": "build", - "name": "adafruit_feather_esp32s2" + "name": "daisyseed" } ] }, { - "name": "adafruit_feather_esp32s3", + "name": "double_m33_express", "steps": [ { "type": "configure", - "name": "adafruit_feather_esp32s3" + "name": "double_m33_express" }, { "type": "build", - "name": "adafruit_feather_esp32s3" + "name": "double_m33_express" } ] }, { - "name": "adafruit_feather_esp32_v2", + "name": "ea4088_quickstart", "steps": [ { "type": "configure", - "name": "adafruit_feather_esp32_v2" + "name": "ea4088_quickstart" }, { "type": "build", - "name": "adafruit_feather_esp32_v2" + "name": "ea4088_quickstart" } ] }, { - "name": "adafruit_magtag_29gray", + "name": "ea4357", "steps": [ { "type": "configure", - "name": "adafruit_magtag_29gray" + "name": "ea4357" }, { "type": "build", - "name": "adafruit_magtag_29gray" + "name": "ea4357" } ] }, { - "name": "adafruit_metro_esp32s2", + "name": "ek_tm4c123gxl", "steps": [ { "type": "configure", - "name": "adafruit_metro_esp32s2" + "name": "ek_tm4c123gxl" }, { "type": "build", - "name": "adafruit_metro_esp32s2" + "name": "ek_tm4c123gxl" } ] }, @@ -1971,236 +2153,210 @@ ] }, { - "name": "fomu", - "steps": [ - { - "type": "configure", - "name": "fomu" - }, - { - "type": "build", - "name": "fomu" - } - ] - }, - { - "name": "sipeed_longan_nano", - "steps": [ - { - "type": "configure", - "name": "sipeed_longan_nano" - }, - { - "type": "build", - "name": "sipeed_longan_nano" - } - ] - }, - { - "name": "metro_m7_1011", + "name": "feather_m0_express", "steps": [ { "type": "configure", - "name": "metro_m7_1011" + "name": "feather_m0_express" }, { "type": "build", - "name": "metro_m7_1011" + "name": "feather_m0_express" } ] }, { - "name": "metro_m7_1011_sd", + "name": "feather_m4_express", "steps": [ { "type": "configure", - "name": "metro_m7_1011_sd" + "name": "feather_m4_express" }, { "type": "build", - "name": "metro_m7_1011_sd" + "name": "feather_m4_express" } ] }, { - "name": "mimxrt1010_evk", + "name": "feather_nrf52840_express", "steps": [ { "type": "configure", - "name": "mimxrt1010_evk" + "name": "feather_nrf52840_express" }, { "type": "build", - "name": "mimxrt1010_evk" + "name": "feather_nrf52840_express" } ] }, { - "name": "mimxrt1015_evk", + "name": "feather_nrf52840_sense", "steps": [ { "type": "configure", - "name": "mimxrt1015_evk" + "name": "feather_nrf52840_sense" }, { "type": "build", - "name": "mimxrt1015_evk" + "name": "feather_nrf52840_sense" } ] }, { - "name": "mimxrt1020_evk", + "name": "feather_rp2040_max3421", "steps": [ { "type": "configure", - "name": "mimxrt1020_evk" + "name": "feather_rp2040_max3421" }, { "type": "build", - "name": "mimxrt1020_evk" + "name": "feather_rp2040_max3421" } ] }, { - "name": "mimxrt1024_evk", + "name": "feather_stm32f405", "steps": [ { "type": "configure", - "name": "mimxrt1024_evk" + "name": "feather_stm32f405" }, { "type": "build", - "name": "mimxrt1024_evk" + "name": "feather_stm32f405" } ] }, { - "name": "mimxrt1050_evkb", + "name": "fomu", "steps": [ { "type": "configure", - "name": "mimxrt1050_evkb" + "name": "fomu" }, { "type": "build", - "name": "mimxrt1050_evkb" + "name": "fomu" } ] }, { - "name": "mimxrt1060_evk", + "name": "frdm_k32l2a4s", "steps": [ { "type": "configure", - "name": "mimxrt1060_evk" + "name": "frdm_k32l2a4s" }, { "type": "build", - "name": "mimxrt1060_evk" + "name": "frdm_k32l2a4s" } ] }, { - "name": "mimxrt1064_evk", + "name": "frdm_k32l2b", "steps": [ { "type": "configure", - "name": "mimxrt1064_evk" + "name": "frdm_k32l2b" }, { "type": "build", - "name": "mimxrt1064_evk" + "name": "frdm_k32l2b" } ] }, { - "name": "mimxrt1170_evkb", + "name": "frdm_k64f", "steps": [ { "type": "configure", - "name": "mimxrt1170_evkb" + "name": "frdm_k64f" }, { "type": "build", - "name": "mimxrt1170_evkb" + "name": "frdm_k64f" } ] }, { - "name": "teensy_40", + "name": "frdm_kl25z", "steps": [ { "type": "configure", - "name": "teensy_40" + "name": "frdm_kl25z" }, { "type": "build", - "name": "teensy_40" + "name": "frdm_kl25z" } ] }, { - "name": "teensy_41", + "name": "frdm_mcxa153", "steps": [ { "type": "configure", - "name": "teensy_41" + "name": "frdm_mcxa153" }, { "type": "build", - "name": "teensy_41" + "name": "frdm_mcxa153" } ] }, { - "name": "frdm_k64f", + "name": "frdm_mcxn947", "steps": [ { "type": "configure", - "name": "frdm_k64f" + "name": "frdm_mcxn947" }, { "type": "build", - "name": "frdm_k64f" + "name": "frdm_mcxn947" } ] }, { - "name": "teensy_35", + "name": "itsybitsy_m0", "steps": [ { "type": "configure", - "name": "teensy_35" + "name": "itsybitsy_m0" }, { "type": "build", - "name": "teensy_35" + "name": "itsybitsy_m0" } ] }, { - "name": "frdm_k32l2a4s", + "name": "itsybitsy_m4", "steps": [ { "type": "configure", - "name": "frdm_k32l2a4s" + "name": "itsybitsy_m4" }, { "type": "build", - "name": "frdm_k32l2a4s" + "name": "itsybitsy_m4" } ] }, { - "name": "frdm_k32l2b", + "name": "itsybitsy_nrf52840", "steps": [ { "type": "configure", - "name": "frdm_k32l2b" + "name": "itsybitsy_nrf52840" }, { "type": "build", - "name": "frdm_k32l2b" + "name": "itsybitsy_nrf52840" } ] }, @@ -2217,19 +2373,6 @@ } ] }, - { - "name": "frdm_kl25z", - "steps": [ - { - "type": "configure", - "name": "frdm_kl25z" - }, - { - "type": "build", - "name": "frdm_kl25z" - } - ] - }, { "name": "lpcxpresso11u37", "steps": [ @@ -2295,19 +2438,6 @@ } ] }, - { - "name": "mbed1768", - "steps": [ - { - "type": "configure", - "name": "mbed1768" - }, - { - "type": "build", - "name": "mbed1768" - } - ] - }, { "name": "lpcxpresso18s37", "steps": [ @@ -2321,45 +2451,6 @@ } ] }, - { - "name": "mcb1800", - "steps": [ - { - "type": "configure", - "name": "mcb1800" - }, - { - "type": "build", - "name": "mcb1800" - } - ] - }, - { - "name": "ea4088_quickstart", - "steps": [ - { - "type": "configure", - "name": "ea4088_quickstart" - }, - { - "type": "build", - "name": "ea4088_quickstart" - } - ] - }, - { - "name": "ea4357", - "steps": [ - { - "type": "configure", - "name": "ea4357" - }, - { - "type": "build", - "name": "ea4357" - } - ] - }, { "name": "lpcxpresso43s67", "steps": [ @@ -2425,19 +2516,6 @@ } ] }, - { - "name": "double_m33_express", - "steps": [ - { - "type": "configure", - "name": "double_m33_express" - }, - { - "type": "build", - "name": "double_m33_express" - } - ] - }, { "name": "lpcxpresso55s28", "steps": [ @@ -2464,19 +2542,6 @@ } ] }, - { - "name": "mcu_link", - "steps": [ - { - "type": "configure", - "name": "mcu_link" - }, - { - "type": "build", - "name": "mcu_link" - } - ] - }, { "name": "max32650evkit", "steps": [ @@ -2525,748 +2590,709 @@ }, { "type": "build", - "name": "max32666evkit" - } - ] - }, - { - "name": "max32666fthr", - "steps": [ - { - "type": "configure", - "name": "max32666fthr" - }, - { - "type": "build", - "name": "max32666fthr" - } - ] - }, - { - "name": "apard32690", - "steps": [ - { - "type": "configure", - "name": "apard32690" - }, - { - "type": "build", - "name": "apard32690" - } - ] - }, - { - "name": "max32690evkit", - "steps": [ - { - "type": "configure", - "name": "max32690evkit" - }, - { - "type": "build", - "name": "max32690evkit" + "name": "max32666evkit" } ] }, { - "name": "max78002evkit", + "name": "max32666fthr", "steps": [ { "type": "configure", - "name": "max78002evkit" + "name": "max32666fthr" }, { "type": "build", - "name": "max78002evkit" + "name": "max32666fthr" } ] }, { - "name": "frdm_mcxa153", + "name": "max32690evkit", "steps": [ { "type": "configure", - "name": "frdm_mcxa153" + "name": "max32690evkit" }, { "type": "build", - "name": "frdm_mcxa153" + "name": "max32690evkit" } ] }, { - "name": "frdm_mcxn947", + "name": "max78002evkit", "steps": [ { "type": "configure", - "name": "frdm_mcxn947" + "name": "max78002evkit" }, { "type": "build", - "name": "frdm_mcxn947" + "name": "max78002evkit" } ] }, { - "name": "mcxn947brk", + "name": "mbed1768", "steps": [ { "type": "configure", - "name": "mcxn947brk" + "name": "mbed1768" }, { "type": "build", - "name": "mcxn947brk" + "name": "mbed1768" } ] }, { - "name": "mm32f327x_mb39", + "name": "mcb1800", "steps": [ { "type": "configure", - "name": "mm32f327x_mb39" + "name": "mcb1800" }, { "type": "build", - "name": "mm32f327x_mb39" + "name": "mcb1800" } ] }, { - "name": "mm32f327x_pitaya_lite", + "name": "mcu_link", "steps": [ { "type": "configure", - "name": "mm32f327x_pitaya_lite" + "name": "mcu_link" }, { "type": "build", - "name": "mm32f327x_pitaya_lite" + "name": "mcu_link" } ] }, { - "name": "msp_exp430f5529lp", + "name": "mcxn947brk", "steps": [ { "type": "configure", - "name": "msp_exp430f5529lp" + "name": "mcxn947brk" }, { "type": "build", - "name": "msp_exp430f5529lp" + "name": "mcxn947brk" } ] }, { - "name": "msp_exp432e401y", + "name": "metro_m0_express", "steps": [ { "type": "configure", - "name": "msp_exp432e401y" + "name": "metro_m0_express" }, { "type": "build", - "name": "msp_exp432e401y" + "name": "metro_m0_express" } ] }, { - "name": "adafruit_clue", + "name": "metro_m4_express", "steps": [ { "type": "configure", - "name": "adafruit_clue" + "name": "metro_m4_express" }, { "type": "build", - "name": "adafruit_clue" + "name": "metro_m4_express" } ] }, { - "name": "arduino_nano33_ble", + "name": "metro_m7_1011", "steps": [ { "type": "configure", - "name": "arduino_nano33_ble" + "name": "metro_m7_1011" }, { "type": "build", - "name": "arduino_nano33_ble" + "name": "metro_m7_1011" } ] }, { - "name": "circuitplayground_bluefruit", + "name": "metro_m7_1011_sd", "steps": [ { "type": "configure", - "name": "circuitplayground_bluefruit" + "name": "metro_m7_1011_sd" }, { "type": "build", - "name": "circuitplayground_bluefruit" + "name": "metro_m7_1011_sd" } ] }, { - "name": "feather_nrf52840_express", + "name": "mimxrt1010_evk", "steps": [ { "type": "configure", - "name": "feather_nrf52840_express" + "name": "mimxrt1010_evk" }, { "type": "build", - "name": "feather_nrf52840_express" + "name": "mimxrt1010_evk" } ] }, { - "name": "feather_nrf52840_sense", + "name": "mimxrt1015_evk", "steps": [ { "type": "configure", - "name": "feather_nrf52840_sense" + "name": "mimxrt1015_evk" }, { "type": "build", - "name": "feather_nrf52840_sense" + "name": "mimxrt1015_evk" } ] }, { - "name": "itsybitsy_nrf52840", + "name": "mimxrt1020_evk", "steps": [ { "type": "configure", - "name": "itsybitsy_nrf52840" + "name": "mimxrt1020_evk" }, { "type": "build", - "name": "itsybitsy_nrf52840" + "name": "mimxrt1020_evk" } ] }, { - "name": "pca10056", + "name": "mimxrt1024_evk", "steps": [ { "type": "configure", - "name": "pca10056" + "name": "mimxrt1024_evk" }, { "type": "build", - "name": "pca10056" + "name": "mimxrt1024_evk" } ] }, { - "name": "pca10059", + "name": "mimxrt1050_evkb", "steps": [ { "type": "configure", - "name": "pca10059" + "name": "mimxrt1050_evkb" }, { "type": "build", - "name": "pca10059" + "name": "mimxrt1050_evkb" } ] }, { - "name": "pca10095", + "name": "mimxrt1060_evk", "steps": [ { "type": "configure", - "name": "pca10095" + "name": "mimxrt1060_evk" }, { "type": "build", - "name": "pca10095" + "name": "mimxrt1060_evk" } ] }, { - "name": "pca10100", + "name": "mimxrt1064_evk", "steps": [ { "type": "configure", - "name": "pca10100" + "name": "mimxrt1064_evk" }, { "type": "build", - "name": "pca10100" + "name": "mimxrt1064_evk" } ] }, { - "name": "portenta_c33", + "name": "mimxrt1170_evkb", "steps": [ { "type": "configure", - "name": "portenta_c33" + "name": "mimxrt1170_evkb" }, { "type": "build", - "name": "portenta_c33" + "name": "mimxrt1170_evkb" } ] }, { - "name": "ra2a1_ek", + "name": "mm32f327x_mb39", "steps": [ { "type": "configure", - "name": "ra2a1_ek" + "name": "mm32f327x_mb39" }, { "type": "build", - "name": "ra2a1_ek" + "name": "mm32f327x_mb39" } ] }, { - "name": "ra4m1_ek", + "name": "mm32f327x_pitaya_lite", "steps": [ { "type": "configure", - "name": "ra4m1_ek" + "name": "mm32f327x_pitaya_lite" }, { "type": "build", - "name": "ra4m1_ek" + "name": "mm32f327x_pitaya_lite" } ] }, { - "name": "ra4m3_ek", + "name": "msp_exp430f5529lp", "steps": [ { "type": "configure", - "name": "ra4m3_ek" + "name": "msp_exp430f5529lp" }, { "type": "build", - "name": "ra4m3_ek" + "name": "msp_exp430f5529lp" } ] }, { - "name": "ra6m1_ek", + "name": "msp_exp432e401y", "steps": [ { "type": "configure", - "name": "ra6m1_ek" + "name": "msp_exp432e401y" }, { "type": "build", - "name": "ra6m1_ek" + "name": "msp_exp432e401y" } ] }, { - "name": "ra6m5_ek", + "name": "nanoch32v203", "steps": [ { "type": "configure", - "name": "ra6m5_ek" + "name": "nanoch32v203" }, { "type": "build", - "name": "ra6m5_ek" + "name": "nanoch32v203" } ] }, { - "name": "ra8m1_ek", + "name": "pca10056", "steps": [ { "type": "configure", - "name": "ra8m1_ek" + "name": "pca10056" }, { "type": "build", - "name": "ra8m1_ek" + "name": "pca10056" } ] }, { - "name": "uno_r4", + "name": "pca10059", "steps": [ { "type": "configure", - "name": "uno_r4" + "name": "pca10059" }, { "type": "build", - "name": "uno_r4" + "name": "pca10059" } ] }, { - "name": "feather_rp2040_max3421", + "name": "pca10095", "steps": [ { "type": "configure", - "name": "feather_rp2040_max3421" + "name": "pca10095" }, { "type": "build", - "name": "feather_rp2040_max3421" + "name": "pca10095" } ] }, { - "name": "pico_sdk", + "name": "pca10100", "steps": [ { "type": "configure", - "name": "pico_sdk" + "name": "pca10100" }, { "type": "build", - "name": "pico_sdk" + "name": "pca10100" } ] }, { - "name": "raspberry_pi_pico", + "name": "pico_sdk", "steps": [ { "type": "configure", - "name": "raspberry_pi_pico" + "name": "pico_sdk" }, { "type": "build", - "name": "raspberry_pi_pico" + "name": "pico_sdk" } ] }, { - "name": "raspberry_pi_pico2", + "name": "portenta_c33", "steps": [ { "type": "configure", - "name": "raspberry_pi_pico2" + "name": "portenta_c33" }, { "type": "build", - "name": "raspberry_pi_pico2" + "name": "portenta_c33" } ] }, { - "name": "cynthion_d11", + "name": "pybadge", "steps": [ { "type": "configure", - "name": "cynthion_d11" + "name": "pybadge" }, { "type": "build", - "name": "cynthion_d11" + "name": "pybadge" } ] }, { - "name": "samd11_xplained", + "name": "pyboardv11", "steps": [ { "type": "configure", - "name": "samd11_xplained" + "name": "pyboardv11" }, { "type": "build", - "name": "samd11_xplained" + "name": "pyboardv11" } ] }, { - "name": "atsamd21_xpro", + "name": "pyportal", "steps": [ { "type": "configure", - "name": "atsamd21_xpro" + "name": "pyportal" }, { "type": "build", - "name": "atsamd21_xpro" + "name": "pyportal" } ] }, { - "name": "circuitplayground_express", + "name": "qtpy", "steps": [ { "type": "configure", - "name": "circuitplayground_express" + "name": "qtpy" }, { "type": "build", - "name": "circuitplayground_express" + "name": "qtpy" } ] }, { - "name": "curiosity_nano", + "name": "ra2a1_ek", "steps": [ { "type": "configure", - "name": "curiosity_nano" + "name": "ra2a1_ek" }, { "type": "build", - "name": "curiosity_nano" + "name": "ra2a1_ek" } ] }, { - "name": "cynthion_d21", + "name": "ra4m1_ek", "steps": [ { "type": "configure", - "name": "cynthion_d21" + "name": "ra4m1_ek" }, { "type": "build", - "name": "cynthion_d21" + "name": "ra4m1_ek" } ] }, { - "name": "feather_m0_express", + "name": "ra4m3_ek", "steps": [ { "type": "configure", - "name": "feather_m0_express" + "name": "ra4m3_ek" }, { "type": "build", - "name": "feather_m0_express" + "name": "ra4m3_ek" } ] }, { - "name": "itsybitsy_m0", + "name": "ra6m1_ek", "steps": [ { "type": "configure", - "name": "itsybitsy_m0" + "name": "ra6m1_ek" }, { "type": "build", - "name": "itsybitsy_m0" + "name": "ra6m1_ek" } ] }, { - "name": "metro_m0_express", + "name": "ra6m5_ek", "steps": [ { "type": "configure", - "name": "metro_m0_express" + "name": "ra6m5_ek" }, { "type": "build", - "name": "metro_m0_express" + "name": "ra6m5_ek" } ] }, { - "name": "qtpy", + "name": "ra8m1_ek", "steps": [ { "type": "configure", - "name": "qtpy" + "name": "ra8m1_ek" }, { "type": "build", - "name": "qtpy" + "name": "ra8m1_ek" } ] }, { - "name": "seeeduino_xiao", + "name": "raspberry_pi_pico", "steps": [ { "type": "configure", - "name": "seeeduino_xiao" + "name": "raspberry_pi_pico" }, { "type": "build", - "name": "seeeduino_xiao" + "name": "raspberry_pi_pico" } ] }, { - "name": "sparkfun_samd21_mini_usb", + "name": "raspberry_pi_pico2", "steps": [ { "type": "configure", - "name": "sparkfun_samd21_mini_usb" + "name": "raspberry_pi_pico2" }, { "type": "build", - "name": "sparkfun_samd21_mini_usb" + "name": "raspberry_pi_pico2" } ] }, { - "name": "trinket_m0", + "name": "raspberrypi_cm4", "steps": [ { "type": "configure", - "name": "trinket_m0" + "name": "raspberrypi_cm4" }, { "type": "build", - "name": "trinket_m0" + "name": "raspberrypi_cm4" } ] }, { - "name": "d5035_01", + "name": "raspberrypi_zero", "steps": [ { "type": "configure", - "name": "d5035_01" + "name": "raspberrypi_zero" }, { "type": "build", - "name": "d5035_01" + "name": "raspberrypi_zero" } ] }, { - "name": "feather_m4_express", + "name": "raspberrypi_zero2", "steps": [ { "type": "configure", - "name": "feather_m4_express" + "name": "raspberrypi_zero2" }, { "type": "build", - "name": "feather_m4_express" + "name": "raspberrypi_zero2" } ] }, { - "name": "itsybitsy_m4", + "name": "samd11_xplained", "steps": [ { "type": "configure", - "name": "itsybitsy_m4" + "name": "samd11_xplained" }, { "type": "build", - "name": "itsybitsy_m4" + "name": "samd11_xplained" } ] }, { - "name": "metro_m4_express", + "name": "same54_xplained", "steps": [ { "type": "configure", - "name": "metro_m4_express" + "name": "same54_xplained" }, { "type": "build", - "name": "metro_m4_express" + "name": "same54_xplained" } ] }, { - "name": "pybadge", + "name": "samg55_xplained", "steps": [ { "type": "configure", - "name": "pybadge" + "name": "samg55_xplained" }, { "type": "build", - "name": "pybadge" + "name": "samg55_xplained" } ] }, { - "name": "pyportal", + "name": "saml22_feather", "steps": [ { "type": "configure", - "name": "pyportal" + "name": "saml22_feather" }, { "type": "build", - "name": "pyportal" + "name": "saml22_feather" } ] }, { - "name": "same54_xplained", + "name": "seeeduino_xiao", "steps": [ { "type": "configure", - "name": "same54_xplained" + "name": "seeeduino_xiao" }, { "type": "build", - "name": "same54_xplained" + "name": "seeeduino_xiao" } ] }, { - "name": "samg55_xplained", + "name": "sensorwatch_m0", "steps": [ { "type": "configure", - "name": "samg55_xplained" + "name": "sensorwatch_m0" }, { "type": "build", - "name": "samg55_xplained" + "name": "sensorwatch_m0" } ] }, { - "name": "atsaml21_xpro", + "name": "sipeed_longan_nano", "steps": [ { "type": "configure", - "name": "atsaml21_xpro" + "name": "sipeed_longan_nano" }, { "type": "build", - "name": "atsaml21_xpro" + "name": "sipeed_longan_nano" } ] }, { - "name": "saml22_feather", + "name": "sparkfun_samd21_mini_usb", "steps": [ { "type": "configure", - "name": "saml22_feather" + "name": "sparkfun_samd21_mini_usb" }, { "type": "build", - "name": "saml22_feather" + "name": "sparkfun_samd21_mini_usb" } ] }, { - "name": "sensorwatch_m0", + "name": "stlinkv3mini", "steps": [ { "type": "configure", - "name": "sensorwatch_m0" + "name": "stlinkv3mini" }, { "type": "build", - "name": "sensorwatch_m0" + "name": "stlinkv3mini" } ] }, @@ -3322,19 +3348,6 @@ } ] }, - { - "name": "stm32f103ze_iar", - "steps": [ - { - "type": "configure", - "name": "stm32f103ze_iar" - }, - { - "type": "build", - "name": "stm32f103ze_iar" - } - ] - }, { "name": "stm32f103_bluepill", "steps": [ @@ -3362,54 +3375,41 @@ ] }, { - "name": "stm32f207nucleo", - "steps": [ - { - "type": "configure", - "name": "stm32f207nucleo" - }, - { - "type": "build", - "name": "stm32f207nucleo" - } - ] - }, - { - "name": "stm32f303disco", + "name": "stm32f103ze_iar", "steps": [ { "type": "configure", - "name": "stm32f303disco" + "name": "stm32f103ze_iar" }, { "type": "build", - "name": "stm32f303disco" + "name": "stm32f103ze_iar" } ] }, { - "name": "feather_stm32f405", + "name": "stm32f207nucleo", "steps": [ { "type": "configure", - "name": "feather_stm32f405" + "name": "stm32f207nucleo" }, { "type": "build", - "name": "feather_stm32f405" + "name": "stm32f207nucleo" } ] }, { - "name": "pyboardv11", + "name": "stm32f303disco", "steps": [ { "type": "configure", - "name": "pyboardv11" + "name": "stm32f303disco" }, { "type": "build", - "name": "pyboardv11" + "name": "stm32f303disco" } ] }, @@ -3517,19 +3517,6 @@ } ] }, - { - "name": "stlinkv3mini", - "steps": [ - { - "type": "configure", - "name": "stlinkv3mini" - }, - { - "type": "build", - "name": "stlinkv3mini" - } - ] - }, { "name": "stm32f723disco", "steps": [ @@ -3608,19 +3595,6 @@ } ] }, - { - "name": "b_g474e_dpow1", - "steps": [ - { - "type": "configure", - "name": "b_g474e_dpow1" - }, - { - "type": "build", - "name": "b_g474e_dpow1" - } - ] - }, { "name": "stm32g474nucleo", "steps": [ @@ -3686,19 +3660,6 @@ } ] }, - { - "name": "daisyseed", - "steps": [ - { - "type": "configure", - "name": "daisyseed" - }, - { - "type": "build", - "name": "daisyseed" - } - ] - }, { "name": "stm32h723nucleo", "steps": [ @@ -3751,19 +3712,6 @@ } ] }, - { - "name": "stm32h750bdk", - "steps": [ - { - "type": "configure", - "name": "stm32h750bdk" - }, - { - "type": "build", - "name": "stm32h750bdk" - } - ] - }, { "name": "stm32h750_weact", "steps": [ @@ -3778,15 +3726,15 @@ ] }, { - "name": "waveshare_openh743i", + "name": "stm32h750bdk", "steps": [ { "type": "configure", - "name": "waveshare_openh743i" + "name": "stm32h750bdk" }, { "type": "build", - "name": "waveshare_openh743i" + "name": "stm32h750bdk" } ] }, @@ -3881,19 +3829,6 @@ } ] }, - { - "name": "b_u585i_iot2a", - "steps": [ - { - "type": "configure", - "name": "b_u585i_iot2a" - }, - { - "type": "build", - "name": "b_u585i_iot2a" - } - ] - }, { "name": "stm32u545nucleo", "steps": [ @@ -3960,15 +3895,80 @@ ] }, { - "name": "ek_tm4c123gxl", + "name": "teensy_35", "steps": [ { "type": "configure", - "name": "ek_tm4c123gxl" + "name": "teensy_35" }, { "type": "build", - "name": "ek_tm4c123gxl" + "name": "teensy_35" + } + ] + }, + { + "name": "teensy_40", + "steps": [ + { + "type": "configure", + "name": "teensy_40" + }, + { + "type": "build", + "name": "teensy_40" + } + ] + }, + { + "name": "teensy_41", + "steps": [ + { + "type": "configure", + "name": "teensy_41" + }, + { + "type": "build", + "name": "teensy_41" + } + ] + }, + { + "name": "trinket_m0", + "steps": [ + { + "type": "configure", + "name": "trinket_m0" + }, + { + "type": "build", + "name": "trinket_m0" + } + ] + }, + { + "name": "uno_r4", + "steps": [ + { + "type": "configure", + "name": "uno_r4" + }, + { + "type": "build", + "name": "uno_r4" + } + ] + }, + { + "name": "waveshare_openh743i", + "steps": [ + { + "type": "configure", + "name": "waveshare_openh743i" + }, + { + "type": "build", + "name": "waveshare_openh743i" } ] }, diff --git a/tools/gen_presets.py b/tools/gen_presets.py index 98b1a7d46..7542cfdf5 100755 --- a/tools/gen_presets.py +++ b/tools/gen_presets.py @@ -24,46 +24,57 @@ def main(): {"name": "default", "hidden": True, "description": r"Configure preset for the ${presetName} board", - "generator": "Ninja", + "generator": "Ninja Multi-Config", "binaryDir": r"${sourceDir}/build/${presetName}", "cacheVariables": { - "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "CMAKE_DEFAULT_BUILD_TYPE": "RelWithDebInfo", "BOARD": r"${presetName}" - } - }] + }}] presets['configurePresets'].extend( - [{'name': board, 'inherits': 'default'} for board in board_list] + sorted( + [ + { + 'name': board, + 'inherits': 'default' + } + for board in board_list + ], key=lambda x: x['name'] + ) ) # Build presets # no inheritance since 'name' doesn't support macro expansion - presets['buildPresets'] = [ - { - 'name': board, - 'description': "Build preset for the " + board + " board", - 'configurePreset': board - } - for board in board_list - ] + presets['buildPresets'] = sorted( + [ + { + 'name': board, + 'description': "Build preset for the " + board + " board", + 'configurePreset': board + } + for board in board_list + ], key=lambda x: x['name'] + ) # Workflow presets - presets['workflowPresets'] = [ - { - "name": board, - "steps": [ - { - "type": "configure", - "name": board - }, - { - "type": "build", - "name": board - } - ] - } - for board in board_list - ] + presets['workflowPresets'] = sorted( + [ + { + "name": board, + "steps": [ + { + "type": "configure", + "name": board + }, + { + "type": "build", + "name": board + } + ] + } + for board in board_list + ], key=lambda x: x['name'] + ) with open("hw/bsp/BoardPresets.json", "w") as f: f.write('{}\n'.format(json.dumps(presets, indent=2))) @@ -87,5 +98,6 @@ def main(): print('Generating presets for the following examples:') print(example_list) + if __name__ == "__main__": main() -- cgit v1.3.1 From 14f1feac8412668206e69a1178bd29d569f01994 Mon Sep 17 00:00:00 2001 From: HiFiPhile Date: Tue, 11 Feb 2025 20:56:41 +0100 Subject: Fix path. Signed-off-by: HiFiPhile --- examples/CMakePresets.json | 2 +- examples/device/CMakePresets.json | 2 +- .../device/audio_4_channel_mic_freertos/src/CMakePresets.json | 6 ------ examples/device/audio_test_freertos/src/CMakePresets.json | 6 ------ examples/device/board_test/src/CMakePresets.json | 6 ------ examples/device/cdc_msc_freertos/src/CMakePresets.json | 6 ------ examples/device/hid_composite_freertos/src/CMakePresets.json | 6 ------ examples/device/midi_test_freertos/src/CMakePresets.json | 6 ------ examples/device/video_capture/src/CMakePresets.json | 6 ------ examples/device/video_capture_2ch/src/CMakePresets.json | 6 ------ examples/dual/CMakePresets.json | 2 +- examples/host/CMakePresets.json | 2 +- examples/host/cdc_msc_hid_freertos/src/CMakePresets.json | 6 ------ examples/host/device_info/src/CMakePresets.json | 6 ------ examples/typec/CMakePresets.json | 2 +- tools/gen_presets.py | 10 ++++++---- 16 files changed, 11 insertions(+), 69 deletions(-) delete mode 100644 examples/device/audio_4_channel_mic_freertos/src/CMakePresets.json delete mode 100644 examples/device/audio_test_freertos/src/CMakePresets.json delete mode 100644 examples/device/board_test/src/CMakePresets.json delete mode 100644 examples/device/cdc_msc_freertos/src/CMakePresets.json delete mode 100644 examples/device/hid_composite_freertos/src/CMakePresets.json delete mode 100644 examples/device/midi_test_freertos/src/CMakePresets.json delete mode 100644 examples/device/video_capture/src/CMakePresets.json delete mode 100644 examples/device/video_capture_2ch/src/CMakePresets.json delete mode 100644 examples/host/cdc_msc_hid_freertos/src/CMakePresets.json delete mode 100644 examples/host/device_info/src/CMakePresets.json (limited to 'tools') diff --git a/examples/CMakePresets.json b/examples/CMakePresets.json index 5cd8971e9..2f904a269 100644 --- a/examples/CMakePresets.json +++ b/examples/CMakePresets.json @@ -1,6 +1,6 @@ { "version": 6, "include": [ - "../../../hw/bsp/BoardPresets.json" + "../hw/bsp/BoardPresets.json" ] } diff --git a/examples/device/CMakePresets.json b/examples/device/CMakePresets.json index 5cd8971e9..c22e8c0ec 100644 --- a/examples/device/CMakePresets.json +++ b/examples/device/CMakePresets.json @@ -1,6 +1,6 @@ { "version": 6, "include": [ - "../../../hw/bsp/BoardPresets.json" + "../../hw/bsp/BoardPresets.json" ] } diff --git a/examples/device/audio_4_channel_mic_freertos/src/CMakePresets.json b/examples/device/audio_4_channel_mic_freertos/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/device/audio_4_channel_mic_freertos/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/device/audio_test_freertos/src/CMakePresets.json b/examples/device/audio_test_freertos/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/device/audio_test_freertos/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/device/board_test/src/CMakePresets.json b/examples/device/board_test/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/device/board_test/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/device/cdc_msc_freertos/src/CMakePresets.json b/examples/device/cdc_msc_freertos/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/device/cdc_msc_freertos/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/device/hid_composite_freertos/src/CMakePresets.json b/examples/device/hid_composite_freertos/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/device/hid_composite_freertos/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/device/midi_test_freertos/src/CMakePresets.json b/examples/device/midi_test_freertos/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/device/midi_test_freertos/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/device/video_capture/src/CMakePresets.json b/examples/device/video_capture/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/device/video_capture/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/device/video_capture_2ch/src/CMakePresets.json b/examples/device/video_capture_2ch/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/device/video_capture_2ch/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/dual/CMakePresets.json b/examples/dual/CMakePresets.json index 5cd8971e9..c22e8c0ec 100644 --- a/examples/dual/CMakePresets.json +++ b/examples/dual/CMakePresets.json @@ -1,6 +1,6 @@ { "version": 6, "include": [ - "../../../hw/bsp/BoardPresets.json" + "../../hw/bsp/BoardPresets.json" ] } diff --git a/examples/host/CMakePresets.json b/examples/host/CMakePresets.json index 5cd8971e9..c22e8c0ec 100644 --- a/examples/host/CMakePresets.json +++ b/examples/host/CMakePresets.json @@ -1,6 +1,6 @@ { "version": 6, "include": [ - "../../../hw/bsp/BoardPresets.json" + "../../hw/bsp/BoardPresets.json" ] } diff --git a/examples/host/cdc_msc_hid_freertos/src/CMakePresets.json b/examples/host/cdc_msc_hid_freertos/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/host/cdc_msc_hid_freertos/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/host/device_info/src/CMakePresets.json b/examples/host/device_info/src/CMakePresets.json deleted file mode 100644 index 5cd8971e9..000000000 --- a/examples/host/device_info/src/CMakePresets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": 6, - "include": [ - "../../../hw/bsp/BoardPresets.json" - ] -} diff --git a/examples/typec/CMakePresets.json b/examples/typec/CMakePresets.json index 5cd8971e9..c22e8c0ec 100644 --- a/examples/typec/CMakePresets.json +++ b/examples/typec/CMakePresets.json @@ -1,6 +1,6 @@ { "version": 6, "include": [ - "../../../hw/bsp/BoardPresets.json" + "../../hw/bsp/BoardPresets.json" ] } diff --git a/tools/gen_presets.py b/tools/gen_presets.py index 7542cfdf5..94b8d16b0 100755 --- a/tools/gen_presets.py +++ b/tools/gen_presets.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import os import json - +from pathlib import Path def main(): board_list = [] @@ -76,21 +76,23 @@ def main(): ], key=lambda x: x['name'] ) - with open("hw/bsp/BoardPresets.json", "w") as f: + path_boardpresets = "hw/bsp/BoardPresets.json" + with open(path_boardpresets, "w") as f: f.write('{}\n'.format(json.dumps(presets, indent=2))) # Generate presets for examples presets = { "version": 6, "include": [ - "../../../hw/bsp/BoardPresets.json" ] } example_list = [] for root, dirs, files in os.walk("examples"): for file in files: - if file == "CMakeLists.txt": + # Filter out ESP-IDF CMakeLists.txt in src folder + if file == "CMakeLists.txt" and os.path.basename(root) != 'src': + presets['include'] = [os.path.relpath(path_boardpresets, root).replace(os.sep, '/')] with open(os.path.join(root, 'CMakePresets.json'), 'w') as f: f.write('{}\n'.format(json.dumps(presets, indent=2))) example_list.append(os.path.basename(root)) -- cgit v1.3.1 From 18d566b94c8f17d9df04914979997d589b905290 Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 17 Feb 2025 17:06:51 +0700 Subject: improve hub: retry if hub interrupt endpoint failed bump up pio-usb to latest --- src/host/hub.c | 180 +++++++++++++++++++++++++----------------------------- src/host/hub.h | 51 ++++++++-------- src/host/usbh.c | 8 +-- tools/get_deps.py | 9 ++- 4 files changed, 118 insertions(+), 130 deletions(-) (limited to 'tools') diff --git a/src/host/hub.c b/src/host/hub.c index e97014443..611bf71be 100644 --- a/src/host/hub.c +++ b/src/host/hub.c @@ -40,29 +40,37 @@ //--------------------------------------------------------------------+ // MACRO CONSTANT TYPEDEF //--------------------------------------------------------------------+ -typedef struct -{ +typedef struct { uint8_t itf_num; uint8_t ep_in; - uint8_t port_count; + + // from hub descriptor + uint8_t bNbrPorts; + // uint8_t bPwrOn2PwrGood; + // uint16_t wHubCharacteristics; CFG_TUH_MEM_ALIGN uint8_t status_change; CFG_TUH_MEM_ALIGN hub_port_status_response_t port_status; CFG_TUH_MEM_ALIGN hub_status_response_t hub_status; } hub_interface_t; -CFG_TUH_MEM_SECTION static hub_interface_t hub_data[CFG_TUH_HUB]; -CFG_TUH_MEM_SECTION CFG_TUH_MEM_ALIGN static uint8_t _hub_buffer[sizeof(descriptor_hub_desc_t)]; +typedef struct { + TUH_EPBUF_DEF(buf, CFG_TUH_HUB_BUFSIZE); +} hub_epbuf_t; -TU_ATTR_ALWAYS_INLINE -static inline hub_interface_t* get_itf(uint8_t dev_addr) -{ - return &hub_data[dev_addr-1-CFG_TUH_DEVICE_MAX]; +CFG_TUH_MEM_SECTION static hub_interface_t hub_itfs[CFG_TUH_HUB]; +CFG_TUH_MEM_SECTION static hub_epbuf_t hub_epbufs[CFG_TUH_HUB]; + +TU_ATTR_ALWAYS_INLINE static inline hub_interface_t* get_hub_itf(uint8_t daddr) { + return &hub_itfs[daddr-1-CFG_TUH_DEVICE_MAX]; } -#if CFG_TUSB_DEBUG >= 2 -static char const* const _hub_feature_str[] = -{ +TU_ATTR_ALWAYS_INLINE static inline uint8_t* get_hub_epbuf(uint8_t daddr) { + return hub_epbufs[daddr-1-CFG_TUH_DEVICE_MAX].buf; +} + +#if CFG_TUSB_DEBUG >= HUB_DEBUG +static char const* const _hub_feature_str[] = { [HUB_FEATURE_PORT_CONNECTION ] = "PORT_CONNECTION", [HUB_FEATURE_PORT_ENABLE ] = "PORT_ENABLE", [HUB_FEATURE_PORT_SUSPEND ] = "PORT_SUSPEND", @@ -84,12 +92,9 @@ static char const* const _hub_feature_str[] = // HUB //--------------------------------------------------------------------+ bool hub_port_clear_feature(uint8_t hub_addr, uint8_t hub_port, uint8_t feature, - tuh_xfer_cb_t complete_cb, uintptr_t user_data) -{ - tusb_control_request_t const request = - { - .bmRequestType_bit = - { + tuh_xfer_cb_t complete_cb, uintptr_t user_data) { + tusb_control_request_t const request = { + .bmRequestType_bit = { .recipient = (hub_port == 0) ? TUSB_REQ_RCPT_DEVICE : TUSB_REQ_RCPT_OTHER, .type = TUSB_REQ_TYPE_CLASS, .direction = TUSB_DIR_OUT @@ -100,8 +105,7 @@ bool hub_port_clear_feature(uint8_t hub_addr, uint8_t hub_port, uint8_t feature, .wLength = 0 }; - tuh_xfer_t xfer = - { + tuh_xfer_t xfer = { .daddr = hub_addr, .ep_addr = 0, .setup = &request, @@ -110,7 +114,7 @@ bool hub_port_clear_feature(uint8_t hub_addr, uint8_t hub_port, uint8_t feature, .user_data = user_data }; - TU_LOG2("HUB Clear Feature: %s, addr = %u port = %u\r\n", _hub_feature_str[feature], hub_addr, hub_port); + TU_LOG_DRV("HUB Clear Feature: %s, addr = %u port = %u\r\n", _hub_feature_str[feature], hub_addr, hub_port); TU_ASSERT( tuh_control_xfer(&xfer) ); return true; } @@ -142,7 +146,7 @@ bool hub_port_set_feature(uint8_t hub_addr, uint8_t hub_port, uint8_t feature, .user_data = user_data }; - TU_LOG2("HUB Set Feature: %s, addr = %u port = %u\r\n", _hub_feature_str[feature], hub_addr, hub_port); + TU_LOG_DRV("HUB Set Feature: %s, addr = %u port = %u\r\n", _hub_feature_str[feature], hub_addr, hub_port); TU_ASSERT( tuh_control_xfer(&xfer) ); return true; } @@ -174,7 +178,7 @@ bool hub_port_get_status(uint8_t hub_addr, uint8_t hub_port, void* resp, .user_data = user_data }; - TU_LOG2("HUB Get Port Status: addr = %u port = %u\r\n", hub_addr, hub_port); + TU_LOG_DRV("HUB Get Port Status: addr = %u port = %u\r\n", hub_addr, hub_port); TU_VERIFY( tuh_control_xfer(&xfer) ); return true; } @@ -183,7 +187,7 @@ bool hub_port_get_status(uint8_t hub_addr, uint8_t hub_port, void* resp, // CLASS-USBH API (don't require to verify parameters) //--------------------------------------------------------------------+ bool hub_init(void) { - tu_memclr(hub_data, sizeof(hub_data)); + tu_memclr(hub_itfs, sizeof(hub_itfs)); return true; } @@ -191,40 +195,32 @@ bool hub_deinit(void) { return true; } -bool hub_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *itf_desc, uint16_t max_len) -{ +bool hub_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *itf_desc, uint16_t max_len) { (void) rhport; TU_VERIFY(TUSB_CLASS_HUB == itf_desc->bInterfaceClass && 0 == itf_desc->bInterfaceSubClass); + TU_VERIFY(itf_desc->bInterfaceProtocol <= 1); // not support multiple TT yet - // hub driver does not support multiple TT yet - TU_VERIFY(itf_desc->bInterfaceProtocol <= 1); - - // msc driver length is fixed uint16_t const drv_len = sizeof(tusb_desc_interface_t) + sizeof(tusb_desc_endpoint_t); TU_ASSERT(drv_len <= max_len); - //------------- Interrupt Status endpoint -------------// + // Interrupt Status endpoint tusb_desc_endpoint_t const *desc_ep = (tusb_desc_endpoint_t const *) tu_desc_next(itf_desc); - TU_ASSERT(TUSB_DESC_ENDPOINT == desc_ep->bDescriptorType && TUSB_XFER_INTERRUPT == desc_ep->bmAttributes.xfer, 0); - TU_ASSERT(tuh_edpt_open(dev_addr, desc_ep)); - hub_interface_t* p_hub = get_itf(dev_addr); - + hub_interface_t* p_hub = get_hub_itf(dev_addr); p_hub->itf_num = itf_desc->bInterfaceNumber; p_hub->ep_in = desc_ep->bEndpointAddress; return true; } -void hub_close(uint8_t dev_addr) -{ +void hub_close(uint8_t dev_addr) { TU_VERIFY(dev_addr > CFG_TUH_DEVICE_MAX, ); - hub_interface_t* p_hub = get_itf(dev_addr); + hub_interface_t* p_hub = get_hub_itf(dev_addr); if (p_hub->ep_in) { TU_LOG_DRV(" HUB close addr = %d\r\n", dev_addr); @@ -232,30 +228,24 @@ void hub_close(uint8_t dev_addr) } } -bool hub_edpt_status_xfer(uint8_t dev_addr) -{ - hub_interface_t* hub_itf = get_itf(dev_addr); +bool hub_edpt_status_xfer(uint8_t dev_addr) { + hub_interface_t* hub_itf = get_hub_itf(dev_addr); return usbh_edpt_xfer(dev_addr, hub_itf->ep_in, &hub_itf->status_change, 1); } - //--------------------------------------------------------------------+ // Set Configure //--------------------------------------------------------------------+ - static void config_set_port_power (tuh_xfer_t* xfer); static void config_port_power_complete (tuh_xfer_t* xfer); -bool hub_set_config(uint8_t dev_addr, uint8_t itf_num) -{ - hub_interface_t* p_hub = get_itf(dev_addr); +bool hub_set_config(uint8_t dev_addr, uint8_t itf_num) { + hub_interface_t* p_hub = get_hub_itf(dev_addr); TU_ASSERT(itf_num == p_hub->itf_num); // Get Hub Descriptor - tusb_control_request_t const request = - { - .bmRequestType_bit = - { + tusb_control_request_t const request = { + .bmRequestType_bit = { .recipient = TUSB_REQ_RCPT_DEVICE, .type = TUSB_REQ_TYPE_CLASS, .direction = TUSB_DIR_IN @@ -263,34 +253,31 @@ bool hub_set_config(uint8_t dev_addr, uint8_t itf_num) .bRequest = HUB_REQUEST_GET_DESCRIPTOR, .wValue = 0, .wIndex = 0, - .wLength = sizeof(descriptor_hub_desc_t) + .wLength = sizeof(hub_desc_cs_t) }; - tuh_xfer_t xfer = - { + tuh_xfer_t xfer = { .daddr = dev_addr, .ep_addr = 0, .setup = &request, - .buffer = _hub_buffer, + .buffer = get_hub_epbuf(dev_addr), .complete_cb = config_set_port_power, .user_data = 0 }; - TU_ASSERT( tuh_control_xfer(&xfer) ); - + TU_ASSERT(tuh_control_xfer(&xfer)); return true; } -static void config_set_port_power (tuh_xfer_t* xfer) -{ +static void config_set_port_power (tuh_xfer_t* xfer) { TU_ASSERT(XFER_RESULT_SUCCESS == xfer->result, ); uint8_t const daddr = xfer->daddr; - hub_interface_t* p_hub = get_itf(daddr); + hub_interface_t* p_hub = get_hub_itf(daddr); // only use number of ports in hub descriptor - descriptor_hub_desc_t const* desc_hub = (descriptor_hub_desc_t const*) _hub_buffer; - p_hub->port_count = desc_hub->bNbrPorts; + hub_desc_cs_t const* desc_hub = (hub_desc_cs_t const*) get_hub_epbuf(daddr); + p_hub->bNbrPorts = desc_hub->bNbrPorts; // May need to GET_STATUS @@ -299,14 +286,13 @@ static void config_set_port_power (tuh_xfer_t* xfer) hub_port_set_feature(daddr, hub_port, HUB_FEATURE_PORT_POWER, config_port_power_complete, 0); } -static void config_port_power_complete (tuh_xfer_t* xfer) -{ +static void config_port_power_complete (tuh_xfer_t* xfer) { TU_ASSERT(XFER_RESULT_SUCCESS == xfer->result, ); uint8_t const daddr = xfer->daddr; - hub_interface_t* p_hub = get_itf(daddr); + hub_interface_t* p_hub = get_hub_itf(daddr); - if (xfer->setup->wIndex == p_hub->port_count) + if (xfer->setup->wIndex == p_hub->bNbrPorts) { // All ports are power -> queue notification status endpoint and // complete the SET CONFIGURATION @@ -334,46 +320,48 @@ static void connection_port_reset_complete (tuh_xfer_t* xfer); bool hub_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes) { (void) xferred_bytes; // TODO can be more than 1 for hub with lots of ports (void) ep_addr; - TU_VERIFY(result == XFER_RESULT_SUCCESS); - hub_interface_t* p_hub = get_itf(dev_addr); + if (result == XFER_RESULT_SUCCESS) { + hub_interface_t* p_hub = get_hub_itf(dev_addr); - uint8_t const status_change = p_hub->status_change; - TU_LOG2(" Hub Status Change = 0x%02X\r\n", status_change); + uint8_t const status_change = p_hub->status_change; + TU_LOG_DRV(" Hub Status Change = 0x%02X\r\n", status_change); - if ( status_change == 0 ) { - // The status change event was neither for the hub, nor for any of its ports. - // This shouldn't happen, but it does with some devices. - // Initiate the next interrupt poll here. - return hub_edpt_status_xfer(dev_addr); - } + if ( status_change == 0 ) { + // The status change event was neither for the hub, nor for any of its ports. + // This shouldn't happen, but it does with some devices. Initiate the next interrupt poll here. + return hub_edpt_status_xfer(dev_addr); + } - if (tu_bit_test(status_change, 0)) { - // Hub bit 0 is for the hub device events - if (hub_port_get_status(dev_addr, 0, &p_hub->hub_status, hub_get_status_complete, 0) == false) { - //Hub status control transfer failed, retry - hub_edpt_status_xfer(dev_addr); + if (tu_bit_test(status_change, 0)) { + // Hub bit 0 is for the hub device events + if (hub_port_get_status(dev_addr, 0, &p_hub->hub_status, hub_get_status_complete, 0) == false) { + //Hub status control transfer failed, retry + hub_edpt_status_xfer(dev_addr); + } } - } - else { - // Hub bits 1 to n are hub port events - for (uint8_t port=1; port <= p_hub->port_count; port++) { - if ( tu_bit_test(status_change, port) ) { - if (hub_port_get_status(dev_addr, port, &p_hub->port_status, hub_port_get_status_complete, 0) == false) { - //Hub status control transfer failed, retry - hub_edpt_status_xfer(dev_addr); + else { + // Hub bits 1 to n are hub port events + for (uint8_t port=1; port <= p_hub->bNbrPorts; port++) { + if ( tu_bit_test(status_change, port) ) { + if (hub_port_get_status(dev_addr, port, &p_hub->port_status, hub_port_get_status_complete, 0) == false) { + //Hub status control transfer failed, retry + hub_edpt_status_xfer(dev_addr); + } + break; } - break; } } + } else { + TU_LOG_DRV(" Hub Status Change: failed, retry\r\n"); + hub_edpt_status_xfer(dev_addr); // retry } // NOTE: next status transfer is queued by usbh.c after handling this request return true; } -static void hub_clear_feature_complete_stub(tuh_xfer_t* xfer) -{ +static void hub_clear_feature_complete_stub(tuh_xfer_t* xfer) { TU_ASSERT(xfer->result == XFER_RESULT_SUCCESS, ); hub_edpt_status_xfer(xfer->daddr); } @@ -383,15 +371,15 @@ static void hub_get_status_complete (tuh_xfer_t* xfer) TU_ASSERT(xfer->result == XFER_RESULT_SUCCESS, ); uint8_t const daddr = xfer->daddr; - hub_interface_t* p_hub = get_itf(daddr); + hub_interface_t* p_hub = get_hub_itf(daddr); uint8_t const port_num = (uint8_t) tu_le16toh(xfer->setup->wIndex); TU_ASSERT(port_num == 0 , ); - TU_LOG2("HUB Got hub status, addr = %u, status = %04x\r\n", daddr, p_hub->hub_status.change.value); + TU_LOG_DRV("HUB Got hub status, addr = %u, status = %04x\r\n", daddr, p_hub->hub_status.change.value); if (p_hub->hub_status.change.local_power_source) { - TU_LOG2("HUB Local Power Change, addr = %u\r\n", daddr); + TU_LOG_DRV("HUB Local Power Change, addr = %u\r\n", daddr); hub_port_clear_feature(daddr, port_num, HUB_FEATURE_HUB_LOCAL_POWER_CHANGE, hub_clear_feature_complete_stub, 0); } else if (p_hub->hub_status.change.over_current) @@ -406,7 +394,7 @@ static void hub_port_get_status_complete (tuh_xfer_t* xfer) TU_ASSERT(xfer->result == XFER_RESULT_SUCCESS, ); uint8_t const daddr = xfer->daddr; - hub_interface_t* p_hub = get_itf(daddr); + hub_interface_t* p_hub = get_hub_itf(daddr); uint8_t const port_num = (uint8_t) tu_le16toh(xfer->setup->wIndex); // Connection change @@ -453,7 +441,7 @@ static void connection_clear_conn_change_complete (tuh_xfer_t* xfer) TU_ASSERT(xfer->result == XFER_RESULT_SUCCESS, ); uint8_t const daddr = xfer->daddr; - hub_interface_t* p_hub = get_itf(daddr); + hub_interface_t* p_hub = get_hub_itf(daddr); uint8_t const port_num = (uint8_t) tu_le16toh(xfer->setup->wIndex); if ( p_hub->port_status.status.connection ) diff --git a/src/host/hub.h b/src/host/hub.h index 385efe6b2..59097fb0a 100644 --- a/src/host/hub.h +++ b/src/host/hub.h @@ -24,17 +24,8 @@ * This file is part of the TinyUSB stack. */ -/** \ingroup group_class - * \defgroup ClassDriver_Hub Hub (Host only) - * \details Like most PC's OS, Hub support is completely hidden from Application. In fact, application cannot determine whether - * a device is mounted directly via roothub or via a hub's port. All Hub-related procedures are performed and managed - * by tinyusb stack. Unless you are trying to develop the stack itself, there are nothing else can be used by Application. - * \note Due to my laziness, only 1-level of Hub is supported. In other way, the stack cannot mount a hub via another hub. - * @{ - */ - -#ifndef _TUSB_HUB_H_ -#define _TUSB_HUB_H_ +#ifndef TUSB_HUB_H_ +#define TUSB_HUB_H_ #include "common/tusb_common.h" @@ -42,6 +33,14 @@ extern "C" { #endif +//--------------------------------------------------------------------+ +// Configuration +//--------------------------------------------------------------------+ + +#ifndef CFG_TUH_HUB_BUFSIZE + #define CFG_TUH_HUB_BUFSIZE 12 +#endif + //D1...D0: Logical Power Switching Mode //00: Ganged power switching (all ports’power at //once) @@ -89,16 +88,17 @@ typedef struct TU_ATTR_PACKED{ uint8_t bHubContrCurrent; uint8_t DeviceRemovable; // bitmap each bit for a port (from bit1) uint8_t PortPwrCtrlMask; // just for compatibility, should be 0xff -} descriptor_hub_desc_t; +} hub_desc_cs_t; -TU_VERIFY_STATIC( sizeof(descriptor_hub_desc_t) == 9, "size is not correct"); +TU_VERIFY_STATIC(sizeof(hub_desc_cs_t) == 9, "size is not correct"); +TU_VERIFY_STATIC(CFG_TUH_HUB_BUFSIZE >= sizeof(hub_desc_cs_t), "buffer is not big enough"); enum { HUB_REQUEST_GET_STATUS = 0 , HUB_REQUEST_CLEAR_FEATURE = 1 , - + // 2 is reserved HUB_REQUEST_SET_FEATURE = 3 , - + // 4-5 are reserved HUB_REQUEST_GET_DESCRIPTOR = 6 , HUB_REQUEST_SET_DESCRIPTOR = 7 , HUB_REQUEST_CLEAR_TT_BUFFER = 8 , @@ -118,10 +118,10 @@ enum{ HUB_FEATURE_PORT_SUSPEND = 2, HUB_FEATURE_PORT_OVER_CURRENT = 3, HUB_FEATURE_PORT_RESET = 4, - + // 5-7 are reserved HUB_FEATURE_PORT_POWER = 8, HUB_FEATURE_PORT_LOW_SPEED = 9, - + // 10-15 are reserved HUB_FEATURE_PORT_CONNECTION_CHANGE = 16, HUB_FEATURE_PORT_ENABLE_CHANGE = 17, HUB_FEATURE_PORT_SUSPEND_CHANGE = 18, @@ -172,16 +172,16 @@ typedef struct { TU_VERIFY_STATIC( sizeof(hub_port_status_response_t) == 4, "size is not correct"); // Clear feature -bool hub_port_clear_feature (uint8_t hub_addr, uint8_t hub_port, uint8_t feature, - tuh_xfer_cb_t complete_cb, uintptr_t user_data); +bool hub_port_clear_feature(uint8_t hub_addr, uint8_t hub_port, uint8_t feature, + tuh_xfer_cb_t complete_cb, uintptr_t user_data); // Set feature -bool hub_port_set_feature (uint8_t hub_addr, uint8_t hub_port, uint8_t feature, - tuh_xfer_cb_t complete_cb, uintptr_t user_data); +bool hub_port_set_feature(uint8_t hub_addr, uint8_t hub_port, uint8_t feature, + tuh_xfer_cb_t complete_cb, uintptr_t user_data); // Get port status -bool hub_port_get_status (uint8_t hub_addr, uint8_t hub_port, void* resp, - tuh_xfer_cb_t complete_cb, uintptr_t user_data); +bool hub_port_get_status(uint8_t hub_addr, uint8_t hub_port, void *resp, + tuh_xfer_cb_t complete_cb, uintptr_t user_data); // Get status from Interrupt endpoint bool hub_edpt_status_xfer(uint8_t dev_addr); @@ -198,7 +198,6 @@ bool hub_port_clear_reset_change(uint8_t hub_addr, uint8_t hub_port, tuh_xfer_cb return hub_port_clear_feature(hub_addr, hub_port, HUB_FEATURE_PORT_RESET_CHANGE, complete_cb, user_data); } - //--------------------------------------------------------------------+ // Internal Class Driver API //--------------------------------------------------------------------+ @@ -213,6 +212,4 @@ void hub_close (uint8_t dev_addr); } #endif -#endif /* _TUSB_HUB_H_ */ - -/** @} */ +#endif diff --git a/src/host/usbh.c b/src/host/usbh.c index a2994cde7..5f4f17167 100644 --- a/src/host/usbh.c +++ b/src/host/usbh.c @@ -467,13 +467,11 @@ bool tuh_task_event_ready(void) { * This should be called periodically within the mainloop or rtos thread. * @code - int main(void) - { + int main(void) { application_init(); tusb_init(0, TUSB_ROLE_HOST); - while(1) // the mainloop - { + while(1) { // the mainloop application_code(); tuh_task(); // tinyusb host task } @@ -1657,7 +1655,7 @@ static bool _parse_configuration_descriptor(uint8_t dev_addr, tusb_desc_configur if ( 0 == tu_desc_len(p_desc) ) { // A zero length descriptor indicates that the device is off spec (e.g. wrong wTotalLength). // Parsed interfaces should still be usable - TU_LOG_USBH("Encountered a zero-length descriptor after %u bytes\r\n", (uint32_t)p_desc - (uint32_t)desc_cfg); + TU_LOG_USBH("Encountered a zero-length descriptor after %" PRIu32 "bytes\r\n", (uint32_t)p_desc - (uint32_t)desc_cfg); break; } diff --git a/tools/get_deps.py b/tools/get_deps.py index c8459c1f1..3665904b3 100755 --- a/tools/get_deps.py +++ b/tools/get_deps.py @@ -59,7 +59,7 @@ deps_optional = { '144f1eb7ea8c06512e12f12b27383601c0272410', 'kinetis_k kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx imxrt'], 'hw/mcu/raspberry_pi/Pico-PIO-USB': ['https://github.com/sekigon-gonnoc/Pico-PIO-USB.git', - 'fe9133fc513b82cc3dc62c67cb51f2339cf29ef7', + '442af432568f25fb72c5784d9d67b8e85465cb28', 'rp2040'], 'hw/mcu/renesas/fsp': ['https://github.com/renesas/fsp.git', 'edcc97d684b6f716728a60d7a6fea049d9870bd6', @@ -217,7 +217,12 @@ TOP = Path(__file__).parent.parent.resolve() def run_cmd(cmd): - return subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + r = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + title = f'Command Error: {cmd}' + if r.returncode != 0: + print(title) + print(r.stdout.decode("utf-8")) + return r def get_a_dep(d): -- cgit v1.3.1 From cafc788508834b71248a91773a262542fc2cad37 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 20 Feb 2025 16:01:06 +0700 Subject: change pio-usb to wip fork for testing --- hw/bsp/rp2040/boards/adafruit_feather_rp2040_usb_host/board.cmake | 2 ++ tools/get_deps.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 hw/bsp/rp2040/boards/adafruit_feather_rp2040_usb_host/board.cmake (limited to 'tools') diff --git a/hw/bsp/rp2040/boards/adafruit_feather_rp2040_usb_host/board.cmake b/hw/bsp/rp2040/boards/adafruit_feather_rp2040_usb_host/board.cmake new file mode 100644 index 000000000..41897f644 --- /dev/null +++ b/hw/bsp/rp2040/boards/adafruit_feather_rp2040_usb_host/board.cmake @@ -0,0 +1,2 @@ +set(PICO_PLATFORM rp2040) +set(PICO_BOARD adafruit_feather_rp2040_usb_host) diff --git a/tools/get_deps.py b/tools/get_deps.py index 3665904b3..b82abac4f 100755 --- a/tools/get_deps.py +++ b/tools/get_deps.py @@ -58,8 +58,8 @@ deps_optional = { 'hw/mcu/nxp/mcux-sdk': ['https://github.com/hathach/mcux-sdk.git', '144f1eb7ea8c06512e12f12b27383601c0272410', 'kinetis_k kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx imxrt'], - 'hw/mcu/raspberry_pi/Pico-PIO-USB': ['https://github.com/sekigon-gonnoc/Pico-PIO-USB.git', - '442af432568f25fb72c5784d9d67b8e85465cb28', + 'hw/mcu/raspberry_pi/Pico-PIO-USB': ['https://github.com/hathach/Pico-PIO-USB.git', + '9c8df3083b62c0a678f3bd3d8a7e773932622d4b', 'rp2040'], 'hw/mcu/renesas/fsp': ['https://github.com/renesas/fsp.git', 'edcc97d684b6f716728a60d7a6fea049d9870bd6', -- cgit v1.3.1 From e0df20f260a6c5d5e347427e9e57e73f9327f8d0 Mon Sep 17 00:00:00 2001 From: Ha Thach Date: Mon, 17 Mar 2025 12:20:49 +0700 Subject: change pio-usb to upstream --- tools/get_deps.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tools') diff --git a/tools/get_deps.py b/tools/get_deps.py index b82abac4f..3f529bd7e 100755 --- a/tools/get_deps.py +++ b/tools/get_deps.py @@ -58,8 +58,8 @@ deps_optional = { 'hw/mcu/nxp/mcux-sdk': ['https://github.com/hathach/mcux-sdk.git', '144f1eb7ea8c06512e12f12b27383601c0272410', 'kinetis_k kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx imxrt'], - 'hw/mcu/raspberry_pi/Pico-PIO-USB': ['https://github.com/hathach/Pico-PIO-USB.git', - '9c8df3083b62c0a678f3bd3d8a7e773932622d4b', + 'hw/mcu/raspberry_pi/Pico-PIO-USB': ['https://github.com/sekigon-gonnoc/Pico-PIO-USB.git', + '0ca3657d55ea20e7fa4483bbd21ce951bc1d6fa5', 'rp2040'], 'hw/mcu/renesas/fsp': ['https://github.com/renesas/fsp.git', 'edcc97d684b6f716728a60d7a6fea049d9870bd6', -- cgit v1.3.1