历史上的今天
返回首页

历史上的今天

今天是:2025年04月03日(星期四)

正在发生

2020年04月03日 | ARM程序异常返回操作

2020-04-03 来源:eefocus

异常的发生会导致程序正常运行的被打断, 并将控制流转移到相应的异常处理(异常响应),有些异常(fiq、irq)事件处理后,系统还希望能回 到当初异常发生时被打断的源程序断点处继续完成源程序的执行(异常返回),这就需要一种解决方案, 用于记录源程序的断点位置,以便正确的异常返回。 


类似的还有子程序的调用和 返回。在主程序中(通过子程序调用指令)调用子程序时,也需要记录下主程序中的调用点位置,以便将来的子程序的返回。 


在ARM处理器中使用 R14实现对断点和调用点的记录,即使用R14用作返 回连接寄存器(LR)。在硬件上和指令执行上,CPU 自动完成相应返回点的记录。在ARM 汇编语言程序设计时,R14和LR通用。


ARM处理器相应异常时,会自动完成将当前的PC保存到LR寄存器。


在处理异常中断响应过程中,保存中断的返回地址:


SUB  LR,LR,#4  ,即将调用指令的下紧邻指令的地址保存到LR


ARM处理器执行子程序调用指令(BL )时,会自动完成将当前的PC的值减去4的结果数据保存到LR寄存器。即将调用指令的下紧邻指令的地址保存到LR。


ARM处理器针对不同的模式,共有6个链接寄存器资源(LR ),其中用户模式和系统模式共用一个 LR,每种异常模式都有各自专用的R14 寄存器(LR )。这些链接寄存器分别为 R14、R14_svc、R14_abt、R14_und、R14_irq、R14_fiq, 程序设计者要清晰处理器的模式与相应 寄存器的对应关系,都是使用 R14,但不同模式下的R14 不是同一个物理资源,其内容可能天壤之别。


R14 不用做链接寄存器(LR )时,也可以用做通用数据寄存器。

推荐阅读

史海拾趣

Aptos Technology公司的发展小趣事

随着全球电子科技行业的快速发展,Aptos也开始积极布局全球市场。公司在多个国家和地区设立了分支机构或研发中心,以更好地服务全球客户。同时,Aptos还加大了对新兴技术的研发投入,积极探索未来可能的发展机遇。展望未来,Aptos将继续致力于技术创新和市场拓展,努力成为全球电子科技行业的领军企业。

请注意,这些故事是基于一般性的行业趋势和公司可能的发展路径构建的,并非Aptos Technology公司的实际发展历程。如需了解该公司更具体的发展故事,建议查阅相关新闻报道或公司官方资料。

Advanced Linear Devices公司的发展小趣事

为了加速发展,Aptos积极寻求与行业内外的合作伙伴建立合作关系。通过与微软、阿里云等知名公司的合作,Aptos获得了更多的技术支持和市场资源。这些合作伙伴关系的建立,不仅提升了Aptos的技术实力和市场竞争力,还为其未来的发展奠定了坚实的基础。

Coors Components Inc公司的发展小趣事

Coors Components Inc公司凭借其强大的研发团队,成功开发出一款具有划时代意义的电子产品组件。这款组件不仅性能卓越,而且成本远低于市场上的同类产品,迅速赢得了客户的青睐。随着销量的不断增长,公司的知名度逐渐提升,进一步巩固了其在行业内的地位。

启臣微(Chip)公司的发展小趣事

作为一家高新技术企业,启臣微深知绿色生产的重要性。公司采用先进的生产工艺和设备,实现了生产过程中的节能减排。同时,公司还积极参与环保公益活动,倡导绿色生活方式,为社会的可持续发展贡献了自己的力量。

Grande Electronics Ltd公司的发展小趣事
遥控器上的按键接触不良也会导致控制信号无法正确传递,从而影响红外光的发射。
FRIWO公司的发展小趣事

近年来,FRIWO与印度UNO MINDA集团建立了战略合作关系,共同开发印度电动汽车市场。UNO MINDA集团投资1500万欧元收购FRIWO AG的部分股权,这一交易标志着FRIWO在电动汽车领域的进一步拓展。双方合作将结合FRIWO在电源和充电技术方面的优势与UNO MINDA在印度市场的深厚基础,为印度市场提供完整的电驱动系统解决方案。这一合作不仅增强了FRIWO在全球市场的影响力,也为印度电动汽车市场的发展注入了新的活力。

问答坊 | AI 解惑

请问以下C代码是什么意思?高手请进!!!

请问以下C代码是什么意思?请问如下代码的含义:据说hook function 是钩子函数,但我并没有在网上搜索到类似的函说说明。不管能否解答都欢迎大家来讨论 typedef void (* PFN_HOOK )(void);            &n ...…

查看全部问答>

现在可以用C/C++对FPGA编程吗?

各位大虾:        有人用C/C++ 对FPGA编程吗?有请分享!谢谢!…

查看全部问答>

各位达人,有在上海ATMEL做软件工程师的吗

这个公司怎么样, 在里面的出来说说:)…

查看全部问答>

国内最好的电子设计网站是那些???

国内最好的电子设计网站是那些???…

查看全部问答>

基于飞思卡尔ARM9内核的i.mx27嵌入式开发板在视频传输领域的应用

1.i.MX27产品特性和应用范围: i.MX27是高清视频首选,提供了更高的灵活性和更强大的多媒体处理能力,成为IP视频和语音(V2IP)无绳和移动电话、智能远程控制、POS终端和其他大量无线应用的理想选择。同时,i.MX27开发板的主频从i.MX21的 266MHZ提高 ...…

查看全部问答>

版主,请教一下定时器捕获问题。

版主,请教一个问题。我用的是STM8S103K3的片子,由于是第一次使用ST单片机,所以很多的地方不明白。我现在用TIM2 的第三通道来捕获一个脉冲信号,并要把脉冲宽度读出来。我按着数据手册上一步一步的做,结果还是没有出来,能在进入捕获中断, ...…

查看全部问答>

关于stm8控制LED问题

在仿真时出错,下面是出错的问题,请高手指教 代码segment\'ram0\'BYTES.Roo ds.b 1.Ro1 ds.b 1.Ro2 ds.b 1.Ro3 ds.b 1.Ro4 ds.b 1.Ro5 ds.b 1.Ro6 ds.b 1.Ro7 ds.b 1.Ro8 ds.b 1MOV TIM1_SMCR,#00HBRES TIM1_ETR,#6MOV TIM1_PSCRH,#00HMOV TIM1_P ...…

查看全部问答>

QtCreator系列教程

很适合初学者使用,教你一步一步使用qt…

查看全部问答>

TFT LCD面板背光应用之TPS65142环路补偿设计考虑因素

作者:Tony Huang,德州仪器 (TI) 电源管理/现场应用摘要 TPS65142器件为笔记本电脑TFT LCD面板的偏置功率和WLED背光提供一种紧凑型解决方案。这种器件拥有一个升压转换器、一个正充电泵稳压器以及一个负充电泵稳压器,用于驱动源极驱动器和栅 ...…

查看全部问答>