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函数执行了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
NL_94a 2020-07-21
0 回复 举报
感谢分享!! 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分