完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在研究<Arm体系结构参考手册ARMv7-A ARMv7-R版本>。当我阅读此手册的异常处理部分时,遇到了一个混乱,问题是如何确定异常应返回的指令地址。 这是文档中提到的方法: 假设处理器正在执行0x_0000_1000的指令,并且IRQ进入IRQ模式 根据文档,我们可以获取此异常的返回信息,如下所示: 1)首选返回地址:下一条要执行的指令的地址(在这种情况下,拇指指令集状态为0x_0000_1002,臂指令集状态为0x_0000_1004)。 2)LR: 首选返回地址加上偏移量,该偏移量取决于发生异常时的指令集状态(在这种情况下,LR = 0x_0000_1002 + 4(用于拇指指令集)和0x_0000_1004 + 4(用于arm指令状态)),因此LR = 0x_0000_1006拇指指令集状态,而LR = 0x_0000_1008为手臂指令集状态。 3)PC :在这种情况下,PC = 0x_0000_1000 + 4用于拇指指令集状态,PC = 0x_0000_1000 + 8用于拇指指令集状态。 4)文件给出一个伪代码,通过使用参数PC来计算LR LR = PC-0,处于拇指指令设置状态。在这种情况下是LR = 0x_0000_1004-0 = 0x_0000_1004 LR = PC-4,处于布防指令设置状态。在此cse中LR = 0x_0000_1008-4 = 0x_0000_1004 在这里我们可以看到通过2)和4)可以得到直接的LR,我的计算出了什么问题?哪种方法正确?以及如何计算最终返回地址? |
|
相关推荐
1个回答
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
采用NSA2860X芯片,采样压力传感器的电压,采用IIC总线与STM32F103C8T6通信,问题:采用的数据一直是FFFFFFF
1465 浏览 1 评论
飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之test命令
601 浏览 0 评论
【米尔-国产瑞芯微RK3568开发板试用体验】评测三 wisun网关
1138 浏览 0 评论
1253 浏览 0 评论
【米尔-国产瑞芯微RK3568开发板试用体验】评测一 系统配置
1785 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-9 23:42 , Processed in 0.567423 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191