mirror of
https://github.com/micropython/micropython.git
synced 2025-12-16 09:50:15 +01:00
stm32/mpu: Save and restore the IRQ state when configuring MPU.
In case IRQs are already disabled during the MPU configuration. Fixes issue #5152.
This commit is contained in:
@@ -78,8 +78,8 @@ static inline void mpu_init(void) {
|
||||
__ISB();
|
||||
}
|
||||
|
||||
static inline void mpu_config_start(void) {
|
||||
__disable_irq();
|
||||
static inline uint32_t mpu_config_start(void) {
|
||||
return disable_irq();
|
||||
}
|
||||
|
||||
static inline void mpu_config_region(uint32_t region, uint32_t base_addr, uint32_t attr_size) {
|
||||
@@ -88,11 +88,11 @@ static inline void mpu_config_region(uint32_t region, uint32_t base_addr, uint32
|
||||
MPU->RASR = attr_size;
|
||||
}
|
||||
|
||||
static inline void mpu_config_end(void) {
|
||||
static inline void mpu_config_end(uint32_t irq_state) {
|
||||
__ISB();
|
||||
__DSB();
|
||||
__DMB();
|
||||
__enable_irq();
|
||||
enable_irq(irq_state);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user