ARM处理器共有七种运行模式:
1、USR 模式 正 常用户模式,程序正常执行模式
2、FIQ模式(Fast Interrupt Request) 处理快速中断,支持高速数据传送或通道处理
3、IRQ模式 处理普通中断
4、SVC模式(Supervisor) 操作系统保护模式,处理软件中断swi reset5、ABT 中止(Abort mode){数据、指令} 处理存储器故障、实现虚拟存储器和存储器保护
6、UND 未定义(Undefined) 处理未定义的指令陷阱,支持硬件协处理器的软件仿真
7、SYS 系统模式(基本上=USR)(System) 运行特权操作系统任务
除了用户模式之外的其他6种处理器模式称为特权模式特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。
特权模式中,除系统模式外,其他5种模式又称为异常模式。
大多数的用户程序运行在用户模式下,此时,应用程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。
用户模式下,当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。
我们在进行嵌入式linux程序设计时,是在用户模式。在linux系统中各种模式不容易跳转,但是,如果想深入理解各个模式之间的关系和设计特性,在裸机系统下,通过设置程序状态寄存器等条件可以时间各种模式的状态切换。