自学内容网 自学内容网

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弱定义表示在其他地方可以对其重新进行定义

结语

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


原文地址:https://blog.csdn.net/qq_74457525/article/details/143063671

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!