ARM处理器存在七种工作模式:用户模式、快速中断模式、外部中断模式、管理模式、数据访问中止模式、未定义指令中止模式、系统模式。除了用户模式外,其它六种均为特权模式。处理器模式可以通过控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能访问一些受操作系统保护的系统,应用程序也不能直接进行处理器模式切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。
- 用户模式(usr):属于正常的用户模式,ARM处理器正常的程序执行状态。
- 快速中断模式(fiq):用于处理快速中断,对高速数据传输或通道处理。
- 外部中断模式(irq):对一般情况下的中断进行处理。
- 管理模式(svc):属于操作系统使用的保护模式,处理软件中断swi reset。
- 数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于处理存储器故障、实现虚拟存储器和存储器保护。
- 系统模式(sys):运行具有特权的操作系统任务。
- 未定义指令中止模式(und):处理未定义的指令陷阱,当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。