Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42823
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 147
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-06 14:56
个人简介

啦啦啦

文章分类

全部博文(17)

文章存档

2016年(2)

2015年(15)

我的朋友

分类: LINUX

2015-11-07 20:37:37

ARM处理器有37个寄存器,包括31个通用寄存器和6个程序状态寄存器。  general-purpose registers/program status registers
(看英文手册时,有些单词不熟悉或不认识)

程序状态寄存器: 
CPSR(current program status register):    当前程序状态寄存器     current     adj.现有的
SPSR(saved  program status register):     程序状态保存寄存器 

CPSR: accessible in all processer modes (在任何模式下均可被访问,它包括条件标志位、中断失能位、当前处理器模式和其他状态、控制信息,每一个异常模式都有一个SPSR,当相关联的异常发生的时候,用于保存CPSR的状态)

usr(User模式)和sys(System模式)没有SPSR,因为它们没有异常模式。当运行在usr或sys时,将产生不可预测的结果(所有读或写SPSR的指令都是不可预测的)。

IRQ:Interrupt ReQuest 中断请求,I bit置位:屏蔽IRQ中断
FIQ:快速中断请求                        F bit置位:屏蔽FIQ中断

来自百度百科:
快速(Fast Interrupt Request,FIQ)在ARM中,FIQ模式是特权模式中的一种,同时也属于异常模式一类。用于高速数据传输或通道处理,在触发快速中断请求(FIQ)时进入。
FIQ和IRQ(模式)之间有很大的区别。FIQ模式必须尽快处理,处理结束后离开这个模式;IRQ模式可以被FIQ模式中断,但IRQ不能中断FIQ模式;为使FIQ模式响应更快,FIQ模式具有更多的影子(Shadow)寄存器(???还不理解是什么意思)。FIQ模式必须禁用中断;如果一个中断例程必须重新启用中断,应使用IRQ模式而不是FIQ模式。



简言之,当ARM处理器进入异常模式时,SPSR寄存器存储CPSR的值,当ARM处理器从异常模式恢复过来的时候,CPSR寄存器被恢复为之前存储在SPSR寄存器中的状态。

阅读(1624) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~