STM32启动过程浅析

写在正文之前

也许看到我这篇文章的各位同学已经能够熟练地使用STM32完成各种任务,但是各位有了解过STM32启动过程吗?在这篇文章中我会带着大家了解STM32的启动过程

正文部分

参考资料

STM32 MAP文件浅析.pdf

STM32 启动文件浅析.pdf

Cortex-M3权威指南(中文).pdf

一、MAP文件浅析

MDK编译过程产生的文件有11种

每一个.c和.s都会产生一个.o文件,所以该文件的数量通常是最多的

.o生成.axf,.axf生成.hex

.hex文件

介绍

.hex文件(十六进制文件)是编译和链接过程的输出之一,主要用于嵌入式系统的程序烧录

作用
程序存储

.hex文件包含了目标程序的机器码,适合于微控制器等嵌入式设备的存储与执行

编程和烧录

使用烧录工具(如ST-Link、J-Link等)将.hex文件上传到目标设备的闪存中,确保程序能够在设备上运行

兼容性

.hex文件格式广泛支持,许多编程器和开发环境都能识别和使用,方便在不同平台之间的转移和更新

调试与验证

开发者可以通过.hex文件进行程序调试,验证代码的正确性,确保最终产品的功能符合预期

重要性

总之,.hex文件是将编写的代码转换成微控制器可以理解和执行的关键文件

Map文件

概念

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

组成
作用

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

打开方式

在工程名双击,即可打开.MAP文件

二、STM32启动过程

2.1 STM32启动模式(F1/F4/F7/H7)

M3/M4/M7等内核复位后,做的第一件事:

1、从地址0x0000 0000 处取出堆栈指针MSP的初始值,该值就是栈顶地址

2、从地址0x0000 0000 处去除程序计数器指针PC的初始值,该值是复位向量

2.1.1 F1启动模式

在系统复位后,SYSCLK的第四个上升沿,BOOT引脚的值将被锁存

无法下载程序解决方法:B0接3.3V,按复位,然后再下载

2.1.2 F4启动模式

在系统复位后,SYSCLK的第四个上升沿,BOOT引脚的值将被锁存

如果要使用FSMC重映射到外部的SRAM:可以通过配置SYSCFG_MEMRMP寄存器

无法下载程序解决办法:B0接3.3V,按复位,然后再下载

2.1.3 F7启动模式

在系统复位后,SYSCLK的第四个上升沿,BOOT引脚的值将被锁存

2.1.4 H7启动模式

在系统复位后,SYSCLK的第四个上升沿,BOOT引脚的值将被锁存

2.2 STM32启动过程

启动文件介绍

关于中断函数

weak弱定义表示在其他地方可以对其重新进行定义

结语

今天的这些东西入门的门槛比较高,对大部分人都不是很友好,但是我认为正是这些门槛高的东西,才让我们有了其他人没有的竞争力,一起加油吧各位

相关推荐
Rocktech_ruixun2 小时前
机器人本地跑LLM大模型对主板硬件有什么要求?瑞迅科技RK3588/3568方案选型解析
人工智能·科技·嵌入式硬件·机器人·边缘计算
天空'之城4 小时前
单片机基础核心知识点汇总(三十四)
单片机·嵌入式硬件
Horn Still Sounds5 小时前
51单片机入门:硬件基础、位运算、数码管动态显示完整梳理
嵌入式硬件·mongodb·51单片机
三佛科技-187366133976 小时前
24W-48W隔离双绕组非标自供电芯片LP3718CD(电路原理图)
单片机·嵌入式硬件
糖糖单片机设计8 小时前
基于 STM32 的小型鸟类宠物繁殖系统
stm32·嵌入式硬件·宠物
电子元器件选型哥9 小时前
一文讲清LLC谐振电路工作原理
单片机·嵌入式硬件·硬件工程师·电子元器件·器件选型
HUI-47410 小时前
EG1162|SOP‑16 高压同步整流降压控制器,最高 600V 输入,大电流 5V 输出优选
嵌入式硬件·硬件工程
POMAGTOR10 小时前
【5G 通讯 POGOPIN 弹簧顶针连接器解决方案】
网络·嵌入式硬件·5g
ZLG_zhiyuan10 小时前
测试方案 | 从“000”到“111”,高效完成100BASE-TX以太网眼图测试
单片机·嵌入式硬件
恒锐丰科技林技术员10 小时前
EG1198:120V 宽压内置 MOS 降压 DC‑DC 电源芯片解析
经验分享·嵌入式硬件·硬件工程