ARM处理器寄存器和运行状态

Posted 嵌入式的学习之旅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM处理器寄存器和运行状态相关的知识,希望对你有一定的参考价值。

ARM体系的CPU有以下7种工作模式:

  1、用户模式(Usr):用于正常执行程序;

      2、快速中断模式(FIQ):用于高速数据传输;

      3、外部中断模式(IRQ):用于通常的中断处理;

      4、管理模式(svc):操作系统使用的保护模式;

      5、数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储以及存储保护;

      6、系统模式(sys):运行具有特权的操作系统任务;

      7、未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件;

当异常发生的时候CPU会进入到相应的模式来进行处理:

异常 模式 描述
复位 管理模式 复位电平有效时,产生复位异常,程序转跳到复位处理程序执行
未定义指令 未定义模式 遇到不能处理的指令,产生未定义指令异常
软件中断 管理模式 执行swi指令产生,用于用户模式下的程序调用特权操作指令
预存指令 中止模式 处理器预取指令的地址不存在,或者该地址不允许当前指令访问,产生指令预取中断异常
数据操作 中止模式 处理器预取数据的地址不存在,或者该地址不允许当前指令访问,产生指令预取中断异常
未使用 未使用 未使用
IRQ IRQ 外部中断请求有效,且CPSR中的1位为0时,产生IRQ异常
FIQ FIQ 快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常

 

以下是寄存器和运行模式对应的关系:

R0---R12是普通寄存器,可以任意读写.

R13是栈指针寄存器,用于保存堆栈指针

R14是程序连接寄存器,当执行BL子程序调用指令时,R14中得到R15的备份,而当发生中断或异常时,R14保存R15的返回值

R15是程序计数器

(A/C)PSR:(标志位寄存器)

  T位:1——CPU处于Thumb状态, 0——CPU处于ARM状态;

  I、F(中断禁止位): 1——禁止中断, 0——中断使能;

  工作模式位:可以改变这些位,进行模式切换;

spsr:程序状态保存寄存器,当切换进入某一个特权模式时,SPSR保存前一个工作模式的CPSR值,这样,当返回前一个工作模式时,可以将SPSR的值恢复到CPSR中

以上是关于ARM处理器寄存器和运行状态的主要内容,如果未能解决你的问题,请参考以下文章

ARM寄存器

学习总结之ARM处理器的运行模式及ARM寄存器

arm为啥要分两种工作状态:arm和thumb

ARM处理器架构理论知识

ARM寄存器与汇编指令详解

令状态寄存器访问指令(MRS,MSR)