嵌入式堆栈、ARM寄存器

news2024/9/20 22:52:27

栈里面存放的内容:局部变量和系统信息,函数调用链路也是系统信息的一环

ARM寄存器
LR:程序跳转的时候,返回到的地址就保存到此处
PC:程序计数器,pc 要执行的下一条指令地址,就存放在此处,每次指令执行完,就自动+4
SP{MSP、PSP}:
MSP的含义是Main_Stack_Pointer,即主栈
PSP的含义是 Process_Stack_Pointer,即任务栈

**堆和栈 相向生长,**最好的办法就是让堆和栈一个向上涨,一个向下涨,这样它们就可以最大程度地共用这块剩余的地址空间,达到利用率的最大化!!
主堆栈指针(MSP),或写作 SP_main。这是缺省的堆栈指针,它由 OS 内核、异常服务例程 以及所有需要特权访问的应用程序代码来使用.
进程堆栈指针(PSP),或写作 SP_process。用于常规的应用程序代码(不处于异常服用例 程中时)

在这里插入图片描述
在OS开发中,当运行中断服务程序的时候CONTROL的bit1是0,SP使用的是MSP;当运行线程程序的时候CONTROL的bit1是1,SP使用的是PSP

MDK Debug方法:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

ARM运行模式

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ARM指令和Trumb指令:

在debug查找链路时,要是偶数地址,如果SP指向的地址,栈里面的地址是奇数,一般是减1.
在 32 位 ARM 状态下执行 字对齐的 ARM 指令,
当处理器执行在ARM状态:
1)所有指令32bits宽
2)所有指令必须 word 对齐
3)所有 pc 值由 [31:2] 决定,bits[1:0] 未定义( 所以指令不能 halfword/byte对齐 )
在 16位 Thumb 状态下,执行半字对齐的Thumb指令。
在 Thumb 状态下,程序计数器 PC (Program Counter) 使用位[1]选择另一个半字。

汇编语句:

PUSH: 把寄存器的地址往堆栈里面压,堆栈的地址从高到低使用,一个寄存器就占4个字节。

HardFault:结合寄存器保留的值,可以去map表查找是什么变量,以及结合SP查看代码运行到哪里
找到MSP指向的地址的上一个函数。

RTOS查看任务目前运行到哪个地方:
用TCB_t去看

通过pxTopOfStack 可以看目前任务运行的地方,可以通过pcTaskName 来确定目前任务是哪个

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2058803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Obsidian Publish的开源替代品Markopolis

什么是 Markopolis ? Markopolis 是一款旨在提供 Markdown 文件的 Web 应用和 API 服务器。它允许您以网站形式共享 Markdown 笔记,并使用 API 与 Markdown 文件交互和操作它们。类似于 Obsidian Publish,但又不会被锁定在 Obsidian 生态系统…

FMS 2024:多家厂商CXL技术方案总览

CXL(Compute Express Link)联盟自成立以来一直是FMS闪存峰会的常客。在2022年的峰会上,CXL联盟宣布了CXL 3.0版本规范,随后在2023年的超级计算大会上推出了CXL 3.1版本。起初,CXL作为一种主机到设备的互联标准&#xf…

【LiteX】【仿真】使用litex_sim在Python环境中实现FPGA SoC仿真测试

目录 介绍环境依赖litex_sim 入门仿真litex_server、litex_cli、litescope_cli仿真调试litex_sim仿真窗口litex_server窗口litex_cli窗口litescope_cli窗口 波形DUMP方法一:导出指定时间段的波形方法二:在命令行中配置寄存器控制波形导出方法三&#xff…

BI分析实操案例分享:零售企业如何利用BI工具对销售数据进行分析?

在当下这个竞争激烈的零售市场,企业如何在波诡云谲的商场中站稳脚跟,实现销售目标的翻倍增长? 答案可能就藏在那些看似杂乱无章的数字里。 是的,你没有看错,答案正是那些我们日常接触的销售数据。它们就像是宝藏&…

92.SAP ABAP - RFC函数外部调用时的debug - 笔记

当RFC函数被外部系统访问,需要联合调试时,也需要debug模式,打断点进行跟踪。这种要如何做呢? 目录 1.SE37进入程序,通过菜单Utilities-Settings进入 2.ABAP Editor-Debugging Tab页面 3.单击Set/Delete External Br…

软件设计师全套备考系列文章7 -- 树、二叉树、图

软考-- 软件设计师(7)-- 树、二叉树、图 文章目录 软考-- 软件设计师(7)-- 树、二叉树、图前言一、树的基本概念二、二叉树的基本概念三、二叉树的考点四、线索二叉树五、平衡二叉树六、图 前言 考试时间:每年5月、11…

制冷系统四通阀、截止阀和单向阀

一、 四通阀 (一)作用:是热泵型空调中的关键部件,起制冷系统中制冷、制热转换的作用,通过更换压缩机排气管和回气管进入蒸发器和冷凝器的方向,从而达到制冷和制热目的。亦可以用于除湿系统的换向化霜。 (二)工作原理&#xff1…

java接口 controller层接收list集合传参,postman 调用接口时required parameter XXX is not present

开发过程中开发一个java接口 controller层接收list集合传参,然后postman调用一直不成功,报错 使用RequestParam方式,如果postman 调用接口时报错required parameter XXX is not present 可能是(value“items”)跟你输…

微信小程序--31(todolist案例)

一.功能 输入待办事件添加代办事件删除代办事件 二、步骤 1.添加输入框 .wxml代码&#xff1a; <!-- 1.输入框 --><input type"text" bindinput"handleInput" value"{{text}}" /> .wxss代码&#xff1a; /* 1.输入框样式 */ i…

百度地图API快速使用 - 以批量算路为例讲解

目录 1. 开发文档链接 2. 开发流程说明 &#xff08;1&#xff09;首先-创建应用获取访问应用的AK &#xff08;2&#xff09; 查看文档的示例代码并分析 3. 简单改编示例的代码 1. 开发文档链接 批量算路 | 百度地图API SDK (baidu.com)https://lbsyun.baidu.com/faq/ap…

Adobe After Effects的插件--------3D Stroke

3D Stroke是蒙版路径描边插件。它是AE的外置插件,需要自己下载,可以在lookAE中下载。 该插件会依据图层上的蒙版路径(内部)创建蒙版,并且使原蒙版失效。 基础属性 英文属性名中文属性名描述Path路径用来选择图层上的某一段蒙版路径,若 Use All Paths 属性未勾选,该属性…

【SQL】下属员工数量

目录 题目 分析 代码 题目 表&#xff1a;Employees ----------------------- | Column Name | Type | ----------------------- | employee_id | int | | name | varchar | | reports_to | int | | age | int | -------------------…

ubuntu虚拟机磁盘扩容

首先&#xff01;&#xff01;&#xff01;关闭虚拟机 step1&#xff1a;更改虚拟机设置 【右键】你想修改的虚拟机&#xff0c;点【设置】&#xff0c;或者直接点图上位置 选择【硬盘】&#xff0c;右边【拓展】&#xff0c;弹出的窗口中修改你想修改的大小&#xff08;我从…

Chat App 项目之解析(七)

Chat App 项目介绍与解析&#xff08;一&#xff09;-CSDN博客文章浏览阅读259次&#xff0c;点赞7次&#xff0c;收藏2次。Chat App 是一个实时聊天应用程序&#xff0c;旨在为用户提供一个简单、直观的聊天平台。该应用程序不仅支持普通用户的注册和登录&#xff0c;还提供了…

手持气象站的工作原理

TH-SQ5手持气象站是现代气象监测技术中的一种便捷工具&#xff0c;它允许用户随时随地进行气象环境的检测。这种便携式设备通常集成了多种传感器&#xff0c;用于实时测量和记录温度、湿度、气压、风速、风向和光照等气象参数。手持气象站具备轻便的外观设计&#xff0c;适合户…

梦颜时光记录点滴心情经历网站html源码

梦颜时光记录点滴心情经历网站html源码,源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面 https://download.csdn.net/download/huayula/89652517

win11使用注册表禁用自动更新

由于Win11的突然更新&#xff0c;导致日常工作时带来诸多不便&#xff0c;这里使用注册表禁用Win11自动更新操作&#xff0c;注意设置错误可能导致其他问题 1.使用快捷键winR打开运行窗口输入命令“regedit”&#xff0c;或在开始中搜索“regedit”打开注册表。 2.导航到以下路…

Robotics: Aerial Robotics 部分笔记——Week4

感知与估计 SLAM全称Simultaneous Localization and Mapping&#xff0c;即同时定位与制图典型的控制估计模块及部分传感器频率 非线性控制 对偏离平衡态较远的无人机进行控制&#xff0c;之前的线性化就不再适用。计算方法&#xff1a;PD控制计算 u 1 u_1 u1​&#xff0c…

WPF用户控件User Control的使用-在MVVM架构下实现能量条效果

一、用户控件介绍 定义&#xff1a; 用户控件是由一组现有的WPF控件组成&#xff0c;并在一个XAML文件中定义的可重用的控件。它可以包含多个控件、布局和行为&#xff0c;形成一个独立的、可在应用程序中多次使用的模块。 特点&#xff1a; 可重用性&#xff1a;用户控件的…

Linux的oracle数据库导入其他用户导出的数据库文件

如果用户使用的是expdp的命令&#xff0c;导入就要使用impdp命令&#xff0c;本文以impdp为例进行介绍 1、查看当前创建的所有dmp导出目录 select * from dba_directories 2、为创建的目录赋权限 比如咱们将数据库导入到test用户&#xff0c; grant read,write on directo…