详解STM32单片机堆栈
💡
原文约2200字/词,阅读约需6分钟。
📝
内容提要
本文介绍了堆栈的概念和在STM32单片机中的应用,堆栈是内存中用于暂时保存数据的连续存储区域。在STM32开发中,可以通过设置堆栈大小来分配内存空间,需要注意内存泄漏和错误。可以通过RAM大小信息和map文件来分析RAM占用情况。
🎯
关键要点
- 堆栈是内存中用于暂时保存数据的连续存储区域,操作由PUSH和POP指令完成。
- 程序内存分为栈区、堆区、全局区、文字常量区和程序代码区。
- 栈从高地址向低地址分配空间,堆从低地址向高地址分配空间。
- STM32单片机需要使用bootloader将代码从ROM搬移到RAM,而普通单片机不需要。
- 堆栈在中断处理时保存函数指针,以便中断完成后返回到之前的执行状态。
- 堆栈指针(SP)记录堆栈存储单元的地址,保存中断时的相关参数。
- 在STM32开发中,可以通过MDK设置堆栈大小,默认值为0x400(1K)。
- 局部变量和函数参数会占用堆栈空间,需注意是否超过配置的堆栈大小。
- 堆的默认设置为0x200(512字节),使用malloc分配堆空间时需注意内存泄漏问题。
- MDK中可以分析RAM占用情况,了解具体哪些地方占用了RAM。
➡️