This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

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

Parents
  • When a processor issues a WFI instruction it can suspend execution and enter a low-power state. It can remain in that
    state until the processor detects one of the following WFI wakeup events:
    • A reset.
    • An asynchronous exception at a priority that, if PRIMASK was set to 0, would preempt any currently active
    exceptions.
    Note
      The processor ignores the value of PRIMASK in determining whether an asynchronous exception is a WFI
    wakeup event.
    • If debug is enabled, a debug event.
    • An IMPLEMENTATION DEFINED WFI wakeup event.

    Maybe the last point applies?

Reply
  • When a processor issues a WFI instruction it can suspend execution and enter a low-power state. It can remain in that
    state until the processor detects one of the following WFI wakeup events:
    • A reset.
    • An asynchronous exception at a priority that, if PRIMASK was set to 0, would preempt any currently active
    exceptions.
    Note
      The processor ignores the value of PRIMASK in determining whether an asynchronous exception is a WFI
    wakeup event.
    • If debug is enabled, a debug event.
    • An IMPLEMENTATION DEFINED WFI wakeup event.

    Maybe the last point applies?

Children