Keil Logo

Processor modes, and privileged and unprivileged software execution

2.4 Processor modes, and privileged and unprivileged software execution

The ARM architecture supports different levels of execution privilege. The privilege level depends on the processor mode.

Note

ARMv6-M and ARMv7-M do not support the same modes as other ARM architectures and profiles. Some of the processor modes listed here do not apply to ARMv6-M and ARMv7-M.

Table 2-1 ARM processor modes

Processor mode Architectures Mode number
User All 0b10000
FIQ All 0b10001
IRQ All 0b10010
Supervisor All 0b10011
Monitor Security Extensions only 0b10110
Abort All 0b10111
Hyp Virtualization Extensions only 0b11010
Undefined All 0b11011
System ARMv4 and later 0b11111
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, in all modes except Monitor mode and Hypervisor (Hyp) mode, code can run in either a Secure state or in a Non-secure state. In Monitor mode, code can only run in a Secure state, and in Hyp mode, code can only run in a Non-secure state.
Non-ConfidentialPDF file icon PDF versionARM DUI0379H
Copyright © 2007, 2008, 2011, 2012, 2014-2016 ARM. All rights reserved. 

Related Knowledgebase Articles

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.