2013-05-02 Arm中的异常中断
2014-05-02 22:09
288 查看
Arm体系中通常有一下3种方式控制程序的执行流程:
(1)正常程序执行过程中,每执行一条ARM命令,PC加4个字节,Thumb命令时,PC加2个字节;
(2)跳转指令执行时,跳到指定的地址标号处执行,会到相应的子程序执行;B直接跳转,BL还要保存子程序的返回地址,BL还可根据目标地址的最低位将程序状态切换到Thumb状态,BLX是上述三者之和;
(3)当异常中断发生时,系统执行完当前指令后,将跳到相应的异常中断处理程序处执行;在跳入之前,需要保护被中断程序的执行现场,从异常中断处理程序退出时,还需恢复现场。
Arm体系的异常中断如下:
(1)0优先级,RESST,处理器复位引脚有效时,产生复位异常中断;
(2)5优先级,UND,处理器或协处理器认为当前指令未定义时,产生未定义的指令异常;
(3)6优先级,Software Interrupt,用户定义的中断指令,使用户模式的程序调用的特权操作;
(4)4优先级,指令预取中止,当预取对的指令地址不存在时;
(5)1优先级,DATA Abort,数据访问的指令目标地址不存在或不允许当前指令访问时;
(6)3优先级,IRQ,当处理器的外部中断请求引脚有效时,CPSR位的I控制位被清除,产生IRQ中断;
(7)2优先级,FIQ,当处理器的快速中断请求引脚有效时,CPSR位的F控制位被清除,产生FIQ中断;
Arm对异常中断的响应过程:
(1)保存处理器的当前状态,中断屏蔽位以及条件标志位,这些通过CPSR到SPSR来实现的;
(2)设置当前CPSR的相应位,包括进入的执行模式,IRQ,FIQ的位;
(3)将LR设置成返回的地址;
(4)将PC设置成异常中断的中断向量地址,从而调到相应的异常中断处理程序去执行;
Arm从异常中断处理程序的返回:
(1)将SPSR恢复到CPSR;
(2)返回到异常中断的指令下一条指令执行,即将LR装入到PC中;
(3)清除CPSR相应的位,如I/F位;
其中,RESET异常,不需要返回,因为在该异常中断处理程序开始整个用户程序的执行,故不需要返回;
(1)正常程序执行过程中,每执行一条ARM命令,PC加4个字节,Thumb命令时,PC加2个字节;
(2)跳转指令执行时,跳到指定的地址标号处执行,会到相应的子程序执行;B直接跳转,BL还要保存子程序的返回地址,BL还可根据目标地址的最低位将程序状态切换到Thumb状态,BLX是上述三者之和;
(3)当异常中断发生时,系统执行完当前指令后,将跳到相应的异常中断处理程序处执行;在跳入之前,需要保护被中断程序的执行现场,从异常中断处理程序退出时,还需恢复现场。
Arm体系的异常中断如下:
(1)0优先级,RESST,处理器复位引脚有效时,产生复位异常中断;
(2)5优先级,UND,处理器或协处理器认为当前指令未定义时,产生未定义的指令异常;
(3)6优先级,Software Interrupt,用户定义的中断指令,使用户模式的程序调用的特权操作;
(4)4优先级,指令预取中止,当预取对的指令地址不存在时;
(5)1优先级,DATA Abort,数据访问的指令目标地址不存在或不允许当前指令访问时;
(6)3优先级,IRQ,当处理器的外部中断请求引脚有效时,CPSR位的I控制位被清除,产生IRQ中断;
(7)2优先级,FIQ,当处理器的快速中断请求引脚有效时,CPSR位的F控制位被清除,产生FIQ中断;
Arm对异常中断的响应过程:
(1)保存处理器的当前状态,中断屏蔽位以及条件标志位,这些通过CPSR到SPSR来实现的;
(2)设置当前CPSR的相应位,包括进入的执行模式,IRQ,FIQ的位;
(3)将LR设置成返回的地址;
(4)将PC设置成异常中断的中断向量地址,从而调到相应的异常中断处理程序去执行;
Arm从异常中断处理程序的返回:
(1)将SPSR恢复到CPSR;
(2)返回到异常中断的指令下一条指令执行,即将LR装入到PC中;
(3)清除CPSR相应的位,如I/F位;
其中,RESET异常,不需要返回,因为在该异常中断处理程序开始整个用户程序的执行,故不需要返回;
相关文章推荐
- ARM异常、中断以及他们的向量表分析
- ARM异常中断返回的几种情况
- ARM 异常及中断
- 函数指针数组在ARM异常中断处理中的应用
- 2.ARM中的异常中断基本概念
- Arm架构异常处理流程之中断
- ARM异常、中断以及他们的向量表分析
- ARM 异常中断处理
- ARM中断异常处理的返回
- ARM异常中断返回的几种情况
- ARM流水线与异常中断返回的几种情况
- 中断向量表在ARM异常中断中的应用
- ARM中断异常处理的返回的问题
- ARM异常中断初探----转载
- ARM:ARM中断异常的处理流程
- ARM 处理器 ~ 中断与异常
- arm异常与中断
- ARM异常中断
- 【ARM】arm异常中断处理知识点
- 【ARM】arm异常中断处理知识点