diff --git a/hal/mbed_critical_section_api.c b/hal/mbed_critical_section_api.c index 05b42b6f8fa..d9bbc7bc3be 100644 --- a/hal/mbed_critical_section_api.c +++ b/hal/mbed_critical_section_api.c @@ -21,8 +21,8 @@ #include -static volatile bool critical_interrupts_enabled = false; -static volatile bool state_saved = false; +static bool critical_interrupts_enabled = false; +static bool state_saved = false; static bool are_interrupts_enabled(void) { diff --git a/platform/mbed_critical.c b/platform/mbed_critical.c index 320319ba637..b146684c29e 100644 --- a/platform/mbed_critical.c +++ b/platform/mbed_critical.c @@ -43,7 +43,7 @@ #endif #endif -static volatile uint32_t critical_section_reentrancy_counter = 0; +static uint32_t critical_section_reentrancy_counter = 0; bool core_util_are_interrupts_enabled(void) { @@ -77,11 +77,11 @@ bool core_util_in_critical_section(void) void core_util_critical_section_enter(void) { + hal_critical_section_enter(); + // If the reentrancy counter overflows something has gone badly wrong. MBED_ASSERT(critical_section_reentrancy_counter < UINT32_MAX); - hal_critical_section_enter(); - ++critical_section_reentrancy_counter; }