stm32内存杂记

 从上图中可以看出SRAM空间用来存放:1.各个文件中声明和定义的全局变量、静态数据和常量;2.未初始化的全局变量;3.HEAP区;4.STACK区

这是在.map文件中,双击工程target打开

在这里插入图片描述

堆栈是处于以0x2000xx地址处的

stm32内存杂记_第1张图片

 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博客

你可能感兴趣的:(stm32,嵌入式硬件,单片机)