stm32内存分配博客笔记

原文:
stm32内存分配

笔记:

1、向量表与代码段;根据Cortex-M3权威指南描述,系统复位后,在向量表异常0处保存的是堆栈起始地址,而后紧跟中断向量表

2、可以从链接脚本.ld文件中看到终端向量表第一个被链接进FLASH里,其后紧跟代码段.text;

3、FLASH和RAM的内存分配

4、在STM32中堆和栈没有明显的界限,他们共用._user_heap_stack段起始地址到RAM最大地址这个范围内的所有空间,但是堆是从最小地址开始使用的,每次申请地址累加,栈是从最大地址开始使用的,每次地址累减,但是只要他们的地址没有重叠,程序永远也跑不飞,可是一旦两者所占用地址重叠,会导致不可预料的后果。栈占用堆,会导致堆内所存数据被破坏,堆占用栈会导致代码异常;

5、未初始化的全局变量被分配在.bss段,因为它们没有初始值,所以它们在FLASH里不占空间 ,但是他们在程序运行后,在.data被加载进RAM后同样也被加载进RAM里,加载方式就是把.bss段大小的RAM空间清0

相关推荐
_李小白1 分钟前
【OSG学习笔记】Day 25: OSG 设计架构解析
笔记·学习·架构
后藤十八里5 分钟前
维普期刊逆向笔记
javascript·笔记·js逆向
风中的小熊生气7 分钟前
MQ 学习笔记
笔记·学习
进击的小头14 分钟前
01_第一篇:到底什么是嵌入式芯片?与通用CPU_GPU_DSP的核心区别
单片机·嵌入式硬件
elseif12327 分钟前
【Markdown】指南(上)
linux·开发语言·前端·javascript·c++·笔记
深蓝海拓1 小时前
基于QtPy (PySide6) 的PLC-HMI工程项目(二)系统规划
笔记·python·qt·学习·plc
hoiii1872 小时前
STM32 RS232串口通讯实验
stm32·单片机·嵌入式硬件
可乐鸡翅好好吃2 小时前
Keil更改RAM地址
网络·单片机·嵌入式硬件
鱼鳞_2 小时前
Java学习笔记_Day20(二叉树)
java·笔记·学习
惶了个恐2 小时前
嵌入式硬件第七弹——ARM(4)
arm开发·stm32·单片机·嵌入式硬件·arm·硬件工程