Hi,
We always have the following code to make sure that only the interrupts with higher priority than 0x20 will wake up the processor.
PRIMASK = 1 BASEPRI = 0x20 do sth... WFI() do sth... PRIMASK = 0
But I think if we’re in the critical section (PRIMASK==1) and even call 'BASEPRI=0x20’, the execution priority, which is the final boosted priority, at this moment should be 0 but not 0x20 refer to the below snapshot from <DDI0403E_d_armv7m_arm>.
Hence I’m confused why other interrupts could take the processor out of WFI as the highest priority of them is 0, which is the same as the current priority?
Please kindly correct me if my understanding is wrong.
Best regards,
Jayden
Also the STM32.
I just want to confirm if this is the 'An IMPLEMENTATION DEFINED WFI wakeup event' or 'An asynchronous exception at a priority that, if PRIMASK was set to 0, would preempt any currently active'.
Anyway, it's so nice for your help.