From 0b9d9ff7019d14af8ab16cb311451af5ff282659 Mon Sep 17 00:00:00 2001 From: Emilio Monti Date: Tue, 11 Feb 2014 15:54:52 +0000 Subject: [PATCH 01/11] Add proper support to nrfjprog interface --- workspace_tools/make.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/workspace_tools/make.py b/workspace_tools/make.py index 403576a0dc..9b6b643159 100644 --- a/workspace_tools/make.py +++ b/workspace_tools/make.py @@ -167,20 +167,28 @@ if __name__ == '__main__': if options.disk: # Simple copy to the mbed disk copy(bin, options.disk) + if options.nrfjprog: #Convert bin to Hex and Program nrf chip via jlink - call(["nrfjprog","-e","--program",bin.replace(".bin", ".hex"),"--verify","-p"]) + call(["nrfjprog","-e","--program",bin.replace(".bin", ".hex"),"--verify"]) + if options.serial: # Import pyserial: https://pypi.python.org/pypi/pyserial from serial import Serial sleep(target.program_cycle_s()) + serial = Serial(options.serial, timeout = 1) if options.baud: serial.setBaudrate(options.baud) + serial.flushInput() serial.flushOutput() - serial.sendBreak() + + if options.nrfjprog: + call(["nrfjprog", "-r"]) + else: + serial.sendBreak() while True: c = serial.read(512) From b213992ac08c1e989c56e972f4fff8a09ba19a63 Mon Sep 17 00:00:00 2001 From: Emilio Monti Date: Tue, 11 Feb 2014 17:07:29 +0000 Subject: [PATCH 02/11] Optimize for speed --- libraries/tests/mbed/pin_toggling/main.cpp | 10 ++++++++++ workspace_tools/tests.py | 7 ++++++- workspace_tools/toolchains/arm.py | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 libraries/tests/mbed/pin_toggling/main.cpp diff --git a/libraries/tests/mbed/pin_toggling/main.cpp b/libraries/tests/mbed/pin_toggling/main.cpp new file mode 100644 index 0000000000..5eb809a2ff --- /dev/null +++ b/libraries/tests/mbed/pin_toggling/main.cpp @@ -0,0 +1,10 @@ +#include "mbed.h" + +DigitalOut out(p5); + +int main() { + while (true) { + out = 1; + out = 0; + } +} diff --git a/workspace_tools/tests.py b/workspace_tools/tests.py index 38219b3e58..ce11499964 100644 --- a/workspace_tools/tests.py +++ b/workspace_tools/tests.py @@ -422,7 +422,12 @@ TESTS = [ "source_dir": join(TEST_DIR, "mbed", "pwm_led"), "dependencies": [MBED_LIBRARIES], }, - + { + "id": "MBED_32", "description": "Pin toggling", + "source_dir": join(TEST_DIR, "mbed", "pin_toggling"), + "dependencies": [MBED_LIBRARIES], + }, + # CMSIS RTOS tests { "id": "CMSIS_RTOS_1", "description": "Basic", diff --git a/workspace_tools/toolchains/arm.py b/workspace_tools/toolchains/arm.py index a126ffea33..8f7e30c661 100644 --- a/workspace_tools/toolchains/arm.py +++ b/workspace_tools/toolchains/arm.py @@ -43,7 +43,7 @@ class ARM(mbedToolchain): main_cc = join(ARM_BIN, "armcc") common = ["-c", "--cpu=%s" % cpu, "--gnu", - "-Ospace", "--split_sections", "--apcs=interwork", + "-O3", "-Otime", "--split_sections", "--apcs=interwork", "--brief_diagnostics", "--restrict" ] From e5ac8fed596f2d8507a23ef25dce86e4f8f68ea6 Mon Sep 17 00:00:00 2001 From: Emilio Monti Date: Wed, 12 Feb 2014 10:31:25 +0000 Subject: [PATCH 03/11] Update list of officially supported builds --- workspace_tools/build_release.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/workspace_tools/build_release.py b/workspace_tools/build_release.py index a454ab5b1c..7bf936d2e3 100644 --- a/workspace_tools/build_release.py +++ b/workspace_tools/build_release.py @@ -26,20 +26,24 @@ from workspace_tools.build_api import build_mbed_libs from workspace_tools.targets import TARGET_MAP OFFICIAL_MBED_LIBRARY_BUILD = ( - ('KL25Z', ('ARM', 'GCC_ARM')), - ('LPC11U24', ('ARM', 'uARM')), - ('LPC1768', ('ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR')), - ('LPC2368', ('ARM',)), - ('LPC812', ('uARM',)), - ('LPC1347', ('ARM',)), - ('LPC4088', ('ARM', 'GCC_ARM', 'GCC_CR')), - ('LPC1114', ('uARM',)), - ('KL46Z', ('ARM', 'GCC_ARM')), + ('LPC11U24', ('ARM', 'uARM')), + ('LPC1768', ('ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR')), + ('LPC2368', ('ARM',)), + ('LPC812', ('uARM',)), + ('LPC1347', ('ARM',)), + ('LPC4088', ('ARM', 'GCC_ARM', 'GCC_CR')), + ('LPC1114', ('uARM',)), ('LPC11U35_401', ('ARM', 'uARM')), - ('NUCLEO_F103RB', ('ARM',)), -# ('NUCLEO_L152RE', ('ARM',)), -# ('NUCLEO_F401RE', ('ARM',)), -# ('NUCLEO_F030R8', ('ARM',)), + + ('KL25Z', ('ARM', 'GCC_ARM')), + ('KL46Z', ('ARM', 'GCC_ARM')), + + ('NUCLEO_F103RB', ('ARM', 'uARM')), + ('NUCLEO_L152RE', ('ARM', 'uARM')), + ('NUCLEO_F401RE', ('ARM', 'uARM')), + ('NUCLEO_F030R8', ('ARM', 'uARM')), + + ('NRF51822', ('ARM', )), ) From 9762d3af3b28361fd2b6cc30861fcc24a9e7c74f Mon Sep 17 00:00:00 2001 From: Emilio Monti Date: Wed, 12 Feb 2014 11:34:06 +0000 Subject: [PATCH 04/11] Add UBLOX_C027 to official builds --- workspace_tools/build_release.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/workspace_tools/build_release.py b/workspace_tools/build_release.py index 7bf936d2e3..03df60aff5 100644 --- a/workspace_tools/build_release.py +++ b/workspace_tools/build_release.py @@ -28,6 +28,7 @@ from workspace_tools.targets import TARGET_MAP OFFICIAL_MBED_LIBRARY_BUILD = ( ('LPC11U24', ('ARM', 'uARM')), ('LPC1768', ('ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR')), + ('UBLOX_C027', ('ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR')), ('LPC2368', ('ARM',)), ('LPC812', ('uARM',)), ('LPC1347', ('ARM',)), @@ -35,6 +36,7 @@ OFFICIAL_MBED_LIBRARY_BUILD = ( ('LPC1114', ('uARM',)), ('LPC11U35_401', ('ARM', 'uARM')), + ('KL25Z', ('ARM', 'GCC_ARM')), ('KL46Z', ('ARM', 'GCC_ARM')), From fc201caf64c3c75bdf6b75a474296d218c67160a Mon Sep 17 00:00:00 2001 From: Mihail Stoyanov Date: Wed, 12 Feb 2014 11:41:02 +0000 Subject: [PATCH 05/11] Add preferred online toolchain flag in targets.py --- workspace_tools/targets.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/workspace_tools/targets.py b/workspace_tools/targets.py index d60e404255..670adb0a9d 100644 --- a/workspace_tools/targets.py +++ b/workspace_tools/targets.py @@ -77,6 +77,8 @@ class LPC1768(Target): class LPC11U24(Target): + ONLINE_TOOLCHAIN = "uARM" + def __init__(self): Target.__init__(self) @@ -151,6 +153,8 @@ class K20D5M(Target): class LPC812(Target): + ONLINE_TOOLCHAIN = "uARM" + def __init__(self): Target.__init__(self) @@ -164,6 +168,8 @@ class LPC812(Target): class LPC810(Target): + ONLINE_TOOLCHAIN = "uARM" + def __init__(self): Target.__init__(self) @@ -266,6 +272,7 @@ class STM32F407(Target): class NUCLEO_F103RB(Target): + ONLINE_TOOLCHAIN = "uARM" OUTPUT_NAMING = "8.3" def __init__(self): @@ -279,6 +286,7 @@ class NUCLEO_F103RB(Target): class NUCLEO_L152RE(Target): + ONLINE_TOOLCHAIN = "uARM" OUTPUT_NAMING = "8.3" def __init__(self): @@ -292,6 +300,7 @@ class NUCLEO_L152RE(Target): class NUCLEO_F401RE(Target): + ONLINE_TOOLCHAIN = "uARM" OUTPUT_NAMING = "8.3" def __init__(self): @@ -305,6 +314,7 @@ class NUCLEO_F401RE(Target): class NUCLEO_F030R8(Target): + ONLINE_TOOLCHAIN = "uARM" OUTPUT_NAMING = "8.3" def __init__(self): @@ -329,6 +339,8 @@ class LPC1347(Target): class LPC1114(Target): + ONLINE_TOOLCHAIN = "uARM" + def __init__(self): Target.__init__(self) @@ -369,16 +381,16 @@ class UBLOX_C027(Target): self.extra_labels = ['NXP', 'LPC176X', 'UBLOX_C027'] - self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"] + self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"] class NRF51822(Target): + OUTPUT_EXT = '.hex' + EXPECTED_SOFTDEVICE = 's110_nrf51822_6.0.0_softdevice.hex' UICR_START = 0x10001000 APPCODE_OFFSET = 0x14000 - OUTPUT_EXT = '.hex' - def __init__(self): Target.__init__(self) From 641ac65ce785b185461eb7cf0e83b8b9e67b5c6d Mon Sep 17 00:00:00 2001 From: Emilio Monti Date: Wed, 12 Feb 2014 14:03:44 +0000 Subject: [PATCH 06/11] Remove duplicate label (already in the target name) --- workspace_tools/targets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace_tools/targets.py b/workspace_tools/targets.py index 670adb0a9d..c8150622c8 100644 --- a/workspace_tools/targets.py +++ b/workspace_tools/targets.py @@ -379,7 +379,7 @@ class UBLOX_C027(Target): self.core = "Cortex-M3" - self.extra_labels = ['NXP', 'LPC176X', 'UBLOX_C027'] + self.extra_labels = ['NXP', 'LPC176X'] self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"] From 985c40a3d946909f773a9e57e67aac7ec5e7cd16 Mon Sep 17 00:00:00 2001 From: neilt6 Date: Wed, 12 Feb 2014 09:55:06 -0700 Subject: [PATCH 07/11] Changed LPC11U35 online toolchain to uARM Added the ONLINE_TOOLCHAIN tag to the LPC11U35_401 target class in order to prevent ARM Standard from being used instead of ARM Micro. --- workspace_tools/targets.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/workspace_tools/targets.py b/workspace_tools/targets.py index 670adb0a9d..359ba6b2e6 100644 --- a/workspace_tools/targets.py +++ b/workspace_tools/targets.py @@ -363,6 +363,8 @@ class LPC11C24(Target): class LPC11U35_401(Target): + ONLINE_TOOLCHAIN = "uARM" + def __init__(self): Target.__init__(self) From d3944590ba1739278b11df9458864d4f93aecbf3 Mon Sep 17 00:00:00 2001 From: neilt6 Date: Wed, 12 Feb 2014 09:57:43 -0700 Subject: [PATCH 08/11] Added LPC11U35 to readme Added a reference to the EA LPC11U35 QuickStart Board to the readme. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7931bf7114..3631d6e45e 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ NXP: * [LPC1768](http://mbed.org/platforms/mbed-LPC1768/) (Cortex-M3) * [LPC1768](http://mbed.org/platforms/u-blox-C027/) (Cortex-M3) * [LPC11U24](http://mbed.org/platforms/mbed-LPC11U24/) (Cortex-M0) +* [LPC11U35](http://mbed.org/platforms/EA-LPC11U35/) (Cortex-M0) * LPC2368 (ARM7TDMI-S) * LPC810 (Cortex-M0+) * [LPC812](http://mbed.org/platforms/NXP-LPC800-MAX/) (Cortex-M0+) From e647c0ffb9b1ac7c38109bd25d021a294a2b8414 Mon Sep 17 00:00:00 2001 From: Stephen Paulger Date: Thu, 13 Feb 2014 17:18:56 +0000 Subject: [PATCH 09/11] Update Exporter README Added rows for ST Platforms. Added rows for missing Freescale Platforms. Added columns for CoIDE --- workspace_tools/export/README.md | 69 ++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/workspace_tools/export/README.md b/workspace_tools/export/README.md index 05907068e9..34536c0fcd 100644 --- a/workspace_tools/export/README.md +++ b/workspace_tools/export/README.md @@ -6,6 +6,7 @@ Exporter Toolchain/Platform Support Code Red Code Sourcery + CoIDE DS-5 GCC ARM IAR @@ -19,11 +20,13 @@ Exporter Toolchain/Platform Support ✓ ✓ ✓ + ✓ NXP LPC11U24 + ✓ @@ -33,6 +36,7 @@ Exporter Toolchain/Platform Support NXP LPC812 + ✓ @@ -43,6 +47,7 @@ Exporter Toolchain/Platform Support ✓ + ✓ ✓ @@ -54,6 +59,7 @@ Exporter Toolchain/Platform Support + ✓ @@ -63,12 +69,34 @@ Exporter Toolchain/Platform Support + + ✓ + + + Freescale KL05Z + + + ✓ + + ✓ + + ✓ + + + Freescale KL20D5M + + + + + + ✓ Freescale KL25Z + ✓ ✓ @@ -79,8 +107,49 @@ Exporter Toolchain/Platform Support + ✓ ✓ + + ST Nucleo F030R8 + + + + + + + ✓ + + + ST Nucleo F103RB + + + + + + + ✓ + + + ST Nucleo F401RE + + + + + + ✓ + ✓ + + + ST Nucleo L152RE + + + + + + + ✓ + From 3136fcc15c96f0b4e77f0a7ab3ff0354bc80160c Mon Sep 17 00:00:00 2001 From: Emilio Monti Date: Fri, 14 Feb 2014 10:38:52 +0000 Subject: [PATCH 10/11] Add Nucleo board reset. Do not release Nordic yet. --- workspace_tools/build_release.py | 3 +-- workspace_tools/make.py | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/workspace_tools/build_release.py b/workspace_tools/build_release.py index 03df60aff5..995a2c9f94 100644 --- a/workspace_tools/build_release.py +++ b/workspace_tools/build_release.py @@ -36,7 +36,6 @@ OFFICIAL_MBED_LIBRARY_BUILD = ( ('LPC1114', ('uARM',)), ('LPC11U35_401', ('ARM', 'uARM')), - ('KL25Z', ('ARM', 'GCC_ARM')), ('KL46Z', ('ARM', 'GCC_ARM')), @@ -45,7 +44,7 @@ OFFICIAL_MBED_LIBRARY_BUILD = ( ('NUCLEO_F401RE', ('ARM', 'uARM')), ('NUCLEO_F030R8', ('ARM', 'uARM')), - ('NRF51822', ('ARM', )), + # ('NRF51822', ('ARM', )), ) diff --git a/workspace_tools/make.py b/workspace_tools/make.py index 9b6b643159..95b5a9650a 100644 --- a/workspace_tools/make.py +++ b/workspace_tools/make.py @@ -187,6 +187,8 @@ if __name__ == '__main__': if options.nrfjprog: call(["nrfjprog", "-r"]) + elif mcu.startswith('NUCLEO'): + call(["ST-LINK_CLI.exe", "-Rst"]) else: serial.sendBreak() From b87dac9fcef3a698e78979537d1c2d825e54ff3d Mon Sep 17 00:00:00 2001 From: Emilio Monti Date: Mon, 17 Feb 2014 16:13:40 +0000 Subject: [PATCH 11/11] fix us_ticker issue for Nucleo boards --- .../targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/us_ticker.c | 2 +- .../targets/hal/TARGET_STM/TARGET_NUCLEO_F103RB/us_ticker.c | 2 +- .../targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/us_ticker.c | 2 +- .../targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/us_ticker.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/us_ticker.c b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/us_ticker.c index 04e21599bb..652f94473a 100644 --- a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/us_ticker.c +++ b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/us_ticker.c @@ -36,7 +36,7 @@ #define TIM_MST_RCC RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE) static int us_ticker_inited = 0; -static uint32_t SlaveCounter = 0; +static volatile uint32_t SlaveCounter = 0; static uint32_t oc_int_part = 0; static uint16_t oc_rem_part = 0; diff --git a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F103RB/us_ticker.c b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F103RB/us_ticker.c index 98f9b2c2c0..0868ddbad5 100644 --- a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F103RB/us_ticker.c +++ b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F103RB/us_ticker.c @@ -36,7 +36,7 @@ #define TIM_MST_RCC RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE) static int us_ticker_inited = 0; -static uint32_t SlaveCounter = 0; +static volatile uint32_t SlaveCounter = 0; static uint32_t oc_int_part = 0; static uint16_t oc_rem_part = 0; diff --git a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/us_ticker.c b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/us_ticker.c index 8faa60812f..1cf64cd6fd 100644 --- a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/us_ticker.c +++ b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/us_ticker.c @@ -39,7 +39,7 @@ static TIM_HandleTypeDef TimMasterHandle; static int us_ticker_inited = 0; -static uint32_t SlaveCounter = 0; +static volatile uint32_t SlaveCounter = 0; static uint32_t oc_int_part = 0; static uint16_t oc_rem_part = 0; diff --git a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/us_ticker.c b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/us_ticker.c index 1f722bfcad..87aa93dd26 100644 --- a/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/us_ticker.c +++ b/libraries/mbed/targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/us_ticker.c @@ -35,7 +35,7 @@ #define TIM_MST_RCC RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM9, ENABLE) static int us_ticker_inited = 0; -static uint32_t SlaveCounter = 0; +static volatile uint32_t SlaveCounter = 0; static uint32_t oc_int_part = 0; static uint16_t oc_rem_part = 0;