diff --git a/.github/workflows/greentea_cmake.yml b/.github/workflows/greentea_cmake.yml index 5ad5a582eb0..2455dbb582b 100644 --- a/.github/workflows/greentea_cmake.yml +++ b/.github/workflows/greentea_cmake.yml @@ -133,8 +133,8 @@ jobs: apt-get update apt-get install -y python3-venv + # Always build with baremetal profile, as it should work with every target - name: Build ${{ matrix.target }} with baremetal profile - if: ${{ matrix.profile == 'baremetal' }} # Note: We have to set a wifi network name and password so that the test will compile on devices that use wifi run: | rm -rf __build diff --git a/TESTS/configs/greentea_baremetal.json5 b/TESTS/configs/greentea_baremetal.json5 index ab0eb3fa57d..6689a1c3ea4 100644 --- a/TESTS/configs/greentea_baremetal.json5 +++ b/TESTS/configs/greentea_baremetal.json5 @@ -1,11 +1,9 @@ { - "target_overrides": { - "*": { - "target.c_lib": "small", - "target.application-profile": "bare-metal" - } - }, "overrides": { + "target.c_lib": "small", + + "target.application-profile": "bare-metal", + // Enable Mbed Stats tests "platform.all-stats-enabled": 1, diff --git a/cmsis/device/rtos/mbed_lib.json b/cmsis/device/rtos/mbed_lib.json index 1a206c77647..43f20ec79f1 100644 --- a/cmsis/device/rtos/mbed_lib.json +++ b/cmsis/device/rtos/mbed_lib.json @@ -1,11 +1,10 @@ { "name": "rtos", "config": { - "rtos": { - "help": "Select RTOS (RTX or N/A)", - "value": "RTX" - }, - "present": 1, + "rtos": { + "help": "Select RTOS (RTX or N/A)", + "value": "RTX" + }, "main-thread-stack-size": { "help": "The size of the main thread's stack", "value": 4096 diff --git a/connectivity/FEATURE_BLE/mbed_lib.json b/connectivity/FEATURE_BLE/mbed_lib.json index 2d1b11ef40d..e6398909770 100644 --- a/connectivity/FEATURE_BLE/mbed_lib.json +++ b/connectivity/FEATURE_BLE/mbed_lib.json @@ -1,6 +1,5 @@ { "name": "ble", - "requires": ["ble-api-implementation"], "config": { "present": 1, "ble-role-observer": { diff --git a/connectivity/FEATURE_BLE/source/cordio/TESTS/cordio_hci/driver/CMakeLists.txt b/connectivity/FEATURE_BLE/source/cordio/TESTS/cordio_hci/driver/CMakeLists.txt index ddcac060cd5..1c40204d165 100644 --- a/connectivity/FEATURE_BLE/source/cordio/TESTS/cordio_hci/driver/CMakeLists.txt +++ b/connectivity/FEATURE_BLE/source/cordio/TESTS/cordio_hci/driver/CMakeLists.txt @@ -1,9 +1,18 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +if("BlueNRG_2" IN_LIST MBED_TARGET_LABELS OR "BlueNRG_MS" IN_LIST MBED_TARGET_LABELS) + if(APPLICATION_PROFILE_CONFIG_BAREMETAL) + set(TEST_SKIPPED "BlueNRG bluetooth modules require an RTOS!") + endif() +endif() + + mbed_greentea_add_test( TEST_NAME mbed-connectivity-ble-cordio-hci-driver + TEST_SKIPPED + ${TEST_SKIPPED} TEST_SOURCES main.cpp TEST_REQUIRED_LIBS diff --git a/connectivity/FEATURE_BLE/source/cordio/TESTS/cordio_hci/transport/CMakeLists.txt b/connectivity/FEATURE_BLE/source/cordio/TESTS/cordio_hci/transport/CMakeLists.txt index 67ec2d1cd84..c0cc2c78f9a 100644 --- a/connectivity/FEATURE_BLE/source/cordio/TESTS/cordio_hci/transport/CMakeLists.txt +++ b/connectivity/FEATURE_BLE/source/cordio/TESTS/cordio_hci/transport/CMakeLists.txt @@ -5,6 +5,12 @@ if("CORDIO_ZERO_COPY_HCI" IN_LIST MBED_CONFIG_DEFINITIONS OR "CORDIO_ZERO_COPY_H set(TEST_SKIPPED "Test not relevant for zero copy hci.") endif() +if("BlueNRG_2" IN_LIST MBED_TARGET_LABELS OR "BlueNRG_MS" IN_LIST MBED_TARGET_LABELS) + if(APPLICATION_PROFILE_CONFIG_BAREMETAL) + set(TEST_SKIPPED "BlueNRG bluetooth modules require an RTOS!") + endif() +endif() + mbed_greentea_add_test( TEST_NAME mbed-connectivity-ble-cordio-hci-transport diff --git a/connectivity/FEATURE_BLE/source/cordio/source/BLEInstanceBaseImpl.cpp b/connectivity/FEATURE_BLE/source/cordio/source/BLEInstanceBaseImpl.cpp index fa7cb145dc2..9620d1a3ea8 100644 --- a/connectivity/FEATURE_BLE/source/cordio/source/BLEInstanceBaseImpl.cpp +++ b/connectivity/FEATURE_BLE/source/cordio/source/BLEInstanceBaseImpl.cpp @@ -317,7 +317,7 @@ ble::SecurityManager &BLEInstanceBase::getSecurityManager() const ble::SecurityManager &BLEInstanceBase::getSecurityManager() const { - const BLEInstanceBase &self = const_cast(*this); + BLEInstanceBase &self = const_cast(*this); return const_cast(self.getSecurityManager()); } #endif // BLE_FEATURE_SECURITY diff --git a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_BlueNRG_2/CMakeLists.txt b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_BlueNRG_2/CMakeLists.txt index 217ba8fbf9f..14b3be6ede0 100644 --- a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_BlueNRG_2/CMakeLists.txt +++ b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_BlueNRG_2/CMakeLists.txt @@ -1,6 +1,11 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +# This driver needs the RTOS +if(APPLICATION_PROFILE_CONFIG_BAREMETAL) + return() +endif() + add_library(mbed-bluenrg2 STATIC EXCLUDE_FROM_ALL BlueNrg2HCIDriver.cpp) diff --git a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_BlueNRG_MS/CMakeLists.txt b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_BlueNRG_MS/CMakeLists.txt index df95ba42aec..6cc05b44ffb 100644 --- a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_BlueNRG_MS/CMakeLists.txt +++ b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_BlueNRG_MS/CMakeLists.txt @@ -1,6 +1,11 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +# This driver needs the RTOS +if(APPLICATION_PROFILE_CONFIG_BAREMETAL) + return() +endif() + add_library(mbed-bluenrg-ms STATIC EXCLUDE_FROM_ALL BlueNrgMsHCIDriver.cpp) diff --git a/connectivity/drivers/ble/FEATURE_BLE/TARGET_STM32WB/mbed_lib.json b/connectivity/drivers/ble/FEATURE_BLE/TARGET_STM32WB/mbed_lib.json index 13d17bcf083..b0c80f5002a 100644 --- a/connectivity/drivers/ble/FEATURE_BLE/TARGET_STM32WB/mbed_lib.json +++ b/connectivity/drivers/ble/FEATURE_BLE/TARGET_STM32WB/mbed_lib.json @@ -1,4 +1,3 @@ { - "name": "cordio-stm32wb", - "requires": ["cordio", "ble"] + "name": "cordio-stm32wb" } diff --git a/connectivity/drivers/emac/CMakeLists.txt b/connectivity/drivers/emac/CMakeLists.txt index e3824c4dda7..b07d04187be 100644 --- a/connectivity/drivers/emac/CMakeLists.txt +++ b/connectivity/drivers/emac/CMakeLists.txt @@ -5,6 +5,12 @@ if(NOT "DEVICE_EMAC=1" IN_LIST MBED_TARGET_DEFINITIONS) return() endif() +# EMAC needs the RTOS +if(APPLICATION_PROFILE_CONFIG_BAREMETAL) + return() +endif() + + add_library(mbed-emac STATIC EXCLUDE_FROM_ALL sources/CompositeEMAC.cpp sources/GenericEthPhy.cpp diff --git a/connectivity/drivers/lora/COMPONENT_SX126X/mbed_lib.json b/connectivity/drivers/lora/COMPONENT_SX126X/mbed_lib.json index 5e068ea0525..fbee95cf4a6 100644 --- a/connectivity/drivers/lora/COMPONENT_SX126X/mbed_lib.json +++ b/connectivity/drivers/lora/COMPONENT_SX126X/mbed_lib.json @@ -1,6 +1,5 @@ { "name": "SX126X-lora-driver", - "requires": ["lora"], "config": { "spi-frequency": { "help": "SPI frequency, Default: 16 MHz", diff --git a/connectivity/drivers/lora/COMPONENT_SX1272/mbed_lib.json b/connectivity/drivers/lora/COMPONENT_SX1272/mbed_lib.json index 824c71ee964..7182de340aa 100644 --- a/connectivity/drivers/lora/COMPONENT_SX1272/mbed_lib.json +++ b/connectivity/drivers/lora/COMPONENT_SX1272/mbed_lib.json @@ -1,6 +1,5 @@ { "name": "sx1272-lora-driver", - "requires": ["lora"], "config": { "spi-frequency": { "help": "SPI frequency, Default: 8 MHz", diff --git a/connectivity/drivers/lora/COMPONENT_SX1276/mbed_lib.json b/connectivity/drivers/lora/COMPONENT_SX1276/mbed_lib.json index 82bbf8a02df..0033945bece 100644 --- a/connectivity/drivers/lora/COMPONENT_SX1276/mbed_lib.json +++ b/connectivity/drivers/lora/COMPONENT_SX1276/mbed_lib.json @@ -1,6 +1,5 @@ { "name": "sx1276-lora-driver", - "requires": ["lora"], "config": { "spi-frequency": { "help": "SPI frequency, Default: 8 MHz", diff --git a/connectivity/drivers/lora/TARGET_STM32WL/mbed_lib.json b/connectivity/drivers/lora/TARGET_STM32WL/mbed_lib.json index e8faccd63ed..4389f908eec 100644 --- a/connectivity/drivers/lora/TARGET_STM32WL/mbed_lib.json +++ b/connectivity/drivers/lora/TARGET_STM32WL/mbed_lib.json @@ -1,6 +1,5 @@ { "name": "stm32wl-lora-driver", - "requires": ["lora"], "config": { "buffer-size": { "help": "Max. buffer size the radio can handle, Default: 255 B", diff --git a/connectivity/drivers/wifi/COMPONENT_ESPRESSIF_ESP8266/mbed_lib.json b/connectivity/drivers/wifi/COMPONENT_ESPRESSIF_ESP8266/mbed_lib.json index 6eefffc00f0..60b937098c2 100644 --- a/connectivity/drivers/wifi/COMPONENT_ESPRESSIF_ESP8266/mbed_lib.json +++ b/connectivity/drivers/wifi/COMPONENT_ESPRESSIF_ESP8266/mbed_lib.json @@ -31,7 +31,7 @@ }, "power-on-polarity": { "help": "Polarity of power-on for the modem. 0 means 0/1 for power on/off; 1 means 1/0 for power on/off.", - "options": [0, 1], + "accepted_values": [0, 1], "value": 0 }, "power-on-time-ms": { diff --git a/connectivity/lorawan/mbed_lib.json b/connectivity/lorawan/mbed_lib.json index 576f4092afd..d8e0bbff7bc 100644 --- a/connectivity/lorawan/mbed_lib.json +++ b/connectivity/lorawan/mbed_lib.json @@ -1,6 +1,5 @@ { "name": "lora", - "requires": ["mbedtls", "events"], "config": { "phy": { "help": "LoRa PHY region: EU868, AS923, AU915, CN470, CN779, EU433, IN865, KR920, US915", diff --git a/connectivity/lwipstack/CMakeLists.txt b/connectivity/lwipstack/CMakeLists.txt index 556c8d2596b..c020377ba68 100644 --- a/connectivity/lwipstack/CMakeLists.txt +++ b/connectivity/lwipstack/CMakeLists.txt @@ -1,6 +1,11 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +# LwIP needs the RTOS +if(APPLICATION_PROFILE_CONFIG_BAREMETAL) + return() +endif() + add_library(mbed-lwipstack STATIC EXCLUDE_FROM_ALL) target_include_directories(mbed-lwipstack diff --git a/connectivity/lwipstack/mbed_lib.json5 b/connectivity/lwipstack/mbed_lib.json5 index 343d3c9ae47..4ce89bc180d 100644 --- a/connectivity/lwipstack/mbed_lib.json5 +++ b/connectivity/lwipstack/mbed_lib.json5 @@ -1,7 +1,6 @@ { "name": "lwip", "config": { - "present": 1, "ipv4-enabled": { "help": "Enable IPv4", "value": true diff --git a/connectivity/nanostack/mbed-mesh-api/mbed_lib.json b/connectivity/nanostack/mbed-mesh-api/mbed_lib.json index e053940ec26..871f41d5000 100644 --- a/connectivity/nanostack/mbed-mesh-api/mbed_lib.json +++ b/connectivity/nanostack/mbed-mesh-api/mbed_lib.json @@ -1,6 +1,5 @@ { "name": "mbed-mesh-api", - "requires": ["nanostack"], "config": { "heap-size": { "help": "Nanostack's heap size [bytes: 0-4294967295]", diff --git a/connectivity/nanostack/mbed_lib.json b/connectivity/nanostack/mbed_lib.json index 2761bfd407c..5c9a05cd6b3 100644 --- a/connectivity/nanostack/mbed_lib.json +++ b/connectivity/nanostack/mbed_lib.json @@ -1,4 +1,3 @@ { - "name": "nanostack-interface", - "requires": ["nanostack"] + "name": "nanostack-interface" } diff --git a/connectivity/nanostack/nanostack-hal-mbed-cmsis-rtos/CMakeLists.txt b/connectivity/nanostack/nanostack-hal-mbed-cmsis-rtos/CMakeLists.txt index b598530efbc..56c5355e0fa 100644 --- a/connectivity/nanostack/nanostack-hal-mbed-cmsis-rtos/CMakeLists.txt +++ b/connectivity/nanostack/nanostack-hal-mbed-cmsis-rtos/CMakeLists.txt @@ -1,6 +1,11 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +# This lib needs the RTOS +if(APPLICATION_PROFILE_CONFIG_BAREMETAL) + return() +endif() + add_library(mbed-nanostack-hal_mbed_cmsis_rtos STATIC EXCLUDE_FROM_ALL) target_include_directories(mbed-nanostack-hal_mbed_cmsis_rtos diff --git a/connectivity/nanostack/sal-stack-nanostack-eventloop/mbed_lib.json b/connectivity/nanostack/sal-stack-nanostack-eventloop/mbed_lib.json index 25a93630146..a56cdb50306 100644 --- a/connectivity/nanostack/sal-stack-nanostack-eventloop/mbed_lib.json +++ b/connectivity/nanostack/sal-stack-nanostack-eventloop/mbed_lib.json @@ -1,6 +1,5 @@ { "name": "nanostack-eventloop", - "requires": ["nanostack-hal"], "config": { "use_platform_tick_timer": { "help": "Use platform provided low resolution tick timer for eventloop", diff --git a/connectivity/nanostack/sal-stack-nanostack/mbed_lib.json b/connectivity/nanostack/sal-stack-nanostack/mbed_lib.json index ce65c8a038a..c397fa2075a 100644 --- a/connectivity/nanostack/sal-stack-nanostack/mbed_lib.json +++ b/connectivity/nanostack/sal-stack-nanostack/mbed_lib.json @@ -1,6 +1,5 @@ { "name": "nanostack", - "requires": ["nanostack-eventloop", "coap-service"], "config": { "configuration": { "help": "Build time configuration. Refer to Handbook for valid values. Default: full stack", diff --git a/connectivity/netsocket/mbed_lib.json5 b/connectivity/netsocket/mbed_lib.json5 index bc2f091410c..3efa3cc9f64 100644 --- a/connectivity/netsocket/mbed_lib.json5 +++ b/connectivity/netsocket/mbed_lib.json5 @@ -1,7 +1,6 @@ { "name": "nsapi", "config": { - "present": 1, "add-event-listener-return-change": { "help": "Updates the add_event_listener to return a nsapi_error_t value which can indicate allocation failure. See documents for more details.", "value": 0 diff --git a/connectivity/netsocket/tests/TESTS/network/emac/CMakeLists.txt b/connectivity/netsocket/tests/TESTS/network/emac/CMakeLists.txt index cd4619cebae..41907c91605 100644 --- a/connectivity/netsocket/tests/TESTS/network/emac/CMakeLists.txt +++ b/connectivity/netsocket/tests/TESTS/network/emac/CMakeLists.txt @@ -20,6 +20,10 @@ list( emac_test_unicast_long.cpp ) +if(APPLICATION_PROFILE_CONFIG_BAREMETAL) + set(TEST_SKIPPED "This test requires an RTOS!") +endif() + mbed_greentea_add_test( TEST_NAME mbed-connectivity-network-emac diff --git a/connectivity/netsocket/tests/TESTS/network/wifi/CMakeLists.txt b/connectivity/netsocket/tests/TESTS/network/wifi/CMakeLists.txt index 0635bd7e74a..45b8b796a47 100644 --- a/connectivity/netsocket/tests/TESTS/network/wifi/CMakeLists.txt +++ b/connectivity/netsocket/tests/TESTS/network/wifi/CMakeLists.txt @@ -9,6 +9,10 @@ if(NOT "MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE=WIFI" IN_LIST MBED_CONFI set(TEST_SKIPPED "Requires wi-fi to be the default network interface") endif() +if(APPLICATION_PROFILE_CONFIG_BAREMETAL) + set(TEST_SKIPPED "This test requires an RTOS!") +endif() + # Options specific to this test set(MBED_GREENTEA_WIFI_MAX_SCAN_SIZE 30 CACHE STRING "How many networks may appear in Wifi scan result") set(MBED_GREENTEA_WIFI_SECURE_CHANNEL 1 CACHE STRING "Channel number that the wifi network is on. Used for channel-specific connection tests, if supported by the wifi driver.") diff --git a/events/mbed_lib.json b/events/mbed_lib.json index cf9f6594038..2c19bbe254d 100644 --- a/events/mbed_lib.json +++ b/events/mbed_lib.json @@ -1,7 +1,6 @@ { "name": "events", "config": { - "present": 1, "shared-stacksize": { "help": "Stack size (bytes) for shared event queue thread", "value": 2048 diff --git a/features/frameworks/cy_rtos_rtx_adapter/mbed_lib.json b/features/frameworks/cy_rtos_rtx_adapter/mbed_lib.json index ad5352e440c..8b010b98701 100644 --- a/features/frameworks/cy_rtos_rtx_adapter/mbed_lib.json +++ b/features/frameworks/cy_rtos_rtx_adapter/mbed_lib.json @@ -1,6 +1,3 @@ { - "name": "cy_psoc6csp_rtos", - "config": { - "present": 1 - } + "name": "cy_psoc6csp_rtos" } diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbed_lib.json b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbed_lib.json index e8e50477234..d575d571f0e 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbed_lib.json +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbed_lib.json @@ -1,12 +1,3 @@ { - "name": "psa-services", - "requires": [ - "drivers", - "platform", - "mbedtls", - "storage", - "flashiap-block-device", - "kv-global-api", - "storage_tdb_internal" - ] + "name": "psa-services" } diff --git a/platform/bare_metal/mbed_lib.json b/platform/bare_metal/mbed_lib.json index e85a309c2f2..7bacdab6b2e 100644 --- a/platform/bare_metal/mbed_lib.json +++ b/platform/bare_metal/mbed_lib.json @@ -1,4 +1,3 @@ { - "name": "bare-metal", - "requires": ["platform", "drivers", "rtos-api", "mbed-trace", "blockdevice"] + "name": "bare-metal" } diff --git a/platform/mbed-trace/mbed_lib.json b/platform/mbed-trace/mbed_lib.json index 6a078dc8066..4c7e8b7c333 100644 --- a/platform/mbed-trace/mbed_lib.json +++ b/platform/mbed-trace/mbed_lib.json @@ -20,7 +20,7 @@ }, "color-theme": { "help": "Set color theme. 0 for readable, 1 for unobtrusive.", - "options": [0, 1], + "accepted_values": [0, 1], "macro_name": "MBED_TRACE_COLOR_THEME", "value": 0 }, diff --git a/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt index 89c3a9a0376..6cb26866287 100644 --- a/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt +++ b/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt @@ -11,6 +11,10 @@ if((NOT "MBED_CPU_STATS_ENABLED=1" IN_LIST MBED_CONFIG_DEFINITIONS) AND (NOT "MB set(TEST_SKIPPED "CPU stats not enabled") endif() +if("MBED_CONF_TARGET_APPLICATION_PROFILE=bare-metal" IN_LIST MBED_CONFIG_DEFINITIONS) + set(TEST_SKIPPED "This test requires the RTOS") +endif() + mbed_greentea_add_test( TEST_NAME mbed-platform-stats-cpu diff --git a/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt index c5d7d09b9c4..283cedc027f 100644 --- a/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt +++ b/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt @@ -7,6 +7,10 @@ if((NOT "MBED_THREAD_STATS_ENABLED=1" IN_LIST MBED_CONFIG_DEFINITIONS) AND (NOT set(TEST_SKIPPED "Thread stats not enabled") endif() +if("MBED_CONF_TARGET_APPLICATION_PROFILE=bare-metal" IN_LIST MBED_CONFIG_DEFINITIONS) + set(TEST_SKIPPED "This test requires the RTOS") +endif() + mbed_greentea_add_test( TEST_NAME mbed-platform-stats-thread diff --git a/rtos/mbed_lib.json b/rtos/mbed_lib.json index 43fb3abb77b..d7fb31e5c3f 100644 --- a/rtos/mbed_lib.json +++ b/rtos/mbed_lib.json @@ -1,6 +1,3 @@ { - "name": "rtos-api", - "config": { - "present": 1 - } + "name": "rtos-api" } diff --git a/storage/blockdevice/COMPONENT_SPIF/mbed_lib.json b/storage/blockdevice/COMPONENT_SPIF/mbed_lib.json index cf37017b7df..b1ee6f388a9 100644 --- a/storage/blockdevice/COMPONENT_SPIF/mbed_lib.json +++ b/storage/blockdevice/COMPONENT_SPIF/mbed_lib.json @@ -8,7 +8,7 @@ "SPI_FREQ": "40000000", "debug": { "help": "Enable debug logs. [0/1]", - "options" : [0, 1], + "accepted_values" : [0, 1], "value": 0 } }, diff --git a/storage/filesystem/mbed_lib.json b/storage/filesystem/mbed_lib.json index e53bc85fe23..3c8aaf77331 100644 --- a/storage/filesystem/mbed_lib.json +++ b/storage/filesystem/mbed_lib.json @@ -1,6 +1,3 @@ { - "name": "filesystem", - "config": { - "present": 1 - } + "name": "filesystem" } diff --git a/storage/kvstore/kv_config/filesystem_no_rbp/mbed_lib.json b/storage/kvstore/kv_config/filesystem_no_rbp/mbed_lib.json deleted file mode 100644 index d75560099c6..00000000000 --- a/storage/kvstore/kv_config/filesystem_no_rbp/mbed_lib.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "storage_filesystem_no_rbp", - "config": { - "WARNING": { - "help": "DEPRECATION WARNING: storage_filesystem_no_rbp does not work and will be removed in the future", - "value": null - }, - "filesystem": { - "help": "Options are default, FAT or LITTLE. If default value the filesystem is chosen by the blockdevice type", - "value": "default" - }, - "blockdevice": { - "help": "Options are default, SPIF, DATAFLASH, QSPIF, SD or other. If default the block device will be chosen by the defined component. If other, override get_other_blockdevice() to support block device out of Mbed OS tree.", - "value": "default" - }, - "external_size": { - "help": "Size in bytes of the external block device, if default the maximum size available is used.", - "value": "0" - }, - "external_base_address": { - "help": "The default will set start address to address 0", - "value": "0" - }, - "mount_point": { - "help": "Where to mount the filesystem.", - "value": "kv" - }, - "folder_path": { - "help": "Path for the working directory where the FileSystemStore stores the data", - "value": "kvstore" - } - }, - "target_overrides": { - "CY_EXTERNAL_WIFI_FW": { - "blockdevice": "other" - } - } -} diff --git a/storage/kvstore/kvstore_global_api/mbed_lib.json b/storage/kvstore/kvstore_global_api/mbed_lib.json index b44d08c2e6b..7facc6b0dc8 100644 --- a/storage/kvstore/kvstore_global_api/mbed_lib.json +++ b/storage/kvstore/kvstore_global_api/mbed_lib.json @@ -1,4 +1,3 @@ { - "name": "kv-global-api", - "requires": ["kvstore"] + "name": "kv-global-api" } diff --git a/storage/kvstore/tests/TESTS/kvstore/static_tests/CMakeLists.txt b/storage/kvstore/tests/TESTS/kvstore/static_tests/CMakeLists.txt index 1dd363a43d5..e7d0bd915cb 100644 --- a/storage/kvstore/tests/TESTS/kvstore/static_tests/CMakeLists.txt +++ b/storage/kvstore/tests/TESTS/kvstore/static_tests/CMakeLists.txt @@ -1,9 +1,15 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +if("TFM_DUALCPU" IN_LIST MBED_TARGET_LABELS AND APPLICATION_PROFILE_CONFIG_BAREMETAL) + set(TEST_SKIPPED "KVStore requires the RTOS on this platform") +endif() + mbed_greentea_add_test( TEST_NAME mbed-storage-kvstore-static_tests + TEST_SKIPPED + ${TEST_SKIPPED} TEST_SOURCES main.cpp TEST_REQUIRED_LIBS diff --git a/targets/targets.json5 b/targets/targets.json5 index 8bd8b4753b7..f50c4d423a1 100644 --- a/targets/targets.json5 +++ b/targets/targets.json5 @@ -1,37 +1,22 @@ { "Target": { "core": null, - "trustzone": false, - "default_toolchain": "ARM", - "supported_toolchains": null, "extra_labels": [], "supported_form_factors": [], "components": [], - "is_disk_virtual": false, "macros": [], "device_has": [], "features": [], - "detect_code": [], "public": false, "c_lib": "std", - "bootloader_supported": false, - "static_memory_defines": true, "printf_lib": "minimal-printf", + "OUTPUT_EXT": "", "supported_c_libs": { - "arm": [ - "std" - ], "gcc_arm": [ "std", "small" - ], - "iar": [ - "std" ] }, - "supported_application_profiles": [ - "full" - ], "config": { "console-uart": { "help": "Target has UART console on pins CONSOLE_TX, CONSOLE_RX. Value is only significant if target has SERIAL device. Mutually exclusive with target.console-usb.", @@ -146,11 +131,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "TFM_MULTI_CORE_MULTI_CLIENT_CALL=1" ], - "tfm_target_name": "", - "tfm_bootloader_supported": "", - "tfm_default_toolchain": "ARMCLANG", - "tfm_supported_toolchains": null, - "tfm_delivery_dir": "", "public": false }, "PSA_V8_M": { @@ -165,69 +145,8 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "device_has": [ "TRNG" ], - "tfm_target_name": "", - "tfm_bootloader_supported": "", - "tfm_default_toolchain": "ARMCLANG", - "tfm_supported_toolchains": null, - "tfm_delivery_dir": "", "public": false }, - "CM4_UARM": { - "inherits": [ - "Target" - ], - "core": "Cortex-M4", - "default_toolchain": "uARM", - "public": false, - "supported_toolchains": [ - "uARM" - ], - "default_lib": "small", - "detect_code": [ - "9992" - ] - }, - "CM4_ARM": { - "inherits": [ - "Target" - ], - "core": "Cortex-M4", - "public": false, - "supported_toolchains": [ - "ARM" - ], - "detect_code": [ - "9993" - ] - }, - "CM4F_UARM": { - "inherits": [ - "Target" - ], - "core": "Cortex-M4F", - "default_toolchain": "uARM", - "public": false, - "supported_toolchains": [ - "uARM" - ], - "default_lib": "small", - "detect_code": [ - "9990" - ] - }, - "CM4F_ARM": { - "inherits": [ - "Target" - ], - "core": "Cortex-M4F", - "public": false, - "supported_toolchains": [ - "ARM" - ], - "detect_code": [ - "9991" - ] - }, // Analog Devices targets ---------------------------------------------------------------------------------------------- "EV_COG_AD4050LZ": { @@ -235,9 +154,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Target" ], "core": "Cortex-M4F", - "supported_toolchains": [ - "GCC_ARM" - ], "macros": [ "__ADUCM4050__", "EV_COG_AD4050LZ" @@ -263,24 +179,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU" ], "device_name": "ADuCM4050", - "detect_code": [ - "0603" - ], - "release_versions": [ - "5" - ], - "bootloader_supported": true, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "image_url": "https://www.analog.com/en/_/media/analog/en/evaluation-board-images/images/ev-cog-ad4050lzangle-web.gif?rev=40854bbeb052442f8c1e3af0ed0cc9aa&sc_lang=en&h=500&thn=1&hash=1CC040DB3294C38F0A712BD1A3D1951D" }, "EV_COG_AD3029LZ": { @@ -288,9 +186,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Target" ], "core": "Cortex-M3", - "supported_toolchains": [ - "GCC_ARM" - ], "macros": [ "__ADUCM3029__", "EV_COG_AD3029LZ" @@ -316,24 +211,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU" ], "device_name": "ADuCM3029", - "detect_code": [ - "0602" - ], - "release_versions": [ - "5" - ], - "bootloader_supported": true, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "image_url": "https://www.analog.com/en/_/media/analog/en/evaluation-board-images/images/ev-cog-ad3029lzangle-web.gif?rev=dcc918a6e9b64a60a3ce0fc397a9a88d&sc_lang=en&h=500&thn=1&hash=ED3986B5366C771376C5F062488FE056" }, @@ -342,9 +219,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "Target" ], - "post_binary_hook": { - "function": "LPCTargetCode.lpc_patch" - }, "public": false }, "LPC1114": { @@ -352,7 +226,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "LPCTarget" ], "core": "Cortex-M0", - "default_toolchain": "ARM", "extra_labels": [ "NXP", "LPC11XX_11CXX", @@ -362,9 +235,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "CMSIS_VECTAB_VIRTUAL", "CMSIS_VECTAB_VIRTUAL_HEADER_FILE=\"cmsis_nvic.h\"" ], - "supported_toolchains": [ - "GCC_ARM" - ], "device_has": [ "ANALOGIN", "I2C", @@ -384,25 +254,8 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "tickless-from-us-ticker": true, "boot-stack-size": "0x300" }, - "supported_c_libs": { - "arm": [ - "std", "small" - ], - "gcc_arm": [ - "std", "small" - ], - "iar": [ - "std" - ] - }, "c_lib": "small", - "supported_application_profiles": [ - "bare-metal" - ], "device_name": "LPC1114FN28/102", - "detect_code": [ - "1114" - ], "image_url": "https://os.mbed.com/media/cache/platforms/LPC1114_1_hXXAnmW.jpg.250x250_q85.jpg" }, "MCU_LPC17XX": { @@ -416,9 +269,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "LPC17XX", "NXP_EMAC" ], - "supported_toolchains": [ - "GCC_ARM" - ], "macros_add": [ "MBED_SPLIT_HEAP" ], @@ -448,10 +298,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "WATCHDOG", "RESET_REASON" ], - "release_versions": [ - "5" - ], - "bootloader_supported": true, "config": { "us-ticker-timer": { "help": "Chooses which timer (0-3) to use for us_ticker.c", @@ -469,17 +315,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "network-default-interface-type": "ETHERNET", }, - "supported_c_libs": { - "arm": [ - "std", "small" - ], - "gcc_arm": [ - "std", "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "is_mcu_family_target": true }, "LPC1768": { @@ -490,9 +325,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MBED_LPC1768", ], "device_name": "LPC1768", - "detect_code": [ - "1010" - ], "components_add": [ "LOCALFILESYSTEM" ], @@ -523,9 +355,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", // "supported_form_factors": [ // "ARDUINO_UNO" // ], - "detect_code": [ - "9004" - ], "overrides": { "default-adc-vref": 3.3 // Per schematic, Vref is 3.3V }, @@ -542,16 +371,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Freescale", "KLXX" ], - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" - ], "inherits": [ "Target" ], - "detect_code": [ - "0200" - ], "device_has": [ "USTICKER", "ANALOGIN", @@ -568,23 +390,13 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SPI", "SPISLAVE" ], - "release_versions": [ - "5" - ], "device_name": "MKL25Z128xxx4", "supported_c_libs": { - "arm": [ - "std", - "small" - ], "gcc_arm": [ "std", "small" ] }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "image_url": "https://os.mbed.com/media/uploads/chris/frd_small.jpg" }, "KL46Z": { @@ -597,16 +409,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "KLXX", "FLASH_CMSIS_ALGO" ], - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" - ], "inherits": [ "Target" ], - "detect_code": [ - "0220" - ], "device_has": [ "USTICKER", "ANALOGIN", @@ -624,31 +429,11 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SPISLAVE", "FLASH" ], - "release_versions": [ - "5" - ], "device_name": "MKL46Z256VLL4", - "bootloader_supported": true, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "image_url": "https://www.nxp.com/assets/images/en/dev-board-image/BOARD-FRDM-KL46Z-PRODUCT-SHOT.png" }, "MCU_K22F512": { "core": "Cortex-M4F", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "Freescale", "MCUXpresso_MCUS", @@ -659,7 +444,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "KPSDK_MCUS", "KPSDK_CODE" ], - "is_disk_virtual": true, "public": false, "macros": [ "CPU_MK22FN512VLH12", @@ -669,9 +453,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "Target" ], - "detect_code": [ - "0231" - ], "device_has": [ "USTICKER", "LPTICKER", @@ -693,20 +474,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "USBDEVICE", "FLASH" ], - "device_name": "MK22FN512VLH12", - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ] + "device_name": "MK22FN512VLH12" }, "K22F": { "supported_form_factors": [ @@ -715,15 +483,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "MCU_K22F512" ], - "release_versions": [ - "5" - ], "extra_labels_add": [ "FRDM" ], - "detect_code": [ - "0231" - ], "image_url": "https://www.nxp.com/assets/images/en/dev-board-image/FRDM-K22F-ANGLE.jpg" }, "KL43Z": { @@ -731,9 +493,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARDUINO" ], "core": "Cortex-M0+", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "Freescale", "MCUXpresso_MCUS", @@ -744,13 +503,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "CPU_MKL43Z256VLH4", "FSL_RTOS_MBED" ], - "is_disk_virtual": true, "inherits": [ "Target" ], - "detect_code": [ - "0262" - ], "device_has": [ "USTICKER", "LPTICKER", @@ -771,23 +526,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "USBDEVICE", "FLASH" ], - "release_versions": [ - "5" - ], "device_name": "MKL43Z256VLH4", - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "image_url": "https://www.nxp.com/assets/images/en/dev-board-image/FRDM-KL43Z-BLOCK-DIAGRAM.jpg" }, "KW41Z": { @@ -795,9 +534,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARDUINO_UNO" ], "core": "Cortex-M0+", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "Freescale", "MCUXpresso_MCUS", @@ -805,7 +541,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "FRDM", "FRAMEWORK_5_3_3" ], - "is_disk_virtual": true, "macros": [ "CPU_MKW41Z512VHT4", "FSL_RTOS_MBED", @@ -814,9 +549,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "Target" ], - "detect_code": [ - "0201" - ], "device_has": [ "USTICKER", "LPTICKER", @@ -838,11 +570,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "FLASH", "802_15_4_PHY" ], - "release_versions": [ - "5" - ], "device_name": "MKW41Z512xxx4", - "bootloader_supported": true, "overrides": { "network-default-interface-type": "MESH" }, @@ -850,9 +578,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", }, "MCU_K64F": { "core": "Cortex-M4F", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels_add": [ "Freescale", "MCUXpresso_MCUS", @@ -898,30 +623,10 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "USBDEVICE", "WATCHDOG" ], - "release_versions": [ - "5" - ], "device_name": "MK64FN1M0xxx12", - "bootloader_supported": true, "overrides": { "network-default-interface-type": "ETHERNET" }, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ], - "iar": [ - "std" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "is_mcu_family_target": true, "public": false }, @@ -935,13 +640,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "extra_labels_add": [ "FRDM" ], - "is_disk_virtual": true, "inherits": [ "MCU_K64F" ], - "detect_code": [ - "0240" - ], "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/407/MFG_FRDM-K64F.JPG" }, "SDT64B": { @@ -952,18 +653,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "K64F" ], "supported_form_factors": [], - "detect_code": [ - "3105" - ], "image_url": "https://os.mbed.com/media/cache/platforms/SDT64B_size.png.250x250_q85.png" }, "HEXIWEAR": { "inherits": [ "MCU_K64F" ], - "detect_code": [ - "0214" - ], "image_url": "https://os.mbed.com/media/cache/platforms/Hexiwear_Platform_Image_19Ja2aX_pNSWsjb.png.250x250_q85.png", }, "K66F": { // AKA FRDM-K66F @@ -974,9 +669,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SD", ], "core": "Cortex-M4F", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels_add": [ "Freescale", "MCUXpresso_MCUS", @@ -984,7 +676,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "FRDM", "Freescale_EMAC" ], - "is_disk_virtual": true, "macros_add": [ "CPU_MK66FN2M0VMD18", "FSL_RTOS_MBED", @@ -994,9 +685,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "PSA_V7_M" ], - "detect_code": [ - "0311" - ], "device_has_add": [ "USTICKER", "LPTICKER", @@ -1020,30 +708,10 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "TRNG", "FLASH" ], - "release_versions": [ - "5" - ], "device_name": "MK66FN2M0xxx18", - "bootloader_supported": true, "overrides": { "network-default-interface-type": "ETHERNET" }, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ], - "iar": [ - "std" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "image_url": "https://www.nxp.com/assets/images/en/dev-board-image/FRDM-K66F-BD.jpg" }, "K82F": { // AKA FRDM-K82F @@ -1054,16 +722,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SPIF", ], "core": "Cortex-M4F", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM" ], - "is_disk_virtual": true, "macros": [ "CPU_MK82FN256VDC15", "FSL_RTOS_MBED", @@ -1072,9 +736,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "Target" ], - "detect_code": [ - "0217" - ], "device_has": [ "USTICKER", "LPTICKER", @@ -1097,23 +758,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "USBDEVICE", "QSPI" ], - "release_versions": [ - "5" - ], "device_name": "MK82FN256xxx15", - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "is_mcu_family_target": true, "image_url": "https://www.nxp.com/assets/images/en/dev-board-image/117498-CS_FRDM-K82-Board-Top_Mbed.jpg" }, @@ -1127,31 +772,10 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "extra_labels": [ "STM" ], - "supported_toolchains": [ - "GCC_ARM" - ], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ], - "iar": [ - "std" - ] - }, - "supported_application_profiles": [ - "full", - "bare-metal" - ], "macros": [ "USE_HAL_DRIVER", "USE_FULL_LL_DRIVER" ], - "bootloader_supported": true, "config": { "lse_available": { "help": "Define if a Low Speed External xtal (LSE) is available on the board (0 = No, 1 = Yes). If Yes, the LSE will be used to clock the RTC, LPUART, ... otherwise the Low Speed Internal clock (LSI) will be used", @@ -1181,9 +805,8 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macro_name": "LPTICKER_DELAY_TICKS" }, "lpticker_lptim_clock": { - "help": "Default value for LPTIM clock (lpticker_lptim == 1). Value is the dividing factor. Choose 1, 2, 4, 8, 16, 32, 64 or 128", - "value": 1, - "constraint": "Disclaimers : values from 8 to 128 have impacts on mbed-os timer precision and therefore on scheduling. It's not supported by mbed-os. Use it if you know what you're doing such as long low power sleep." + "help": "Default value for LPTIM clock (lpticker_lptim == 1). Value is the dividing factor. Choose 1, 2, 4, 8, 16, 32, 64 or 128. Disclaimer: values from 8 to 128 have impacts on mbed-os timer precision and therefore on scheduling. It's not supported by mbed-os. Use it if you know what you're doing such as long low power sleep.", + "value": 1 }, "gpio_reset_at_init": { "help": "if value set, all GPIO are reset during init", @@ -1263,9 +886,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "boot-stack-size": "0x400" }, - "supported_application_profiles": [ - "bare-metal" - ], "extra_labels_add": [ "STM32F030x8" ], @@ -1295,9 +915,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0755" - ], "device_name": "STM32F070RBTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF261500.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -1324,9 +941,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0730" - ], "device_name": "STM32F072RBTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF261500.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -1353,9 +967,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0750" - ], "device_name": "STM32F091RCTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF261500.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -1419,9 +1030,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0700" - ], "device_name": "STM32F103RB", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF259875.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -1545,9 +1153,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macro_name": "STM32_D11_SPI_ETHERNET_PIN" } }, - "detect_code": [ - "0835" - ], "device_has_add": [ "USBDEVICE" ], @@ -1627,9 +1232,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "clock_source": "USE_PLL_HSI", "lse_available": 0 }, - "detect_code": [ - "0775" - ], "device_name": "STM32F303K8Tx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF262544.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -1673,9 +1275,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0745" - ], "device_name": "STM32F303RETx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF260945.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -1686,9 +1285,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0747" - ], "device_has_add": [ "USBDEVICE" ], @@ -1755,9 +1351,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0720" - ], "device_name": "STM32F401RETx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF260000.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -1785,7 +1378,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "program_cycle_s": 2, "components_add": [ "SD" ], @@ -1803,9 +1395,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "lse_available": 0, "network-default-interface-type": "ETHERNET" }, - "detect_code": [ - "9011" - ], "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/1881/MFG_102110014.jpg" }, "MCU_STM32F411xE": { @@ -1827,9 +1416,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0740" - ], "device_name": "STM32F411RETx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF260945.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -1851,9 +1437,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "LPTICKER" ], "device_name": "STM32F411RETx", - "detect_code": [ - "0454" - ], "components_add": [ "TELIT_HE910" ], @@ -1874,9 +1457,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SERIAL_FC" ], "device_name": "STM32F411RETx", - "detect_code": [ - "0320" - ], "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/1290/MTDOT-868-X1P-SMA-1.jpg" }, "BLACKPILL_F411CE": { @@ -1892,10 +1472,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "device_has_add": [ "USBDEVICE" ], - "bootloader_supported": true, - "detect_code": [ - "0740" - ], "device_name": "STM32F411CEYx", "image_url": "https://user-images.githubusercontent.com/1301112/69389644-eb5fb080-0ccc-11ea-8002-67d3db851250.png" }, @@ -1938,9 +1514,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0826" - ], "device_has_add": [ "USBDEVICE" ], @@ -1961,9 +1534,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "clock_source": "USE_PLL_HSI", "network-default-interface-type": "WIFI" }, - "detect_code": [ - "0451" - ], "image_url": "https://cdn.mxchip.com/mxchip_official_website/img/EMW3166-P-%E7%99%BD-%E6%AD%A3.jpg" }, "MCU_STM32F413xH": { @@ -2006,9 +1576,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "extra_labels_add": [ "N25Q128A" ], - "detect_code": [ - "0743" - ], "device_has_add": [ "QSPI", "USBDEVICE" @@ -2023,9 +1590,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0743" - ], "device_has_add": [ "USBDEVICE" ], @@ -2077,9 +1641,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "EMAC", "USBDEVICE" ], - "detect_code": [ - "0796" - ], "device_name": "STM32F429ZITx", "overrides": { "network-default-interface-type": "ETHERNET" @@ -2103,9 +1664,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "LPTICKER" ], "device_name": "STM32F429ZITx", - "detect_code": [ - "0795" - ], "image_url": "https://m.media-amazon.com/images/I/71M-Bd6yaJL._AC_UF894,1000_QL80_.jpg" }, "MCU_STM32F439xI": { @@ -2148,9 +1706,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "EMAC", "USBDEVICE" ], - "detect_code": [ - "0797" - ], "device_name": "STM32F439ZITx", "overrides": { "network-default-interface-type": "ETHERNET" @@ -2180,9 +1735,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0777" - ], "device_name": "STM32F446RETx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF260945.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -2199,9 +1751,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "value": "USE_USB_OTG_FS" } }, - "detect_code": [ - "0778" - ], "device_has_add": [ "USBDEVICE" ], @@ -2241,9 +1790,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "clock_source": "USE_PLL_HSE_XTAL|USE_PLL_HSI" }, - "detect_code": [ - "0788" - ], "device_has_add": [ "QSPI", "USBDEVICE" @@ -2281,9 +1827,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "LPTICKER" ], "device_name": "STM32F469NIHx", - "detect_code": [ - "0604" - ], "image_url": "https://www.analog.com/en/_/media/analog/en/evaluation-board-images/images/eval-sdp-ck1ztop-web.gif?rev=2b0d46c94afe490cb3543819752a0471&sc_lang=en&h=270&thn=1&hash=C1A2567A6E5A569665B40C5DCFE1B8C3" }, @@ -2351,9 +1894,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0812" - ], "device_name": "STM32F722ZETx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF262651.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -2381,9 +1921,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "clock_source": "USE_PLL_HSE_XTAL|USE_PLL_HSI", "network-default-interface-type": "ETHERNET" }, - "detect_code": [ - "0815" - ], "macros_add": [ "STM32F746xx", "HSE_VALUE=25000000" @@ -2417,9 +1954,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0816" - ], "device_has_add": [ "EMAC", "USBDEVICE" @@ -2452,9 +1986,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0819" - ], "device_has_add": [ "EMAC", "USBDEVICE" @@ -2482,9 +2013,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "STM32F767xx" ], - "detect_code": [ - "9020" - ], "device_has_remove": [ "SERIAL_FC" ], @@ -2516,9 +2044,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "STM32F767xx" ], - "detect_code": [ - "0818" - ], "device_has_add": [ "EMAC", "USBDEVICE" @@ -2553,9 +2078,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "value": "USE_USB_OTG_HS" } }, - "detect_code": [ - "0817" - ], "macros_add": [ "STM32F769xx", "HSE_VALUE=25000000" @@ -2622,9 +2144,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MCU_STM32G0" ], "public": false, - "supported_application_profiles": [ - "bare-metal" - ], "extra_labels_add": [ "STM32G030x8" ], @@ -2645,9 +2164,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "boot-stack-size": "0x400" }, - "supported_application_profiles": [ - "bare-metal" - ], "extra_labels_add": [ "STM32G031x8" ], @@ -2659,9 +2175,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "MCU_STM32G031x8" ], - "detect_code": [ - "0852" - ], "device_name": "STM32G031K8Tx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF267508.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -2673,9 +2186,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "boot-stack-size": "0x400" }, - "supported_application_profiles": [ - "bare-metal" - ], "extra_labels_add": [ "STM32G041x8" ], @@ -2688,9 +2198,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MCU_STM32G0" ], "public": false, - "supported_application_profiles": [ - "bare-metal" - ], "extra_labels_add": [ "STM32G050x8" ], @@ -2711,9 +2218,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "boot-stack-size": "0x400" }, - "supported_application_profiles": [ - "bare-metal" - ], "extra_labels_add": [ "STM32G051x8" ], @@ -2732,9 +2236,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "boot-stack-size": "0x400" }, - "supported_application_profiles": [ - "bare-metal" - ], "extra_labels_add": [ "STM32G061x8" ], @@ -2787,9 +2288,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0221" - ], "device_name": "STM32G071RBTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF265386.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -2848,9 +2346,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0872" - ], "device_name": "STM32G0B1RETx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF265386.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -2942,9 +2437,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0850" - ], "overrides": { "hse_value": 24000000 }, @@ -2959,9 +2451,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "clock_source": "USE_PLL_HSI", "lse_available": 0 }, - "detect_code": [ - "0851" - ], "device_name": "STM32G431KBTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF267030.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -3023,9 +2512,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "hse_value": 24000000 }, - "detect_code": [ - "0841" - ], "device_name": "STM32G474RETx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF267029.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -3166,9 +2652,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0832" - ], "device_name": "STM32H503RBTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF274336.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -3207,9 +2690,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0878" - ], "device_name": "STM32H563ZITx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF274337.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -3257,9 +2737,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "extra_labels_add": [ "MX25LM51245G" ], - "detect_code": [ - "0831" - ], "device_has_add": [ "QSPI", "OSPI" @@ -3292,10 +2769,18 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "value": "RCC_LSEDRIVE_LOW" }, "system_power_supply": { - "expected_value1": "PWR_LDO_SUPPLY | PWR_DIRECT_SMPS_SUPPLY", - "expected_value2": "PWR_SMPS_1V8_SUPPLIES_LDO | PWR_SMPS_2V5_SUPPLIES_LDO | PWR_SMPS_1V8_SUPPLIES_EXT_AND_LDO | PWR_SMPS_2V5_SUPPLIES_EXT_AND_LDO", - "expected_value3": "PWR_SMPS_1V8_SUPPLIES_EXT | PWR_SMPS_2V5_SUPPLIES_EXT | PWR_EXTERNAL_SOURCE_SUPPLY", - "value": "NC" + accepted_values: [ + "PWR_LDO_SUPPLY", + "PWR_DIRECT_SMPS_SUPPLY", + "PWR_SMPS_1V8_SUPPLIES_LDO", + "PWR_SMPS_2V5_SUPPLIES_LDO", + "PWR_SMPS_1V8_SUPPLIES_EXT_AND_LDO", + "PWR_SMPS_2V5_SUPPLIES_EXT_AND_LDO", + "PWR_SMPS_1V8_SUPPLIES_EXT", + "PWR_SMPS_2V5_SUPPLIES_EXT", + "PWR_EXTERNAL_SOURCE_SUPPLY" + ], + "value": null }, "i2c_timing_value_algo": { "help": "If value was set to true I2C timing algorithm is enabled. Enabling may leads to performance issue. Keeping this false and changing system clock will trigger assert.)", @@ -3450,9 +2935,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0836" - ], "device_name": "STM32H743ZITx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF262651.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -3460,14 +2942,10 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "MCU_STM32H723xG" ], - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels_add": [ "STM32H723ZG" ], "config": { - "d11_configuration": { "help": "Value: PB_5 for the default board configuration, PA_7 in case of solder bridge update (SB33 on/ SB35 off)", "value": "PB_5", @@ -3490,9 +2968,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0836" - ], "device_name": "STM32H723ZGTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF262651.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -3658,9 +3133,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "device_has_add": [ "QSPI" ], - "detect_code": [ - "0814" - ], "device_name": "STM32H747XIHx" }, "DISCO_H747I_CM7": { @@ -3768,7 +3240,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", }, "ARDUINO_PORTENTA_H7": { "public": false, - "detect_code": ["0813"], inherits: ["STM32H747_ARDUINO"], "device_has_add": [ "EMAC" @@ -3877,9 +3348,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0860" - ], "overrides": { "system_power_supply": "PWR_DIRECT_SMPS_SUPPLY", // Cannot enable overdrive mode because the default power supply is SMPS @@ -3968,9 +3436,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "boot-stack-size": "0x400" }, - "supported_application_profiles": [ - "bare-metal" - ], "device_has_add": [ "ANALOGOUT", "TRNG" @@ -4025,14 +3490,11 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MCU_STM32L072xZ" ], "supported_form_factors": [ - "ARDUINO_UNO_PART" + "ARDUINO_UNO" ], "components_add": [ "SX1276" ], - "detect_code": [ - "0833" - ], "device_name": "STM32L072CZTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF264368.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -4059,9 +3521,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0760" - ], "device_name": "STM32L073RZTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF260945.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -4166,9 +3625,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SERIAL_FC" ], "device_name": "STM32L151CCTx", - "detect_code": [ - "0350" - ], "image_url": "https://multitech.com/wp-content/uploads/elementor/thumbs/MT_xDot_Kit_MTMDK-NX-XDOT_clear_hp1000px-qiietlpii6czroara761mb7hrzdtvfj6350luxui2o.png" }, // As of 2024, L-Tek no longer sells the FF1705 as far as I can tell from their webshop. @@ -4177,9 +3633,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "XDOT_L151CC" ], - "detect_code": [ - "8080" - ], "image_url": "https://os.mbed.com/media/cache/platforms/LTEK-xdot.jpg.250x250_q85.jpg" }, "MCU_STM32L152xC": { @@ -4204,9 +3657,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "extra_labels_add": [ "STM32L152RC" ], - "detect_code": [ - "4100" - ], "device_has_remove": [ "SERIAL_FC" ], @@ -4232,9 +3682,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0710" - ], "device_name": "STM32L152RETx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF260945.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -4321,9 +3768,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "MCU_STM32L432xC" ], - "detect_code": [ - "0770" - ], "device_name": "STM32L432KCUx", "image_url": "https://eu.mouser.com/images/marketingid/2019/img/168228755.png?v=021424.0917" }, @@ -4347,9 +3791,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0779" - ], "device_name": "STM32L433RCTx", "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/2508/MFG_NUCLEO-L433RC-P.jpg" }, @@ -4380,9 +3821,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "LPTICKER" ], "device_name": "STM32L443RCTx", - "detect_code": [ - "0458" - ], "image_url": "https://www.mouser.com/images/advantechcorporation/lrg/WISE-1510WMB-SDA1E_DSL.jpg" }, "MCU_STM32L452xE": { @@ -4405,9 +3843,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0829" - ], "overrides": { // ADC vref on this board is connected to 3.3V VDD "default-adc-vref": 3.3 @@ -4435,9 +3870,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0312" - ], "components_add": [ "MULTITECH_DRAGONFLY_NANO_CELLULAR", ], @@ -4476,9 +3908,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0764" - ], "device_has_add": [ "QSPI", "USBDEVICE" @@ -4512,9 +3941,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0765" - ], "device_name": "STM32L476RGTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF260945.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -4528,9 +3954,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "extra_labels_add": [ "N25Q128A" ], - "detect_code": [ - "0820" - ], "device_has_add": [ "QSPI", "USBDEVICE" @@ -4562,9 +3985,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0827" - ], "device_name": "STM32L486RGTx", "image_url": "https://www.st.com/bin/ecommerce/api/image.PF260945.en.feature-description-include-personalized-no-cpn-medium.jpg" }, @@ -4599,9 +4019,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "components_add": [ "QSPIF" ], - "detect_code": [ - "0822" - ], "device_has_add": [ "USBDEVICE", "QSPI" @@ -4616,9 +4033,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0823" - ], "device_has_add": [ "USBDEVICE" ], @@ -4629,9 +4043,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "NUCLEO_L496ZG" ], - "detect_code": [ - "0828" - ] }, "MCU_STM32L4P5xG": { "inherits": [ @@ -4668,9 +4079,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "STM32L4R5ZI", "STM32L4R5xI" ], - "detect_code": [ - "0776" - ], "device_has_add": [ "USBDEVICE" ], @@ -4680,9 +4088,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "NUCLEO_L4R5ZI_P": { "inherits": [ "NUCLEO_L4R5ZI" - ], - "detect_code": [ - "0781" ] }, "MCU_STM32L4R9xI": { @@ -4716,9 +4121,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "HSE_VALUE=16000000" ], - "detect_code": [ - "0774" - ], "device_has_add": [ "QSPI", "OSPI", @@ -4759,9 +4161,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "HSE_VALUE=8000000" ], - "detect_code": [ - "0885" - ], "device_has_add": [ "USBDEVICE", "QSPI" @@ -4843,9 +4242,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARDUINO_UNO" ], "device_name": "STM32L552ZETxQ", - "detect_code": [ - "0854" - ], "image_url": "https://cdn11.bigcommerce.com/s-3fd3md1ghs/images/stencil/500x659/products/30236/11949/NUCLEO-L552ZE-Q__51179.1642762880.jpg?c=2" }, "MCU_STM32L562xE": { @@ -4886,9 +4282,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "BLE" ], "device_name": "STM32L562QEIxQ", - "detect_code": [ - "0854" - ], "image_url": "https://www.st.com/bin/ecommerce/api/image.PF268050.en.feature-description-include-personalized-no-cpn-medium.jpg" }, // STM32U0 Targets ------------------------------------------------------------------------------------------------- @@ -4965,9 +4358,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARDUINO_UNO" ], "device_name": "STM32U083RCTx", - "detect_code": [ - "0888" - ], "image_url": "https://www.st.com/bin/ecommerce/api/image.PF273876.en.feature-description-include-personalized-no-cpn-large.jpg" }, @@ -5051,9 +4441,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARDUINO_UNO" ], "device_name": "STM32U575ZITx", - "detect_code": [ - "886" - ], "overrides": { // As shipped, this nucleo board connects VREFP to VDD_MCU, and connects VDD_MCU to 3.3V. // Jumper JP4 can be used to switch VDD_MCU to 1.8V in which case you should override this setting to 1.8. @@ -5109,9 +4496,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "network-default-interface-type": "WIFI" }, - "detect_code": [ - "887" - ], "image_url": "https://www.st.com/bin/ecommerce/api/image.PF271412.en.feature-description-include-personalized-no-cpn-large.jpg" }, "MCU_STM32U545xE": { @@ -5221,9 +4605,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MCU_STM32WB" ], "public": false, - "supported_application_profiles": [ - "bare-metal" - ], "c_lib": "small", "extra_labels_add": [ "STM32WB15xC" @@ -5250,9 +4631,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0883" - ], "image_url": "https://www.mouser.com/images/stmicroelectronics/hd/NUCLEO-WB15CC_SPL.jpg" }, "MCU_STM32WB55xG": { @@ -5283,9 +4661,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0839" - ], "device_has_add": [ "USBDEVICE" ], @@ -5320,9 +4695,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0884" - ], "image_url": "https://www.st.com/bin/ecommerce/api/image.PF271050.en.feature-description-include-personalized-no-cpn-large.jpg" }, @@ -5388,9 +4760,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "0866" - ], "image_url": "https://www.mouser.com/images/marketingid/2020/img/114771861.png?v=012324.0355" }, "MCU_STM32WLE5xC": { @@ -5412,13 +4781,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", // See here for details: https://github.com/mbed-ce/mbed-os/wiki/MCU-Info-Page:-MIMXRT105x-and-106x "MIMXRT105X": { "core": "Cortex-M7FD", - "supported_toolchains": [ - "GCC_ARM" - ], - "supported_application_profiles": [ - "full", - "bare-metal" - ], "public": false, "extra_labels": [ "NXP", @@ -5496,9 +4858,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "device_has_add": [ "FLASH" ], - "detect_code": [ - "0227" - ], "overrides": { "network-default-interface-type": "ETHERNET" }, @@ -5531,7 +4890,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "startup": true } }, - "bootloader_supported": true, "device_name": "MIMXRT1052DVL6A", "image_url": "https://www.nxp.com/assets/images/en/dev-board-image/IMX_RT1050-EVKB_TOP-LR.jpg" }, @@ -5571,7 +4929,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "start": 0x80000000, "startup": false }, - // MIMXRT1050 EVK uses QSPI flash by default + // MIMXRT1060 EVK uses QSPI flash by default "EXT_FLASH": { "access": { "execute": true, @@ -5679,9 +5037,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARDUINO_UNO" ], "core": "Cortex-M7FD", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "NXP", "MCUXpresso_MCUS", @@ -5689,7 +5044,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MIMXRT1170", "IMX" ], - "is_disk_virtual": true, "macros": [ "CPU_MIMXRT1176DVMAA_cm7", "FSL_RTOS_MBED", @@ -5707,9 +5061,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "Target" ], - "detect_code": [ - "0228" - ], "device_has": [ "ANALOGIN", "FLASH", @@ -5723,20 +5074,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "LPTICKER", "USTICKER" ], - "release_versions": [ - "5" - ], - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "device_name": "MIMXRT1176DVMAA", "image_url": "https://www.nxp.com/assets/images/en/dev-board-image/MIMXRT1170-EVKB-TOP-IMG.jpg" }, @@ -5747,9 +5084,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARDUINO" ], "core": "Cortex-M4F", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "NXP", "MCUXpresso_MCUS", @@ -5757,7 +5091,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "LPCXpresso", "LPC" ], - "is_disk_virtual": true, "macros": [ "CPU_LPC54114J256BD64_cm4", "FSL_RTOS_MBED", @@ -5766,9 +5099,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "Target" ], - "detect_code": [ - "1054" - ], "device_has": [ "USTICKER", "RTC", @@ -5790,38 +5120,17 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "tickless-from-us-ticker": true, "init-us-ticker-at-boot": true }, - "release_versions": [ - "5" - ], - "post_binary_hook": { - "function": "LPCTargetCode.lpc_patch" - }, "device_name": "LPC54114J256BD64", - "supported_c_libs": { - "arm": [ - "std", "small" - ], - "gcc_arm": [ - "std", "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/691/OM13089UL.JPG" }, "MCU_LPC546XX": { "core": "Cortex-M4F", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "NXP", "MCUXpresso_MCUS", "LPC", "NXP_EMAC" ], - "is_disk_virtual": true, "public": false, "macros": [ "CPU_LPC54628J512ET180", @@ -5858,20 +5167,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "init-us-ticker-at-boot": true, "network-default-interface-type": "ETHERNET" }, - "post_binary_hook": { - "function": "LPCTargetCode.lpc_patch" - }, - "supported_c_libs": { - "arm": [ - "std", "small" - ], - "gcc_arm": [ - "std", "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "is_mcu_family_target": true }, "LPC546XX": { // AKA LPCXpresso54608 @@ -5884,12 +5179,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "extra_labels_add": [ "LPCXpresso" ], - "detect_code": [ - "1056" - ], - "release_versions": [ - "5" - ], "components_add": [ "QSPIF" ], @@ -5900,15 +5189,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "MCU_LPC546XX" ], - "detect_code": [ - "8081" - ], "device_has_remove": [ "QSPI" ], - "release_versions": [ - "5" - ], // Note: this target has a DataFlash flash on the board, BUT they actually pinned it out wrong: // SCLK is connected to SPI3, while MOSI and MISO are connected to SPI5. So, the flash is // impossible to use, at least without bodge wires! @@ -5938,17 +5221,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SPISLAVE", "TSC" ], - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "is_mcu_family_target": true }, "ARM_MPS2_M0": { @@ -5956,9 +5228,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARM_MPS2_Target" ], "core": "Cortex-M0", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "ARM_SSG", "MPS2", @@ -5984,11 +5253,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "TSC", "USTICKER" ], - "release_versions": [ - "5" - ], - "copy_method": "mps2", - "reset_method": "reboot.txt", "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/2161/MFG_V2M-MPS2-0318C.jpg" }, "ARM_MPS2_M0P": { @@ -5996,9 +5260,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARM_MPS2_Target" ], "core": "Cortex-M0+", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "ARM_SSG", "MPS2", @@ -6022,11 +5283,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "TSC", "USTICKER" ], - "release_versions": [ - "5" - ], - "copy_method": "mps2", - "reset_method": "reboot.txt", "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/2161/MFG_V2M-MPS2-0318C.jpg" }, "ARM_MPS2_M3": { @@ -6034,9 +5290,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARM_MPS2_Target" ], "core": "Cortex-M3", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "ARM_SSG", "MPS2", @@ -6061,11 +5314,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU", "USTICKER" ], - "release_versions": [ - "5" - ], - "copy_method": "mps2", - "reset_method": "reboot.txt", "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/2161/MFG_V2M-MPS2-0318C.jpg" }, "ARM_MPS2_M4": { @@ -6073,9 +5321,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARM_MPS2_Target" ], "core": "Cortex-M4F", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "ARM_SSG", "MPS2", @@ -6100,11 +5345,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU", "USTICKER" ], - "release_versions": [ - "5" - ], - "copy_method": "mps2", - "reset_method": "reboot.txt", "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/2161/MFG_V2M-MPS2-0318C.jpg" }, "ARM_MPS2_M7": { @@ -6112,9 +5352,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARM_MPS2_Target" ], "core": "Cortex-M7FD", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "ARM_SSG", "MPS2", @@ -6139,11 +5376,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU", "USTICKER" ], - "release_versions": [ - "5" - ], - "copy_method": "mps2", - "reset_method": "reboot.txt", "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/2161/MFG_V2M-MPS2-0318C.jpg" }, "ARM_IOTSS_Target": { @@ -6172,9 +5404,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARM_IOTSS_Target" ], "core": "Cortex-M3", - "supported_toolchains": [ - "GCC_ARM" - ], "components_add": [ "SMSC9220" ], @@ -6182,7 +5411,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARM_SSG", "CM3DS_MPS2" ], - "OUTPUT_EXT": "elf", "macros": [ "CMSDK_CM3DS" ], @@ -6204,35 +5432,19 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "USTICKER", "MPU" ], - "release_versions": [ - "5" - ], - "copy_method": "mps2", - "reset_method": "reboot.txt", "overrides": { "network-default-interface-type": "ETHERNET" }, - "detect_code": [ - "5004" - ], "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/2161/MFG_V2M-MPS2-0318C.jpg" }, "ARM_MUSCA_B1": { "inherits": [ "PSA_V8_M" ], - "default_toolchain": "ARMC6", "features_add": [ "EXPERIMENTAL_API" ], - "forced_reset_timeout": 20, - "release_versions": [ - "5" - ], "core": "Cortex-M33-NS", - "supported_toolchains": [ - "GCC_ARM" - ], "device_has_add": [ "INTERRUPTIN", "I2C", @@ -6255,21 +5467,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARM_SSG", "MUSCA_B1" ], - "post_binary_hook": { - "function": "ArmMuscaB1Code.binary_hook" - }, - "secure_image_filename": "tfm_s.bin", - "tfm_target_name": "arm/musca_b1/sse_200", - "tfm_bootloader_supported": true, - "tfm_default_toolchain": "ARMCLANG", - "tfm_supported_toolchains": [ - "ARMCLANG", - "GNUARM" - ], - "tfm_delivery_dir": "TARGET_ARM_SSG/TARGET_MUSCA_B1", - "detect_code": [ - "5007" - ], "OUTPUT_EXT": "bin", "image_url": "https://www.psacertified.org/app/uploads/2019/01/musca-b1-600x0-c-default.jpg" }, @@ -6277,18 +5474,10 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "PSA_V8_M" ], - "default_toolchain": "ARMC6", "features_add": [ "EXPERIMENTAL_API" ], - "forced_reset_timeout": 20, - "release_versions": [ - "5" - ], "core": "Cortex-M33-NS", - "supported_toolchains": [ - "GCC_ARM" - ], "device_has_add": [ "INTERRUPTIN", "I2C", @@ -6314,21 +5503,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "ARM_SSG", "MUSCA_S1" ], - "post_binary_hook": { - "function": "ArmMuscaS1Code.binary_hook" - }, - "secure_image_filename": "tfm_s.bin", - "tfm_target_name": "arm/musca_s1", - "tfm_bootloader_supported": true, - "tfm_default_toolchain": "ARMCLANG", - "tfm_supported_toolchains": [ - "ARMCLANG", - "GNUARM" - ], - "tfm_delivery_dir": "TARGET_ARM_SSG/TARGET_MUSCA_S1", - "detect_code": [ - "5009" - ], "OUTPUT_EXT": "bin", "image_url": "https://os.mbed.com/media/cache/platforms/Musca-S1_Rev_B_Board-1_transpant.png.250x250_q85.png" }, @@ -6340,9 +5514,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", ], "public": false, "core": "Cortex-A9", - "supported_toolchains": [ - "GCC_ARM" - ], "extra_labels": [ "RENESAS", "RZ_A1XX" @@ -6369,21 +5540,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SPISLAVE", "SPI_ASYNCH" ], - "program_cycle_s": 2, "overrides": { "network-default-interface-type": "ETHERNET" }, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "is_mcu_family_target": true }, "RZ_A1H": { // AKA GR-PEACH @@ -6407,11 +5566,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "FLASH", "LPTICKER" ], - "release_versions": [ - "5" - ], "device_name": "R7S72100", - "bootloader_supported": true, // 8MB serial flash on the board "memory_banks": { "EXT_FLASH": { @@ -6428,15 +5583,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "startup": true } }, - "sectors": [ - [ - 402653184, - 4096 - ] - ], - "detect_code": [ - "5500" - ], "image_url": "https://os.mbed.com/media/cache/platforms/GR-PEACH_C_trans.png.250x250_q85.png" }, "GR_LYCHEE": { @@ -6462,11 +5608,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "device_has_remove": [ "EMAC" ], - "release_versions": [ - "5" - ], "device_name": "R7S72103", - "bootloader_supported": true, "memory_banks": { "EXT_FLASH": { "access": { @@ -6482,25 +5624,15 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "startup": true } }, - "sectors": [ - [ - 402653184, - 4096 - ] - ], "overrides": { "network-default-interface-type": null }, - "detect_code": [ - "5501" - ], "image_url": "https://www.cnx-software.com/wp-content/uploads/2017/06/GR-LYCHEE.jpg" }, "RZ_A2XX": { "inherits": ["Target"], "public": false, "core": "Cortex-A9", - "supported_toolchains": ["GCC_ARM"], "extra_labels": ["RENESAS", "RZ_A2XX"], "device_has": [ "SLEEP", @@ -6525,27 +5657,13 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SPI_ASYNCH", "USBDEVICE" ], - "program_cycle_s": 2, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "is_mcu_family_target": true }, "GR_MANGO": { "inherits": ["RZ_A2XX"], "extra_labels_add": ["RZA2M", "MBRZA2M", "RENESAS_EMAC"], "device_has_add": ["EMAC","FLASH"], - "release_versions": ["5"], "device_name": "R7S921053", - "bootloader_supported": true, // 16MiB OSPI flash on PCB "memory_banks": { @@ -6563,13 +5681,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "startup": true } }, - "sectors": [[1342177280,4096]], "overrides": { "network-default-interface-type": "ETHERNET" }, - "detect_code": [ - "5502" - ], "image_url": "https://www.renesas.com/sites/default/files/media/images/gr-mango-top.png" }, @@ -6589,9 +5703,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Maxim", "MAX32620C" ], - "supported_toolchains": [ - "GCC_ARM" - ], "device_has": [ "ANALOGIN", "FLASH", @@ -6609,20 +5720,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "USTICKER" ], "device_name": "MAX32620", - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ], - "iar": [ - "std" - ] - }, "public": false, "is_mcu_family_target": true }, @@ -6630,18 +5727,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "MCU_MAX32620" ], - "detect_code": [ - "0418" - ], "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/895/MFG_MAX32620FTHR.jpg" }, "SDT32620B": { "inherits": [ "MCU_MAX32620" ], - "detect_code": [ - "3101" - ], "image_url": "https://os.mbed.com/media/cache/platforms/SDT32620B_size.png.250x250_q85.png" }, "MAX32625_BASE": { @@ -6658,9 +5749,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Maxim", "MAX32625" ], - "supported_toolchains": [ - "GCC_ARM" - ], "device_has": [ "ANALOGIN", "I2C", @@ -6679,45 +5767,24 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", ], "device_name": "MAX32625", "public": false, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ], - "iar": [ - "std" - ] - }, "is_mcu_family_target": true }, "MAX32625MBED": { "inherits": [ "MAX32625_BASE" ], - "detect_code": [ - "0415" - ], "image_url": "https://www.analog.com/en/_/media/analog/en/evaluation-board-maxim-images/max32625mbed.png?rev=cce27b18ca564ddbb28163b4612b7592&h=500&hash=5F057314B14CBC46F7A8EEC655632DCE" }, "SDT32625B": { "inherits": [ "MAX32625_BASE" ], - "detect_code": [ - "3102" - ], "image_url": "https://os.mbed.com/media/cache/platforms/SDT32625B_size_ZxsNDPt.png.250x250_q85.png" }, "MAX32625PICO": { "inherits": [ "MAX32625_BASE" ], - "bootloader_supported": true, // Reserve the first 64k of flash for the bootloader "memory_bank_config": { @@ -6727,9 +5794,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", } }, - "detect_code": [ - "0444" - ], "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/2592/MAX32625PICO%23.jpg" }, "MAX32630FTHR": { @@ -6749,9 +5813,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Maxim", "MAX32630" ], - "supported_toolchains": [ - "GCC_ARM" - ], "components_add": [ "SD" ], @@ -6772,23 +5833,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SLEEP", "USBDEVICE" ], - "detect_code": [ - "0409" - ], - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ], - "iar": [ - "std" - ] - }, "image_url": "https://www.analog.com/en/_/media/analog/en/evaluation-board-maxim-images/max32630fthr.png?rev=38a579856b25448c9369e8f1931bef09&h=270&hash=55F09D9FF86FDDA9FDAE27520485245E" }, "MAX32660": { @@ -6807,9 +5851,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Maxim", "MAX32660" ], - "supported_toolchains": [ - "GCC_ARM" - ], "device_has": [ "SERIAL", "SERIAL_FC", @@ -6826,17 +5867,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "WATCHDOG", "FLASH" ], - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - } }, "MAX32660EVSYS": { "inherits": [ @@ -6865,9 +5895,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "value": null } }, - "detect_code": [ - "0421" - ], "image_url": "https://www.analog.com/en/_/media/analog/en/evaluation-board-maxim-images/max32660evsys.png?rev=1b007b133cb349f692e1695e7e55de01&h=270&hash=81B37460C25087CDD9A37B6B87FCB0A5" }, "MAX32670": { @@ -6885,9 +5912,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Maxim", "MAX32670" ], - "supported_toolchains": [ - "GCC_ARM" - ], "device_has": [ "SERIAL", "SERIAL_FC", @@ -6926,17 +5950,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "value": 1 } }, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "device_name": "MAX32670", "is_mcu_family_target": true }, @@ -6950,19 +5963,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "extra_labels_add": [ "MAX32670EVKIT" ], - "detect_code": [ - "0424" - ], "image_url": "https://os.mbed.com/media/uploads/sadik_maxim/max32670evkit_daplink_fw_update.png" }, "XDOT_MAX32670": { "inherits": [ "MAX32670" ], - "bootloader_supported": true, - "detect_code": [ - "0351" - ], "image_url": "https://os.mbed.com/media/cache/platforms/xDot_Developer_Kit_with_xdot.png.250x250_q85.png" }, @@ -7038,20 +6044,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macro_name": "HFRCO_FREQUENCY" } }, - "bootloader_supported": true, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "public": false, "is_mcu_family_target": true }, @@ -7078,26 +6070,13 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "EFM32GG990F1024" ], - "supported_toolchains": [ - "GCC_ARM" - ], - "release_versions": [ - "5" - ], "device_name": "EFM32GG990F1024", - "public": false, - "supported_application_profiles": [ - "full", "bare-metal" - ] + "public": false }, "EFM32GG_STK3700": { // AKA EFM32 Giant Gecko "inherits": [ "EFM32GG990F1024" ], - "progen": { - "target": "efm32gg-stk" - }, - "forced_reset_timeout": 2, "config": { "board_controller_enable": { "help": "Pin to pull high for enabling the USB serial port", @@ -7105,9 +6084,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macro_name": "EFM_BC_EN" } }, - "detect_code": [ - "2015" - ], "overrides": { "hfrco_clock_freq": "21000000" }, @@ -7139,30 +6115,17 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "EFR32MG12P332F1024GL125" ], - "supported_toolchains": [ - "GCC_ARM" - ], - "release_versions": [ - "5" - ], "device_name": "EFR32MG12P332F1024GL125", - "public": false, - "supported_application_profiles": [ - "full", "bare-metal" - ] + "public": false }, "TB_SENSE_12": { // AKA Thunderboard Sense 2 "inherits": [ "EFR32MG12P332F1024GL125" ], - "forced_reset_timeout": 5, "overrides": { "network-default-interface-type": "MESH", "hfxo_clock_freq": "38400000", }, - "detect_code": [ - "2041" - ], "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/2145/MFG_SLTB004A.jpg" }, "EFM32GG11B820F2048GL192": { @@ -7191,23 +6154,13 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "EFM32GG11B820F2048GL192" ], - "supported_toolchains": [ - "GCC_ARM" - ], - "release_versions": [ - "5" - ], "device_name": "EFM32GG11B820F2048GL192", - "public": false, - "supported_application_profiles": [ - "full", "bare-metal" - ] + "public": false }, "EFM32GG11_STK3701": { "inherits": [ "EFM32GG11B820F2048GL192" ], - "forced_reset_timeout": 5, "config": { "board_controller_enable": { "help": "Pin to pull high for enabling the USB serial port", @@ -7224,9 +6177,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "network-default-interface-type": "ETHERNET", "hfxo_clock_freq": "50000000" }, - "detect_code": [ - "2042" - ], "image_url": "https://www.silabs.com/content/dam/siliconlabs/images/products/microcontrollers/32-bit_mcus/giant-gecko-gg11/efr32gg11-starter-kit.jpg" }, @@ -7305,27 +6255,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "value": 32 } }, - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" - ], "public": false, - "detect_code": [ - "1101" - ], - "program_cycle_s": 6, - "bootloader_supported": true, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "is_mcu_family_target": true }, "NRF52_DK": { @@ -7335,9 +6265,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "MCU_NRF52832" ], - "release_versions": [ - "5" - ], "device_name": "nRF52832_xxAA", "device_has_remove": [ "ITM" @@ -7360,21 +6287,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "NRF52_PAN_63", "NRF52_PAN_64" ], - "detect_code": [ - "1101" - ], "image_url": "https://www.nordicsemi.com/-/media/Images/Products/DevKits/nRF52-Series/nRF52-DK/nRF52-DK-render_prod-page.png?h=551&iar=0&mw=350&w=350&hash=DB87685680509C17DF15906A7DC9A289" }, "SDT52832B": { "inherits": [ "MCU_NRF52832" ], - "release_versions": [ - "5" - ], - "detect_code": [ - "3104" - ], "device_name": "nRF52832_xxAA", "image_url": "https://os.mbed.com/media/cache/platforms/SDT52832B_size.png.250x250_q85.png" }, @@ -7497,31 +6415,8 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "overrides": { "mpu-rom-end": "0x1fffffff" }, - "release_versions": [ - "5" - ], "device_name": "nRF52840_xxAA", - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" - ], "public": false, - "detect_code": [ - "1101" - ], - "program_cycle_s": 6, - "bootloader_supported": true, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, // This is the target for all boards using NRF52840 chips "is_mcu_family_target": true @@ -7533,9 +6428,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": [ "MCU_NRF52840" ], - "detect_code": [ - "1102" - ], "macros_add": [ "CONFIG_GPIO_AS_PINRESET" ], @@ -7545,9 +6437,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "value": false } }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "components_add": [ "QSPIF" ], @@ -7603,9 +6492,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "CONFIG_GPIO_AS_PINRESET" ], - "detect_code": [ - "2600" - ], "config": { "enable-objects-extensions": { "help": "Enable inclusion of objects_extensions.h", @@ -7635,7 +6521,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", }, "components_add": ["SPIF", "TELIT_ME310"], "components_remove": ["QSPIF"], - "release_versions": ["5"], "macros_add": [ "CONFIG_GPIO_AS_PINRESET" ], @@ -7645,26 +6530,21 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", // Nuvoton Targets ------------------------------------------------------------------------------------------------- "NUMAKER_PFM_NUC472": { "core": "Cortex-M4F", - "default_toolchain": "ARM", "extra_labels": [ "NUVOTON", "NUC472", "FLASH_CMSIS_ALGO", "NUVOTON_EMAC" ], - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" - ], "config": { "hxt-present": { "help": "High-speed external crystal oscillator HXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": false }, "lxt-present": { "help": "Low-speed external crystal oscillator LXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": true }, "gpio-irq-debounce-enable": { @@ -7688,7 +6568,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", }, "ebi-enable": { "help": "Enable EBI for EBI RAM", - "options": [false, true] + "accepted_values": [false, true] }, }, "inherits": [ @@ -7725,17 +6605,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "WATCHDOG", "USBDEVICE" ], - "release_versions": [ - "5" - ], - "sectors": [ - [ - 0, - 2048 - ] - ], "device_name": "NUC472HI8AE", - "bootloader_supported": true, "overrides": { "hxt-present": false, "lxt-present": true, @@ -7761,27 +6631,10 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "startup": false } }, - "detect_code": [ - "1302" - ], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "image_url": "https://os.mbed.com/media/uploads/MACRUM/img_9240.jpg" }, "NUMAKER_PFM_M453": { "core": "Cortex-M4F", - "default_toolchain": "ARM", "extra_labels": [ "NUVOTON", "M451", @@ -7789,19 +6642,15 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "NUMAKER_PFM_M453", "FLASH_CMSIS_ALGO" ], - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" - ], "config": { "hxt-present": { "help": "High-speed external crystal oscillator HXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": false }, "lxt-present": { "help": "Low-speed external crystal oscillator LXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": true }, "gpio-irq-debounce-enable": { @@ -7830,9 +6679,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "LPTICKER_DELAY_TICKS=4" ], - "progen": { - "target": "numaker-pfm-m453" - }, "device_has": [ "USTICKER", "LPTICKER", @@ -7861,66 +6707,32 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "RESET_REASON", "USBDEVICE" ], - "release_versions": [ - "5" - ], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ], - "iar": [ - "std" - ] - }, "c_lib": "small", - "supported_application_profiles": [ - "bare-metal" - ], - "sectors": [ - [ - 0, - 2048 - ] - ], "device_name": "M453VG6AE", - "bootloader_supported": true, "overrides": { "hxt-present": false, "lxt-present": true, "deep-sleep-latency": 1, "tickless-from-us-ticker": true }, - "detect_code": [ - "1303" - ], "image_url": "https://os.mbed.com/media/cache/platforms/Nu-mbed_M453_board_square.jpg.250x250_q85.jpg" }, "NUMAKER_PFM_NANO130": { "core": "Cortex-M0", - "default_toolchain": "ARM", "extra_labels": [ "NUVOTON", "NANO100", "NANO130KE3BN" ], - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" - ], "config": { "hxt-present": { "help": "High-speed external crystal oscillator HXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": false }, "lxt-present": { "help": "Low-speed external crystal oscillator LXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": true }, "gpio-irq-debounce-enable": { @@ -7982,26 +6794,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "RESET_REASON", "USBDEVICE" ], - "release_versions": [ - "5" - ], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ], - "iar": [ - "std" - ] - }, "c_lib": "small", - "supported_application_profiles": [ - "bare-metal" - ], "device_name": "NANO130KE3BN", "overrides": { "hxt-present": false, @@ -8009,34 +6802,26 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "deep-sleep-latency": 1, "tickless-from-us-ticker": true }, - "detect_code": [ - "1306" - ], "image_url": "https://www.nuvoton.com/export/sites/nuvoton/images/Microcontrollers/NuMaker-PFM-M487KM.png_576589920.png" }, "MCU_M460": { "core": "Cortex-M4F", - "default_toolchain": "ARM", "public": false, "extra_labels": [ "NUVOTON", "M460", "FLASH_CMSIS_ALGO", - "NUVOTON_EMAC" - ], - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" + "NUVOTON_EMAC" ], "config": { "hxt-present": { "help": "High-speed external crystal oscillator HXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": false }, "lxt-present": { "help": "Low-speed external crystal oscillator LXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": true }, "usb-uart": { @@ -8084,12 +6869,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", }, "exclude-uno-spi-from-fpga-ci-test-shield-test": { "help": "Exclude UNO SPI pins (D8/D9/D10/D11/D12/D13) from FPGA CI Test Shield test for wiring to on-board SPI flash", - "options": [false, true], + "accepted_values": [false, true], "value": false }, "hbi-enable": { "help": "Enable HBI for HyperRAM", - "options": [false, true] + "accepted_values": [false, true] }, "hbi-mfp-reg-list": { "help": "Comma separated multi-function pin register list to enable HBI for HyperRAM" @@ -8141,36 +6926,10 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "EMAC", "USBDEVICE" ], - "release_versions": [ - "5" - ], - "sectors": [ - [ - 0, - 4096 - ] - ], - "bootloader_supported": true, "overrides": { "deep-sleep-latency": 1, "tickless-from-us-ticker": true }, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ], - "iar": [ - "std" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "is_mcu_family_target": true }, "NUMAKER_IOT_M467": { @@ -8183,9 +6942,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "1313" - ], "device_name": "M467HJHAE", "overrides": { "hxt-present": false, @@ -8221,7 +6977,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", }, "MCU_M480": { "core": "Cortex-M4F", - "default_toolchain": "ARM", "public": false, "extra_labels": [ "NUVOTON", @@ -8229,19 +6984,15 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "FLASH_CMSIS_ALGO", "NUVOTON_EMAC" ], - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" - ], "config": { "hxt-present": { "help": "High-speed external crystal oscillator HXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": false }, "lxt-present": { "help": "Low-speed external crystal oscillator LXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": true }, "spim-ccm-enable": { @@ -8295,9 +7046,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "help": "Select high-speed USB device or not", "value": 0 }, - "wdt-reset-workaround": { + "wdt-reset-workaround": { "help": "Workaround to H/W limit with WDT reset from power-down", - "options": [false, true], + "accepted_values": [false, true], "value": true } }, @@ -8335,33 +7086,10 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "WATCHDOG", "USBDEVICE" ], - "release_versions": [ - "5" - ], - "sectors": [ - [ - 0, - 4096 - ] - ], - "bootloader_supported": true, "overrides": { "deep-sleep-latency": 1, "tickless-from-us-ticker": true }, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "is_mcu_family_target": true }, "NUMAKER_PFM_M487": { @@ -8372,9 +7100,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MBEDTLS_CONFIG_HW_SUPPORT" ], "device_name": "M487JIDAE", - "detect_code": [ - "1304" - ], "components_add": [ "SPIF" // 4MiB SPI flash. @@ -8403,9 +7128,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MBEDTLS_CONFIG_HW_SUPPORT" ], "device_name": "M487JIDAE", - "detect_code": [ - "1308" - ], "overrides": { "hxt-present": false, "lxt-present": true, @@ -8423,10 +7145,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", ], "public": false, "core": "Cortex-M23-NS", - "default_toolchain": "ARMC6", - "supported_toolchains": [ - "GCC_ARM" - ], "features_add": [ "EXPERIMENTAL_API" ], @@ -8438,11 +7156,10 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "CMSIS_NVIC_VIRTUAL", "LPTICKER_DELAY_TICKS=4" ], - "is_disk_virtual": true, "config": { "hxt-present": { "help": "High-speed external crystal oscillator HXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": false }, "usb-uart": { @@ -8518,20 +7235,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU", "USBDEVICE" ], - "release_versions": [ - "5" - ], - "sectors": [ - [ - 0, - 2048 - ] - ], - "bootloader_supported": true, - "forced_reset_timeout": 5, - "supported_application_profiles": [ - "full", "bare-metal" - ], "is_mcu_family_target": true }, "NU_M2354": { // AKA NUMAKER-M2354 @@ -8541,9 +7244,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "supported_form_factors": [ "ARDUINO_UNO" ], - "detect_code": [ - "1312" - ], "device_name": "M2354KJFAE", "overrides": { "hxt-present": false, @@ -8583,26 +7283,11 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "components_add": [ "TFM_S_FW" ], - "post_binary_hook": { - "function": "NuM2354Code.merge_secure" - }, - "secure_image_filename": "tfm_s.bin", - "tfm_target_name": "nuvoton/m2354", - "tfm_bootloader_supported": true, - "tfm_default_toolchain": "GNUARM", - "tfm_supported_toolchains": [ - "ARMCLANG", - "GNUARM" - ], - "tfm_delivery_dir": "TARGET_NUVOTON/TARGET_M2354/TARGET_TFM/TARGET_NU_M2354/COMPONENT_TFM_S_FW", "image_url": "https://direct.nuvoton.com/1085-large_default/numaker-m2354.jpg" }, "MCU_M251": { "core": "Cortex-M23", "public": false, - "trustzone": false, - "is_disk_virtual": true, - "default_toolchain": "ARMC6", "extra_labels": [ "NUVOTON", "M251", @@ -8611,18 +7296,15 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros_add": [ "LPTICKER_DELAY_TICKS=4" ], - "supported_toolchains": [ - "GCC_ARM" - ], "config": { "hxt-present": { "help": "High-speed external crystal oscillator HXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": false }, "lxt-present": { "help": "Low-speed external crystal oscillator LXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": true }, "usb-uart": { @@ -8709,39 +7391,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU", "WATCHDOG" ], - "sectors": [ - [ - 0, - 512 - ] - ], - "bootloader_supported": true, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "is_mcu_family_target": true }, "NUMAKER_IOT_M252": { // AKA NuMaker-LoRaD-M252 "inherits": [ "MCU_M251" ], - "detect_code": [ - "1309" - ], - "release_versions": [ - "2", - "5" - ], "device_name": "M252KG6AE", "overrides": { "usb-uart": "UART_0", @@ -8752,7 +7407,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", }, "MCU_M261": { "core": "Cortex-M23", - "default_toolchain": "ARMC6", "public": false, "extra_labels": [ "NUVOTON", @@ -8762,19 +7416,15 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "macros": [ "LPTICKER_DELAY_TICKS=4" ], - "is_disk_virtual": true, - "supported_toolchains": [ - "GCC_ARM" - ], "config": { "hxt-present": { "help": "High-speed external crystal oscillator HXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": false }, "lxt-present": { "help": "Low-speed external crystal oscillator LXT is present", - "options": [false, true], + "accepted_values": [false, true], "value": true }, "usb-uart": { @@ -8852,36 +7502,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "USBDEVICE", "CAN" ], - "release_versions": [ - "5" - ], - "sectors": [ - [ - 0, - 2048 - ] - ], - "bootloader_supported": true, "overrides": { "hxt-present": false, "lxt-present": true, "deep-sleep-latency": 1, "tickless-from-us-ticker": true }, - "forced_reset_timeout": 3, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "supported_application_profiles": [ - "full", "bare-metal" - ], "is_mcu_family_target": true }, "NUMAKER_IOT_M263A": { @@ -8889,9 +7515,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MCU_M261" ], "device_name": "M263KIAAE", - "detect_code": [ - "1310" - ], "overrides": { "usb-uart": "UART_0", "usb-uart-tx": "PB_13", @@ -8912,7 +7535,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "extra_labels": [ "ARM_FM" ], - "is_mcu_target_family": true + "is_mcu_family_target": true }, "FVP_MPS2": { "inherits": [ @@ -8925,10 +7548,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MBED_PSA_SRV" ], "public": false, - "supported_toolchains": [ - "GCC_ARM" - ], - "OUTPUT_EXT": "elf", "device_has": [ "AACI", "ANALOGIN", @@ -8949,24 +7568,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "TRNG", "USTICKER" ], - "release_versions": [ - "5" - ], "overrides": { "network-default-interface-type": "ETHERNET" - }, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, - "is_mcu_family_target": true + } }, "FVP_MPS2_M0": { "inherits": [ @@ -9035,7 +7639,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "CYBT_WAKE_ACTIVE_LOW=0", "CYBT_WAKE_ACTIVE_HIGH=1", - // These are named like Mbed components, but actually seem to be a definitions + // These are named like Mbed components, but actually seem to be definitions // used by the Cypress IDE-generated BSP. We just want to define them all the time. "COMPONENT_PSOC6=1", "COMPONENT_PSOC6HAL=1", @@ -9044,10 +7648,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "COMPONENT_CAT1=1", "COMPONENT_CAT1A=1", ], - "default_toolchain": "GCC_ARM", - "supported_toolchains": [ - "GCC_ARM" - ], "core": "Cortex-M4F", "OUTPUT_EXT": "hex", "device_has_add": [ @@ -9079,16 +7679,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "USTICKER", "WATCHDOG" ], - "release_versions": [ - "5" - ], "extra_labels_add": [ "Cypress", "PSOC6", "MXCRYPTO" ], "public": false, - "forced_reset_timeout": 5, "overrides": { "deep-sleep-latency": "CY_CFG_PWR_DEEPSLEEP_LATENCY" } @@ -9111,10 +7707,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "COMPONENT_BSP_DESIGN_MODUS=1", "COMPONENT_CM4=1", ], - "public": false, - "supported_application_profiles": [ - "full", "bare-metal" - ] + "public": false }, "MCU_PSOC62_CM4": { "inherits": [ @@ -9171,16 +7764,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", } }, - "detect_code": [ - "1901" - ], - "bootloader_supported": false, - "sectors": [ - [ - 268435456, - 512 - ] - ], "overrides": { "network-default-interface-type": "WIFI" }, @@ -9223,9 +7806,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", } }, - "detect_code": [ - "190B" - ], "overrides": { "network-default-interface-type": "WIFI" }, @@ -9266,9 +7846,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", } }, - "detect_code": [ - "190E" - ], "overrides": { "network-default-interface-type": "WIFI" }, @@ -9310,20 +7887,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", } }, - "detect_code": [ - "1900" - ], - "bootloader_supported": false, - "sectors": [ - [ - 268435456, - 512 - ] - ], "overrides": { "network-default-interface-type": "WIFI" }, - "program_cycle_s": 10, "image_url": "https://os.mbed.com/media/cache/platforms/P6_WiFi_Pionner_Kit.PNG.250x250_q85.png" }, "CY8CKIT_062_BLE": { // AKA PSoC 6 BLE Pioneer Kit @@ -9353,16 +7919,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", } }, - "detect_code": [ - "1902" - ], - "sectors": [ - [ - 268443648, - 512 - ] - ], - "bootloader_supported": false, "image_url": "https://os.mbed.com/media/cache/platforms/SS2_3797_with_out_USB_cable.jpg.250x250_q85.jpg" }, "CYW9P62S1_43438EVB_01": { // AKA CYW9P62S1-43438EVB-01 PSoC 62S1 Wi-Fi BT Pioneer Kit @@ -9401,20 +7957,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", } }, - "detect_code": [ - "1900" - ], - "bootloader_supported": false, - "sectors": [ - [ - 268435456, - 512 - ] - ], "overrides": { "network-default-interface-type": "WIFI" }, - "program_cycle_s": 10, // This is not a great picture but it's the best I could find... "image_url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/424/MFG_CY8CKIT-062S2-43012.jpg" @@ -9458,9 +8003,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", } }, - "detect_code": [ - "1903" - ], "overrides": { "network-default-interface-type": "WIFI" }, @@ -9501,22 +8043,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "CY_IPC_DEFAULT_CFG_DISABLE", "CYBSP_WIFI_CAPABLE" ], - "detect_code": [ - "1910" - ], - "forced_reset_timeout": 5, - "hex_filename": "psoc6_02_cm0p_secure.hex", - "cm0_img_id": 1, - "cm4_img_id": 16, - "boot_scheme": "single_image", - "policy_file": "policy_single_CM0_CM4.json", - "post_binary_hook": { - "function": "PSOC6Code.sign_image" - }, "overrides": { "network-default-interface-type": "WIFI" }, - "program_cycle_s": 10, "device_name": "CYB0644ABZI-S2D44", "image_url": "https://os.mbed.com/media/cache/platforms/SSP_8683_Ywwh0ix.jpg.250x250_q85.jpg" }, @@ -9562,30 +8091,9 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MXCRYPTO_DISABLED", "TFM_MULTI_CORE_MULTI_CLIENT_CALL=1" ], - "detect_code": [ - "1910" - ], - "forced_reset_timeout": 5, - "hex_filename": "tfm_s.hex", - "cm0_img_id": 1, - "cm4_img_id": 16, - "boot_scheme": "multi_image", - "policy_file": "policy_multi_CM0_CM4_tfm.json", - "post_binary_hook": { - "function": "PSOC6Code.sign_image" - }, "overrides": { "network-default-interface-type": "WIFI" }, - "program_cycle_s": 10, - "tfm_target_name": "psoc64", - "tfm_bootloader_supported": false, - "tfm_default_toolchain": "GNUARM", - "tfm_supported_toolchains": [ - "GNUARM" - ], - "tfm_delivery_dir": "TARGET_Cypress/TARGET_PSOC6/TARGET_CYTFM_064B0S2_4343W/COMPONENT_TFM_S_FW", - "TFM_OUTPUT_EXT": "hex", "device_name": "CYB0644ABZI-S2D44", "image_url": "https://os.mbed.com/media/cache/platforms/SSP_8683_Ywwh0ix.jpg.250x250_q85.jpg" }, @@ -9595,10 +8103,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "inherits": ["Target"], "core": "Cortex-M4F", "features": ["BLE"], - "default_toolchain": "GCC_ARM", - "supported_toolchains": [ - "GCC_ARM" - ], "public": false, "extra_labels": [ "Ambiq_Micro", @@ -9624,17 +8128,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "USE_AMBIQ_DRIVER", "MBED_TICKLESS" ], - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "overrides": { // Currently the analog in HAL driver sets the voltage reference to the internal 2V reference @@ -9690,16 +8183,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Target" ], "core": "Cortex-M4F", - "is_disk_virtual": true, "extra_labels": [ "TOSHIBA" ], "macros": [ "__TMPM46B__" ], - "supported_toolchains": [ - "GCC_ARM" - ], "device_has": [ "USTICKER", "ANALOGIN", @@ -9723,24 +8212,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "SLEEP" ], "device_name": "TMPM46BF10FG", - "detect_code": [ - "7013" - ], - "release_versions": [ - "5" - ], - "bootloader_supported": true, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "image_url": "https://www.chip1stop.com/img/product/SSST/0109140533_5a544d9d16351.JPG" }, "TMPM4G9": { // AKA AdBun-M4G9 @@ -9748,16 +8219,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Target" ], "core": "Cortex-M4F", - "is_disk_virtual": true, "extra_labels": [ "TOSHIBA" ], "macros": [ "__TMPM4G9__" ], - "supported_toolchains": [ - "GCC_ARM" - ], "device_has": [ "ANALOGIN", "ANALOGOUT", @@ -9782,24 +8249,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU" ], "device_name": "TMPM4G9F15FG", - "detect_code": [ - "7015" - ], - "release_versions": [ - "5" - ], - "bootloader_supported": true, - "supported_application_profiles" : ["full", "bare-metal"], - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "image_url": "https://os.mbed.com/media/cache/platforms/AdBun-TMPM4G9_Wm9FG1c.png.250x250_q85.jpg" }, // As of Jun 2024, this board can still apparently be purchased by sending an email (!!) @@ -9812,10 +8261,8 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "TMPM4KN": { // AKA TMPM-M4KN-SBK from ESP Co. "inherits": ["Target"], "core": "Cortex-M4F", - "is_disk_virtual": true, "extra_labels": ["TOSHIBA"], "macros": ["__TMPM4KN__"], - "supported_toolchains": ["GCC_ARM"], "device_has": [ "ANALOGIN", "INTERRUPTIN", @@ -9836,14 +8283,7 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "FLASH" ], "device_name": "TMPM4KNFYAFG", - "detect_code": ["7020"], - "release_versions": ["5"], - "bootloader_supported": true, - "supported_application_profiles" : ["full"], "supported_c_libs": { - "arm": [ - "std" - ], "gcc_arm": [ "std" ] @@ -9855,16 +8295,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Target" ], "core": "Cortex-M4F", - "is_disk_virtual": true, "extra_labels": [ "TOSHIBA" ], "macros": [ "TMPM4NR" ], - "supported_toolchains": [ - "GCC_ARM" - ], "device_has": [ "ANALOGIN", "ANALOGOUT", @@ -9889,23 +8325,6 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU" ], "device_name": "TMPM4NRF20FG", - "detect_code": [ - "7022" - ], - "release_versions": [ - "5" - ], - "bootloader_supported": true, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "image_url": "https://wiki.segger.com/images/thumb/8/8a/tmpm4nr.jpg/300px-tmpm4nr.jpg" }, "TMPM4GR": { // AKA AdBun-M4GR @@ -9913,16 +8332,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "Target" ], "core": "Cortex-M4F", - "is_disk_virtual": true, "extra_labels": [ "TOSHIBA" ], "macros": [ "__TMPM4GR__" ], - "supported_toolchains": [ - "GCC_ARM" - ], "device_has": [ "ANALOGIN", "ANALOGOUT", @@ -9947,33 +8362,12 @@ mode is recommended for target MCUs with small amounts of flash and RAM.", "MPU" ], "device_name": "TMPM4GRF20FG", - "detect_code": [ - "7021" - ], - "release_versions": [ - "5" - ], - "bootloader_supported": true, - "supported_c_libs": { - "arm": [ - "std", - "small" - ], - "gcc_arm": [ - "std", - "small" - ] - }, "image_url": "https://wiki.segger.com/images/thumb/6/68/tmpm4gr.jpg/402px-tmpm4gr.jpg" }, "RP2040": { "public": false, "inherits": ["Target"], "core": "Cortex-M0+", - "supported_toolchains": ["GCC_ARM"], - "supported_application_profiles": [ - "full", "bare-metal" - ], "extra_labels": [ "RASPBERRYPI", "memmap_default" diff --git a/tools/cmake/mbed_target_functions.cmake b/tools/cmake/mbed_target_functions.cmake index 645d15563f2..cba758b21f9 100644 --- a/tools/cmake/mbed_target_functions.cmake +++ b/tools/cmake/mbed_target_functions.cmake @@ -108,23 +108,6 @@ function(mbed_generate_map_file target) endif() endfunction() -# -# Validate selected application profile. -# -function(mbed_validate_application_profile target) - get_target_property(app_link_libraries ${target} LINK_LIBRARIES) - string(FIND "${app_link_libraries}" "mbed-baremetal" string_found_position) - if(${string_found_position} GREATER_EQUAL 0) - if(NOT "bare-metal" IN_LIST MBED_TARGET_SUPPORTED_APPLICATION_PROFILES) - message(FATAL_ERROR - "Use full profile as baremetal profile is not supported for this Mbed target") - endif() - elseif(NOT "full" IN_LIST MBED_TARGET_SUPPORTED_APPLICATION_PROFILES) - message(FATAL_ERROR - "The full profile is not supported for this Mbed target") - endif() -endfunction() - # # Set post build operations # @@ -180,7 +163,6 @@ function(mbed_set_post_build target) ) mbed_configure_memory_map(${target} "${CMAKE_CURRENT_BINARY_DIR}/${target}${CMAKE_EXECUTABLE_SUFFIX}.map") - mbed_validate_application_profile(${target}) mbed_generate_bin_hex(${target}) if(COMMAND mbed_post_build_function) @@ -201,6 +183,7 @@ function(mbed_finalize_build) get_property(FINALIZE_BUILD_CALLED GLOBAL PROPERTY MBED_FINALIZE_BUILD_CALLED SET) if("${FINALIZE_BUILD_CALLED}") message(WARNING "Mbed: Deprecated: mbed_finalize_build() is now automatically called, so you don't need to call it in CMakeLists.txt") + return() endif() mbed_finalize_ide_debug_configurations() diff --git a/tools/pyproject.toml b/tools/pyproject.toml index a7bb5c6d792..077bf9c5a3d 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -26,9 +26,15 @@ dependencies = [ "typing-extensions>=4.4.0", "pyserial", "appdirs", - "pyjson5>=1.6", "humanize>=4.9.0", "setuptools>=64.0", + "pydantic>=2.5", # note: 2.5 is the last version that supports python3.7 + "eval_type_backport", # Lets pydantic use new-style type annotations on old Python versions + + # We need two JSON5 parsers because 'json5' is slow as hell, but 'pyjson5' has completely inscrutable + # error messages when parsing fails. Combining them produces a decent experience. + "pyjson5>=1.6", + "json5>=0.10", # Needed for downloading CMSIS MCU descriptions "cmsis-pack-manager>=0.5.0", diff --git a/tools/python/mbed_tools/build/_internal/config/assemble_build_config.py b/tools/python/mbed_tools/build/_internal/config/assemble_build_config.py index 511987b9c25..90ea47b857f 100644 --- a/tools/python/mbed_tools/build/_internal/config/assemble_build_config.py +++ b/tools/python/mbed_tools/build/_internal/config/assemble_build_config.py @@ -4,14 +4,26 @@ # """Configuration assembly algorithm.""" +from __future__ import annotations + +import logging from dataclasses import dataclass -from pathlib import Path -from typing import Iterable, List, Optional, Set +from typing import TYPE_CHECKING, Iterable, List, Optional, Set + +import pydantic from mbed_tools.build._internal.config import source from mbed_tools.build._internal.config.config import Config -from mbed_tools.build._internal.find_files import LabelFilter, RequiresFilter, filter_files, find_files -from mbed_tools.project import MbedProgram +from mbed_tools.build._internal.config.schemas import MbedAppJSON +from mbed_tools.build._internal.find_files import LabelFilter, filter_files, find_files +from mbed_tools.lib.json_helpers import decode_json_file + +if TYPE_CHECKING: + from pathlib import Path + + from mbed_tools.project import MbedProgram + +logger = logging.getLogger(__name__) def assemble_config(target_attributes: dict, program: MbedProgram) -> Config: @@ -38,10 +50,12 @@ def assemble_config(target_attributes: dict, program: MbedProgram) -> Config: mbed_lib_files.update(find_files("mbed_lib.json", path.absolute().resolve())) mbed_lib_files.update(find_files("mbed_lib.json5", path.absolute().resolve())) - config = _assemble_config_from_sources(target_attributes, list(mbed_lib_files), program.files.app_config_file) + config, used_mbed_lib_files = _assemble_config_from_sources( + target_attributes, list(mbed_lib_files), program.files.app_config_file + ) # Set up the config source path list using the path to every JSON - config.json_sources.extend(mbed_lib_files) + config.json_sources.extend(used_mbed_lib_files) if program.files.app_config_file is not None: config.json_sources.append(program.files.app_config_file) config.json_sources.append(program.mbed_os.targets_json_file) @@ -64,47 +78,39 @@ def make_relative_if_possible(path: Path) -> Path: def _assemble_config_from_sources( target_attributes: dict, mbed_lib_files: List[Path], mbed_app_file: Optional[Path] = None -) -> Config: - config = Config(**source.prepare(target_attributes, source_name="target")) - previous_filter_data = None - app_data = None +) -> tuple[Config, list[Path]]: + config = Config(**source.prepare("merged target JSON", target_attributes, source_name="target")) + + # Process mbed_lib.json files according to the filter. + filter_data = FileFilterData.from_config(config) + filtered_files = list(_filter_files(mbed_lib_files, filter_data)) + for config_file in filtered_files: + mbed_lib_config_source = source.from_mbed_lib_json_file(config_file, target_filters=filter_data.labels) + config.update(mbed_lib_config_source) + # Remove any mbed_lib files we've already visited from the list so we don't parse them multiple times. + mbed_lib_files.remove(config_file) + + # Apply mbed_app.json data last so config parameters are overridden in the correct order. if mbed_app_file: - # We need to obtain the file filter data from mbed_app.json so we can select the correct set of mbed_lib.json - # files to include in the config. We don't want to update the config object with all of the app settings yet - # as we won't be able to apply overrides correctly until all relevant mbed_lib.json files have been parsed. - app_data = source.from_file( - mbed_app_file, default_name="app", target_filters=FileFilterData.from_config(config).labels - ) - _get_app_filter_labels(app_data, config) - - current_filter_data = FileFilterData.from_config(config) - while previous_filter_data != current_filter_data: - filtered_files = _filter_files(mbed_lib_files, current_filter_data) - for config_file in filtered_files: - config.update(source.from_file(config_file, target_filters=current_filter_data.labels)) - # Remove any mbed_lib files we've already visited from the list so we don't parse them multiple times. - mbed_lib_files.remove(config_file) - - previous_filter_data = current_filter_data - current_filter_data = FileFilterData.from_config(config) + mbed_app_json_dict = decode_json_file(mbed_app_file) - # Apply mbed_app.json data last so config parameters are overriden in the correct order. - if app_data: + # For right now, we check that mbed_app.json does validate against the schema, but we don't fail configuration + # if it does not pass the schema. This provides compatibility with older projects, as mbed_app.json has + # historically been a total wild west where any internal Mbed state could potentially be overridden. + try: + _ = MbedAppJSON.model_validate(mbed_app_json_dict, strict=True) + except pydantic.ValidationError as ex: + logger.warning( + "mbed_app.json5 failed to validate against the schema. This likely means it contains deprecated attributes, misspelled attributes, or overrides for things that should not be set in mbed_app.json5. This version of mbed-os still allows this, but this will change in the future." + ) + logger.warning("Error was: %s", str(ex)) + + app_data = source.prepare( + "mbed_app.json5", mbed_app_json_dict, source_name="app", target_filters=filter_data.labels + ) config.update(app_data) - return config - - -def _get_app_filter_labels(mbed_app_data: dict, config: Config) -> None: - requires = mbed_app_data.get("requires") - if requires: - config["requires"] = requires - - config.update(_get_file_filter_overrides(mbed_app_data)) - - -def _get_file_filter_overrides(mbed_app_data: dict) -> dict: - return {"overrides": [override for override in mbed_app_data.get("overrides", []) if override.modifier]} + return config, filtered_files @dataclass(frozen=True) @@ -117,7 +123,7 @@ class FileFilterData: requires: Set[str] @classmethod - def from_config(cls, config: Config) -> "FileFilterData": + def from_config(cls, config: Config) -> FileFilterData: """Extract file filters from a Config object.""" return cls( labels=config.get("labels", set()) | config.get("extra_labels", set()), @@ -132,6 +138,5 @@ def _filter_files(files: Iterable[Path], filter_data: FileFilterData) -> Iterabl LabelFilter("TARGET", filter_data.labels), LabelFilter("FEATURE", filter_data.features), LabelFilter("COMPONENT", filter_data.components), - RequiresFilter(filter_data.requires), ) return filter_files(files, filters) diff --git a/tools/python/mbed_tools/build/_internal/config/config.py b/tools/python/mbed_tools/build/_internal/config/config.py index 0b938201994..f2b13b383b6 100644 --- a/tools/python/mbed_tools/build/_internal/config/config.py +++ b/tools/python/mbed_tools/build/_internal/config/config.py @@ -64,7 +64,7 @@ def _handle_overrides(self, overrides: Iterable[Override]) -> None: _apply_override(self.data, override) continue - setting = next( + setting: ConfigSetting | None = next( filter( lambda x: x.name == override.name and x.namespace == override.namespace, self.data.get(CONFIG_SECTION, []), @@ -73,7 +73,7 @@ def _handle_overrides(self, overrides: Iterable[Override]) -> None: ) if setting is None: logger.warning( - f"You are attempting to override an undefined config parameter " + f"{override.context} is attempting to override an undefined config parameter " f"`{override.namespace}.{override.name}`.\n" "It is an error to override an undefined configuration parameter. " "Please check your target_overrides are correct.\n" @@ -92,6 +92,7 @@ def _handle_overrides(self, overrides: Iterable[Override]) -> None: ) else: setting.value = override.value + setting.check_value() def _update_config_section(self, config_settings: List[ConfigSetting]) -> None: for setting in config_settings: diff --git a/tools/python/mbed_tools/build/_internal/config/schemas.py b/tools/python/mbed_tools/build/_internal/config/schemas.py new file mode 100644 index 00000000000..06f4cf7927a --- /dev/null +++ b/tools/python/mbed_tools/build/_internal/config/schemas.py @@ -0,0 +1,634 @@ +# +# Copyright (c) 2025 Jamie Smith +# SPDX-License-Identifier: Apache-2.0 +# + +""" +Pydantic schemas for Mbed OS JSON config files. +""" + +from __future__ import annotations + +from typing import Literal, Union + +from pydantic import BaseModel, ConfigDict, Field, model_validator +from typing_extensions import Self + +ConfigSettingValue = Union[int, float, bool, str, None] + + +class ConfigEntryDetails(BaseModel): + """ + Details for an entry in a JSON file's 'config' section. + + This defines the attributes of a configurable setting + for a library, target, or application. + """ + + # Throw an error during validation if there are extra fields + model_config = ConfigDict(extra="forbid") + + macro_name: str | None = None + """ + Name of the macro that this setting shall generate. If unset, defaults to + ``'MBED_CONF__'``, where + is the current namespace, i.e. the value of the "name" property for mbed_lib.json5 files, + "target" for targets.json5 entries, and "app" in mbed_app.json5. + """ + + value: ConfigSettingValue = None + """ Default value for this setting when not overridden. """ + + help: str | None = None + """ Documentation associated with this setting. """ + + accepted_values: list[ConfigSettingValue] | None = None + """ + Enumeration of legal values for this setting. A warning will be issued if the setting is set to + a value not in this list. + """ + + value_max: int | float | None = None + """ + For integer or floating point values, this gives the maximum allowed value. + """ + + value_min: int | float | None = None + """ + For integer or floating point values, this gives the minimum allowed value. + """ + + @model_validator(mode="after") + def verify_max_min(self) -> Self: + if self.accepted_values is not None and (self.value_max is not None or self.value_min is not None): + msg = "May not specify both 'accepted_values' and 'value_min'/'value_max' at the same time!" + raise ValueError(msg) + + if self.value_max is not None and self.value_min is not None: + if self.value_max < self.value_min: + msg = "value_max cannot be less than value_min!" + raise ValueError(msg) + + return self + + +class MemoryBankConfiguration(BaseModel): + """ + Configuration of one memory bank in JSON. + + This is a "mini" version of MemoryBankDefinition that just allows setting the size and start address. + """ + + # Throw an error during validation if there are extra fields + model_config = ConfigDict(extra="forbid") + + start: int | None = None + """ + Start address of the memory region. + """ + + size: int | None = None + """ + Size of the memory region in bytes. + """ + + +class BaseJSONConfig(BaseModel): + """ + Base schema for JSON config files. + + This schema is the parent of the schemas for mbed_app.json5 and mbed_lib.json5, + as well as each entry in targets.json5. + """ + + # Throw an error during validation if there are extra fields + model_config = ConfigDict(extra="forbid") + + config: dict[str, ConfigSettingValue | ConfigEntryDetails] = Field(default_factory=dict) + """ + Configuration items for this library or app. These can be defined directly as "name": default value, or as + "name": {details...} (see ConfigEntryDetails above). Using details is recommended as it allows + adding documentation for the setting. + + By convention, the name used for a configuration setting should be in skewer-case and should not contain + periods, underscores, or uppercase letters. + + In target JSON, this is a merging attribute in its base form. + """ + + macros: list[str] | None = None + """ + List of macros to unconditionally define when this lib is included, in "NAME" or "NAME=VALUE" format. + + In target JSON, this is an accumulating attribute. + """ + + overrides: dict[str, ConfigSettingValue | MemoryBankConfiguration] = Field(default_factory=dict) + """ + List of overrides to unconditionally apply when this lib is included. + + Overrides take the form ``"[.]": `` and cause the value of the given config + setting to be changed to the given value. If the namespace is omitted, it will be set to the current + namespace (i.e. the value of the "name" property for mbed_lib.json5 files, "target" for targets.json5 entries, and + "app" in mbed_app.json5). + + Note that in mbed_lib.json files, only settings defined in the current file or in the 'app' namespace + (mbed_app.json) can be overridden. + + Override priority is defined as first mbed_app.json5, then mbed_lib.json5 files, then targets.json5. + So, for example, an override defined in mbed_app.json5 supersedes any other overrides of that + same setting. + + Override order between different mbed_lib.json5 files is not currently defined but should not matter + because they cannot override settings from targets.json5 or other mbed_lib.json5 files. + + Note that, in mbed_app.json only, the "target.memory_bank_config" setting may be included in this list + in order to specify memory bank configuration. Its value is a MemoryBankConfiguration rather than a regular + primitive type. + + In target JSON, this is a merging attribute. + """ + + @model_validator(mode="after") + def verify_memory_bank_config_used_where_appropriate(self) -> Self: + for name, value in self.overrides.items(): + if name == "target.memory_bank_config": + if not isinstance(self, MbedAppJSON): + msg = 'target.memory_bank_config is only allowed in "overrides" mbed_app.json5!' + raise ValueError(msg) + if not isinstance(value, MemoryBankConfiguration): + msg = 'target.memory_bank_config in "overrides" must be a MemoryBankConfiguration schema element!' + raise ValueError(msg) + else: + if isinstance(value, MemoryBankConfiguration): + msg = 'Only target.memory_bank_config in "overrides" may be a dict! Everything else must be a primitive type!' + raise ValueError(msg) + return self + + +class MbedLibJSON(BaseJSONConfig): + """ + Schema for an mbed_lib.json5 config file. + + This type of config file provides information about a library (inside or outside the Mbed OS source tree) + to the Mbed configuration system. + """ + + # Throw an error during validation if there are extra fields + model_config = ConfigDict(extra="forbid") + + name: str + """ + The name of this library. This is also considered the 'namespace' and will be prepended to all + configuration settings generated by this file. + """ + + target_overrides: dict[str, dict[str, ConfigSettingValue]] = Field(default_factory=dict) + """ + List of overrides applied based on target labels. This is similar to the "overrides" section, + but allows applying the override only if the target has a specific label. Labels generally + come from the names of the target and its parents, but targets can also add extra ones. + For example:: + + "target_overrides": { + "MIMXRT105X": { + "some-setting": some-value + } + } + + would apply the override only for targets in the MIMXRT105X target family. + + The magic target label "*" is always present and is equivalent to using the "overrides" section. + + Also note that the override priority between different sections within target_overrides, and between + target_overrides and overrides, is not currently defined. So, if you override the same setting in both, + results may not be what you expect. + """ + + +class MemoryBankDefinition(BaseModel): + """ + Definition of one memory bank in JSON. + + This follows the schema defined by the CMSIS spec: + https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/pdsc_family_pg.html#element_memory + (though this data gets converted from XML to JSON by the cmsis-pack-manager tool) + """ + + # Throw an error during validation if there are extra fields + model_config = ConfigDict(extra="forbid") + + default: bool = False + """ + Hint from the CMSIS data that this memory region should be used for storing general data/code. + If this is false, the memory region requires special considerations (access speed, remapping, protection, etc.) + and should not be used without user configuration. + + This is not used by Mbed for actually determining where to put stuff, that is handled by the linker script! + """ + + startup: bool = False + """ + Hint from the CMSIS data that the startup code of the application should be placed into this memory region. + + This is not used by Mbed for actually determining where to put stuff, that is handled by the linker script! + """ + + access: dict[ + Literal["execute", "non_secure", "non_secure_callable", "peripheral", "read", "secure", "write"], bool + ] = Field(default_factory=dict) + """ + Access permissions of the memory, as defined by CMSIS. + + This is used by Mbed to detect the bank type. Banks with read and write permission are assumed to be ram, + while banks with read and execute permissions are assumed to be flash. Banks without read and (write || execute) + permissions are ignored (assumed to be ROM or other memory areas). The other permission fields are currently + unused by Mbed. + """ + + start: int + """ + Start address of the memory region. + """ + + size: int + """ + Size of the memory region in bytes. + """ + + +class TargetJSON(BaseJSONConfig): + """ + Schema for one entry in targets.json5. + """ + + # Throw an error during validation if there are extra fields + model_config = ConfigDict(extra="forbid") + + inherits: list[str] = Field(default_factory=list) + """ + Parent target(s) to inherit this target's attributes from. + + Multiple parent targets are allowed, but be careful as the inheritance tree is flattened into a list before + being processed, which can cause some possibly unexpected behavior. See below for more details. + + In the Mbed target configuration language, each attribute has one of four behaviors with respect to inheritance: + "overriding", "merging", "accumulating", and "non-inherited". + + Overriding attributes are the simplest, and work like regular inheritance in programming: the value of the attribute + from the "closest" ancestor is used, and all other values are discarded. + + To determine the attribute's value, the inheritance tree is flattened into a list using a depth-first traversal + that visits the first parent of each target first. For example, the inheritance tree diagram for target "A" below:: + + D E + | | + B C + |_____| + | + A + + Would give us an inheritance order of [A, B, D, C, E]. Then, the overriding attribute's value would be taken + from the first target in this list to contain the attribute. + + Merging attributes work similarly to overriding ones but are all of dict type. With merging attributes, + the dicts are merged together between each target and its parents, with only elements with the same keys + overriding based on the order above. + + Accumulating attributes, on the other hand, work very differently. These are all of list type, and have + three forms: "", "_add", and "_remove". Using the first of those forms (the base form) + gives the attribute its initial value, and the second and third forms remove the attribute from parent targets. + + UNLIKE overriding and merging attributes, accumulating attributes use a breadth-first search to flatten + the inheritance hierarchy. (why? no idea! Probably for legacy compatibility...). For example, an inheritance + tree diagram for the target "A" below:: + + D E + | | + B C + |_____| + | + A + + Would give us an inheritance order of [A, B, C, D, E]. To process this, the first occurrence of the bare + attribute name in the above list is found, and then we work backwards towards target A processing "_add" and + "_remove" directives until the full set of values is built up. + + *note:* Based on my current understanding of this code, if no parent target defines the attribute in base form, + then the child targets cannot add to the value using "_add" - the config system will simply treat the attribute as + not existing. This is probably why Target, the base for all targets, defines every property as its empty + value. -Jamie + + Last but not least, non-inherited attributes simply are not affected by parent targets at all, and have their + own value based on what is set in the individual target definition. + """ + + public: bool = True + """ + Whether this target is intended for user use and can be passed as a target when building Mbed. + Set this to false for targets that are incomplete and intended to be inherited from other targets. + + This is a non-inherited attribute. + """ + + core: str | None = None + """ + Name of the CPU core used by this target. This gets set into the MBED_CPU_CORE CMake variable and + is used to select the correct compile flags. + + This is an overriding attribute. + """ + + supported_form_factors: list[Literal["ARDUINO_UNO", "ARDUINO", "PMOD", "STMOD"]] = Field(default_factory=list) + """ + Form factors that this board supports. + Form factors provide a standard electrical interface with standardized pin locations and functions for + add-on boards. Enabling a form factor enables its standard pin names. + See https://web.archive.org/web/20240620001521/https://os.mbed.com/docs/mbed-os/v6.16/porting/standard-pin-names.html + + This is an overriding attribute. + """ + + macros_add: list[str] = Field(default_factory=list) + """ + Macros to add (see "macros"). + Using this attribute adds macros to the set defined by parent target(s), rather than overwriting it. + + This is an accumulating attribute in its add form. + """ + + macros_remove: list[str] = Field(default_factory=list) + """ + Macros to remove (see "macros"). + Using this attribute removes macros from the set defined by parent target(s), rather than overwriting it. + + This is an accumulating attribute in its remove form. + + Note that this specific attribute has some special behavior, in that the value after the "=" in the macro + definition can be ignored when finding matches to remove. So if the parent target adds a macro "FOO=7", then + doing ``"macros_remove": ["FOO"]`` in a child target is enough to remove it. + """ + + extra_labels: list[str] = Field(default_factory=list) + """ + Additional labels to add for this target and targets that inherit from it. + Labels are added to the ``MBED_TARGET_LABELS`` list in CMake, and become compile definitions + in the format ``TARGET_