首页 > 其他分享 >嵌入式单片机STM32中堆栈使用方法

嵌入式单片机STM32中堆栈使用方法

时间:2024-07-21 11:59:16浏览次数:19  
标签:程序 嵌入式 STM32 单片机 指令 堆栈 分配

     学习STM32单片机的时候,总是能遇到“堆栈”这个概念。分享本文,希望对你理解堆栈有帮助。

    对于了解一点汇编编程的人,就可以知道,堆栈是内存中一段连续的存储区域,用来保存一些临时数据。堆栈操作由PUSH、POP两条指令来完成。而程序内存可以分为几个区:

  • 栈区(stack)

  • 堆区(Heap)

  • 全局区(static)

  • 文字常亮区程序代码区

    程序编译之后,全局变量,静态变量已经分配好内存空间,在函数运行时,程序需要为局部变量分配栈空间,当中断来时,也需要将函数指针入栈,保护现场,以便于中断处理完之后再回到之前执行的函数。
    栈是从高到低分配,堆是从低到高分配。

普通单片机与STM32单片机中堆栈的区别
    普通单片机启动时,不需要用bootloader将代码从ROM搬移到RAM。

    但是STM32单片机需要。

    这里我们可以先看看单片机程序执行的过程,单片机执行分三个步骤:

  • 取指令

  • 分析指令

  • 执行指令

    根据PC的值从程序存储器读出指令,送到指令寄存器。然后分析

标签:程序,嵌入式,STM32,单片机,指令,堆栈,分配
From: https://blog.csdn.net/weixin_41114301/article/details/140585696

相关文章

  • STM32 DMA
    STM32暑假学习DMA文章目录STM32暑假学习DMA前言一、DMA是什么?存储器映像二、DMA基本结构图1.DMA进行转运,有以下条件:2.数据宽度与对齐3.DMA是如何工作的数据转运+DMAADC扫描模式+DMA三、数据转运+DMA示例代码及接线图四、ADC扫描模式+DMA示例代码及接线图ADC连续扫......
  • 【记录】stm32f103c8t6+hc05+TB6612FNG实现蓝牙app控制直流电机
    前言这周刚好做了一个小项目,需要用到单片机控制一个小车移动,在实验室搜刮了一些材料,进行了一些调试工作,感觉也是蛮有意思的。小车的底盘用的是之前电赛剩下的,单片机用的是最小系统板,蓝牙模块是hc05,直流电机也是最普通的小马达。软硬件调试软件:keil5主控板:stm32f103c8t6蓝......
  • 【I²C协议】STC89C51单片机IIC通信(代码+原理)
    STC89C51单片机IIC通信什么是I²C协议特点构成通信协议开始信号、结束信号、应答信号数据传输代码示例什么是I²C协议IIC,即I²C,全称Inter-IntegratedCircuit,字面上的意思是集成电路之间,它其实是I²CBus简称,所以中文应该叫集成电路总线,是由PHILIPS公司在80年......
  • 基于单片机的远程烟雾报警系统的硬件电路设计
    摘要:目前,智能家居已成为信息化时代的产物遍布全国各地,其中适用于家用的烟雾报警系统已成为家庭设备中安全管理的基础。本文设计了一款基于单片机对家用燃气进行实时监测的系统,该系统可通过短信的形式通知家庭主人当前的烟雾浓度。本设计主要完成了硬件电路设计,其中包括基于A......
  • 基于单片机的温控光控智能窗帘设计探讨
    摘要:文章使用的核心原件是AT89C52单片机,以此为基础进行模块化的设计,在整个设计中通过加入光检测模块和温度检测模块,从而对室内的温度和光照强度进行检测,然后将检测得到的数据传输给单片机,单片机对电机的继电圈的通断进行控制,从而通过电机的正转和反转,从而实现对窗帘开合......
  • 嵌入式学习记录——C基础(数组与排序)
    数组与排序数组一维数组二维数组排序冒泡排序选择排序数组数组是由一个或者多个相同数据类型的数据组成的一个集合一维数组如果将数组看做一个坐标轴,一维数组则如同只有X坐标,每个数组中的元素内存地址都是连续的,当数据类型和首个元素a[0]确定时,后续a[i]依次递增......
  • STM32学习(2)-GPIO输出
    GPIO输出2.1GPIO输出1.GPIO简介2.GPIO基本结构3.GPIO位结构4.GPIO模式5.硬件电路2.2LED闪烁&LED流水灯&蜂鸣器1.LED闪烁main函数代码2.LED流水灯3.蜂鸣器2.1GPIO输出1.GPIO简介GPIO(GeneralPurposeInputOutput)通用输入输出口可配置为8种输入输出模式引脚电......
  • STM32被拔网线 LWIP的TCP无法重连解决方案
    目录一、问题描述二、项目构成三、问题解决1.问题代码2.解决思路3.核心代码: 四、完整代码1.监测网口插入拔出任务2.TCP任务3.创建tcp任务4.删除tcp任务五、总结一、问题描述最近遇到一个问题,就是我的stm32设备作为tcp客户端和上位机交互,如果在连接过程中网线......
  • STM32+USART串口(1)
    GPIO口的复用功能是有对应的,作USART使用的话要选择对应的GPIO;可以参考引脚定义;(1)串口通信分为:串行通信和并行通信;(2)通信波特率:通常用波特率(BaudRate)来衡量数据通信的速度。波特率是指每秒钟传送数据的位数,单位为bps(BitPerSecond),用户可根据需要进行设定(3)异步通信:在异步通......
  • 嵌入式(肆)
    嵌入式学习虚拟机的网络模式:桥接模式​和windows共享一个网段,并且能够与windows系统一样可以连接到互联网​说明:虚拟机类似于一台电脑连接到了路由器​好处:网络稍微会快一点​坏处:占用路由器的IP,如果路由器的载荷过大,网络会掉线。NAT模式​和windows的网段不一......