×
单片机 > 单片机程序设计 > 详情

ARM7的异常处理

发布时间:2020-08-28 发布时间:
|
一直困惑,中断向量表的运行机制,从软件角度来说是说不通的,因为中断向量表采用的不是分支选择程序,而是顺序执行的跳转指令LDR或B,我想许多初学者一定有这样的困惑;

我们必须仔细​理解ARM的中断运行是什么样一个情况:

1进入异常:1)将原来执行的程序的下一条指令保存到LR中;这个好理解;2)复制CPSR到响应的SPSR中进行保存,这是为了保存异常前的状态;3)根据发生的异常类型改变CPSR模式的值;4)令程序计数器PC的值指向异常处理向量所指的下一条指令。这句话很关键,ARM内核响应异常后使PC值强制指向​​异常处理向量所指的下一条指令,而不是软件实现的,否则脑袋想破都没有用。

PC值改变也就改变了程序的执行,跳转到具体的中断程序,而中断向量表是​预先设定好的放置中断跳转指令的“表”;​​跳转到向量表则是由ARM内核完成。

这是纠结了几晚的事情,应该是正确的理解了,发出来供商榷​​​



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机中高阻态的实质及意义