首页 > 其他 > 详细

arm 中断响应过程--硬件部分动作

时间:2020-03-04 15:27:50      阅读:69      评论:0      收藏:0      [点我收藏+]

/***************************摘录自《ARM中异常中断问题分析总结  http://mcu.eetrend.com/content/2016/100002641.html*********************************************************************/

 注:在CPU每条指令执行周期的最后时刻扫描中断寄存器(CPU控制部件中设有中断寄存器),查看是否有中断信号

(1)ARM处理器对异常中断的响应过程:

保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过将当前程序状态寄存器CPSR的内容保存到将要执行的异常中断对应的SPSR寄存器中实现的。各异常中断有自己的物理SPSR寄存器。 设置当前程序状态寄存器CPSR中相应的位。包括:进入ARM状态;设置CPSR中的位,使处理器进入相应的执行模式;设置CPSR中的位,禁IRQ中断,当进入FIQ模式时,禁止FIQ中断。 将寄存器Ir_mode(R14)设置成返回地址。 将程序计数器值(PC),设置成该异常中断的中断向量地址,从而跳转到相应异常中断处理程序处执行。

注:以上过程全部是由硬件自动完成的。不管是在ARM状态下还是在THUMB状态下发生异常,都会自动切换到ARM状态下进行异常的处理

(2)从异常中断处理程序中返回:

恢复被中断程序的处理器状态,即将SPSR_mode寄存器内容复制到CPSR中。 返回到发生异常中断的指令下一条指令处执行,即将Ir_mode寄存器的内容复制到程序计数器PC中。

注:实际上,当异常中断发生时,程序计数器PC所指的位置对于不同的异常中断是不同的。同样,返回地址对于各种不同的异常中断也是不同的

arm 中断响应过程--硬件部分动作

原文:https://www.cnblogs.com/FightingChen/p/12409442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!