1.MAP文件浅析
1.1 MDK编译过程文件(11种)
.map 连接器生成的列表文件,对分析程序存储占用情况非常有用
1.2 MAP文件概念和作用
- MAP文件是MDK编译代码后,产生的集程序、数据及IO空间的一种映射列表文件
- 包括:各种.c文件、函数、符合等的地址、大小引用关系等信息
- 分析各.c文件占用 FLASH 和 RAM 的大小,方便优化代码
1.3 MAP文件组成
2.STM32启动过程
2.1 STM32启动模式(自举模式)
M3/M4/M7等内核复位后,首先:
- 从地址0x0000 0000处取出堆栈指针MSP的初始值,该值就是栈顶地址
- 从地址0x0000 0004处取出程序计数器指针PC的初始值,该值是复位中断服务函数地址
在系统复位后,SYSLK的第4个上升沿,BOOT引脚的值将被锁存
2.2 STM32启动过程(内部FLASH启动为例)
2.3.1 启动文件
- 初始化MSP 从 0X0800 0000获取
- 初始化PC 从 0x0800 0004获取
- 设置堆栈大小
- 初始化中断向量表 _Vectors定义
- 调用初始化函数 (可选)
- 调用_main