ARM7的异常处理
我们必须仔细理解ARM的中断运行是什么样一个情况:
本文引用地址:https://www.eepw.com.cn/article/201611/319415.htm1进入异常:1)将原来执行的程序的下一条指令保存到LR中;这个好理解;2)复制CPSR到响应的SPSR中进行保存,这是为了保存异常前的状态;3)根据发生的异常类型改变CPSR模式的值;4)令程序计数器PC的值指向异常处理向量所指的下一条指令。这句话很关键,ARM内核响应异常后使PC值强制指向异常处理向量所指的下一条指令,而不是软件实现的,否则脑袋想破都没有用。
PC值改变也就改变了程序的执行,跳转到具体的中断程序,而中断向量表是预先设定好的放置中断跳转指令的“表”;跳转到向量表则是由ARM内核完成。
这是纠结了几晚的事情,应该是正确的理解了,发出来供商榷
评论