STM32启动流程 和 map文件的作用

一,启动流程

  1. 复位/上电

  2. 根据 BOOT0/BOOT1 确定程序从哪个存储位置执行

  1. 初始化 SP 及 PC 指针

将 0X08000000 位置的栈顶地址存放在 SP 指针中

将 0x08000004 位置存放的向量地址装入 PC 程序计数器

  1. 初始化系统时钟

  2. 初始化用户堆栈

  3. 进入main函数

二,map文件

map 文件是 MDK 编译代码后,产生的集程序、数据及IO空间的一种映射列表文件。简单来说就是包括了:各种 .c 文件、函数、符号等的地址、大小、引用关系等信息。

作用: 用于分析各 .c 文件占用 FLASH 和 RAM 的大小,方便优化代码。

map 文件大致可以分为五大部分,每部分的作用如下:

1. 模块、段(入口)交叉引用(Section Cross References):描述了各文件之间函数的调用关系,有助于理解各个源文件如何相互关联。

**2. 移除未使用的模块(Removing Unused input sections from the image):**描述了工程中未用到

而被删除的冗余程序段,有助于优化代码,降低内存负担。

**3. 映射符号表(Image Symbol Table):**描述了各符号(程序段、数据)在存储器中的地址、类型、大小等信息,对于理解程序的内存布局以及定位特定代码或数据段非常有用。

**4. 内存(映射)分布(Memory Map of the image):**描述了各程序段(函数)在存储器中的地址及占用大小,有助于分析程序的内存占用情况。

**5. 映射组件大小(Image component sizes):**给出了整个映像代码(.o)占用空间的汇总信息,包括代码、只读数据、已初始化读写数据、未初始化读写数据等的大小,有助于了解程序的总体内存使用情况。

MAP文件的这五部分 提供了对程序内存布局、函数调用关系、以及各模块占用情况的全面分析,是STM32开发中重要的优化和调试工具。

map 文件相关的一些基本概念

段(section):描述映像文件的代码和数据块

RO:Read-Only的缩写,包括RO-data(只读数据)和RO-code(代码)

RW:Read-Write的缩写,主要是RW-data,RW-data由程序初始化初始值

ZI:Zero-initialized的缩写,主要是ZI-data,由编译器初始化为0。

.text:与RO-code同义

.constdata:与RO-data同义

.bss:与ZI-data同义

.data:与RW-data同义

相关推荐
碧海银沙音频科技研究院8 小时前
基于炬芯ATS308X 设计的上位机usb 串口音乐EQ调节工具
stm32·单片机·嵌入式硬件
三佛科技-1341638421211 小时前
过认证72W碳化硅方案(12V6A)主控HN1562+HN36228V 典型应用电路、变压器参数分享
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
Zwawa13 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
c语言·单片机·嵌入式
Brilliantwxx13 小时前
【STM32】 内部 Flash 详解:寄存器逐位拆解 + 工作流程顺序全讲 + EEPROM再实现
stm32·单片机·嵌入式硬件·1024程序员节
木子单片机13 小时前
基于单片机的DS18B20温度传感器测温系统设计
单片机·嵌入式硬件·51单片机·keil
华清远见IT开放实验室13 小时前
实验室建设案例 | 安徽三联学院物联网实验室
stm32·单片机·嵌入式硬件·物联网·华清远见
Zw-awa14 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
stm32
深圳光特通信豆子15 小时前
TTL 光模块在工业控制与串口通信中的应用指南(10M BIDI 单模系列)
单片机·嵌入式硬件
桀人15 小时前
SPI概念引入
stm32·单片机·嵌入式硬件
离凌寒16 小时前
一、基于stm32+freertos下LD2410D和R60ADB1两款雷达的使用效果
stm32·单片机·嵌入式硬件