From f9242d0b5c8ecc3a20e5a1f9813c2c1d93c61db9 Mon Sep 17 00:00:00 2001 From: toyowata Date: Thu, 19 Dec 2019 15:31:33 +0900 Subject: [PATCH] Fix runtime crash by ARMC6 build --- targets/TARGET_NXP/TARGET_LPC11UXX/device/cmsis_nvic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/targets/TARGET_NXP/TARGET_LPC11UXX/device/cmsis_nvic.c b/targets/TARGET_NXP/TARGET_LPC11UXX/device/cmsis_nvic.c index 4127988d62..5f6802e6d2 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]; }