LR 连接寄存器:Link Register

LR寄存器的作用主要由两个:

一是用来保存子程序的返回地址;

当通过BL或BLX指令调用子程序时,硬件自动将子程序返回地址保存在R14寄存器中。子程序返回时,把R14的值

复制到程序计数器PC,即可实现子程序返回。

二是当异常发生时,R14中保存的值等于异常发生时程序计数器PC的值减4(因为cortex-m3采用3级指令流水线)。

因此在异常模式下,可以根据R14的值返回到异常发生前的相应位置,继续执行。
 

r14/lr寄存器的值相关推荐

  1. cortex-m3 R14(LR)寄存器的作用

    LR 连接寄存器:Link Register LR寄存器的作用主要由两个: 一是用来保存子程序的返回地址: 当通过BL或BLX指令调用子程序时,硬件自动将子程序返回地址保存在R14寄存器中.子程序返回 ...

  2. 一文看懂LR寄存器及 BX LR 指令的两种用途

    一文看懂LR寄存器 不知你在DEBUG程序,又或者阅读操作系统源码时候有没细心观察,从一个普通子函数返回与异常(中断)返回的汇编指令都是BX  LR,但是这两者的意义是一样的吗?这篇文章就来揭开LR寄 ...

  3. GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法

    工作中遇到的问题: 在GDB调试时要进入下边该判断后边的函数,而m_EtherDecode.Chk_MakeSure_IP_Pkt(pPacket,dwPacketLen)的返回值是false,所以需 ...

  4. python实时读plc数据_python snap7读写西门子S系列PLC寄存器的值(PLC的I、Q、M、DB区)...

    西门子 SiemensTCP/IP调试助手工具是利用python 开发的,适用于西门子S7-300.S7-400.S7-1200.S7-1500等具备Ethernet TCP/IP通讯方式的PLC的( ...

  5. [Linux驱动炼成记] 11-快速修改芯片驱动中寄存器的值

    实际项目的调试中,往往需要快速修改驱动芯片(只针对IIC通讯)中对应寄存器的值,传统的方式一般是编译驱动 -> 烧录固件 -> 测试,而这样的方式往往很繁琐.这里介绍使用i2c-tools ...

  6. 谈谈修改寄存器默认值的几种方法和实现

    一.DFF的类型介绍 寄存器默认值,也叫复位值,是当reset或者set有效时寄存器输出的值.对于一个DFF来说,如下图,当reset为0时,Q输出0:当set为0时,Q输出为1(外部使用时保证res ...

  7. USART库函数中用于清除标志位的一些函数,如读DR寄存器的值清除标志位

    USART库函数中用于清除标志位的一些函数,如读DR寄存器的值清除标志位 刚学M4没多久,对于库函数的使用还有些陌生,因为之前学的是寄存器配置,今天在用库函数配置usart的时候,遇到了不知道该调用哪 ...

  8. ARM汇编中lr(r14)寄存器的作用

    lr(r14)的作用问题,这个lr一般来说有两个作用: 1.当使用bl或者blx跳转到子过程的时候,r14保存了返回地址,可以在调用过程结尾恢复. 2.异常中断发生时,这个异常模式特定的物理R14被设 ...

  9. STM32 GD32 keil 反汇编 根据 寄存器R14 MSP寄存器值 定位导致产生硬件中断的代码 查找产生硬件中断的原因

    STM32跳至硬件错误中断(HardFault_Handle) 原因及参考解决方法 https://blog.csdn.net/guowuzhou/article/details/114841261? ...

最新文章

  1. 机器学习-斯坦福:学习笔记6-朴素贝叶斯
  2. JLOI2015 战争调度
  3. 使用 Jwt-Auth 实现 API 用户认证以及无痛刷新访问令牌
  4. 从你输入一个网址,到网页显示,其间发生了什么?
  5. Bech32编码 (3)隔离见证地址
  6. 修改数据库文件为自动扩展以达到表空间自动扩展的目的
  7. mysql 光标的作用_Mysql那些事儿之(十四)光标的使用_MySQL
  8. 女友的一个建议,让26岁程序员做了个价值 10 亿美元的 App
  9. (详解)IDEA中使用git教程
  10. 【敏捷开发每日一贴】代码走查
  11. H264封装为FLV
  12. ISMS信息安全管理体系与信息系统安全等级保护标准的异同点
  13. 关于CMOS摄像头的DVP接口的工作方式与一般使用方法
  14. OPPO a1刷机包下载_OPPOA1密码忘记了?来这里搞定
  15. win10更改无线网卡的MAC地址
  16. Windows10家庭版获取最高管理员权限
  17. 计算机二级C语言公共基础知识,以及习题总结(一)
  18. python 期货现货差价监测_期货现货价差小工具——天勤量化(TqSdk)
  19. 牛牛的Link Power II
  20. 一分钟了解“#include iomanip”

热门文章

  1. 超帅的爬取鹿晗微博(适合基础学者)
  2. 最新程序员工资统计表
  3. 基于Linux视频驱动接口V4L2视频采集编程
  4. 基于深度神经网络的图像分类与训练系统(MATLAB GUI版,代码+图文详解)
  5. 计算机毕业设计之java+ssm知了堂财务报账管理系统
  6. miui 8 android对应关系,MIUI2.3到MIUI8的演变过程,满满的回忆
  7. android ui层 交互层 业务逻辑层 服务层,表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)...
  8. 传真系统升级加快物流发展
  9. 浅析vue中wavesurfer.js的Minimap插件的使用
  10. cartographer_ros node_main