码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-05-24 22:34:35      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

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处理器寄存器和运行状态

标签:

原文地址:http://www.cnblogs.com/CHYI1/p/5524867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!