0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

与你一起揭开LR寄存器的神秘面纱

UtFs_Zlgmcu7890 来源:互联网 作者:佚名 2017-10-31 06:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

单片机涉及函数跳转或者任务调度的时候,理解MCU如何处理堆栈与改变各个通用寄存器的状态尤为重要,下面就来比较一下在不同情况下LR寄存器的意义。

上图是一个简单的例子,当仿真点击“下一步”的时候,MCU就会执行BX LR指令,并且从aa子函数返回到main函数中,可以看到在普通子函数里执行BX LR的意义是“跳转到LR寄存器里的地址执行”。

对比一下一段ucos的源码,如果对M3内核有所了解的小伙伴一定知道堆栈为什么是这样定义的,那么这时候我们发现OS_TaskReturn是作为一个错误返回函数,并且赋值到堆栈中R14(LR)相应的位置。

任务调度函数会将PSP堆栈指针指向我们定义自定义的堆栈,然后最后一句汇编是BX LR,那么按照普通子函数执行BX LR的意义,这个时候MCU是会运行OS_TaskReturn这个函数吗?这样不就进入错误函数了吗?

其实不然,因为用M系列实现ucos的任务调度是在PendSV异常(中断)里面实现的,而在异常(中断)里的LR寄存器不再是普通函数里面“返回地址”的意义,而是一个定义为一个称作exc-return的值,当执行BX LR时候,这个值决定了MCU退出异常(中断)之后的运行等级是在特权级还是用户级以及用的堆栈是MSP还是PSP,而MCU即将要执行的是从PSP堆栈中POP出来的p_task函数,而不是OS_TaskReturn函数。

是不是觉得很有趣,蠢蠢欲动,迫不及待想上手体验一下呢?考虑到广大群众的焦虑,我司提供 LPC824仿真套餐服务,不用998,也不用99,只要49,你还在想什么呢?赶紧复制下面的淘口令打开淘宝上车吧

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5590

    浏览量

    129091
  • 汇编指令
    +关注

    关注

    0

    文章

    38

    浏览量

    11796
  • LPC824
    +关注

    关注

    0

    文章

    8

    浏览量

    5434
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【NCS随笔】nRF54L15使用UICR寄存器保存数据

    nRF54L15使用UICR寄存器保存数据 本文章主要是讲解如何使用nRF54L15的UICR寄存器保存些基础数据 、UICR寄存器的说
    的头像 发表于 11-27 17:09 1116次阅读

    嵌入式系统必懂的 20 个寄存器

    嵌入式开发看起来很复杂,但很多操作其实都离不开寄存器寄存器就是MCU内部的存储单元,它们控制着处理和外设的行为。熟悉这些寄存器就能更
    的头像 发表于 11-14 10:28 653次阅读
    嵌入式系统必懂的 20 个<b class='flag-5'>寄存器</b>

    ‌SN74HCT595 8位移位寄存器技术解析与应用指南

    移位寄存器和存储寄存器提供时钟。移位寄存器具有个直接覆盖清零 (SRCLR) 输入以及用于级联结构的串行 (SER) 输入和串行输出 (QH’)。当输出使能 (OE) 输入置为高电平
    的头像 发表于 09-19 14:31 604次阅读
    ‌SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技术解析与应用指南

    ‌TPIC6B595 8位功率移位寄存器技术文档总结

    TPIC6B595器件是款单片、高压、中电流功率8位移位寄存器,设计用于需要相对高负载功率的系统。该器件在输出端包含个内置电压钳位,用于电感瞬态保护。功率驱动应用包括继电器、螺线
    的头像 发表于 09-09 10:16 741次阅读
    ‌TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技术文档总结

    电源里的“特种部队”:揭秘115V/400Hz高频电力的神秘面纱与应用领域

    ”,虽然小众,却肩负着至关重要的使命。今天,就让我们一起揭开它的神秘面纱、为什么是400Hz?高频电力的优势何在?与常见的50/6
    的头像 发表于 08-29 10:48 552次阅读
    电源里的“特种部队”:揭秘115V/400Hz高频电力的<b class='flag-5'>神秘</b><b class='flag-5'>面纱</b>与应用领域

    光模块拉环颜色背后的神秘意义,知道多少?

    在数据中心的复杂网络世界里,光模块扮演着至关重要的角色,它负责实现电信号与光信号之间的高效转换,确保数据在光纤网络中稳定、高速地传输。而光模块上小小的拉环颜色,看似不起眼,却隐藏着诸多关键信息,下面跟着小易,一起揭开神秘
    的头像 发表于 08-05 16:22 611次阅读
    光模块拉环颜色背后的<b class='flag-5'>神秘</b>意义,<b class='flag-5'>你</b>知道多少?

    知道船用变压有哪些吗?

    在船舶和海洋平台上,电力系统的稳定运行至关重要,而船用变压作为其中的关键设备,其种类繁多,各具特点。知道船用变压有哪些吗?让我们一起揭开
    的头像 发表于 06-01 00:00 482次阅读
    <b class='flag-5'>你</b>知道船用变压<b class='flag-5'>器</b>有哪些吗?

    使用寄存器点亮LED灯

    学习本章时,配合以上芯片手册中的“19. I/O Ports”章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。本章内容涉及到较多寄存器方面的深入内容,对于初学者而言这些内容丰富也较难理解,但非常有必要细读研究、夯实基础。
    的头像 发表于 05-28 17:37 1048次阅读
    使用<b class='flag-5'>寄存器</b>点亮LED灯

    第四章 什么是寄存器

    本篇文章我们讲解了寄存器的概念、地址映射和寄存器操作等内容,内容比较干,大家有个概念即可,不要求全部熟记掌握,有需要时可重复查阅观看。下篇我们将开始进行实操内容,通过控制单片机的GPIO来点亮
    的头像 发表于 05-21 14:23 1145次阅读
    第四章 什么是<b class='flag-5'>寄存器</b>

    防水连接:电源与工业领域的守护神

    在电源与工业领域的浩瀚海洋中,有种小小的元件,它默默无闻,却扮演着不可或缺的角色——它就是防水连接。今天,让我们一起揭开这位守护神的神秘
    的头像 发表于 04-19 09:54 578次阅读
    防水连接<b class='flag-5'>器</b>:电源与工业领域的守护神

    防水连接:工厂环境中的守护神

    在工业制造的世界中,每个细节都至关重要。连接,作为电子设备中不可或缺的组成部分,承担着信号和电力传输的重任。而在充满挑战的工厂环境中,防水连接的最大作用究竟是什么呢?让我们一起
    的头像 发表于 02-17 15:31 786次阅读

    LP防水连接:高端品质,引领行业潮流

    在电子连接领域,LP防水连接以其独特的设计和卓越的性能,逐渐成为市场上的“明星产品”。那么,为什么说LP防水连接种较为高端的款式呢?今天,让我们
    的头像 发表于 02-17 15:30 762次阅读

    XILINX FPGA CLB单元之移位寄存器

    、移位寄存器 SLICEM函数发生也可以配置为32位移位寄存器,而无需使用slice中可用的触发。以这种方式使用,每个LUT可以将串行
    的头像 发表于 01-16 17:45 1470次阅读
    XILINX FPGA CLB单元之移位<b class='flag-5'>寄存器</b>

    TPS80032寄存器手册

    电子发烧友网站提供《TPS80032寄存器手册.pdf》资料免费下载
    发表于 12-21 09:08 0次下载
    TPS80032<b class='flag-5'>寄存器</b>手册

    精准到“厘米级”!组合导航系统让的无人机更加震撼

    是否曾在操纵大型无人机时,因为定位不准而错过绝佳拍摄角度?或是在复杂环境下失去精确导航,导致任务失败?不用担心!!!ER-GNSS/MINS-01,以其高可靠、高精度的特性,完美解决了这些痛点。今天,让我们一起揭开ER-GNS
    的头像 发表于 12-16 14:36 1383次阅读