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) |