ARM BL或中断返回,一些细节!
来源:互联网 发布:淘宝7个小白是正品吗 编辑:程序博客网 时间:2024/05/01 06:02
上面的图是7处理器的寄存器示意图。
摘自网络
1, ARM3级流水线
由ARM7-TDMI-S技术参考手册P2可知,ARM的流水线结构为:
取指----->译码------>执行
ARM代码: PC PC- 4 PC - 8
0x1008 0x1004 0x1000
在此页,还注明,PC是指向被取指的指令,而不是正在执行的指令。(也就是说在此 PC值为0x1008 ?)
2,当发生BL跳转前,会在寄存器 R14 (即LR)中保存当前PC-4,即bl跳转指令的下一条指令的地址。所以在返回时只要 MOV pc,lr
3,中断:
(1)当发生中断的时候,把是寄存器pc当前值存入LR(此时的LR是中断模式下的LR),所以返回时,应该是将LR-4赋值给PC。(0x1004)注:有些异常中断可能要将LR-8或LR赋值给PC。详细请仔细看ARM数据手册。
(2)当发生IRQ或FIQ后,系统要进入相应的异常模式进行处理,这些是由硬件实现的。
产生异常后,ARM核会做以下工作:
<1>.将当前的地址加4or加8存到LR寄存器里,即把当前状态下下一条指令的地址存入LR
<2>.将CPSR复制到SPSR,
<3>.然后将异常模式的状态强制写入CPSR
<4>.强制PC从相关的异常向量处取指!!
中断结束后:
1.将SPSR复制回CPSR
2.开中断
3.返回原程序,LDR PC,LR
4,因为每个模式下面都有LR,所以当返回原来模式时,原来模式下的LR并没有被破坏。
- ARM BL或中断返回,一些细节!
- ARM BL或中断返回需要注意的一些细节问题
- BL或中断返回需要注意的一些细节问题 .
- [ARM&Linux]Linux下中断处理的上下文保存与切换的一些细节
- ARM B BL
- ARM中断异常处理的返回
- Arm异常中断返回时的处理
- ARM中断返回PC值分析
- ARM中断返回PC值分析
- ARM中断异常处理的返回
- ARM中断异常处理的返回
- ARM中断异常处理的返回
- ARM中断PC返回值分析
- ARM中断异常处理的返回
- ARM中断返回PC值分析
- ARM中断PC返回值分析
- ARM中断返回PC值分析
- ARM中断返回PC值分析
- 求JBPM4.3 web运行出错解决办法
- Spring的AOP配置
- 用 new 还是用 alloc/init
- CentOS6上eclipse的svbclipse插件JavaHL(JNI) Not available错误的解决办法
- ds 1302 超级电容计算器---美信
- ARM BL或中断返回,一些细节!
- ITSM实施方法与注意事项——杜肖辉 (录音和笔记)
- WIFI学习之一:WIFI模块
- 全国地区+邮编的数据库脚本
- 各种数据库使用JDBC连接的方式
- 应用笔记3816 ds 1302 估算涓流充电实时时钟的超级电容备份时间
- JBPM入门学习
- 最短路径 (yp)
- JBPM简介