新闻  |   论坛  |   博客  |   在线研讨会
ARM中各种异常模式的进入和返回
patton | 2008-06-29 16:50:02    阅读:7791   发布文章

 
入口地址
异常
相应的处理器模式
LR中存储的地址*
是否禁止IRQ
是否禁止FIQ
0x00
复位异常
svc
N/A
ü
ü
0x04
未定义指令异常
und
PC-4
ü
 
0x08
软件中断异常
svc
PC-4
ü
 
0x0c
预取指中止异常
abt
PC
ü
 
0x10
数据中止异常
abt
PC
ü
 
0x14
保留
 
 
ü
 
0x18
中断请求异常
irq
PC
ü
 
0x1c
快速中断请求异常
fiq
PC
ü
ü
(* 这里仅讨论三级流水线结构的ARM处理器,采用ARM指令)
 
1、 在进入异常时,处理器完成以下工作(由硬件完成):
u       保存相应的地址到LR(参见上表)
u       保存CPSR到SPSR
u       修改CPSR中的:
²        T位:强制进入ARM状态(相对于THUMB状态)
²        I位:禁止IRQ
²        M[4:0](模式位):进入相应的处理器模式
²        F位:在复位异常和快速中断请求异常发生时,需要禁止FIQ
 
2、 在退出异常时,程序完成以下工作(由软件完成):
u       恢复保护的寄存器(if necessary)
u       复制SPSR到CPSR
u       开启屏蔽的中断(if necessary)
u       从LR中获取返回地址(可能需要进行相应的计算),并赋给PC,返回

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客