ARM中断深入分析几点
ARM中断深入分析几点 1.程序发生中断后,是如何跳转到中断程序里面的? 2.执行完中断后,如何返回到原来被打断的地方接着执行呢? 3.ARM处理器的流水线结构对中断返回地址的计算有什么影响? 4.ARM7,ARM9处理器流水线结构一个是3级一个是5级,为什么中断返回地址是相同的? 5.ARM启动后是SVC模式,发生中断后进入什么模式? 6.发生中断后,哪些事情是需要ARM自动完成?哪些是需要编程实现的? 读书留痕,思考留果 1.程序发生中断后,是如何跳转到中断程序里面的? 首先要执行完当前指令!然后自动完成以下事情: CPSR---->SPSR_irq(IRQ模式)(逆过程不能自动完成) PC-4 ----> R14_irq PC <---- 0X00000018(irq中断向量表的入口地址) 程序员需要补充做的事情有: R0----R12,和LR的值入栈。 用户处理函数放在irq中断向量表的入口地址,以供跳转。 2.执行完中断后,如何返回到原来被打断的地方接着执行呢? 恢复R0--R12,出栈; R14-4 ----> PC SPSR_irq---->CPSR 3.ARM处理器的流水线结构对中断返回地址的计算有什么影响? pc始终指向当前正在执行指令的下两条指令处(PC-8).执行完当前的,就变为PC-4。保存的就是PC-4. 4.ARM7