ARM Technical Support Knowledge Articles

How can a Cortex-M processor wake up from WFI if interrupts are masked or disabled?

Applies to: Cortex-M0, Cortex-M0Plus, Cortex-M1, Cortex-M3, Cortex-M4

Answer

Please see the section named "Wait for Interrupt" from the ARMv6-M or ARMv7-M Architecture Reference Manual.

When interrupts are disabled by use of PRIMASK (CPSID i), the processor will wake up from WFI when it receives an interrupt whose priority is sufficient that it would pre-empt the current execution context if PRIMASK were not set.

The priority level of the NMI interrupt is always sufficient to wake up the processor and to be handled immediately.

A Debug Halt from a debugger or Reset will also cause the processor to wake up.

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential