Use MBED_ASSERT in MPU manager

MPU lock under- or overflow is not a likely random runtime failure - it
will be a mismatched lock/unlock programming error, so should be
detected during development.  Make the checks asserts so they can be
left out from release builds.  MBED_ASSERT is also a bit smaller than
MBED_ERROR in develop builds.
pull/9030/head
Kevin Bracey 2018-12-10 14:36:19 +02:00
parent 842587ddb5
commit 1289406f9f
1 changed files with 4 additions and 16 deletions

View File

@ -28,10 +28,7 @@ static uint16_t mem_wn_lock;
void mbed_mpu_manager_lock_ram_execution()
{
core_util_critical_section_enter();
if (mem_xn_lock == USHRT_MAX) {
core_util_critical_section_exit();
MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_OVERFLOW), "Ram execute never lock overflow (> USHRT_MAX)", mem_xn_lock);
}
MBED_ASSERT(mem_xn_lock != USHRT_MAX);
if (mem_xn_lock == 0) {
mbed_mpu_enable_ram_xn(false);
}
@ -42,10 +39,7 @@ void mbed_mpu_manager_lock_ram_execution()
void mbed_mpu_manager_unlock_ram_execution()
{
core_util_critical_section_enter();
if (mem_xn_lock == 0) {
core_util_critical_section_exit();
MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_UNDERFLOW), "Ram execute never lock underflow (< 0)", mem_xn_lock);
}
MBED_ASSERT(mem_xn_lock != 0);
mem_xn_lock--;
if (mem_xn_lock == 0) {
mbed_mpu_enable_ram_xn(true);
@ -56,10 +50,7 @@ void mbed_mpu_manager_unlock_ram_execution()
void mbed_mpu_manager_lock_rom_write()
{
core_util_critical_section_enter();
if (mem_wn_lock == USHRT_MAX) {
core_util_critical_section_exit();
MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_OVERFLOW), "Rom write never lock overflow (> USHRT_MAX)", mem_wn_lock);
}
MBED_ASSERT(mem_wn_lock != USHRT_MAX);
if (mem_wn_lock == 0) {
mbed_mpu_enable_rom_wn(false);
}
@ -70,10 +61,7 @@ void mbed_mpu_manager_lock_rom_write()
void mbed_mpu_manager_unlock_rom_write()
{
core_util_critical_section_enter();
if (mem_wn_lock == 0) {
core_util_critical_section_exit();
MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_UNDERFLOW), "Rom write never lock underflow (< 0)", mem_wn_lock);
}
MBED_ASSERT(mem_wn_lock != 0);
mem_wn_lock--;
if (mem_wn_lock == 0) {
mbed_mpu_enable_rom_wn(true);