微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM7的异常处理

ARM7的异常处理

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

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

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

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top