stm32 堆栈存放分析

一、理论数据存放

数据在SRAM中的存放情况,最下层为静态数据区,再上层是堆区,最上层是栈区,

二、栈存放:

(1)栈底地址:

在map文件中搜索STACK,可以看到该工程的栈底地址为0x200002a0

(2)栈顶地址:

在map文件中搜索__initial_sp,可以看到该工程的栈顶地址为0x200003a0

(3)栈占用大小:

根据上面的地址信息,则可以推算该工程的栈大小为 0x200003a0 - 0x200002a0 = 0x0100

在启动文件中查到栈分配大小为0x100,和计算结果一致

在map文件最后,看到ram占用为928字节 = 0x3a0,和栈顶指针相同。

三、实际数据存放

所以该工程的实际堆栈占用为