What is the execution priority inside WFI for CortexM4?

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

More questions in this forum