diff --git a/targets/TARGET_NXP/TARGET_LPC11UXX/device/cmsis_nvic.c b/targets/TARGET_NXP/TARGET_LPC11UXX/device/cmsis_nvic.c index 4127988d620..5f6802e6d27 100644 --- a/targets/TARGET_NXP/TARGET_LPC11UXX/device/cmsis_nvic.c +++ b/targets/TARGET_NXP/TARGET_LPC11UXX/device/cmsis_nvic.c @@ -60,7 +60,8 @@ void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) { // Copy and switch to dynamic vectors if first time called if((LPC_SYSCON->SYSMEMREMAP & 0x3) != 0x1) { - uint32_t *old_vectors = (uint32_t *)0; // FLASH vectors are at 0x0 + // Add volatile qualifier to avoid armclang aggressive optimization + volatile uint32_t *old_vectors = (uint32_t *)0; // FLASH vectors are at 0x0 for(i = 0; i < NVIC_NUM_VECTORS; i++) { vectors[i] = old_vectors[i]; } diff --git a/targets/TARGET_NXP/TARGET_LPC11UXX/us_ticker.c b/targets/TARGET_NXP/TARGET_LPC11UXX/us_ticker.c index 5299b4a7bbc..0ae71396742 100644 --- a/targets/TARGET_NXP/TARGET_LPC11UXX/us_ticker.c +++ b/targets/TARGET_NXP/TARGET_LPC11UXX/us_ticker.c @@ -17,6 +17,8 @@ #include "us_ticker_api.h" #include "PeripheralNames.h" +#if DEVICE_USTICKER + #define US_TICKER_TIMER ((LPC_CTxxBx_Type *)LPC_CT32B1_BASE) #define US_TICKER_TIMER_IRQn TIMER_32_1_IRQn @@ -70,3 +72,5 @@ void us_ticker_free(void) { } + +#endif // DEVICE_USTICKER diff --git a/targets/targets.json b/targets/targets.json index 1040f6fd55a..efafdcbd54f 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -374,8 +374,13 @@ "SERIAL", "SLEEP", "SPI", - "SPISLAVE" + "SPISLAVE", + "USTICKER" ], + "overrides": { + "tickless-from-us-ticker" : true, + "boot-stack-size" : "0x400" + }, "default_lib": "small", "release_versions": ["2"], "device_name": "LPC11U35FBD48/401"