ARM7的模式

来源:互联网 发布:无钢圈内衣品牌 知乎 编辑:程序博客网 时间:2024/04/29 19:16

ARM7的模式

转载:点击打开链接
ARM7有7种模式:User用户、System系统、Fast Interrupt快速中断、Interrupt中断、Supervisor管理、Abort中止、Undefined未定义,共有37个寄存器,结构如下图。
 

其中白色寄存器为共有的,彩色为该模式独有的。模式由CPSR中的低五位决定,更改这5位(用户模式除外)就可以进入相应的模式,模式还可以由异常而转换,比如中断被触发,CPU自动进入中断模式。

注意:像R13_irq的_irq这样的后缀在程序中不能出现。

C51没有模式的概念,也可以说C51只有一种模式,不过它的四个工作寄存器组倒是有点模式的意思。

SPSR(Saved Program Status Register)用来做CPSR的备份,发生异常时(不是修改模式位),CPU会自动将CPSR的内容备份到SPSR,所以当模式返回时,需要用软件把SPSR恢复答CPSR。

除用户模式外,其他6个模式可以直接对CPSR进行读写,所以这6个模式叫特权(privileged)模式,系统模式和用户模式有相同的寄存器,只不过系统模式可以直接读写CPSR,其他5个模式需要发生异常(exception)来进入,所以叫异常模式。