堆栈
在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据
它遵循顺序存取和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。
其实堆栈就是单片机中的一些存储单元,这些存储单元被指定保存一些特殊信息,比如地址(保护断点)和数据(保护现场)。
堆栈特点
1、这些存储单元中的内容都是程序执行过程中被中断打断时,事故现场的一些相关参数。如果不保存这些参数,单片机执行完中断函数后就无法回到主程序继续执行了。
2、这些存储单元的地址被记在了一个叫做堆栈指针(SP)的地方。
3、栈是从高到低分配,堆是从低到高分配。
堆栈分类
我们一般说的堆栈指的栈。堆栈又分硬堆栈和软堆栈,硬堆栈即SP,从片内RAM的顶部向下生长。软堆栈在硬堆栈跟全局变量区之间的空间,C51函数调用通过R0-R7和栈来实现。
堆栈作用
1)子程序调用和中断服务时CPU自动将当前PC值压栈保存,返回时自
动将PC值弹栈。
2)保护现场/恢复现场
3)数据传输
单片机内存
程序内存可以分为几个区,栈区(stack),堆区(Heap),全局区(static),文字常亮区,程序代码区。

//main.cpp
int a = 0
单片机堆栈原理与STM32内存管理,

本文介绍了单片机堆栈的概念、工作原理,包括其在中断处理和子程序调用中的作用。同时详细讨论了堆栈与堆的区别,以及STM32中内存的分类、分配和使用情况,如栈区、堆区、BSS段和data段,以及堆栈在STM32中的具体地址和大小。
最低0.47元/天 解锁文章
1994

被折叠的 条评论
为什么被折叠?



