ARM assembly language includes instructions that can be used to place the core in a low-power state. The architecture defines these instructions as hints, meaning that the core is not required to take any specific action when it executes them. In the Cortex-A processor family, however, these instructions are implemented in a way that shuts down the clock to almost all parts of the core. This means that the power consumption of the core is significantly reduced so that only static leakage currents are drawn, and there is no dynamic power consumption.
WFI instruction has the effect of suspending
execution until the core is woken up by one of the following conditions:
An IRQ interrupt, even if the
PSTATEI-bit is set.
An FIQ interrupt, even if the
PSTATEF-bit is set.
An asynchronous abort.
In the event of the core being woken by an interrupt when
PSTATE interrupt flag is disabled,
the core implements the next instruction after
WFI instruction is widely used in systems
that are battery powered. For example, mobile telephones can place
the core in standby mode many times a second, while waiting for
you to press a button.
WFE is similar to
It suspends execution until an event occurs. This can be one the
event conditions listed or an event signaled by another core in
a cluster. Other cores can signal events by executing the
an event to all cores. The generic timer can also be programmed
to trigger periodic events that wake up a core from WFE.