打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
STM32的启动流程到底是怎样的?

后台陆陆续续有人在问关于STM32启动文件中启动流程的问题,今天就说下相关内容吧。

1.写在前面

首先,你要知道STM32启动文件中启动流程,你就需要掌握一点汇编基础知识

汇编语言属于机器语言,或者说低级语言,C语言属于高级语言,所以,汇编和C语言在语法上差异很大

如果你学底层开发,汇编的一些基础知识需要掌握。不需要精通,但需要看懂常见的汇编代码

2.说明

STM32的启动文件与编译器有关,不同编译器,它的启动文件不同。

虽然启动文件(汇编)代码各有不同,但它们原理类似,都属于汇编程序。

我们拿基于MDK-ARM的启动文件来举例,说一下要点内容

3.分配堆栈

在基于MDK的启动文件开始,有一段汇编代码是分配堆栈大小的。

这里重点知道堆栈数值大小就行。还有一段AREA(区域),表示分配一段堆栈数据段。

数值大小可以自己修改,也可以使用STM32CubeMX数值大小配置:

在IAR中,是通过工程配置堆栈大小:

4.向量表

相信大家都知道向量表,先看汇编代码:

这个向量表就是对应手册中的那些内容:

我们需要知道这个地方中的复位,程序上电之后,是跳到Reset_Handler这个位置。

5.执行代码

上面知道代码是从Reset_Handler开始执行,我们看Reset_Handler汇编代码:

在启动的时候,执行了SystemInit这个函数。

之前标准外设库在SystemInit这个函数初始化了系统时钟,后面HAL库单独把那部分代码提出来了。

执行完SystemInit函数,就跳转到我们的main函数执行了。

6.最后

作为普通人,知道大致启动流程即可。里面知识还有很多,有时间可以深究。

你要问我相关细节问题,我可能也不知道。我读书时考计算机三级就是汇编,虽然上机(汇编)编程满分,但很多细节知识,我至今也不知道。

对还在读书的同学说一点:读书时的有些(汇编)理论知识,不是完全没用,是还没用上。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
浅谈STM32的启动过程
STM32启动代码概述
iar下的stm32启动代码分析
Stm32单片机开发KEIL启动文件汇编语言详解
3STM32启动文件详解
STM32F0单片机快速入门三 MCU启动过程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服