Skip to content

Commit 1289406

Browse files
committed
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.
1 parent 842587d commit 1289406

File tree

1 file changed

+4
-16
lines changed

1 file changed

+4
-16
lines changed

platform/mbed_mpu_mgmt.c

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@ static uint16_t mem_wn_lock;
2828
void mbed_mpu_manager_lock_ram_execution()
2929
{
3030
core_util_critical_section_enter();
31-
if (mem_xn_lock == USHRT_MAX) {
32-
core_util_critical_section_exit();
33-
MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_OVERFLOW), "Ram execute never lock overflow (> USHRT_MAX)", mem_xn_lock);
34-
}
31+
MBED_ASSERT(mem_xn_lock != USHRT_MAX);
3532
if (mem_xn_lock == 0) {
3633
mbed_mpu_enable_ram_xn(false);
3734
}
@@ -42,10 +39,7 @@ void mbed_mpu_manager_lock_ram_execution()
4239
void mbed_mpu_manager_unlock_ram_execution()
4340
{
4441
core_util_critical_section_enter();
45-
if (mem_xn_lock == 0) {
46-
core_util_critical_section_exit();
47-
MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_UNDERFLOW), "Ram execute never lock underflow (< 0)", mem_xn_lock);
48-
}
42+
MBED_ASSERT(mem_xn_lock != 0);
4943
mem_xn_lock--;
5044
if (mem_xn_lock == 0) {
5145
mbed_mpu_enable_ram_xn(true);
@@ -56,10 +50,7 @@ void mbed_mpu_manager_unlock_ram_execution()
5650
void mbed_mpu_manager_lock_rom_write()
5751
{
5852
core_util_critical_section_enter();
59-
if (mem_wn_lock == USHRT_MAX) {
60-
core_util_critical_section_exit();
61-
MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_OVERFLOW), "Rom write never lock overflow (> USHRT_MAX)", mem_wn_lock);
62-
}
53+
MBED_ASSERT(mem_wn_lock != USHRT_MAX);
6354
if (mem_wn_lock == 0) {
6455
mbed_mpu_enable_rom_wn(false);
6556
}
@@ -70,10 +61,7 @@ void mbed_mpu_manager_lock_rom_write()
7061
void mbed_mpu_manager_unlock_rom_write()
7162
{
7263
core_util_critical_section_enter();
73-
if (mem_wn_lock == 0) {
74-
core_util_critical_section_exit();
75-
MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_UNDERFLOW), "Rom write never lock underflow (< 0)", mem_wn_lock);
76-
}
64+
MBED_ASSERT(mem_wn_lock != 0);
7765
mem_wn_lock--;
7866
if (mem_wn_lock == 0) {
7967
mbed_mpu_enable_rom_wn(true);

0 commit comments

Comments
 (0)