电子发烧友App

硬声App

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

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

3天内不再提示

电子发烧友网>控制/MCU>MCU在执行指令的过程中,是如何选择堆栈指针呢?

MCU在执行指令的过程中,是如何选择堆栈指针呢?

收藏

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

评论

查看更多

相关推荐

单片机执行指令过程详解

加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定的功能。
2019-02-15 09:53:1118992

MCU堆栈的大小是多少

写在前面我们都知道堆栈位于RAM,现在MCU的RAM相对较大(几十上百K),所以分配的堆栈也是足够大,很多人都不怎么关注这个堆栈的大小。但是,以前MCU的RAM比较小,甚至1K都不到,所以,以前
2021-11-03 09:14:20

MCU在运行过程中,可以调整它的主频吗?

希望MCU在运行过程中,可以调整它的主频,比如说,30MHz/55MHz/140MHz,这几个频点之间切换。 但不希望重启或者复位mcu。 可以实现吗?
2024-01-16 07:39:25

stm32H743非中断模式下使用主堆栈指针下的汇编语句

通过Keil5,stm32H743非中断模式下,使用主堆栈指针下的汇编语句查看。理解这个汇编逻辑后,将有利于更自由的进行程序调试,查找BUG。文章涉及的汇编指令可以工程左侧:book
2022-01-25 06:16:29

硬件设计过程中该怎么选择合适的电源模块来为芯片供电?

硬件设计过程中该怎么选择合适的电源模块来为芯片供电?
2021-09-28 08:55:07

程序运行过程中能否移动DROPDOWN的位置

程序运行过程中能否移动DROPDOWN的位置?谢谢!
2020-06-01 15:54:00

调试Bluepill的过程中遇到了哪些问题

为什么叫Bluepill?调试Bluepill的过程中遇到了哪些问题?有什么方法可以去实现Arduino IDE兼容STM32
2021-11-05 07:19:26

堆栈指针的作用是什么?

堆栈指针的作用是什么
2023-11-02 08:10:17

ARM 的堆栈学习笔记

以下是我在学习ARM指令记录的关于堆栈方面的知识:1、寄存器 R13 ARM 指令中常用作堆栈指针2、对于 R13 寄存器来说,它对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用
2016-06-15 11:50:24

C16x堆栈

80C166的基本设计故意偏向于允许像C这样的结构化语言比较老的CPU上更高效地运行。 最有用的指令集功能之一是提供16个额外的堆栈指针。 这些是MOV[Ri+]的结果,mem指令非常适合创建本地
2023-09-04 07:05:45

C51的函数指针

芯片),使用PUSH和POP汇编指令堆栈上传递函数参数。 由于8051的堆栈大小有限(只有128字节,某些设备上甚至低至64字节),因此必须使用不同的技术来传递函数参数。 当英特尔为8051推出PL
2023-09-04 08:29:44

CPU指令的条件执行分享!

,是LE标志:恰巧,print中有puts函数,puts函数中有判断,正好改变了CPSR的高四位,使CPU执行该异常指令。再说一句,CPU执行指令的时候,是先判断条件,再判断指令。找到了原因
2019-09-10 05:45:25

Cortex-M3 SoC芯片的主堆栈指针是怎么产生的

Data + RW Data, 芯片RAM占用的空间为:RW Data + ZI Data;打开hex文件,看一下前四个字节0x2000_0368。很惊喜,hex文件的前4个字节为主堆栈指针MSP的初值
2022-05-31 14:24:44

C语言及ARM堆栈指针SP设置的理解与总结(转载)

的,从地址向高地址,依次为:程序段(.text),BSS段,然后上面还可能会有堆空间,然后最上面才是堆栈段,这样安排堆栈,是因为堆栈的特点决定的,所以堆栈指针SP初始化一般堆栈段的高地址,也就
2018-01-26 17:11:03

DR LR与[SP, #-8]这一行程序为什么堆栈指针要减去8个字节的值

问一个堆栈指针的问题 OSIntCtxSw_1,获取新任务堆栈指针.LDR R4, [R6]ADD SP, R4, #68 ;17 寄存器CPSR,OsEnterSum,R0-R12,LR
2023-02-27 10:39:07

F28027 HVPSFB调试过程中步进查看程序发现反馈环没有执行是为什么?

C2000 HVPSFB在编译调试过程中遇到的问题。使用的是TI官方的HVPSFB VCM程序。文件如下所示,在编译过程中没有遇到问题和警告。但是调程序的时候发现了几个不正常的地方,需要帮我解答
2020-05-28 12:33:31

FreeRTOS的任务堆栈溢出检测机制

通过宏#define configCHECK_FOR_STACK_OVERFLOW来进行选择使能:两种检测方式检测原理上存在一些差别,检测方式1是检测运行过程中的任务栈指针,检测方式2则是检测初始化
2021-10-15 13:51:40

M032的GPIOMCU上电过程直到完成reset的这段过程中是什么状态?

M032芯片的所有GPIOMCU上电过程直到完成reset的这段过程中,是什么状态?项目需要用GPIO控制多个外部IO,需要在设备上电过程中有明确的IO状态。 I/O Initial State
2023-08-21 07:38:50

MOVX指令执行过程

MOVX指令执行过程MOVX指令是51单片机访问片外外设的唯一指令,与外部RAM或I/O空间进行数据的读写或者ADC和DAC等都需要使用这条指令。MCS51单片机外部RAM的地址空间为64 KB
2021-12-07 09:38:12

NRF51822调试过程中遇到哪些问题

NRF51822调试过程中遇到哪些问题?如何去解决这些问题
2022-01-26 07:02:59

【原创分享】聊一聊单片机堆栈

单片机堆栈是什么?简单来说是RAM区的一块存储空间,系统空间中用作临时数据存储,遵循后进先出的原则。栈空间操作的关键点之一就是栈指针寄存器,每次执行栈操作时,栈指针的内容自动调整。按照通常的说法
2021-12-20 17:49:25

中断功能后堆栈指针跳过指令

CurrState的条件内,因为CurrState变量应该是“BipperSinking”或“BipperCli.g”,开始的时候可以,但是一旦我发送“A”并且发生中断事件,堆栈指针就会进入条件内
2019-10-15 13:47:08

以Nehalem微架构为参照说明Cache Memory指令执行过程

的Entry数目决定。很多现代处理器,LSQ的Entry数目多小于ROB和RS的Entry数目,因此一个Pipeline可以并发的读写指令首先由LSQ的深度决定。无序飞翔存储器读写指令执行过程中
2022-09-01 16:05:59

使用CH340G过程中如何让MCU获取到u***的配置状态?

使用CH340G过程中如何让MCU获取到u***的配置状态?
2022-02-22 07:54:37

关于STM32主堆栈指针(MSP)与进程堆栈指针(PSP)

我正在阅读STM32编程手册和“ 第18页 ”的某处,我看到了这两种堆栈指针。我一直认为只有一个堆栈,因此只有一个堆栈指针存在于MCU,现在我对这些指针的含义感到困惑,主题和每个指针之间的差异用于什么?
2018-10-30 11:46:05

单片机执行指令过程

通过写入器固化片内或片外程序存储器。因而一开机即可执行指令。下面我们将举个实例来说明指令执行过程:开机时,程序计算器PC变为0000H。然后单片机时序电路作用下自动进入执行程序过程执行过程
2018-06-07 14:05:49

单片机执行指令过程是怎样的

单片机执行指令过程详解单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。...
2021-11-25 08:02:36

单片机的指令数据都被写在了哪里?

的瞬间,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行指令,由此程序MCU上开始执行(当然调用程序的main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些很...
2021-12-03 07:01:20

单片机的程序具体是怎样运行的

执行过程:程序语句都在ROM里放着,起始文件里面设置了栈顶地址,然后初始化了RAM,给PC指针赋初值,让CPU根据PC指针里的值从ROM里取出一条指令执行执行过程中PC指针加上执行指令对应的字节数,执行完后再根据PC指针的值去ROM里取语句执行,碰到调用跳转等指令,则将下一条指令的地址放在
2022-02-16 07:38:24

基于ARM架构的MCU选择

广泛选择的核心,但实际上总有很多32位选项可供选择。在过去,对任何给定指令集的支持只是选择过程中的一个重要元素,但是由于ARM,指令集的相关性可能已经变得没有...
2021-11-10 06:41:19

多任务系统堆栈使用

多任务系统运行过程中,此堆栈将专门用于中断和异常处理程序。多任务启动后,C堆栈会丢失,导致嵌入式应用可用的RAM量减少,资源有限的应用,可以重用C堆栈空间,用于任务堆栈,具体实现可以
2023-01-05 13:52:05

大家使用32位MCU产品过程中,遇到了什么问题?

大家使用32位MCU产品过程中,遇到了什么问题,请在这帖子中提问,看到了都会一一回复的。
2019-11-21 09:09:29

如何保证数据传输过程中的安全(防窃取)?

实际的业务,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据传输过程中的安全(防窃取)?除了https的协议...
2021-07-28 06:27:39

如何利用ARM汇编作为跳板指令执行攻击程序

, lr 压入到栈。注意的是,lr 寄存器的值什么时候更新? 像执行 bl 这样的跳转链接指令的时候, ARM 处理器会将跳转指令之前的那条指令的地址放入到lr 。这点理解清楚很重要,当压入栈
2022-05-13 10:50:27

如何在arm32 arch和armv7打印堆栈框架的框架指针地址

我正在尝试arm32 arch和armv7打印堆栈框架的框架指针的地址。为了找到先前的堆栈帧地址,我正在arch_prev_frame()执行(frame-12),并在
2022-09-05 16:01:26

如何让程序执行过程中暂停?

你如何让程序执行过程中暂停,就像Arduino 的 通过 Basic 的 delay 函数: delay: 会等待一定的毫秒数再继续执行。 用于制作 LED 闪烁 延迟 {Var 或 value} Luc
2023-05-10 07:22:21

如何通过IAR进行堆栈使用分析

前言嵌入式应用开发过程中,由于MCU的存储资源有限,因此堆栈空间大小的设定极为关键。堆栈空间设置过大则会造成资源的浪费,堆栈空间设置过小则可能导致堆栈溢出等问题。如何设定一个合理的堆栈空间大小困扰
2020-01-03 16:45:08

如果MSP里没有值,那中断向量表里的堆栈指针从哪来

表里的堆栈指针放到MSP寄存器里,像鸡生蛋还是蛋生鸡,堆栈指针最开始是在哪?如果MSP里没有值,那中断向量表里的堆栈指针从哪来
2022-10-12 10:10:07

学习ARM过程中堆栈初始化详解

以下几种模式之一:usr、fiq、irq、svc、abt、und。3、 寄存器R13ARM指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些
2020-04-20 14:11:42

对Linux学习板进行选择过程中应该注意什么问题

对Linux学习板进行选择过程中应该注意什么问题
2021-12-27 07:31:31

嵌入式学习手册——堆栈结构与编程

可以在任意位置对数据项进行操作。堆(os)一般由程序员手动分配释放,其使用的是二级缓存。  嵌入式世界里,堆栈一般指的仅是栈。2. 作用与意义 MCU ,栈这种结构一般被 cpu 和 os 所
2020-04-20 07:00:00

怎么提高MCU在运行过程的代码执行效率?

怎么提高MCU在运行过程的代码执行效率
2023-10-12 07:07:25

怎样去解决keil调试过程中无法打断点与无法追踪的问题

调试过程中会发现有些语句为的前面为浅灰色无法打断点,而有些变量在生存域内无法追踪,如下图第33行定义的dSum函数无法追踪到其值,而第36行的函数无法选择断点。看起来很像编译器的bug但其实
2022-02-28 06:40:21

文件Os_cpu_a.s堆栈指针调整的原因是什么?

基础与实战》404 页解释:只所以要(1)(2)是因为"OSTCBHighRdy—>OSTCBStkPtr 保存的是任务栈位置,而寄存器恢复后堆栈指针并不指向这,所以要调33整
2023-02-28 14:03:44

有什么方法可以实现ARM体系结构的堆栈操作

在load指令—LDMFA,这可以转换成一条LDMDA指令。arm制定了ARM-Thumb过程调用标准(ATPCS),定义了历程如何被调用,寄存器如何被分配。ATPCS堆栈被定义为递减式满堆栈
2022-05-13 10:43:45

求助,平常MCU指令执行速度为多少?

平常MCU指令执行速度为多少?
2023-11-01 08:23:25

浅析MCU的startup过程

()函数开始的用户程序就好(这其实对于大部分工程师来说确实如此);2. Startup过程往往需要一定的MCU内核CPU汇编指令知识,很多对内核寄存器/堆栈指针的初始化、I/D-ca...
2021-11-03 07:09:32

灵动微MCU测试过程中确保频率校准方法分享

灵动微MCU测试过程中确保频率校准方法
2020-12-31 06:55:28

瑞萨MCU及开发环境常见问题

that uses WDT]的为ON状态。那么请确认程序的停止状态(即break过程中),没有看门狗溢出事件发生,因为E8A/E8会在break过程中周期性的刷新看门狗。对于M32C和M16C系列MCU
2015-02-03 20:12:57

详解STM32单片机的堆栈

代码是如何占用堆和栈的。可能很多人还是无法理解,这里再结合STM32的开发过程中堆栈相关的内容来进行讲述。 如何设置STM32的堆栈大小? 基于MDK的启动文件开始,有一段汇编代码是分配堆栈
2021-01-12 11:30:51

请问ARM程序段的执行过程中PC通常指向?

3、ARM程序段的执行过程中,PC通常指向( ) A. 当前执行指令的下一条指令处 B. 当前执行指令的下两条指令处 C. 当前预取指令的下一条指令处 D. 当前预取指令的下两条指令处 选哪个?
2018-08-20 05:45:48

请问初始化CPU堆栈的时候一开始执行mov r0, LR这句指令时处理器是什么模式

请问初始化 CPU堆栈的时候一开始执行mov r0, LR这句指令时处理器是什么模式
2016-07-27 22:01:33

请问ATtiny13指令执行过程中的访问时序?

ATtiny13指令执行过程中的访问时序?
2020-11-10 07:09:28

请问ATtiny2313指令执行过程中如何访问时序?

ATtiny2313指令执行过程中如何访问时序
2020-11-11 07:31:09

请问哪位大神可以分享ATmega168指令执行过程中的访问时序吗?

ATmega168指令执行过程中的访问时序
2020-11-09 06:36:55

转:单片机指令执行过程

写入器固化片内或片外程序存储器。因而一开机即可执行指令。下面我们将举个实例来说明指令执行过程:开机时,程序计算器PC变为0000H。然后单片机时序电路作用下自动进入执行程序过程执行过程实际上
2016-08-17 12:47:36

HT MCU 软件堆栈的应用

HT MCU 软件堆栈的应用介绍:对于 Holtek 八位元单片机来说,堆栈资源往往是有限的。例如,HT48R10A-1 就只有两级堆栈。本文将介绍如何利用软件堆栈来解决这一问题。软件堆栈是用通
2010-03-26 08:33:3116

SIMATIC逻辑堆栈指令

9.16 SIMATIC 逻辑堆栈指令栈装载与 (ALD)ALD 指令堆栈中的第一层和第二层的值进行逻辑与操作结果放入栈顶执行完 ALD 指令堆栈深度减 1操作数 无栈装载或 (OLD)OLD
2010-11-04 22:39:5540

堆栈指针是什么_有什么作用

堆栈指针总是指向栈顶位置。一般堆栈的栈底不能动,所以数据入栈前要先修改堆栈指针,使它指向新的空余空间然后再把数据存进去,出栈的时候相反。堆栈指针,随时跟踪栈顶地址,按“先进后出”的原则存取数据。
2017-11-10 11:01:079456

在单片机中堆栈指针_数据指针_程序指针的区别是什么

首先,你要明白一个概念,指针,是做什么的?答案是,指针,是指向地址的。程序指针,指向的空间,在物理上是Flash,在逻辑上,就是代码空间。比如说51单片机的PC指针,指向的就是Flash,即程序下一步要执行指令的地址。
2017-11-10 11:21:577418

堆栈指针sp的内容是什么

堆栈是一块保存数据的连续内存。一个名为堆栈指针(SP)的寄存器指向堆栈的顶部。 堆栈的底部在一个固定的地址。堆栈的大小在运行时由内核动态地调整。 CPU实现指令 PUSH和POP,向堆栈中添加
2017-11-13 09:04:0732880

堆栈指针sp的作用是什么

到这些区,则最好把SP值改值为1FH或更大的值。MCS-51的堆栈是向上生成的,若SP=60H,CPU执行一和调用指令或者响应中断后,PC进栈,PCL保护到61H,PCH保护到62H,SP=62H。
2017-11-13 09:17:3266141

基址指针堆栈指针分别是什么意思_有什么分别

堆栈指针总是指向栈顶位置。一般堆栈的栈底不能动,所以数据入栈前要先修改堆栈指针,使它指向新的空余空间然后再把数据存进去,出栈的时候相反。堆栈指针,随时跟踪栈顶地址,按“先进后出”的原则存取数据。
2017-11-13 09:40:1712736

指令指针寄存器是什么_作用有哪些

指令指针寄存器IP(X86型CPU)相当于ARM型CPU中的程序计数器PC,用于控制程序中指令执行顺序。正常运行时,IP中含有BIU要取的下一条指令(字节)的偏移地址,一般情况下,每从内存中存取
2017-11-13 09:58:0211411

计算机执行指令过程分析

计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令执行程序的过程就是计算机的工作过程。控制器靠指令指挥机器工作,人们用指令表达自己的意图,并交给控制器执行
2017-11-17 10:37:0612737

cpu执行指令过程详解

计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令
2018-03-09 16:30:0299734

51单片机执行指令过程的分析解释

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每执行一条指令都可分为三个阶段进行,即取指令-----分析指令-----执行指令
2018-03-16 16:41:427067

浅谈51单片机指令执行过程

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。
2018-04-16 11:20:006062

单片机是如何执行指令过程MCU内存又是如何分配的?

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令
2018-08-25 09:10:004802

详解单片机堆栈

如果了解一点汇编编程话,就可以知道,堆栈是内存中一段连续的存储区域,用来保存一些临时数据。通常用来保存CALL指令调用子程序时的返回地址,RET指令堆栈中获取返回地址。中断指令INT调用中断程序时,将标志寄存器值、代码段寄存器CS值、指令指针寄存器IP值保存在堆栈中。
2018-12-16 11:04:555734

单片机堆栈操作指令的用法介绍

第一条指令称之为推入,就是将direct中的内容送入堆栈中,第二条指令称之为弹出,就是将堆栈中的内容送回到direct中。推入指令执行过程是,首先将SP中的值加1,然后把SP中的值当作地址,将direct中的值送进以SP中的值为地址的RAM单元中。
2019-04-04 14:38:048667

浅析单片机指令执行过程

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程
2019-08-07 14:47:075139

深入分析MCU堆栈的作用 以及该如何设置堆栈大小

深入分析MCU堆栈的作用,以及该如何设置堆栈大小
2020-03-01 14:13:394449

详谈单片机如何执行指令

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令
2020-09-01 15:45:012254

如何选择合适的基于ARM的MCU

广泛选择的核心,但实际上总有很多32位选项可供选择。在过去,对任何给定指令集的支持只是选择过程中的一个重要元素,但是由于ARM,指令集的相关性可能已经变得没有实际意义。围绕Cortex-M内核的生态...
2021-10-28 14:06:075

如何选择合适的基于ARM的MCU

广泛选择的核心,但实际上总有很多32位选项可供选择。在过去,对任何给定指令集的支持只是选择过程中的一个重要元素,但是由于ARM,指令集的相关性可能已经变得没有...
2021-10-28 15:36:0414

如何选择合适的基于ARM的MCU

广泛选择的核心,但实际上总有很多32位选项可供选择。在过去,对任何给定指令集的支持只是选择过程中的一个重要元素,但是由于ARM,指令集的相关性可能已经变得没有...
2021-11-05 17:05:5913

单片机执行指令过程详解

单片机执行指令过程详解单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。...
2021-11-17 09:36:0219

单片机程序是如何执行的?指令数据写哪了?

上电的瞬间,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行指令,由此程序在MCU上开始执行(当然在调用程序的main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些很...
2021-11-23 17:51:339

单片机程序是如何执行的:指令数据写哪了

;nbsp;让我们从最开始的环节讲起。在单片机上电的瞬间,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行指令,由此程序在MCU上开始执行(当然在调用程序的main之前,还有一系列其他的...
2021-12-01 16:06:057

单片机的程序具体运行过程以及栈空间的使用

执行过程:程序语句都在ROM里放着,在起始文件里面设置了栈顶地址,然后初始化了RAM,给PC指针赋初值,让CPU根据PC指针里的值从ROM里取出一条指令执行,在执行过程中PC指针加上执行指令对应的字节数,执行完后再根据PC指针的值去ROM里取语句执行,碰到调用跳转等指令,则将下一条指令的地址放在
2021-12-17 18:32:556

单片机是怎么执行指令的?

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令
2022-02-09 11:13:263

单片机执行指令过程

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器
2022-02-11 15:26:344

SpringBoot如何实现启动过程中执行代码

目前开发的SpringBoot项目在启动的时候需要预加载一些资源。而如何实现启动过程中执行代码,或启动成功后执行,是有很多种方式可以选择,我们可以在static代码块中实现,也可以在构造方法里实现,也可以使用@PostConstruct注解实现。
2022-06-20 17:32:481096

已全部加载完成