diff --git a/hal/targets.json b/hal/targets.json index 612cd28a1d..cfe13e5a35 100644 --- a/hal/targets.json +++ b/hal/targets.json @@ -836,6 +836,17 @@ "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], "default_build": "small" }, + "NUCLEO_L432KC": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "default_toolchain": "uARM", + "extra_labels": ["STM", "STM32L4", "STM32L432KC"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "progen": {"target": "nucleo-l432kc"}, + "detect_code": ["0770"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "CAN", "STDIO_MESSAGES"] + }, "NUCLEO_L476RG": { "supported_form_factors": ["ARDUINO", "MORPHO"], "core": "Cortex-M4F", diff --git a/libraries/tests/mbed/can/main.cpp b/libraries/tests/mbed/can/main.cpp index cf167eebe4..c8c182207c 100644 --- a/libraries/tests/mbed/can/main.cpp +++ b/libraries/tests/mbed/can/main.cpp @@ -19,7 +19,8 @@ CAN can1(PD_0, PD_1); defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F303K8) || \ defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \ defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \ - defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) + defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) || \ + defined(TARGET_NUCLEO_L432KC) CAN can1(PA_11, PA_12); #elif defined(TARGET_DISCO_F469NI) ||defined(TARGET_DISCO_F746NG) CAN can1(PB_8, PB_9); @@ -66,7 +67,8 @@ int main() { !defined(TARGET_NUCLEO_F042K6) && !defined(TARGET_NUCLEO_F334R8) && \ !defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \ !defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \ - !defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG)) + !defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \ + !defined(TARGET_NUCLEO_L432KC)) printf("loop()\n"); if(can2.read(msg)) { printmsg("Rx message:", &msg); diff --git a/libraries/tests/mbed/can_interrupt/main.cpp b/libraries/tests/mbed/can_interrupt/main.cpp index 069eda0ed6..8bd68a6eff 100644 --- a/libraries/tests/mbed/can_interrupt/main.cpp +++ b/libraries/tests/mbed/can_interrupt/main.cpp @@ -19,7 +19,8 @@ CAN can1(PD_0, PD_1); defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F303K8) || \ defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \ defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \ - defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) + defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) || \ + defined(TARGET_NUCLEO_L432KC) CAN can1(PA_11, PA_12); #elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG) CAN can1(PB_8, PB_9); @@ -61,7 +62,8 @@ void send() { !defined(TARGET_NUCLEO_F042K6) && !defined(TARGET_NUCLEO_F334R8) && \ !defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \ !defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \ - !defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG)) + !defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \ + !defined(TARGET_NUCLEO_L432KC)) void read() { CANMessage msg; printf("rx()\n"); @@ -80,7 +82,8 @@ int main() { !defined(TARGET_NUCLEO_F042K6) && !defined(TARGET_NUCLEO_F334R8) && \ !defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \ !defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \ - !defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG)) + !defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \ + !defined(TARGET_NUCLEO_L432KC)) can2.attach(&read); #endif while(1) { diff --git a/libraries/tests/mbed/can_loopback/main.cpp b/libraries/tests/mbed/can_loopback/main.cpp index 5047d16151..a8a45b9b6c 100644 --- a/libraries/tests/mbed/can_loopback/main.cpp +++ b/libraries/tests/mbed/can_loopback/main.cpp @@ -19,7 +19,7 @@ CAN can1(P5_9, P5_10); defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \ defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \ defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_DISCO_L476VG) || \ - defined(TARGET_NUCLEO_L476RG) + defined(TARGET_NUCLEO_L476RG) || defined(TARGET_NUCLEO_L432KC) CAN can1(PA_11, PA_12); #elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG) CAN can1(PB_8, PB_9); diff --git a/tools/build_release.py b/tools/build_release.py index 8f47268912..355214724c 100644 --- a/tools/build_release.py +++ b/tools/build_release.py @@ -95,6 +95,7 @@ OFFICIAL_MBED_LIBRARY_BUILD = ( ('DISCO_F469NI', ('ARM', 'uARM', 'IAR', 'GCC_ARM')), ('DISCO_F746NG', ('ARM', 'uARM', 'GCC_ARM','IAR')), ('DISCO_L476VG', ('ARM', 'uARM', 'IAR', 'GCC_ARM')), + ('NUCLEO_L432KC', ('ARM', 'uARM', 'IAR', 'GCC_ARM')), ('NUCLEO_L476RG', ('ARM', 'uARM', 'IAR', 'GCC_ARM')), ('NUCLEO_F746ZG', ('ARM', 'uARM', 'GCC_ARM', 'IAR')), ('NUCLEO_L011K4', ('ARM', 'uARM', 'GCC_ARM', 'IAR')), diff --git a/tools/build_travis.py b/tools/build_travis.py index 3bf798a9da..7f7d9b7ea3 100644 --- a/tools/build_travis.py +++ b/tools/build_travis.py @@ -52,6 +52,7 @@ build_list = ( { "target": "NUCLEO_F401RE", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] }, { "target": "NUCLEO_F410RB", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] }, { "target": "NUCLEO_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] }, + { "target": "NUCLEO_L432KC", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] }, { "target": "NUCLEO_L476RG", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] }, { "target": "NUCLEO_L011K4", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "NUCLEO_L031K6", "toolchains": "GCC_ARM", "libs": ["dsp"] }, diff --git a/tools/export/gccarm.py b/tools/export/gccarm.py index 7fc3bfa036..d154eeb132 100644 --- a/tools/export/gccarm.py +++ b/tools/export/gccarm.py @@ -88,6 +88,7 @@ class GccArm(Exporter): 'NUCLEO_L031K6', 'NUCLEO_L053R8', 'NUCLEO_L073RZ', + 'NUCLEO_L432KC', 'NUCLEO_L476RG', 'DISCO_F334C8', 'MAX32600MBED', diff --git a/tools/export/sw4stm32.py b/tools/export/sw4stm32.py index 12acbd9ae5..36c9a2b9eb 100644 --- a/tools/export/sw4stm32.py +++ b/tools/export/sw4stm32.py @@ -51,6 +51,7 @@ class Sw4STM32(Exporter): 'NUCLEO_L053R8': {'name': 'NUCLEO-L053R8', 'mcuId': 'STM32L053R8Tx'}, 'NUCLEO_L073RZ': {'name': 'NUCLEO-L073RZ', 'mcuId': 'STM32L073RZTx'}, 'NUCLEO_L152RE': {'name': 'NUCLEO-L152RE', 'mcuId': 'STM32L152RETx'}, + 'NUCLEO_L432KC': {'name': 'NUCLEO-L432KC', 'mcuId': 'STM32L432KCUx'}, 'NUCLEO_L476RG': {'name': 'NUCLEO-L476RG', 'mcuId': 'STM32L476RGTx'}, 'NUCLEO_F031K6': {'name': 'NUCLEO-F031K6', 'mcuId': 'STM32F031K6Tx'}, 'NUCLEO_F042K6': {'name': 'NUCLEO-F042K6', 'mcuId': 'STM32F042K6Tx'}, diff --git a/tools/export_test.py b/tools/export_test.py index bcb9376eac..eef0c64cf8 100644 --- a/tools/export_test.py +++ b/tools/export_test.py @@ -147,6 +147,7 @@ if __name__ == '__main__': ('uvision', 'NUCLEO_L053R8'), ('uvision', 'NUCLEO_L073RZ'), ('uvision', 'NUCLEO_L152RE'), + ('uvision', 'NUCLEO_L432KC'), ('uvision', 'NUCLEO_L476RG'), ('uvision', 'MTS_MDOT_F405RG'), ('uvision', 'MAXWSNENV'), @@ -213,6 +214,7 @@ if __name__ == '__main__': ('gcc_arm', 'NUCLEO_F334R8'), ('gcc_arm', 'NUCLEO_L011K4'), ('gcc_arm', 'NUCLEO_L031K6'), + ('gcc_arm', 'NUCLEO_L432KC'), ('gcc_arm', 'MAX32600MBED'), ('gcc_arm', 'MTS_MDOT_F405RG'), ('gcc_arm', 'MTS_MDOT_F411RE'), @@ -265,6 +267,7 @@ if __name__ == '__main__': ('iar', 'NUCLEO_L053R8'), ('iar', 'NUCLEO_L073RZ'), ('iar', 'NUCLEO_L152RE'), + ('iar', 'NUCLEO_L432KC'), ('iar', 'NUCLEO_L476RG'), ('iar', 'DISCO_L053C8'), ('iar', 'DISCO_F334C8'), @@ -311,12 +314,13 @@ if __name__ == '__main__': ('sw4stm32', 'NUCLEO_L053R8'), ('sw4stm32', 'NUCLEO_L073RZ'), ('sw4stm32', 'NUCLEO_L152RE'), + ('sw4stm32', 'NUCLEO_L432KC'), ('sw4stm32', 'NUCLEO_L476RG'), ('sw4stm32', 'NUCLEO_F031K6'), ('sw4stm32', 'NUCLEO_F042K6'), ('sw4stm32', 'NUCLEO_F303K8'), ('sw4stm32', 'NUCLEO_F410RB'), - + ('e2studio', 'RZ_A1H'), # Removed following item to avoid script error #(None, None), diff --git a/tools/tests.py b/tools/tests.py index 9cfed9ec7d..b07a407f9e 100644 --- a/tools/tests.py +++ b/tools/tests.py @@ -106,6 +106,7 @@ Wiring: * DISCO_F746NG: (RX=PB_8, TX=PB_9) * DISCO_L476VG: (RX=PA_11, TX=PA_12) * NUCLEO_L476RG: (RX=PA_11, TX=PA_12) + * NUCLEO_L432KC: (RX=PA_11, TX=PA_12) """ TESTS = [ @@ -315,7 +316,7 @@ TESTS = [ "NUCLEO_F091RC", "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", - "DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG"] + "DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC"] }, { "id": "MBED_BLINKY", "description": "Blinky", @@ -590,7 +591,7 @@ TESTS = [ "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG", - "NUCLEO_L476RG"] + "NUCLEO_L476RG", "NUCLEO_L432KC"] }, { "id": "MBED_30", "description": "CAN network test using interrupts", @@ -600,7 +601,7 @@ TESTS = [ "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG", - "NUCLEO_L476RG"] + "NUCLEO_L476RG", "NUCLEO_L432KC"] }, { "id": "MBED_31", "description": "PWM LED test",