从上图中可以看出SRAM空间用来存放:1.各个文件中声明和定义的全局变量、静态数据和常量;2.未初始化的全局变量;3.HEAP区;4.STACK区
这是在.map文件中,双击工程target打开
堆栈是处于以0x2000xx地址处的
EQU伪代码:令Stack_Size的值为0x00000400,相当于宏命令
AREA伪代码:表示声明一个代码或数据段,NOINIT表示数据段是未初始化的或初始化为零。其只包含零初始化的空间保留命令 SPACE 或 DCB、DCD、DCDU、DCQ、DCQU、DCW 或 DCWU。可以决定在链接时 AREA 是未初始化的还是零初始化的(请参阅RealView 编译工具 2.0 版链接程序和实用程序指南 中的链接程序 一章)。ALIGN=3 ,表示对齐方式2^3即8字节对齐
在AREA后一般会跟着SPACE命令分配一定的内存,内存属于AERA分配的段
———heap_base 表示堆的起始地址
heap_men 表示这个命令的地址,即堆的起始地址
SPACE: 表示给HEAP段分配一个大小为Heap_Size的内存空间
——heap_limit 表示堆的结束地址
PRESERVE8表示当前文件保存8字节对齐
THUMB表示后面的指令是thumb指令集
(46条消息) STM32的启动过程 — startup_xxxx.s文件解析(MDK和GCC双环境)_startup文件_矜辰所致的博客-CSDN博客