The write to RBAR didn't have the valid flag set. Therefore the write to RASR had an influence on the previously set region. That means for example that if Region 0 had been enabled but 1 should be disabled due to a size of 0, the previous code would have disabled region 0 instead.
This patch fixes that behaviour. Close #4450 --- cpukit/score/cpu/arm/include/rtems/score/armv7m.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpukit/score/cpu/arm/include/rtems/score/armv7m.h b/cpukit/score/cpu/arm/include/rtems/score/armv7m.h index a5eaaef418..1803c8d8ca 100644 --- a/cpukit/score/cpu/arm/include/rtems/score/armv7m.h +++ b/cpukit/score/cpu/arm/include/rtems/score/armv7m.h @@ -660,7 +660,7 @@ static inline void _ARMV7M_MPU_Set_region( rbar = (uintptr_t) begin | region | ARMV7M_MPU_RBAR_VALID; rasr |= _ARMV7M_MPU_Get_region_size(size); } else { - rbar = region; + rbar = ARMV7M_MPU_RBAR_VALID | region; rasr = 0; } -- 2.26.2 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel