foggia2004

2—ARM中的异常中断

ARM体系中的3种控制程序执行的方式

  1. 正常执行过程中,每执行1条ARM指令,PC的值加4个字节;每执行1条Thumb指令,PC的值加2个字节。整个过程按照顺序执行。
  2. 通过跳转指令,调到特定的地址开始执行或者特定的子程序出执行。B指令用于执行跳转;BL指令在执行跳转的同时,还保存了子程序的返回地址;BX指令在执行跳转的同时,根据目标地址的最低位可以将程序状态切换到Thumb状态;BLX指令等同于BL和BX指令的集合。
  3. 当异常中断发生时,系统执行完当前的指令后,将跳转到中断处理程序处。执行完毕后,返回到中断的指令的下一条指令开始继续执行。

异常中断的响应过程

  1. 保存处理器的状态、中断屏蔽位和各条件标志位。
  2. 设置CPSR让处理器进入对应的状态。
  3. 设置LR寄存器的返回地址。
  4. 设置PC寄存器为中断向量的地址,跳转到异常处理程序。

 

从异常处理程序返回

  1. 恢复处理器的状态:将SPSR的数据复制到CPSR中
  2. 返回到产生异常中断的指令的下一条指令处开始执行:将LR寄存器的数据复制到PC中

 

posted on 2019-04-14 18:17  foggia2004  阅读(250)  评论(0编辑  收藏  举报

导航