diff --git a/rtos/TARGET_CORTEX/mbed_rtx_conf.h b/rtos/TARGET_CORTEX/mbed_rtx_conf.h index 91db38a617a..bd4fb4c6753 100644 --- a/rtos/TARGET_CORTEX/mbed_rtx_conf.h +++ b/rtos/TARGET_CORTEX/mbed_rtx_conf.h @@ -45,10 +45,18 @@ #else #define EXTRA_IDLE_STACK 0 #endif + +// Increase the idle thread stack size when debug is enabled +#if defined(MBED_DEBUG) +#define EXTRA_IDLE_STACK_DEBUG MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE_DEBUG_EXTRA +#else +#define EXTRA_IDLE_STACK_DEBUG 0 +#endif + #ifdef MBED_CONF_APP_IDLE_THREAD_STACK_SIZE -#define OS_IDLE_THREAD_STACK_SIZE (MBED_CONF_APP_IDLE_THREAD_STACK_SIZE + EXTRA_IDLE_STACK) +#define OS_IDLE_THREAD_STACK_SIZE MBED_CONF_APP_IDLE_THREAD_STACK_SIZE #else -#define OS_IDLE_THREAD_STACK_SIZE (MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE + EXTRA_IDLE_STACK) +#define OS_IDLE_THREAD_STACK_SIZE (MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE + EXTRA_IDLE_STACK + EXTRA_IDLE_STACK_DEBUG) #endif #define OS_DYNAMIC_MEM_SIZE 0 diff --git a/rtos/mbed_lib.json b/rtos/mbed_lib.json index 76e5321c672..3e189ee84ba 100644 --- a/rtos/mbed_lib.json +++ b/rtos/mbed_lib.json @@ -21,12 +21,22 @@ "idle-thread-stack-size-tickless-extra": { "help": "Additional size to add to the idle thread when tickless is enabled and LPTICKER_DELAY_TICKS is used", "value": 256 + }, + "idle-thread-stack-size-debug-extra": { + "help": "Additional size to add to the idle thread when code compilation optimisation is disabled", + "value": 0 } }, "macros": ["_RTE_"], "target_overrides": { "*": { "target.boot-stack-size": "0x400" + }, + "STM": { + "idle-thread-stack-size-debug-extra": 128 + }, + "STM32L1": { + "idle-thread-stack-size-debug-extra": 512 }, "MCU_NRF51": { "target.boot-stack-size": "0x800"