新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ARM7的异常处理

ARM7的异常处理

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

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

本文引用地址:https://www.eepw.com.cn/article/201611/319415.htm

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

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

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



关键词: ARM7异常处

评论


技术专区

关闭