ARM体系结构支持,种处理器模式。表4-6给出了7种处理器模式的基本描述。ARM处理器的当前程序状态寄存器(CPSR)的M[4:0]字段值反映了处理器的当前工作模式。在软件控制下可以改变模式,外部中断或异常处理也可以使模式发生改变。
1、用户模式:大多数应用程序在用户模式(USR)下砧婴笋瞥处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式。如果在应用程序执行过程中发生了异常中断,处理器进人相应的异常模式。此时,处理器自动改变CPSR的工作模式标志字段M〔4:0}的值。
2、特权模式:除用户模式之外的其他6种模式称为特权模式(privileged mode)。在特权模式下,程序可以自由地访问系统资源和改变模式。改变处理器模式的方法是用指令将特定的位序列写人到CPSR的M[4:0]字段(最低5位)。
3、异常模式:在6种特权模式中,除了系统模式(SYS )之外,其余5种模式称为异常模式,即快速中断(Fast Interrupt reQuest, FIQ )、普通中断(Interrupt ReQuest, IRQ )、管理(Supervisor, SVC )、中止(Abort, ABT)和未定义(Undefined, UND)。
4、模式使用说明:SVC模式是操作系统内核代码运行的模式,USR模式通常是用户代码运行模式。处理器一旦进人USR模式,必须通过SWI异常中断才能进人SVC模式调用内核代码的接口。但是,在没有MMU进行内存保护的场合,USR模式也能够访问到SVC模式的内存空间,因此使用USR隔离用户级代码没有意义。
IRQ和FIQ模式是微处理器收到中断信号后强制处理器进人的模式,用于中断处理。SYS模式用于嵌套中断处理。有人简单地把SYS模式与PC机的Ring 0特权级别工作模式相类比,认为它是特权级别的操作系统代码运行模式,这种观点是错误的。ARM的SYS模式与PC机的特权级运行模式是不能简单比较的。ABT和UND模式是真正意义上的“异常”,一旦出现就要进人对应的异常中断服务子程序进行处理。
文章由供应商小编原创,转载请注明文章来源出处,谢谢合作!
阅读(614) | 评论(0) | 转发(0) |