2.2.4. Processor mode

ARM processors support different processor modes, depending on the architecture version (see Table 2.1).

Note

ARMv6-M and ARMv7-M do not support the same modes as other ARM processors. This section does not apply to ARMv6-M and ARMv7-M.

Table 2.1. ARM processor modes

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

All modes except User mode are referred to as privileged modes. They have full access to system resources and can change mode freely. User mode is an unprivileged mode.

Applications that require task protection usually execute in User mode. Some embedded applications might run entirely in Supervisor or System modes.

Modes other than User mode are entered to service exceptions, or to access privileged resources (see Chapter 6 Handling Processor Exceptions in the Developer Guide).

On architectures that implement the Security Extensions, code can run in either a secure state or in a non-secure state. See the ARM Architecture Reference Manual for details.

Copyright © 2002-2010 ARM. All rights reserved.ARM DUI 0204J
Non-ConfidentialID101213