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+) 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 06a5929277..a31e0ef4dd 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 ef86bb008d..3862be6fd5 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 5c7acb4d34..05f90f1ce9 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 31168a579c..26cd2fa70c 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; 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/build_release.py b/workspace_tools/build_release.py index a454ab5b1c..995a2c9f94 100644 --- a/workspace_tools/build_release.py +++ b/workspace_tools/build_release.py @@ -26,20 +26,25 @@ 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')), + ('UBLOX_C027', ('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', )), ) 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 + + + + + + + ✓ + diff --git a/workspace_tools/make.py b/workspace_tools/make.py index 403576a0dc..95b5a9650a 100644 --- a/workspace_tools/make.py +++ b/workspace_tools/make.py @@ -167,20 +167,30 @@ 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"]) + elif mcu.startswith('NUCLEO'): + call(["ST-LINK_CLI.exe", "-Rst"]) + else: + serial.sendBreak() while True: c = serial.read(512) diff --git a/workspace_tools/targets.py b/workspace_tools/targets.py index d60e404255..6eb622b7d3 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) @@ -351,6 +363,8 @@ class LPC11C24(Target): class LPC11U35_401(Target): + ONLINE_TOOLCHAIN = "uARM" + def __init__(self): Target.__init__(self) @@ -367,18 +381,18 @@ 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"] + 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) 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" ]