Processor modes, and privileged and unprivileged software execution

ARM processors support different processor modes depending on the architecture version. See Table 1.

Note

ARMv6-M and ARMv7-M do not support the same modes as other ARM processors. The processor modes described here do not apply to ARMv6-M and ARMv7-M.

Table 1. ARM processor modes

Processor modeArchitecturesMode number
UserAll0b10000
FIQ - Fast Interrupt RequestAll0b10001
IRQ - Interrupt RequestAll0b10010
SupervisorAll0b10011
AbortAll0b10111
UndefinedAll0b11011
SystemARMv4 and later0b11111
MonitorSecurity Extensions only0b10110

User mode is an unprivileged mode, and has restricted access to system resources. All other modes have full access to system resources in the current security state, can change mode freely, and execute software as privileged.

Applications that require task protection usually execute in User mode. Some embedded applications might run entirely in any mode other than User mode. An application that requires full access to system resources usually executes in System mode.

Modes other than User mode are entered to service exceptions, or to access privileged resources.

On an implementation that includes the Security Extensions, code can run in either a secure state or in a non-secure state.

Show/hideSee also

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0473C
Non-ConfidentialID080411