1.存储器分类
FLASH掉电不丢失数据,存储慢,STM32的FLASH用于存储代码、用户数据;
RAM掉电易丢失数据,存储快,STM32内部RAM为SRAM,用于存储动态交换数据;
2.STM32内存分布情况
内存架构
STM32F0系列,是M0
STM32F1/F2系列,是M3,4GB
STM32F3/F4系列,是M4,4GB
3.存储数据段释义
.text | 代码段 | 程序代码,可能包含一些只读的常数变量 | Flash |
.constdata | 只读常量,const声明 | Flash | |
.data | 数据段 | 已初始化不为零的全局变量、静态变量 | RAM |
.BSS | bss段 | 未初始化或初始化为0的全局变量和静态变量 | RAM |
heap | 堆 | 手动释放,进程动态分配的内存段,startup_stm32fxx.s定义大小 | RAM |
stack | 栈 | 自动释放,用户存放程序,startup_stm32fxx.s定义大小 | RAM |
参考1:STM32的内存管理相关(内存架构,内存管理,map文件分析) - 知乎 (zhihu.com)
参考2:ARM cortex M3 与M4 权威指南