The main objective is to reduce loss in revenue due to delayed shelf-restocking (when product is in-stock in the store but not stocked on the shelf) and inaccurate forecasting (under-estimating future product sales) practices. The result is to demonstrate inventory automation using ECIS system by enabling the means to monitor and track store inventory in real-time, perform data analysis remotely in cloud, improve shopping experience for the consumers and increase revenue for the retailers in the retail industry. Machine Learning code can be found on my GitHub: https://github.com/priyankkalgaonkar

Dependencies:   mbed

ECE 53301: Wireless and Multimedia Computing Final Project Report – Group 1

Inventory Automation Using Electronically Connected Intelligent Shelves.

Code Developed by: Priyank Kalgaonkar.

Department of Electrical and Computer Engineering, Purdue School of Engineering and Technology at IUPUI.

Submitted as partial fulfillment for the requirement of Fall 2019 - ECE 53301-26877: Wireless and Multimedia Computing course.

Date of Submission: December 12, 2019.

FinalVersionECISsystem/mbed/targets.json

Committer:
priyank12p
Date:
2019-12-12
Revision:
0:b0c4c25d37ab

File content as of revision 0:b0c4c25d37ab:

{
    "Target": {
        "core": null,
        "default_toolchain": "ARM",
        "supported_toolchains": null,
        "extra_labels": [],
        "is_disk_virtual": false,
        "macros": [],
        "device_has": [],
        "features": [],
        "detect_code": [],
        "public": false,
        "default_lib": "std"
    },
    "Super_Target": {
        "inherits": ["Target"],
        "core": "Cortex-M4",
        "features_add": ["UVISOR", "BLE", "CLIENT", "IPV4", "IPV6"],
        "supported_toolchains": ["ARM"]
    },
    "CM4_UARM": {
        "inherits": ["Target"],
        "core": "Cortex-M4",
        "default_toolchain": "uARM",
        "public": false,
        "supported_toolchains": ["uARM"],
        "default_lib": "small"
    },
    "CM4_ARM": {
        "inherits": ["Target"],
        "core": "Cortex-M4",
        "public": false,
        "supported_toolchains": ["ARM"]
    },
    "CM4F_UARM": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "default_toolchain": "uARM",
        "public": false,
        "supported_toolchains": ["uARM"],
        "default_lib": "small"
    },
    "CM4F_ARM": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "public": false,
        "supported_toolchains": ["ARM"]
    },
    "LPCTarget": {
        "inherits": ["Target"],
        "post_binary_hook": {"function": "LPCTargetCode.lpc_patch"},
        "public": false
    },
    "LPC11C24": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "extra_labels": ["NXP", "LPC11XX_11CXX", "LPC11CXX"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "device_has": ["ANALOGIN", "CAN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "device_name": "LPC11C24FBD48/301"
    },
    "LPC1114": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11XX_11CXX", "LPC11XX"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC1114FN28/102"
    },
    "LPC11U24": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX", "LPC11U24_401"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "detect_code": ["1040"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC11U24FBD48/401"
    },
    "OC_MBUINO": {
        "inherits": ["LPC11U24"],
        "macros": ["TARGET_LPC11U24"],
        "extra_labels": ["NXP", "LPC11UXX"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2"]
    },
    "LPC11U24_301": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "extra_labels": ["NXP", "LPC11UXX"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "device_name": "LPC11U24FHI33/301"
    },
    "LPC11U34_421": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
	"default_lib": "small",
        "device_name": "LPC11U34FBD48/311"
    },
    "MICRONFCBOARD": {
        "inherits": ["LPC11U34_421"],
        "macros": ["LPC11U34_421", "APPNEARME_MICRONFCBOARD"],
        "extra_labels_add": ["APPNEARME_MICRONFCBOARD"],
        "release_versions": ["2"],
        "device_name": "LPC11U34FBD48/311"
    },
    "LPC11U35_401": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC11U35FBD48/401"
    },
    "LPC11U35_501": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC11U35FHI33/501"
    },
    "LPC11U35_501_IBDAP": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "device_name": "LPC11U35FHI33/501"
    },
    "XADOW_M0": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC11U35FHI33/501"
    },
    "LPC11U35_Y5_MBUG": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "device_name": "LPC11U35FHI33/501"
    },
    "LPC11U37_501": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "default_lib": "small",
        "device_name": "LPC11U37FBD64/501"
    },
    "LPCCAPPUCCINO": {
        "inherits": ["LPC11U37_501"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "device_name": "LPC11U37FBD64/501"
    },
    "ARCH_GPRS": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX", "LPC11U37_501"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "inherits": ["LPCTarget"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC11U37FBD64/501"
    },
    "LPC11U68": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11U6X"],
        "supported_toolchains": ["ARM", "uARM", "GCC_CR", "GCC_ARM", "IAR"],
        "inherits": ["LPCTarget"],
        "detect_code": ["1168"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC11U68JBD100"
    },
    "LPC1347": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M3",
        "extra_labels": ["NXP", "LPC13XX"],
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2"],
        "device_name": "LPC1347FBD48"
    },
    "LPC1549": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M3",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC15XX"],
        "supported_toolchains": ["uARM", "GCC_CR", "GCC_ARM", "IAR"],
        "inherits": ["LPCTarget"],
        "detect_code": ["1549"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "INTERRUPTIN", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "lpc1549"
    },
    "LPC1768": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M3",
        "extra_labels": ["NXP", "LPC176X", "MBED_LPC1768"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "detect_code": ["1010"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "features": ["LWIP"],
        "device_name": "LPC1768"
    },
    "ARCH_PRO": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M3",
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "extra_labels": ["NXP", "LPC176X"],
        "macros": ["TARGET_LPC1768"],
        "inherits": ["LPCTarget"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "features": ["LWIP"],
        "device_name": "LPC1768"
    },
    "UBLOX_C027": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M3",
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "extra_labels": ["NXP", "LPC176X"],
        "macros": ["TARGET_LPC1768"],
        "inherits": ["LPCTarget"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_RED", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "features": ["LWIP"],
        "device_name": "LPC1768"
    },
    "XBED_LPC1768": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M3",
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "extra_labels": ["NXP", "LPC176X", "XBED_LPC1768"],
        "macros": ["TARGET_LPC1768"],
        "detect_code": ["1010"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "device_name": "LPC1768"
    },
    "LPC2368": {
        "inherits": ["LPCTarget"],
        "core": "ARM7TDMI-S",
        "extra_labels": ["NXP", "LPC23XX"],
        "supported_toolchains": ["GCC_ARM", "GCC_CR"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"]
    },
    "LPC2460": {
        "inherits": ["LPCTarget"],
        "core": "ARM7TDMI-S",
        "extra_labels": ["NXP", "LPC2460"],
        "supported_toolchains": ["GCC_ARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"]
    },
    "LPC810": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0+",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC81X"],
        "is_disk_virtual": true,
        "supported_toolchains": ["uARM", "IAR", "GCC_ARM"],
        "device_has": ["ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "device_name": "LPC810M021FN8"
    },
    "LPC812": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC81X"],
        "is_disk_virtual": true,
        "supported_toolchains": ["uARM", "IAR", "GCC_ARM"],
        "inherits": ["LPCTarget"],
        "detect_code": ["1050"],
        "device_has": ["ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC812M101JDH20"
    },
    "LPC824": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC82X"],
        "is_disk_virtual": true,
        "supported_toolchains": ["uARM", "GCC_ARM", "GCC_CR", "IAR"],
        "inherits": ["LPCTarget"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC824M201JDH20"
    },
    "SSCI824": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0+",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC82X"],
        "is_disk_virtual": true,
        "supported_toolchains": ["uARM", "GCC_ARM"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "release_versions": ["2"]
    },
    "LPC4088": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M4F",
        "extra_labels": ["NXP", "LPC408X"],
        "is_disk_virtual": true,
        "supported_toolchains": ["ARM", "GCC_CR", "GCC_ARM", "IAR"],
        "post_binary_hook": {
            "function": "LPC4088Code.binary_hook",
            "toolchains": ["ARM_STD", "ARM_MICRO"]
        },
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "LPC4088FBD144"
    },
    "LPC4088_DM": {
        "inherits": ["LPC4088"],
        "release_versions": ["2", "5"]
    },
    "LPC4330_M4": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M4F",
        "extra_labels": ["NXP", "LPC43XX", "LPC4330"],
        "supported_toolchains": ["ARM", "GCC_CR", "IAR", "GCC_ARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "device_name": "LPC4330"
    },
    "LPC4330_M0": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M0",
        "extra_labels": ["NXP", "LPC43XX", "LPC4330"],
        "supported_toolchains": ["ARM", "GCC_CR", "IAR"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"]
    },
    "LPC4337": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M4F",
        "extra_labels": ["NXP", "LPC43XX", "LPC4337"],
        "supported_toolchains": ["ARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "DEBUG_AWARENESS", "ERROR_RED", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2"],
        "device_name": "LPC4337"
    },
    "LPC1800": {
        "inherits": ["LPCTarget"],
        "core": "Cortex-M3",
        "extra_labels": ["NXP", "LPC43XX"],
        "public": false,
        "supported_toolchains": ["ARM", "GCC_CR", "IAR"]
    },
    "LPC11U37H_401": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC11UXX"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR"],
        "inherits": ["LPCTarget"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "LPC11U37HFBD64/401"
    },
    "ELEKTOR_COCORICO": {
        "core": "Cortex-M0+",
        "default_toolchain": "uARM",
        "extra_labels": ["NXP", "LPC81X"],
        "supported_toolchains": ["uARM", "GCC_ARM", "IAR"],
        "inherits": ["LPCTarget"],
        "is_disk_virtual": true,
        "detect_code": ["C000"],
        "default_lib": "small",
        "device_name": "LPC812M101JDH16"
    },
    "KL05Z": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "default_toolchain": "uARM",
        "extra_labels": ["Freescale", "KLXX"],
        "is_disk_virtual": true,
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "MKL05Z32xxx4"
    },
    "KL25Z": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "extra_labels": ["Freescale", "KLXX"],
        "is_disk_virtual": true,
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0200"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "MKL25Z128xxx4"
    },
    "KL26Z": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "extra_labels": ["Freescale", "KLXX"],
        "is_disk_virtual": true,
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "device_name": "MKL26Z128xxx4"
    },
    "KL46Z": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "extra_labels": ["Freescale", "KLXX"],
        "is_disk_virtual": true,
        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0220"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "MKL46Z256xxx4"
    },
    "K20D50M": {
        "inherits": ["Target"],
        "core": "Cortex-M4",
        "extra_labels": ["Freescale", "K20XX"],
        "is_disk_virtual": true,
        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
        "detect_code": ["0230"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2"],
        "device_name": "MK20DX128xxx5"
    },
    "TEENSY3_1": {
        "inherits": ["Target"],
        "core": "Cortex-M4",
        "extra_labels": ["Freescale", "K20XX", "K20DX256"],
        "OUTPUT_EXT": "hex",
        "is_disk_virtual": true,
        "supported_toolchains": ["GCC_ARM", "ARM"],
        "post_binary_hook": {
            "function": "TEENSY3_1Code.binary_hook",
            "toolchains": ["ARM_STD", "ARM_MICRO", "GCC_ARM"]
        },
        "detect_code": ["0230"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2"],
        "device_name": "MK20DX256xxx7"
    },
    "MCU_K22F512": {
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "MCU_K22F", "MCU_K22F512", "FRDM", "KPSDK_MCUS", "KPSDK_CODE"],
        "is_disk_virtual": true,
        "public": false,
        "macros": ["CPU_MK22FN512VLH12", "FSL_RTOS_MBED"],
        "inherits": ["Target"],
        "detect_code": ["0231"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "device_name": "MK22DN512xxx5"
    },
    "K22F": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_K22F512"],
        "release_versions": ["2", "5"],
        "extra_labels_add": ["FRDM"]
    },
    "KL27Z": {
        "inherits": ["Target"],
        "core": "Cortex-M0+",
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
        "macros": ["CPU_MKL27Z64VLH4", "FSL_RTOS_MBED"],
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "supported_form_factors": ["ARDUINO"],
        "is_disk_virtual": true,
        "default_toolchain": "ARM",
        "detect_code": ["0261"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "default_lib": "std",
        "release_versions": ["2"],
        "device_name": "MKL27Z64xxx4"
    },
    "KL43Z": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
        "macros": ["CPU_MKL43Z256VLH4", "FSL_RTOS_MBED"],
        "is_disk_virtual": true,
        "inherits": ["Target"],
        "detect_code": ["0262"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "MKL43Z256xxx4"
    },
    "KL82Z": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
        "macros": ["CPU_MKL82Z128VLK7", "FSL_RTOS_MBED"],
        "is_disk_virtual": true,
        "inherits": ["Target"],
        "detect_code": ["0218"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "MKL82Z128xxx7"
    },
    "KW24D": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4",
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
        "is_disk_virtual": true,
        "macros": ["CPU_MKW24D512VHA5", "FSL_RTOS_MBED"],
        "inherits": ["Target"],
        "detect_code": ["0250"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG"],
        "release_versions": ["2", "5"],
        "device_name": "MKW24D512xxx5"
    },
    "KW41Z": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0+",
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
        "is_disk_virtual": true,
        "macros": ["CPU_MKW41Z512VHT4", "FSL_RTOS_MBED"],
        "inherits": ["Target"],
        "detect_code": ["0201"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "MKW41Z512xxx4"
    },
    "K64F": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM", "KPSDK_MCUS", "KPSDK_CODE", "MCU_K64F"],
        "is_disk_virtual": true,
        "macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED"],
        "inherits": ["Target"],
        "detect_code": ["0240"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE", "STDIO_MESSAGES", "STORAGE", "TRNG"],
        "features": ["LWIP", "STORAGE"],
        "release_versions": ["2", "5"],
        "device_name": "MK64FN1M0xxx12"
    },
    "MTS_GAMBIT": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM", "GCC_ARM"],
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "KPSDK_MCUS", "KPSDK_CODE", "MCU_K64F"],
        "is_disk_virtual": true,
        "macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"],
        "device_has": ["I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE", "STDIO_MESSAGES"],
        "device_name": "MK64FN1M0xxx12"
    },
    "HEXIWEAR": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "MCU_K64F"],
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"],
        "is_disk_virtual": true,
        "default_toolchain": "ARM",
        "detect_code": ["0214"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE", "STDIO_MESSAGES", "TRNG"],
        "default_lib": "std",
        "release_versions": ["2", "5"],
        "device_name": "MK64FN1M0xxx12"
    },
    "K66F": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
        "is_disk_virtual": true,
        "macros": ["CPU_MK66FN2M0VMD18", "FSL_RTOS_MBED"],
        "inherits": ["Target"],
        "detect_code": ["0311"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG"],
        "features": ["LWIP"],
        "release_versions": ["2", "5"],
        "device_name" : "MK66FN2M0xxx18"
    },
    "K82F": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
        "is_disk_virtual": true,
        "macros": ["CPU_MK82FN256VDC15", "FSL_RTOS_MBED"],
        "inherits": ["Target"],
        "detect_code": ["0217"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name" : "MK66FN256xxx15"
    },
    "NUCLEO_F030R8": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M0",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F0", "STM32F030R8"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0725"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32F030R8"
    },
    "NUCLEO_F031K6": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["STM", "STM32F0", "STM32F031K6"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0791"],
        "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32F031K6"
    },
    "NUCLEO_F042K6": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0",
        "default_toolchain": "uARM",
        "extra_labels": ["STM", "STM32F0", "STM32F042K6"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0785"],
        "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32F042K6"
    },
    "NUCLEO_F070RB": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M0",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F0", "STM32F070RB"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0755"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F070RB"
    },
    "NUCLEO_F072RB": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M0",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F0", "STM32F072RB"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0730"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F072RB"
    },
    "NUCLEO_F091RC": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M0",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F0", "STM32F091RC"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0750"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F091RC"
    },
    "NUCLEO_F103RB": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M3",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F1", "STM32F103RB"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0700"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F103RB"
    },
    "NUCLEO_F207ZG": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M3",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F2", "STM32F207ZG"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0835"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "features": ["LWIP"],
        "release_versions": ["2", "5"],
        "device_name" : "STM32F207ZG"
    },
    "NUCLEO_F302R8": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F3", "STM32F302R8"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0705"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32F302R8"
    },
    "NUCLEO_F303K8": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F3", "STM32F303K8"],
        "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0775"],
        "default_lib": "small",
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2"],
        "device_name": "STM32F303K8"
    },
    "NUCLEO_F303RE": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F3", "STM32F303RE"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0745"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F303RE"
    },
    "NUCLEO_F303ZE": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F3", "STM32F303ZE"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0747"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "LOWPOWERTIMER"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F303ZE"
    },
    "NUCLEO_F334R8": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F3", "STM32F334R8"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0735"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32F334R8"
    },
    "NUCLEO_F401RE": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F401RE"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0720"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F401RE"
    },
    "NUCLEO_F410RB": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F410RB","STM32F410Rx"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "detect_code": ["0744"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F410RB"
    },
    "NUCLEO_F411RE": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F411RE"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0740"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F411RE"
    },
    "NUCLEO_F412ZG": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F412ZG"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0826"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F412ZG"
    },
    "ELMO_F411RE": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4F",
        "default_toolchain": "uARM",
        "extra_labels": ["STM", "STM32F4", "STM32F411RE"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["----"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32F411RE"
    },
    "NUCLEO_F429ZI": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F429", "STM32F429ZI", "STM32F429xx", "F429_F439"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "progen": {"target": "nucleo-f429zi"},
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "detect_code": ["0796"],
        "features": ["LWIP"],
        "release_versions": ["2", "5"],
        "device_name" : "STM32F429ZI"
    },
    "NUCLEO_F439ZI": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F439", "STM32F439ZI", "STM32F439xx", "F429_F439"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "progen": {"target": "nucleo-f439zi"},
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "detect_code": ["0797"],
        "features": ["LWIP"],
        "release_versions": ["2", "5"],
        "device_name" : "STM32F439ZI"
    },
    "NUCLEO_F446RE": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F446RE"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0777"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F446RE"
    },
    "NUCLEO_F446ZE": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F446ZE"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0778"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2",  "USB_STM_HAL"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name" : "STM32F446ZE"
    },
    "B96B_F446VE": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F446VE"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0840"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name":"STM32F446VE"
    },
    "NUCLEO_F746ZG": {
        "inherits": ["Target"],
        "core": "Cortex-M7F",
        "extra_labels": ["STM", "STM32F7", "STM32F746", "STM32F746ZG", "F746_F756"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "default_toolchain": "ARM",
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "supported_form_factors": ["ARDUINO"],
        "detect_code": ["0816"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "features": ["LWIP"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F746ZG"
    },
    "NUCLEO_F756ZG": {
        "inherits": ["Target"],
        "core": "Cortex-M7F",
        "extra_labels": ["STM", "STM32F7", "STM32F756", "STM32F756ZG", "F746_F756"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "default_toolchain": "ARM",
        "supported_form_factors": ["ARDUINO"],
        "detect_code": ["0819"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG"],
        "features": ["LWIP"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F756ZG"
    },
    "NUCLEO_F767ZI": {
        "inherits": ["Target"],
        "core": "Cortex-M7FD",
        "extra_labels": ["STM", "STM32F7", "STM32F767", "STM32F767ZI"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "default_toolchain": "ARM",
        "supported_form_factors": ["ARDUINO"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "detect_code": ["0818"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "features": ["LWIP"],
        "release_versions": ["2", "5"],
        "device_name" : "STM32F767ZI"
    },
    "NUCLEO_L011K4": {
        "inherits": ["Target"],
        "core": "Cortex-M0+",
        "extra_labels": ["STM", "STM32L0", "STM32L011K4"],
        "supported_toolchains": ["uARM"],
        "default_toolchain": "uARM",
        "supported_form_factors": ["ARDUINO"],
        "detect_code": ["0780"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32L011K4"
    },
    "NUCLEO_L031K6": {
        "inherits": ["Target"],
        "core": "Cortex-M0",
        "extra_labels": ["STM", "STM32L0", "STM32L031K6"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "default_toolchain": "uARM",
        "supported_form_factors": ["ARDUINO"],
        "detect_code": ["0790"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32L031K6"
    },
    "NUCLEO_L053R8": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M0+",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32L0", "STM32L053R8"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0715"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32L053R8"
    },
    "NUCLEO_L073RZ": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M0+",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32L0", "STM32L073RZ", "STM32L073xx"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "detect_code": ["0760"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "release_versions": ["2", "5"],
        "device_name": "STM32L073RZ"
    },
    "NUCLEO_L152RE": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M3",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32L1", "STM32L152RE"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0710"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32L152RE"
    },
    "NUCLEO_L432KC": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32L4", "STM32L432KC"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0770"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "CAN", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "release_versions": ["2", "5"],
        "device_name" : "STM32L432KC"
    },
    "NUCLEO_L476RG": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32L4", "STM32L476RG", "L476_L486"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0765"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "release_versions": ["2", "5"],
        "device_name": "stm32l476rg"
    },
    "NUCLEO_L486RG": {
        "supported_form_factors": ["ARDUINO", "MORPHO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32L4", "STM32L486RG", "L476_L486"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "detect_code": ["0827"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "stm32l486rg"
    },
    "STM32F3XX": {
        "inherits": ["Target"],
        "core": "Cortex-M4",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F3XX"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"]
    },
    "STM32F407": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "extra_labels": ["STM", "STM32F4", "STM32F4XX"],
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"]
    },
    "ARCH_MAX": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"],
        "program_cycle_s": 2,
        "extra_labels": ["STM", "STM32F4", "STM32F407", "STM32F407VG"],
        "macros": ["LSI_VALUE=32000"],
        "inherits": ["Target"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2"],
        "device_name": "STM32F407VG"
    },
    "DISCO_F051R8": {
        "inherits": ["Target"],
        "core": "Cortex-M0",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F0", "STM32F051", "STM32F051R8"],
        "supported_toolchains": ["GCC_ARM"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "device_name": "STM32F051R8"
    },
    "DISCO_F100RB": {
        "inherits": ["Target"],
        "core": "Cortex-M3",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F1", "STM32F100RB"],
        "supported_toolchains": ["GCC_ARM"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "device_name": "STM32F100RB"
    },
    "DISCO_F303VC": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F3", "STM32F303", "STM32F303VC"],
        "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
        "supported_toolchains": ["GCC_ARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "device_name": "STM32F303VC"
    },
    "DISCO_F334C8": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F3", "STM32F334C8"],
        "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "detect_code": ["0810"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32F334C8"
    },
    "DISCO_F407VG": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "extra_labels": ["STM", "STM32F4", "STM32F407", "STM32F407VG"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "device_name": "STM32F407VG"
    },
    "DISCO_F429ZI": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F429", "STM32F429ZI", "STM32F429xx"],
        "macros": ["RTC_LSI=1","TRANSACTION_QUEUE_SIZE_SPI=2"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F429ZI"
    },
    "DISCO_F469NI": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F469", "STM32F469NI", "STM32F469xx"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "inherits": ["Target"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "detect_code": ["0788"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F469NI"
    },
    "DISCO_L053C8": {
        "inherits": ["Target"],
        "core": "Cortex-M0+",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32L0", "STM32L053C8"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "macros": ["RTC_LSI=1"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32L053C8"
    },
    "DISCO_F746NG": {
        "inherits": ["Target"],
        "core": "Cortex-M7F",
        "extra_labels": ["STM", "STM32F7", "STM32F746", "STM32F746NG"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "default_toolchain": "ARM",
        "supported_form_factors": ["ARDUINO"],
        "detect_code": ["0815"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "features": ["LWIP"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F746NG"
    },
    "DISCO_F769NI": {
        "inherits": ["Target"],
        "core": "Cortex-M7FD",
        "extra_labels": ["STM", "STM32F7", "STM32F769", "STM32F769NI"],
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "default_toolchain": "ARM",
        "detect_code": ["0817"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "features": ["LWIP"],
        "release_versions": ["2"],
        "device_name": "STM32F769NI"
    },
    "DISCO_L476VG": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32L4", "STM32L476VG"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "detect_code": ["0820"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"],
        "release_versions": ["2", "5"],
        "device_name": "stm32l476vg"
    },
    "MTS_MDOT_F405RG": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "extra_labels": ["STM", "STM32F4", "STM32F405RG"],
        "is_disk_virtual": true,
        "macros": ["HSE_VALUE=26000000", "TRANSACTION_QUEUE_SIZE_SPI=2"],
        "progen": {"target": "mts-mdot-f405rg"},
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2"],
        "device_name": "STM32F405RG"
    },
    "MTS_MDOT_F411RE": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "extra_labels": ["STM", "STM32F4", "STM32F411RE"],
        "macros": ["HSE_VALUE=26000000", "USE_PLL_HSE_EXTC=0", "VECT_TAB_OFFSET=0x00010000","TRANSACTION_QUEUE_SIZE_SPI=2"],
        "post_binary_hook": {
            "function": "MTSCode.combine_bins_mts_dot",
            "toolchains": ["GCC_ARM", "ARM_STD", "ARM_MICRO"]
        },
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F411RE"
    },
    "MTS_DRAGONFLY_F411RE": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "extra_labels": ["STM", "STM32F4", "STM32F411RE"],
        "macros": ["HSE_VALUE=26000000", "VECT_TAB_OFFSET=0x08010000","TRANSACTION_QUEUE_SIZE_SPI=2"],
        "post_binary_hook": {
            "function": "MTSCode.combine_bins_mts_dragonfly",
            "toolchains": ["GCC_ARM", "ARM_STD", "ARM_MICRO"]
        },
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "STM32F411RE"
    },
    "XDOT_L151CC": {
        "inherits": ["Target"],
        "core": "Cortex-M3",
        "default_toolchain": "ARM",
        "extra_labels": ["STM", "STM32L1", "STM32L151CC"],
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "progen": {"target": "xdot-l151cc"},
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "std",
        "release_versions": ["5"]
    },
    "MOTE_L152RC": {
        "inherits": ["Target"],
        "core": "Cortex-M3",
        "default_toolchain": "uARM",
        "extra_labels": ["STM", "STM32L1", "STM32L152RC"],
        "macros": ["RTC_LSI=1"],
        "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"],
        "detect_code": ["4100"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "STM32L152RC"
    },
    "DISCO_F401VC": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "default_toolchain": "GCC_ARM",
        "extra_labels": ["STM", "STM32F4", "STM32F401", "STM32F401VC"],
        "supported_toolchains": ["GCC_ARM"],
        "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "device_name": "STM32F401VC"
    },
    "UBLOX_EVK_ODIN_W2": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "extra_labels": ["STM", "STM32F4", "STM32F439", "STM32F439ZI","STM32F439xx"],
        "macros": ["HSE_VALUE=24000000", "HSE_STARTUP_TIMEOUT=5000", "CB_INTERFACE_SDIO","CB_CHIP_WL18XX","SUPPORT_80211D_ALWAYS","WLAN_ENABLED","MBEDTLS_ARC4_C","MBEDTLS_DES_C","MBEDTLS_MD4_C","MBEDTLS_MD5_C","MBEDTLS_SHA1_C"],
        "inherits": ["Target"],
        "device_has": ["ANALOGIN", "CAN", "EMAC", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG"],
        "features": ["LWIP"],
        "release_versions": ["5"],
        "device_name": "STM32F439ZI"
    },
    "NZ32_SC151": {
        "inherits": ["Target"],
        "core": "Cortex-M3",
        "default_toolchain": "uARM",
        "program_cycle_s": 1.5,
        "extra_labels": ["STM", "STM32L1", "STM32L151RC"],
        "macros": ["RTC_LSI=1"],
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "default_lib": "small",
        "device_name": "STM32L151RC"
    },
    "MCU_NRF51": {
        "inherits": ["Target"],
        "core": "Cortex-M0",
        "OVERRIDE_BOOTLOADER_FILENAME": "nrf51822_bootloader.hex",
        "macros": ["NRF51", "TARGET_NRF51822"],
        "MERGE_BOOTLOADER": false,
        "extra_labels": ["NORDIC", "MCU_NRF51", "MCU_NRF51822"],
        "OUTPUT_EXT": "hex",
        "is_disk_virtual": true,
        "supported_toolchains": ["ARM", "GCC_ARM"],
        "public": false,
        "MERGE_SOFT_DEVICE": true,
        "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [
            {
                "boot": "s130_nrf51_1.0.0_bootloader.hex",
                "name": "s130_nrf51_1.0.0_softdevice.hex",
                "offset": 114688
            },
            {
                "boot": "s110_nrf51822_8.0.0_bootloader.hex",
                "name": "s110_nrf51822_8.0.0_softdevice.hex",
                "offset": 98304
            },
            {
                "boot": "s110_nrf51822_7.1.0_bootloader.hex",
                "name": "s110_nrf51822_7.1.0_softdevice.hex",
                "offset": 90112
            },
            {
                "boot": "s110_nrf51822_7.0.0_bootloader.hex",
                "name": "s110_nrf51822_7.0.0_softdevice.hex",
                "offset": 90112
            },
            {
                "boot": "s110_nrf51822_6.0.0_bootloader.hex",
                "name": "s110_nrf51822_6.0.0_softdevice.hex",
                "offset": 81920
            }
        ],
        "detect_code": ["1070"],
        "post_binary_hook": {
            "function": "MCU_NRF51Code.binary_hook",
            "toolchains": ["ARM_STD", "GCC_ARM"]
        },
        "program_cycle_s": 6,
        "features": ["BLE"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"]
    },
    "MCU_NRF51_16K_BASE": {
        "inherits": ["MCU_NRF51"],
        "extra_labels_add": ["MCU_NORDIC_16K", "MCU_NRF51_16K"],
        "macros_add": ["TARGET_MCU_NORDIC_16K", "TARGET_MCU_NRF51_16K"],
        "public": false,
        "default_lib": "small"
    },
    "MCU_NRF51_16K_BOOT_BASE": {
        "inherits": ["MCU_NRF51_16K_BASE"],
        "MERGE_BOOTLOADER": true,
        "extra_labels_add": ["MCU_NRF51_16K_BOOT"],
        "macros_add": ["TARGET_MCU_NRF51_16K_BOOT", "TARGET_OTA_ENABLED"],
        "public": false
    },
    "MCU_NRF51_16K_OTA_BASE": {
        "inherits": ["MCU_NRF51_16K_BASE"],
        "public": false,
        "extra_labels_add": ["MCU_NRF51_16K_OTA"],
        "macros_add": ["TARGET_MCU_NRF51_16K_OTA", "TARGET_OTA_ENABLED"],
        "MERGE_SOFT_DEVICE": false
    },
    "MCU_NRF51_16K": {
        "inherits": ["MCU_NRF51_16K_BASE"],
        "extra_labels_add": ["MCU_NRF51_16K_S130"],
        "macros_add": ["TARGET_MCU_NRF51_16K_S130"],
        "public": false
    },
    "MCU_NRF51_S110": {
        "extra_labels_add": ["MCU_NRF51_16K_S110"],
        "macros_add": ["TARGET_MCU_NRF51_16K_S110"],
        "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [
            {
                "name": "s110_nrf51822_8.0.0_softdevice.hex",
                "boot": "s110_nrf51822_8.0.0_bootloader.hex",
                "offset": 98304
            },
            {
                "name": "s110_nrf51822_7.1.0_softdevice.hex",
                "boot": "s110_nrf51822_7.1.0_bootloader.hex",
                "offset": 90112
            }
        ],
        "public": false
    },
    "MCU_NRF51_16K_S110": {
        "inherits": ["MCU_NRF51_S110", "MCU_NRF51_16K_BASE"],
        "public": false
    },
    "MCU_NRF51_16K_BOOT": {
        "inherits": ["MCU_NRF51_16K_BOOT_BASE"],
        "extra_labels_add": ["MCU_NRF51_16K_S130"],
        "macros_add": ["TARGET_MCU_NRF51_16K_S130"],
        "public": false
    },
    "MCU_NRF51_16K_BOOT_S110": {
        "inherits": ["MCU_NRF51_S110", "MCU_NRF51_16K_BOOT_BASE"],
        "public": false
    },
    "MCU_NRF51_16K_OTA": {
        "inherits": ["MCU_NRF51_16K_OTA_BASE"],
        "extra_labels_add": ["MCU_NRF51_16K_S130"],
        "macros_add": ["TARGET_MCU_NRF51_16K_S130"],
        "public": false
    },
    "MCU_NRF51_16K_OTA_S110": {
        "inherits": ["MCU_NRF51_S110", "MCU_NRF51_16K_OTA_BASE"],
        "public": false
    },
    "MCU_NRF51_32K": {
        "inherits": ["MCU_NRF51"],
        "extra_labels_add": ["MCU_NORDIC_32K", "MCU_NRF51_32K"],
        "macros_add": ["TARGET_MCU_NORDIC_32K", "TARGET_MCU_NRF51_32K"],
        "public": false
    },
    "MCU_NRF51_32K_BOOT": {
        "inherits": ["MCU_NRF51_32K"],
        "MERGE_BOOTLOADER": true,
        "extra_labels_add": ["MCU_NRF51_32K_BOOT"],
        "macros_add": ["TARGET_MCU_NRF51_32K_BOOT", "TARGET_OTA_ENABLED"],
        "public": false
    },
    "MCU_NRF51_32K_OTA": {
        "inherits": ["MCU_NRF51_32K"],
        "public": false,
        "extra_labels_add": ["MCU_NRF51_32K_OTA"],
        "macros_add": ["TARGET_MCU_NRF51_32K_OTA", "TARGET_OTA_ENABLED"],
        "MERGE_SOFT_DEVICE": false
    },
    "NRF51822": {
        "inherits": ["MCU_NRF51_16K"],
        "extra_labels_add": ["NRF51822", "NRF51822_MKIT"],
        "macros_add": ["TARGET_NRF51822_MKIT"],
        "release_versions": ["2"],
        "device_name": "nRF51822_xxAA"
    },
    "NRF51822_BOOT": {
        "inherits": ["MCU_NRF51_16K_BOOT"],
        "extra_labels_add": ["NRF51822", "NRF51822_MKIT"],
        "macros_add": ["TARGET_NRF51822_MKIT"]
    },
    "NRF51822_OTA": {
        "inherits": ["MCU_NRF51_16K_OTA"],
        "extra_labels_add": ["NRF51822", "NRF51822_MKIT"],
        "macros_add": ["TARGET_NRF51822_MKIT"]
    },
    "ARCH_BLE": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_16K"],
        "release_versions": ["2"],
        "device_name": "nRF51822_xxAA"
    },
    "ARCH_BLE_BOOT": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_16K_BOOT"],
        "extra_labels_add": ["ARCH_BLE"],
        "macros_add": ["TARGET_ARCH_BLE"]
    },
    "ARCH_BLE_OTA": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_16K_OTA"],
        "extra_labels_add": ["ARCH_BLE"],
        "macros_add": ["TARGET_ARCH_BLE"]
    },
    "ARCH_LINK": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_16K"],
        "extra_labels_add": ["ARCH_BLE"],
        "macros_add": ["TARGET_ARCH_BLE"]
    },
    "ARCH_LINK_BOOT": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_16K_BOOT"],
        "extra_labels_add": ["ARCH_BLE", "ARCH_LINK"],
        "macros_add": ["TARGET_ARCH_BLE", "TARGET_ARCH_LINK"]
    },
    "ARCH_LINK_OTA": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_16K_OTA"],
        "extra_labels_add": ["ARCH_BLE", "ARCH_LINK"],
        "macros_add": ["TARGET_ARCH_BLE", "TARGET_ARCH_LINK"]
    },
    "SEEED_TINY_BLE": {
        "inherits": ["MCU_NRF51_16K"],
        "release_versions": ["2"],
        "device_name": "nRF51822_xxAA"
    },
    "SEEED_TINY_BLE_BOOT": {
        "inherits": ["MCU_NRF51_16K_BOOT"],
        "extra_labels_add": ["SEEED_TINY_BLE"],
        "macros_add": ["TARGET_SEEED_TINY_BLE"]
    },
    "SEEED_TINY_BLE_OTA": {
        "inherits": ["MCU_NRF51_16K_OTA"],
        "extra_labels_add": ["SEEED_TINY_BLE"],
        "macros_add": ["TARGET_SEEED_TINY_BLE"]
    },
    "HRM1017": {
        "inherits": ["MCU_NRF51_16K"],
        "macros_add": ["TARGET_NRF_LFCLK_RC"],
        "release_versions": ["2"],
        "device_name": "nRF51822_xxAA"
    },
    "HRM1017_BOOT": {
        "inherits": ["MCU_NRF51_16K_BOOT"],
        "extra_labels_add": ["HRM1017"],
        "macros_add": ["TARGET_HRM1017", "TARGET_NRF_LFCLK_RC"]
    },
    "HRM1017_OTA": {
        "inherits": ["MCU_NRF51_16K_OTA"],
        "extra_labels_add": ["HRM1017"],
        "macros_add": ["TARGET_HRM1017", "TARGET_NRF_LFCLK_RC"]
    },
    "RBLAB_NRF51822": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_16K"],
        "release_versions": ["2"],
        "device_name": "nRF51822_xxAA"
    },
    "RBLAB_NRF51822_BOOT": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_16K_BOOT"],
        "extra_labels_add": ["RBLAB_NRF51822"],
        "macros_add": ["TARGET_RBLAB_NRF51822"]
    },
    "RBLAB_NRF51822_OTA": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_16K_OTA"],
        "extra_labels_add": ["RBLAB_NRF51822"],
        "macros_add": ["TARGET_RBLAB_NRF51822"]
    },
    "RBLAB_BLENANO": {
        "inherits": ["MCU_NRF51_16K"],
        "release_versions": ["2"]
    },
    "RBLAB_BLENANO_BOOT": {
        "inherits": ["MCU_NRF51_16K_BOOT"],
        "extra_labels_add": ["RBLAB_BLENANO"],
        "macros_add": ["TARGET_RBLAB_BLENANO"]
    },
    "RBLAB_BLENANO_OTA": {
        "inherits": ["MCU_NRF51_16K_OTA"],
        "extra_labels_add": ["RBLAB_BLENANO"],
        "macros_add": ["TARGET_RBLAB_BLENANO"]
    },
    "NRF51822_Y5_MBUG": {
        "inherits": ["MCU_NRF51_16K"]
    },
    "WALLBOT_BLE": {
        "inherits": ["MCU_NRF51_16K"],
        "release_versions": ["2"]
    },
    "WALLBOT_BLE_BOOT": {
        "inherits": ["MCU_NRF51_16K_BOOT"],
        "extra_labels_add": ["WALLBOT_BLE"],
        "macros_add": ["TARGET_WALLBOT_BLE"]
    },
    "WALLBOT_BLE_OTA": {
        "inherits": ["MCU_NRF51_16K_OTA"],
        "extra_labels_add": ["WALLBOT_BLE"],
        "macros_add": ["TARGET_WALLBOT_BLE"]
    },
    "DELTA_DFCM_NNN40": {
        "inherits": ["MCU_NRF51_32K"],
        "program_cycle_s": 10,
        "macros_add": ["TARGET_NRF_LFCLK_RC"],
        "device_has": ["ANALOGIN", "DEBUG_AWARENESS", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE"],
        "release_versions": ["2"],
        "device_name": "nRF51822_xxAA"
    },
    "DELTA_DFCM_NNN40_BOOT": {
        "inherits": ["MCU_NRF51_32K_BOOT"],
        "program_cycle_s": 10,
        "extra_labels_add": ["DELTA_DFCM_NNN40"],
        "macros_add": ["TARGET_DELTA_DFCM_NNN40", "TARGET_NRF_LFCLK_RC"]
    },
    "DELTA_DFCM_NNN40_OTA": {
        "inherits": ["MCU_NRF51_32K_OTA"],
        "program_cycle_s": 10,
        "extra_labels_add": ["DELTA_DFCM_NNN40"],
        "macros_add": ["TARGET_DELTA_DFCM_NNN40", "TARGET_NRF_LFCLK_RC"]
    },
    "NRF51_DK_LEGACY": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_32K"],
        "extra_labels_add": ["NRF51_DK"]
    },
    "NRF51_DK_BOOT": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_32K_BOOT"],
        "extra_labels_add": ["NRF51_DK"],
        "macros_add": ["TARGET_NRF51_DK"]
    },
    "NRF51_DK_OTA": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_32K_OTA"],
        "extra_labels_add": ["NRF51_DK"],
        "macros_add": ["TARGET_NRF51_DK"]
    },
    "NRF51_DONGLE_LEGACY": {
        "inherits": ["MCU_NRF51_32K"],
        "extra_labels_add": ["NRF51_DONGLE"],
        "release_versions": ["2"],
        "device_name": "nRF51822_xxAA"
    },
    "NRF51_DONGLE_BOOT": {
        "inherits": ["MCU_NRF51_32K_BOOT"],
        "extra_labels_add": ["NRF51_DONGLE"],
        "macros_add": ["TARGET_NRF51_DONGLE"]
    },
    "NRF51_DONGLE_OTA": {
        "inherits": ["MCU_NRF51_32K_OTA"],
        "extra_labels_add": ["NRF51_DONGLE"],
        "macros_add": ["TARGET_NRF51_DONGLE"]
    },
    "NRF51_MICROBIT": {
        "inherits": ["MCU_NRF51_16K_S110"],
        "macros_add": ["TARGET_NRF_LFCLK_RC"],
        "release_versions": ["2"],
        "device_name": "nRF51822_xxAA"
    },
    "NRF51_MICROBIT_BOOT": {
        "inherits": ["MCU_NRF51_16K_BOOT_S110"],
        "extra_labels_add": ["NRF51_MICROBIT"],
        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"]
    },
    "NRF51_MICROBIT_OTA": {
        "inherits": ["MCU_NRF51_16K_OTA_S110"],
        "extra_labels_add": ["NRF51_MICROBIT"],
        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"]
    },
    "NRF51_MICROBIT_B": {
        "inherits": ["MCU_NRF51_16K"],
        "extra_labels_add": ["NRF51_MICROBIT"],
        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"],
        "release_versions": ["2"]
    },
    "NRF51_MICROBIT_B_BOOT": {
        "inherits": ["MCU_NRF51_16K_BOOT"],
        "extra_labels_add": ["NRF51_MICROBIT"],
        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"]
    },
    "NRF51_MICROBIT_B_OTA": {
        "inherits": ["MCU_NRF51_16K_OTA"],
        "extra_labels_add": ["NRF51_MICROBIT"],
        "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"]
    },
    "MTM_MTCONNECT04S": {
        "inherits": ["MCU_NRF51_32K"],
        "release_versions": ["2"],
        "device_name": "nRF51822_xxAA"
    },
    "MTM_MTCONNECT04S_BOOT": {
        "inherits": ["MCU_NRF51_32K_BOOT"],
        "extra_labels_add": ["MTM_CONNECT04S"],
        "macros_add": ["TARGET_MTM_CONNECT04S"]
    },
    "MTM_MTCONNECT04S_OTA": {
        "inherits": ["MCU_NRF51_32K_OTA"],
        "extra_labels_add": ["MTM_CONNECT04S"],
        "macros_add": ["TARGET_MTM_CONNECT04S"]
    },
    "TY51822R3": {
        "inherits": ["MCU_NRF51_32K_UNIFIED"],
        "macros_add": ["TARGET_NRF_32MHZ_XTAL"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"],
        "detect_code": ["1019"],
        "release_versions": ["2", "5"],
        "overrides": {"uart_hwfc": 0},
        "device_name": "nRF51822_xxAA"
    },
    "TY51822R3_BOOT": {
        "inherits": ["MCU_NRF51_32K_BOOT"],
        "extra_labels_add": ["TY51822R3"],
        "macros_add": ["TARGET_TY51822R3", "TARGET_NRF_32MHZ_XTAL"]
    },
    "TY51822R3_OTA": {
        "inherits": ["MCU_NRF51_32K_OTA"],
        "extra_labels_add": ["NRF51_DK"],
        "macros_add": ["TARGET_TY51822R3", "TARGET_NRF_32MHZ_XTAL"]
    },
    "ARM_MPS2_Target": {
        "inherits": ["Target"],
        "public": false,
        "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"]
    },
    "ARM_MPS2_M0": {
        "inherits": ["ARM_MPS2_Target"],
        "core": "Cortex-M0",
        "supported_toolchains": ["ARM"],
        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M0"],
        "macros": ["CMSDK_CM0"],
        "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"],
        "release_versions": ["2"]
    },
    "ARM_MPS2_M0P": {
        "inherits": ["ARM_MPS2_Target"],
        "core": "Cortex-M0+",
        "supported_toolchains": ["ARM"],
        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M0P"],
        "macros": ["CMSDK_CM0plus"],
        "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"],
        "release_versions": ["2"]
    },
    "ARM_MPS2_M1": {
        "inherits": ["ARM_MPS2_Target"],
        "core": "Cortex-M1",
        "supported_toolchains": ["ARM"],
        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M1"],
        "macros": ["CMSDK_CM1"],
        "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"]
    },
    "ARM_MPS2_M3": {
        "inherits": ["ARM_MPS2_Target"],
        "core": "Cortex-M3",
        "supported_toolchains": ["ARM"],
        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M3"],
        "macros": ["CMSDK_CM3"],
        "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"],
        "release_versions": ["2"]
    },
    "ARM_MPS2_M4": {
        "inherits": ["ARM_MPS2_Target"],
        "core": "Cortex-M4F",
        "supported_toolchains": ["ARM"],
        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M4"],
        "macros": ["CMSDK_CM4"],
        "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"],
        "release_versions": ["2"]
    },
    "ARM_MPS2_M7": {
        "inherits": ["ARM_MPS2_Target"],
        "core": "Cortex-M7",
        "supported_toolchains": ["ARM"],
        "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M7"],
        "macros": ["CMSDK_CM7"],
        "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"],
        "release_versions": ["2"]
    },
    "ARM_IOTSS_Target": {
        "inherits": ["Target"],
        "public": false,
        "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"]
    },
    "ARM_IOTSS_BEID": {
        "inherits": ["ARM_IOTSS_Target"],
        "core": "Cortex-M3",
        "supported_toolchains": ["ARM"],
        "extra_labels": ["ARM_SSG", "IOTSS", "IOTSS_BEID"],
        "macros": ["CMSDK_BEID"],
        "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"],
        "release_versions": ["2"]
    },
    "ARM_BEETLE_SOC": {
        "inherits": ["ARM_IOTSS_Target"],
        "core": "Cortex-M3",
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "default_toolchain": "ARM",
        "extra_labels": ["ARM_SSG", "BEETLE"],
        "macros": ["CMSDK_BEETLE", "WSF_MS_PER_TICK=20", "WSF_TOKEN_ENABLED=FALSE", "WSF_TRACE_ENABLED=TRUE", "WSF_ASSERT_ENABLED=FALSE", "WSF_PRINTF_MAX_LEN=128", "ASIC", "CONFIG_HOST_REV=0x20", "CONFIG_ALLOW_DEEP_SLEEP=FALSE", "HCI_VS_TARGET", "CONFIG_ALLOW_SETTING_WRITE=TRUE", "WSF_MAX_HANDLERS=20", "NO_LEDS"],
        "device_has": ["ANALOGIN", "CLCD", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SLEEP", "SPI"],
        "features": ["BLE"],
        "release_versions": ["2", "5"],
        "device_name": "beetle"
    },
    "RZ_A1H": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-A9",
        "program_cycle_s": 2,
        "extra_labels": ["RENESAS", "MBRZA1H"],
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "device_has": ["ANALOGIN", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "features": ["LWIP"],
        "release_versions": ["2", "5"],
        "device_name": "r7s721001"
    },
    "VK_RZ_A1H": {
        "inherits": ["Target"],
        "core": "Cortex-A9",
        "extra_labels": ["RENESAS", "VKRZA1H"],
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "default_toolchain": "ARM",
        "program_cycle_s": 2,
        "device_has": ["ANALOGIN", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "features": ["LWIP"],
        "default_lib": "std",
        "release_versions": ["2", "5"]
    },
    "MAXWSNENV": {
        "inherits": ["Target"],
        "core": "Cortex-M3",
        "macros": ["__SYSTEM_HFX=24000000"],
        "extra_labels": ["Maxim", "MAX32610"],
        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"],
        "features": ["BLE"],
        "release_versions": ["2", "5"]
    },
    "MAX32600MBED": {
        "inherits": ["Target"],
        "core": "Cortex-M3",
        "macros": ["__SYSTEM_HFX=24000000"],
        "extra_labels": ["Maxim", "MAX32600"],
        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"],
        "device_name": "max326000x85"
    },
    "MAX32620HSP": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "extra_labels": ["Maxim", "MAX32620"],
        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "features": ["BLE"],
        "release_versions": ["2", "5"]
    },
    "MAX32625MBED": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "macros": ["__SYSTEM_HFX=96000000","TARGET=MAX32625","TARGET_REV=0x4132"],
        "extra_labels": ["Maxim", "MAX32625"],
        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"]
    },
    "MAX32625NEXPAQ": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "macros": ["__SYSTEM_HFX=96000000","TARGET=MAX32625","TARGET_REV=0x4132"],
        "extra_labels": ["Maxim", "MAX32625"],
        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
        "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"],
        "release_versions": ["2", "5"]
    },
    "EFM32": {
        "inherits": ["Target"],
        "extra_labels": ["Silicon_Labs", "EFM32"],
        "public": false
    },
    "EFM32GG990F1024": {
        "inherits": ["EFM32"],
        "extra_labels_add": ["EFM32GG", "1024K"],
        "core": "Cortex-M3",
        "macros": ["EFM32GG990F1024", "TRANSACTION_QUEUE_SIZE_SPI=4"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
        "release_versions": ["2", "5"],
        "device_name": "EFM32GG990F1024",
        "public": false
    },
    "EFM32GG_STK3700": {
        "inherits": ["EFM32GG990F1024"],
        "progen": {"target": "efm32gg-stk"},
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "forced_reset_timeout": 2,
        "config": {
            "hf_clock_src": {
                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
                "value": "HFXO",
                "macro_name": "CORE_CLOCK_SOURCE"
            },
            "hfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "48000000",
                "macro_name": "HFXO_FREQUENCY"
            },
            "lf_clock_src": {
                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
                "value": "LFXO",
                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
            },
            "lfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "32768",
                "macro_name": "LFXO_FREQUENCY"
            },
            "hfrco_clock_freq": {
                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
                "value": "21000000",
                "macro_name": "HFRCO_FREQUENCY"
            },
            "hfrco_band_select": {
                "help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
                "macro_name": "HFRCO_FREQUENCY_ENUM"
            },
            "board_controller_enable": {
                "help": "Pin to pull high for enabling the USB serial port",
                "value": "PF7",
                "macro_name": "EFM_BC_EN"
            }
        }
    },
    "EFM32LG990F256": {
        "inherits": ["EFM32"],
        "extra_labels_add": ["EFM32LG", "256K"],
        "core": "Cortex-M3",
        "macros": ["EFM32LG990F256", "TRANSACTION_QUEUE_SIZE_SPI=4"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
        "release_versions": ["2", "5"],
        "device_name": "EFM32LG990F256",
        "public": false
    },
    "EFM32LG_STK3600": {
        "inherits": ["EFM32LG990F256"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "forced_reset_timeout": 2,
        "device_name": "EFM32LG990F256",
        "config": {
            "hf_clock_src": {
                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
                "value": "HFXO",
                "macro_name": "CORE_CLOCK_SOURCE"
            },
            "hfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "48000000",
                "macro_name": "HFXO_FREQUENCY"
            },
            "lf_clock_src": {
                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
                "value": "LFXO",
                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
            },
            "lfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "32768",
                "macro_name": "LFXO_FREQUENCY"
            },
            "hfrco_clock_freq": {
                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
                "value": "21000000",
                "macro_name": "HFRCO_FREQUENCY"
            },
            "hfrco_band_select": {
                "help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
                "macro_name": "HFRCO_FREQUENCY_ENUM"
            },
            "board_controller_enable": {
                "help": "Pin to pull high for enabling the USB serial port",
                "value": "PF7",
                "macro_name": "EFM_BC_EN"
            }
        }
    },
    "EFM32WG990F256": {
        "inherits": ["EFM32"],
        "extra_labels_add": ["EFM32WG", "256K"],
        "core": "Cortex-M4F",
        "macros": ["EFM32WG990F256", "TRANSACTION_QUEUE_SIZE_SPI=4"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
        "release_versions": ["2", "5"],
        "device_name": "EFM32WG990F256",
        "public": false
    },
    "EFM32WG_STK3800": {
        "inherits": ["EFM32WG990F256"],
        "progen": {"target": "efm32wg-stk"},
        "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "forced_reset_timeout": 2,
        "config": {
            "hf_clock_src": {
                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
                "value": "HFXO",
                "macro_name": "CORE_CLOCK_SOURCE"
            },
            "hfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "48000000",
                "macro_name": "HFXO_FREQUENCY"
            },
            "lf_clock_src": {
                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
                "value": "LFXO",
                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
            },
            "lfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "32768",
                "macro_name": "LFXO_FREQUENCY"
            },
            "hfrco_clock_freq": {
                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
                "value": "21000000",
                "macro_name": "HFRCO_FREQUENCY"
            },
            "hfrco_band_select": {
                "help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
                "macro_name": "HFRCO_FREQUENCY_ENUM"
            },
            "board_controller_enable": {
                "help": "Pin to pull high for enabling the USB serial port",
                "value": "PF7",
                "macro_name": "EFM_BC_EN"
            }
        }
    },
    "EFM32ZG222F32": {
        "inherits": ["EFM32"],
        "extra_labels_add": ["EFM32ZG", "32K"],
        "core": "Cortex-M0+",
        "default_toolchain": "uARM",
        "macros": ["EFM32ZG222F32", "TRANSACTION_QUEUE_SIZE_SPI=0"],
        "supported_toolchains": ["GCC_ARM", "uARM", "IAR"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "EFM32ZG222F32",
        "public": false
    },
    "EFM32ZG_STK3200": {
        "inherits": ["EFM32ZG222F32"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "forced_reset_timeout": 2,
        "config": {
            "hf_clock_src": {
                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
                "value": "HFXO",
                "macro_name": "CORE_CLOCK_SOURCE"
            },
            "hfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "24000000",
                "macro_name": "HFXO_FREQUENCY"
            },
            "lf_clock_src": {
                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
                "value": "LFXO",
                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
            },
            "lfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "32768",
                "macro_name": "LFXO_FREQUENCY"
            },
            "hfrco_clock_freq": {
                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
                "value": "21000000",
                "macro_name": "HFRCO_FREQUENCY"
            },
            "hfrco_band_select": {
                "help": "Value: One of _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
                "macro_name": "HFRCO_FREQUENCY_ENUM"
            },
            "board_controller_enable": {
                "help": "Pin to pull high for enabling the USB serial port",
                "value": "PA9",
                "macro_name": "EFM_BC_EN"
            }
        }
    },
    "EFM32HG322F64": {
        "inherits": ["EFM32"],
        "extra_labels_add": ["EFM32HG", "64K"],
        "core": "Cortex-M0+",
        "default_toolchain": "uARM",
        "macros": ["EFM32HG322F64", "TRANSACTION_QUEUE_SIZE_SPI=0"],
        "supported_toolchains": ["GCC_ARM", "uARM", "IAR"],
        "default_lib": "small",
        "release_versions": ["2"],
        "device_name": "EFM32HG322F64",
        "public": false
    },
    "EFM32HG_STK3400": {
        "inherits": ["EFM32HG322F64"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "forced_reset_timeout": 2,
        "config": {
            "hf_clock_src": {
                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
                "value": "HFXO",
                "macro_name": "CORE_CLOCK_SOURCE"
            },
            "hfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "24000000",
                "macro_name": "HFXO_FREQUENCY"
            },
            "lf_clock_src": {
                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
                "value": "LFXO",
                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
            },
            "lfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "32768",
                "macro_name": "LFXO_FREQUENCY"
            },
            "hfrco_clock_freq": {
                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
                "value": "21000000",
                "macro_name": "HFRCO_FREQUENCY"
            },
            "hfrco_band_select": {
                "help": "Value: One of _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
                "value": "_CMU_HFRCOCTRL_BAND_21MHZ",
                "macro_name": "HFRCO_FREQUENCY_ENUM"
            },
            "board_controller_enable": {
                "help": "Pin to pull high for enabling the USB serial port",
                "value": "PA9",
                "macro_name": "EFM_BC_EN"
            }
        }
    },
    "EFM32PG1B100F256GM32": {
        "inherits": ["EFM32"],
        "extra_labels_add": ["EFM32PG", "256K"],
        "core": "Cortex-M4F",
        "macros": ["EFM32PG1B100F256GM32", "TRANSACTION_QUEUE_SIZE_SPI=4"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
        "release_versions": ["2", "5"],
        "device_name": "EFM32PG1B100F256GM32",
        "public": false
    },
    "EFM32PG_STK3401": {
        "inherits": ["EFM32PG1B100F256GM32"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "forced_reset_timeout": 2,
        "config": {
            "hf_clock_src": {
                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
                "value": "HFXO",
                "macro_name": "CORE_CLOCK_SOURCE"
            },
            "hfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "40000000",
                "macro_name": "HFXO_FREQUENCY"
            },
            "lf_clock_src": {
                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
                "value": "LFXO",
                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
            },
            "lfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "32768",
                "macro_name": "LFXO_FREQUENCY"
            },
            "hfrco_clock_freq": {
                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
                "value": "32000000",
                "macro_name": "HFRCO_FREQUENCY"
            },
            "hfrco_band_select": {
                "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
                "value": "cmuHFRCOFreq_32M0Hz",
                "macro_name": "HFRCO_FREQUENCY_ENUM"
            },
            "board_controller_enable": {
                "help": "Pin to pull high for enabling the USB serial port",
                "value": "PA5",
                "macro_name": "EFM_BC_EN"
            }
        }
    },
    "EFR32MG1P132F256GM48": {
        "inherits": ["EFM32"],
        "extra_labels_add": ["EFR32MG1", "256K", "SL_RAIL"],
        "core": "Cortex-M4F",
        "macros": ["EFR32MG1P132F256GM48", "TRANSACTION_QUEUE_SIZE_SPI=4"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
        "release_versions": ["2", "5"],
        "device_name": "EFR32MG1P132F256GM48",
        "public": false
    },
    "EFR32MG1P233F256GM48": {
        "inherits": ["EFM32"],
        "extra_labels_add": ["EFR32MG1", "256K", "SL_RAIL"],
        "core": "Cortex-M4F",
        "macros": ["EFR32MG1P233F256GM48", "TRANSACTION_QUEUE_SIZE_SPI=4"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"],
        "release_versions": ["2", "5"],
        "device_name": "EFR32MG1P233F256GM48",
        "public": false
    },
    "EFR32MG1_BRD4150": {
        "inherits": ["EFR32MG1P132F256GM48"],
        "device_has": ["AES", "SHA", "ECC", "SL_PTI", "RF_2P4GHZ", "RF_SUBGHZ", "ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "forced_reset_timeout": 2,
        "config": {
            "hf_clock_src": {
                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
                "value": "HFXO",
                "macro_name": "CORE_CLOCK_SOURCE"
            },
            "hfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "38400000",
                "macro_name": "HFXO_FREQUENCY"
            },
            "lf_clock_src": {
                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
                "value": "LFXO",
                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
            },
            "lfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "32768",
                "macro_name": "LFXO_FREQUENCY"
            },
            "hfrco_clock_freq": {
                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
                "value": "32000000",
                "macro_name": "HFRCO_FREQUENCY"
            },
            "hfrco_band_select": {
                "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
                "value": "cmuHFRCOFreq_32M0Hz",
                "macro_name": "HFRCO_FREQUENCY_ENUM"
            },
            "board_controller_enable": {
                "help": "Pin to pull high for enabling the USB serial port",
                "value": "PA5",
                "macro_name": "EFM_BC_EN"
            }
        },
        "public": false
    },
    "THUNDERBOARD_SENSE": {
        "inherits": ["EFR32MG1P233F256GM48"],
        "device_has": ["AES", "SHA", "ECC", "SL_PTI", "RF_2P4GHZ", "ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
        "forced_reset_timeout": 5,
        "config": {
            "hf_clock_src": {
                "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
                "value": "HFXO",
                "macro_name": "CORE_CLOCK_SOURCE"
            },
            "hfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "38400000",
                "macro_name": "HFXO_FREQUENCY"
            },
            "lf_clock_src": {
                "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
                "value": "LFXO",
                "macro_name": "LOW_ENERGY_CLOCK_SOURCE"
            },
            "lfxo_clock_freq": {
                "help": "Value: External crystal frequency in hertz",
                "value": "32768",
                "macro_name": "LFXO_FREQUENCY"
            },
            "hfrco_clock_freq": {
                "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
                "value": "32000000",
                "macro_name": "HFRCO_FREQUENCY"
            },
            "hfrco_band_select": {
                "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
                "value": "cmuHFRCOFreq_32M0Hz",
                "macro_name": "HFRCO_FREQUENCY_ENUM"
            }
        }
    },
    "WIZWIKI_W7500": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0",
        "extra_labels": ["WIZNET", "W7500x", "WIZwiki_W7500"],
        "supported_toolchains": ["uARM", "ARM"],
        "inherits": ["Target"],
        "device_has": ["ANALOGIN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2"]
    },
    "WIZWIKI_W7500P": {
        "supported_form_factors": ["ARDUINO"],
        "core": "Cortex-M0",
        "extra_labels": ["WIZNET", "W7500x", "WIZwiki_W7500P"],
        "supported_toolchains": ["uARM", "ARM"],
        "inherits": ["Target"],
        "device_has": ["ANALOGIN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2"]
    },
    "WIZWIKI_W7500ECO": {
        "inherits": ["Target"],
        "core": "Cortex-M0",
        "extra_labels": ["WIZNET", "W7500x", "WIZwiki_W7500ECO"],
        "supported_toolchains": ["uARM", "ARM"],
        "device_has": ["ANALOGIN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
        "release_versions": ["2"]
    },
    "SAMR21G18A": {
        "inherits": ["Target"],
        "core": "Cortex-M0+",
        "macros": ["__SAMR21G18A__", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"],
        "extra_labels": ["Atmel", "SAM_CortexM0P", "SAMR21"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"],
        "release_versions": ["2"],
        "device_name": "ATSAMR21G18A"
    },
    "SAMD21J18A": {
        "inherits": ["Target"],
        "core": "Cortex-M0+",
        "macros": ["__SAMD21J18A__", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"],
        "extra_labels": ["Atmel", "SAM_CortexM0P", "SAMD21"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"],
        "release_versions": ["2"],
        "device_name" : "ATSAMD21J18A"
    },
    "SAMD21G18A": {
        "inherits": ["Target"],
        "core": "Cortex-M0+",
        "macros": ["__SAMD21G18A__", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"],
        "extra_labels": ["Atmel", "SAM_CortexM0P", "SAMD21"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"],
        "release_versions": ["2"],
        "device_name": "ATSAMD21G18A"
    },
    "SAML21J18A": {
        "inherits": ["Target"],
        "core": "Cortex-M0+",
        "macros": ["__SAML21J18A__", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"],
        "extra_labels": ["Atmel", "SAM_CortexM0P", "SAML21"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
        "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"],
        "device_name": "ATSAML21J18A"
    },
    "SAMG55J19": {
        "inherits": ["Target"],
        "core": "Cortex-M4",
        "extra_labels": ["Atmel", "SAM_CortexM4", "SAMG55"],
        "macros": ["__SAMG55J19__", "BOARD=75", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"],
        "supported_toolchains": ["GCC_ARM", "ARM", "uARM"],
        "default_toolchain": "ARM",
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"],
        "default_lib": "std",
        "device_name": "ATSAMG55J19"
    },
    "MCU_NRF51_UNIFIED": {
        "inherits": ["Target"],
        "core": "Cortex-M0",
        "OVERRIDE_BOOTLOADER_FILENAME": "nrf51822_bootloader.hex",
        "macros": [
            "NRF51",
            "TARGET_NRF51822",
            "BLE_STACK_SUPPORT_REQD",
            "SOFTDEVICE_PRESENT",
            "S130",
            "TARGET_MCU_NRF51822"
        ],
        "MERGE_BOOTLOADER": false,
        "extra_labels": ["NORDIC", "MCU_NRF51", "MCU_NRF51822_UNIFIED", "NRF5"],
        "OUTPUT_EXT": "hex",
        "is_disk_virtual": true,
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
        "public": false,
        "MERGE_SOFT_DEVICE": true,
        "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [
            {
                "boot": "",
                "name": "s130_nrf51_2.0.0_softdevice.hex",
                "offset": 110592
            }
        ],
        "detect_code": ["1070"],
        "post_binary_hook": {
            "function": "MCU_NRF51Code.binary_hook",
            "toolchains": ["ARM_STD", "GCC_ARM", "IAR"]
        },
        "program_cycle_s": 6,
        "features": ["BLE"],
        "config": {
            "lf_clock_src": {
                "value": "NRF_LF_SRC_XTAL",
                "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC"
            },
            "uart_hwfc": {
                "help": "Value: 1 for enable, 0 for disable",
                "value": 1,
                "macro_name": "MBED_CONF_NORDIC_UART_HWFC"
            }
        },
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"]
    },
    "MCU_NRF51_32K_UNIFIED": {
        "inherits": ["MCU_NRF51_UNIFIED"],
        "extra_labels_add": ["MCU_NORDIC_32K", "MCU_NRF51_32K"],
        "macros_add": ["TARGET_MCU_NORDIC_32K", "TARGET_MCU_NRF51_32K"],
        "public": false
    },
    "NRF51_DK": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF51_32K_UNIFIED"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"],
        "release_versions": ["2", "5"],
        "device_name": "nRF51822_xxAA"
    },
    "NRF51_DONGLE": {
        "inherits": ["MCU_NRF51_32K_UNIFIED"],
        "progen": {"target": "nrf51-dongle"},
        "device_has": ["ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"],
        "release_versions": ["2", "5"]
    },
    "MCU_NRF52": {
        "inherits": ["Target"],
        "core": "Cortex-M4F",
        "macros": ["NRF52", "TARGET_NRF52832", "BLE_STACK_SUPPORT_REQD", "SOFTDEVICE_PRESENT", "S132"],
        "extra_labels": ["NORDIC", "MCU_NRF52", "MCU_NRF52832", "NRF5"],
        "OUTPUT_EXT": "hex",
        "is_disk_virtual": true,
        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
        "public": false,
        "detect_code": ["1101"],
        "program_cycle_s": 6,
        "MERGE_SOFT_DEVICE": true,
        "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [
            {
                "boot": "",
                "name": "s132_nrf52_2.0.0_softdevice.hex",
                "offset": 114688
            }
        ],
        "post_binary_hook": {
            "function": "MCU_NRF51Code.binary_hook",
            "toolchains": ["ARM_STD", "GCC_ARM", "IAR"]
        },
        "MERGE_BOOTLOADER": false,
        "features": ["BLE"],
        "config": {
            "lf_clock_src": {
                "value": "NRF_LF_SRC_XTAL",
                "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC"
            },
            "uart_hwfc": {
                "help": "Value: 1 for enable, 0 for disable",
                "value": 1,
                "macro_name": "MBED_CONF_NORDIC_UART_HWFC"
            }
        }
    },
    "NRF52_DK": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF52"],
        "macros_add": ["BOARD_PCA10040", "NRF52_PAN_12", "NRF52_PAN_15", "NRF52_PAN_58", "NRF52_PAN_55", "NRF52_PAN_54", "NRF52_PAN_31", "NRF52_PAN_30", "NRF52_PAN_51", "NRF52_PAN_36", "NRF52_PAN_53", "S132", "CONFIG_GPIO_AS_PINRESET", "BLE_STACK_SUPPORT_REQD", "SWI_DISABLE0", "NRF52_PAN_20", "NRF52_PAN_64", "NRF52_PAN_62", "NRF52_PAN_63"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"],
        "release_versions": ["2", "5"],
        "device_name": "nRF52832_xxAA"
    },
    "UBLOX_EVA_NINA": {
        "inherits": ["MCU_NRF52"],
        "macros_add": ["BOARD_PCA10040", "NRF52_PAN_12", "NRF52_PAN_15", "NRF52_PAN_58", "NRF52_PAN_55", "NRF52_PAN_54", "NRF52_PAN_31", "NRF52_PAN_30", "NRF52_PAN_51", "NRF52_PAN_36", "NRF52_PAN_53", "S132", "CONFIG_GPIO_AS_PINRESET", "BLE_STACK_SUPPORT_REQD", "SWI_DISABLE0", "NRF52_PAN_20", "NRF52_PAN_64", "NRF52_PAN_62", "NRF52_PAN_63"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"],
        "release_versions": ["2", "5"],
        "overrides": {"uart_hwfc": 0},	
        "device_name": "nRF52832_xxAA"
    },
    "UBLOX_EVK_NINA_B1": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF52"],
        "macros_add": ["BOARD_PCA10040", "NRF52_PAN_12", "NRF52_PAN_15", "NRF52_PAN_58", "NRF52_PAN_55", "NRF52_PAN_54", "NRF52_PAN_31", "NRF52_PAN_30", "NRF52_PAN_51", "NRF52_PAN_36", "NRF52_PAN_53", "S132", "CONFIG_GPIO_AS_PINRESET", "BLE_STACK_SUPPORT_REQD", "SWI_DISABLE0", "NRF52_PAN_20", "NRF52_PAN_64", "NRF52_PAN_62", "NRF52_PAN_63"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"],
        "release_versions": ["2", "5"],
        "device_name": "nRF52832_xxAA"
    },
    "DELTA_DFBM_NQ620": {
        "supported_form_factors": ["ARDUINO"],
        "inherits": ["MCU_NRF52"],
        "macros_add": ["BOARD_PCA10040", "NRF52_PAN_12", "NRF52_PAN_15", "NRF52_PAN_58", "NRF52_PAN_55", "NRF52_PAN_54", "NRF52_PAN_31", "NRF52_PAN_30", "NRF52_PAN_51", "NRF52_PAN_36", "NRF52_PAN_53", "S132", "CONFIG_GPIO_AS_PINRESET", "BLE_STACK_SUPPORT_REQD", "SWI_DISABLE0", "NRF52_PAN_20", "NRF52_PAN_64", "NRF52_PAN_62", "NRF52_PAN_63"],
        "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"],
        "release_versions": ["2", "5"],
        "overrides": {"lf_clock_src": "NRF_LF_SRC_RC"},
        "device_name": "nRF52832_xxAA"
    },
    "BLUEPILL_F103C8": {
        "core": "Cortex-M3",
        "default_toolchain": "GCC_ARM",
        "extra_labels": ["STM", "STM32F1", "STM32F103C8"],
        "supported_toolchains": ["GCC_ARM"],
        "inherits": ["Target"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"]
    },
    "NUMAKER_PFM_NUC472": {
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["NUVOTON", "NUC472", "NUMAKER_PFM_NUC472"],
        "is_disk_virtual": true,
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "STDIO_MESSAGES", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "TRNG", "CAN"],
        "features": ["LWIP"],
        "release_versions": ["5"],
        "device_name": "NUC472HI8AE"
    },
    "NCS36510": {
        "inherits": ["Target"],
        "core": "Cortex-M3",
        "extra_labels": ["ONSEMI"],
        "config": {
            "mac-addr-low": {
                "help": "Lower 32 bits of the MAC extended address. All FFs indicates that factory programmed MAC address shall be used. In order to override the factory programmed MAC address this value needs to be changed from 0xFFFFFFFF to any chosen value.",
                "value": "0xFFFFFFFF"
            },
            "mac-addr-high": {
                "help": "Higher 32 bits of the MAC extended address. All FFs indicates that factory programmed MAC address shall be used. In order to override the factory programmed MAC address this value needs to be changed from 0xFFFFFFFF to any chosen value.",
                "value": "0xFFFFFFFF"
            },
            "32KHz-clk-trim": {
                "help": "32KHz clock trim",
                "value": "0x39"
            },
            "32MHz-clk-trim": {
                "help": "32MHz clock trim",
                "value": "0x17"
            },
            "rssi-trim": {
                "help": "RSSI trim",
                "value": "0x3D"
            },
            "txtune-trim": {
                "help": "TX tune trim",
                "value": "0xFFFFFFFF"
            }
        },
        "post_binary_hook": {"function": "NCS36510TargetCode.ncs36510_addfib"},
        "macros": ["CM3", "CPU_NCS36510", "TARGET_NCS36510", "LOAD_ADDRESS=0x3000"],
        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
        "device_has": ["ANALOGIN", "SERIAL", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "LOWPOWERTIMER", "TRNG"],
        "device_name": "NCS36510",
        "release_versions": ["2", "5"]
    },
    "NUMAKER_PFM_M453": {
        "core": "Cortex-M4F",
        "default_toolchain": "ARM",
        "extra_labels": ["NUVOTON", "M451", "NUMAKER_PFM_M453"],
        "is_disk_virtual": true,
        "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
        "inherits": ["Target"],
        "progen": {"target": "numaker-pfm-m453"},
        "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "STDIO_MESSAGES", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "CAN"],
        "release_versions": ["2", "5"],
        "device_name": "M453VG6AE"
    },
    "HI2110": {
        "inherits": ["Target"],
        "core": "Cortex-M0",
        "default_toolchain": "GCC_ARM",
        "supported_toolchains": ["GCC_ARM", "ARM", "IAR"],
        "extra_labels": ["ublox"],
        "macros": ["TARGET_PROCESSOR_FAMILY_BOUDICA", "BOUDICA_SARA", "NDEBUG=1"],
        "public": false,
        "target_overrides": {
            "*": {
                "core.stdio-flush-at-exit": false
            }
        },
        "device_has": ["INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SLEEP", "STDIO_MESSAGES"],
        "default_lib": "std",
        "release_versions": ["5"]
   },
    "SARA_NBIOT": {
        "inherits": ["HI2110"],
        "extra_labels": ["ublox", "HI2110"],
        "public": false
    },
    "SARA_NBIOT_EVK": {
        "inherits": ["SARA_NBIOT"],
        "extra_labels": ["ublox", "HI2110", "SARA_NBIOT"]
    }
}