ARM微处理器的编程模型之:处理器工作模式
扫描二维码
随时随地手机看文章
3.2 处理器工作模式
ARM处理器共有7种工作模式,如表3.1所示
表3.1 ARM处理器的工作模式
处理器工作模式
简 写
描 述
用户模式(User)
usr
正常程序执行模式,大部分任务执行在这种模式下
快速中断模式(FIQ)
fiq
当一个高优先级(fast)中断产生时将会进入这种模式,一般用于高速数据传输和通道处理
外部中断模式(IRQ)
irq
当一个低优先级(normal)中断产生时将会进入这种模式,一般用于通常的中断处理
特权模式(Supervisor)
svc
当复位或软中断指令执行时进入这种模式,是一种供操作系统使用的保护模式
数据访问中止模式(Abort)
abt
当存取异常时将会进入这种模式,用于虚拟存储或存储保护
未定义指令中止模式(Undef)
und
当执行未定义指令时进入这种模式,有时用于通过软件仿真协处理器硬件的工作方式
系统模式(System)
sys
使用和User模式相同寄存器集的模式,用于运行特权级操作系统任务
除用户模式外的其他6种处理器模式称为特权模式(Privileged Modes)。在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式切换。其中的5种又称为异常模式,分别为:
· FIQ(Fast Interrupt reQuest);
· IRQ(Interrupt request);
· 管理(Supervisor);
· 中止(Abort);
· 未定义(Undefined)。
处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。
大多数的用户程序运行在用户模式下。当处理器工作在用户模式时,应用程序不能够访问受操作系统保护的一些系统资源,应用程序也不能直接进行处理器模式切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器模式切换。这种体系结构可以使操作系统控制整个系统资源的使用。
当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组专用寄存器以供相应的异常处理程序使用,这样就可以保证在进入异常模式时用户模式下的寄存器(保存程序运行状态)不被破坏。
系统模式,不能有任何异常进入。仅ARM体系结构v4及以上版本有该模式。它和用户模式具有完全相同的寄存器。但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换,它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存器组而不是异常模式下相应的寄存器组,这样可以保证当异常中断发生时任务状态不被破坏。