首页 > 其他分享 >FreeRtos进阶——栈保存现场的几种场景

FreeRtos进阶——栈保存现场的几种场景

时间:2024-05-27 22:58:29浏览次数:20  
标签:场景 R0 进阶 FreeRtos 用到 保存 函数调用 硬件 寄存器

MCU架构

在这里插入图片描述
在认识栈的结构前,我们先来认识以下单片机的简单架构。在我们的CPU中有着很重要的一个模块——寄存器(R0-R15),其中R13,R14,R15的别称分别为SP栈顶指针、LR返回地址、PC当前指令地址。外部RAM是单片机的内存(当我们在使用栈时就会在内存中划分一块空间作为栈空间)。Code是指ROM即存储代码的地方,在底层讲是存储汇编指令的地方,当程序运行时,PC就从这里一条条取出指令执行。

栈保存现场的几种场景

函数调用

在函数调用时,传参会用到R0,R1,R2时,这些寄存器就不用保存,因为这些寄存器被用来传参了,仅需要保存一些用到的寄存器。

任务切换

俩个任务之间是独立的,没有任何联系的两段程序,所以对所有寄存器的值进行保存。

硬件中断

硬件中断时,硬件会自动保存(R0,R1,R2)这些寄存器到栈中,仅需要保存一些用到的寄存器。

标签:场景,R0,进阶,FreeRtos,用到,保存,函数调用,硬件,寄存器
From: https://blog.csdn.net/zhoutan001/article/details/139221883

相关文章

  • 多项式进阶操作
    多点求值问题:给定一个\(n-1\)次多项式\(f(x)\),求在\(a_0,a_2,...,a_{m-1}\)处分别求得的点值。\(n,m\le10^5\)首先我们先钦定\(n=m\),否则也可以适当补,下文中用\(n\)来代替\(m\)。设\(F=[f_0,f_1,...,f_{n-1}]\),\(A=\begin{bmatrix}a_0^0&a_0^1&...&a_0^{n......
  • 动态规划--图论中使实用场景概述
    目录一 动态规划概述二 动态规划在图论中应用场景三c实例1.**最短路径问题(Dijkstra算法)**:2.**最小生成树问题(Kruskal算法)**:一 动态规划概述动态规划(DynamicProgramming,简称DP)是一种用于解决具有重叠子问题和最优子结构特性的问题的优化方法。动态规划通过将原......
  • MySQL - [05] 需求&场景
      一、生成测试数据(1)首先,有表如下createtableapp_user(`id`bigint(20)notnullauto_incrementcomment'用户id',namevarchar(50)notnullcomment'用户名',emailvarchar(50)comment'邮箱',phonevarchar(20)comment'......
  • 嵌入式进阶——I2C总线
    ......
  • ROS2入门21讲__第21讲__ROS2应用与进阶攻略
    资源汇总常用框架自主导航比如移动机器人基本都会具备的自主导航功能,ROS2提供了完整的自主导航系统框架和各种实现好的算法,即便我们不开发任何代码,也可以在自己的机器人上,使用这套系统,快速实现自主导航的基本功能。大家如果要进行相关的应用开发,可以参考这个链接中的内容:......
  • 智慧工厂新篇章:可视化三维场景引领未来制造
    在科技日新月异的今天,我们似乎总是在不断追求着更加高效、智能的生产方式。 传统的工厂管理方式往往依赖于平面图纸、纸质文档和现场巡查,这不仅效率低下,而且容易出错。而三维可视化技术通过3D建模和虚拟现实技术,将工厂内部的各个角落、设备、管线等细节都一一呈现在眼前,让管理......
  • Web Service和Web API理解和使用场景
    WebService理解:WebService是一种基于网络的服务,它使用标准化的消息传递协议,最典型的是基于SOAP(SimpleObjectAccessProtocol)协议。SOAP使用XML格式封装数据,定义了消息的结构和传输方式,因此它是一个重量级的解决方案。WebService支持跨平台、跨语言的通信,常用于企业内......
  • JINGWHALE ABCDE 概念模型系统设计建模法,用户画像进行场景化业务需求分析与归纳,帮你规
    JINGWHALE对此论文相关未知以及已知概念、定理、公式、图片等内容的感悟、分析、创新、创造等拥有作品著作权。未经JINGWHALE授权,禁止转载与商业使用。《一种基于概念模型思想的ABCDE系统设计建模法的研究与应用》张云龙(JINGWHALE数字科学艺术创新中心,浙江杭州,310......
  • C++技能进阶指南——多态语法剖析
            前言:多态是面向对象的三大特性之一。顾名思义,多态就是多种状态。那么是什么的多种状态呢?这里的可能有很多。比如我们去买火车票,有普通票,学生票;又比如我们去旅游,有儿童票,有成人票等等。这些都是多态的例子。具体转化为我们的编程思想就是:让不同类型......
  • 嵌入式实时操作系统笔记3:FreeRTOS移植(STM32F407)_编写简单的FreeRTOS任务例程
    上文讲到UC/OSIII系统的移植,那篇文章是失败了的,网络上的资料真是层次不清,多有遗漏步骤,导致单片机连操作系统的初始化都卡在那,这次换个赛道,学FreeRTOS吧......今日任务如标题所示:FreeRTOS移植(STM32F407)_编写简单的FreeRTOS任务例程文章提供测试代码讲解、完整工程下载、测......