ARM处理器模式

ARM的7种处理器模式,依靠CPSR(当前程序状态寄存器)中的控制位M[4:0]来反应处理器正在操作的模式。

图片发自简书App

除了正常运行时,处理器所处于的用户模式usr,其他6种处理器模式都称之为特权模式(Privileged),分别是系统模式和异常模式。见上表所示。

只有在特权模式下(即非用户模式下),才能对CPSR的所有控制位直接进行读/写访问,而在非特权模式下只能对CPSR的控制位进行间接访问。

异常模式

上表给出了处理器的5种异常模式,并且给出了简要的介绍。处理器要进入异常,需要通过程序修改CPSR,下面是从系统模式切换到管理模式的示例:

MSR CPSR_c, #(NoInt | SVC32Mode)。

当发生异常时,处理器总是切换到ARM状态而非Thumb状态。

每一种异常,会对应处理器的一种模式相对应,这样,一旦应用程序发声特定的异常中断时,处理器就会进入相对应的异常模式。处理器的内核立即跳转到向量表中的某个入口地址,执行相应的处理程序。与此同时,在每一种异常模式中都有对应的寄存器,供相应的异常处理程序使用,从而保证处理器在进入异常模式时,用户模式下的寄存器不被破坏。


待完善……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。