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精彩内容

点击阅读全文

stm32正常运行流程图_stm32串口通信流程图相关推荐

  1. stm32正常运行流程图_stm32软件通信流程图

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  2. STM32平台的USART串口通信

    本文目的是编写stm32串口通信程序,实现stm32上电自动循环发送hello LYJ!!!,并可通过上位机控制stm32串口发送与否.通过亲自做一下USART串口通信实验,学习如何使用stm32平台 ...

  3. Matlab 与stm32单片机之间的串口通信

    Matlab 与stm32单片机之间的串口通信 在我们用stm32做信号处理时,我时常需要用到Matlab对我们采集的数据进行分析,拟合.按照传统的方法,我们一般都会先将数据通过串口助手打印出来,再导 ...

  4. 基于串口助手的STM32与计算机进行串口通信

    基于串口助手的STM32与计算机进行串口通信 序 言 一. 串口通信概述 二.项目说明 三.实战过程 1)实现stm32向上位机发送字符 2)实现stm32发和收 3)Keil中针对stm32系统进行 ...

  5. python3串口通信16进制_STM32串口通信——16进制数形式

    一.为什么采用16进制数形式? 首先,需要解释一下串口发送的数据都是unsigned char类型的,说成字符和16进制形式,只是我们采用何种方式展示这些数据.字符形式就是把16进制数通过ASCII表 ...

  6. c语言串口通信_stm32 串口通信收发说明

    很多网友在stm32 串口通信收发中,发现接收发送函数中,数据都是指针指向首字符的字符串中,下一步进行后续操作就非常吃力了.其实这是对C语言指针的不能熟练应用有关.指针是C语言的灵魂,也是最难的部分, ...

  7. STM32常用协议之串口通信详解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.相关理论概念 1.1 通信基本概念 1.1.1 串行/并行 1.1.2 单工/半双工/全双工 1.1.3 同步/异 ...

  8. Matlab 与stm32单片机之间的串口通信项目实战

    前言 当我们用STM32做一些DSP运算时(比如傅里叶变化,小波变换,卡尔曼滤波等算法),我们想知道自己所码出来的程序是不是按照自己预期的运算结果来或者说检验程序的鲁棒性,那我们就需要检验每个关键步骤 ...

  9. STM32CubeIDE开发(二十二), stm32的RS485/232串口通信开发要点

    一.stm32串口通信 stm32串口通信一般是指通过UART(Universal Asynchronous Receiver/Transmitter)通用异步收发传输器传输数据,UART 作为异步串 ...

最新文章

  1. 日志处理logger
  2. RPC(远程过程调用协议)介绍
  3. 计算机网络连接设备的有什么,常用网络连接设备有哪些?
  4. SSL_TLS快速扫描器SSLScan常用命令集合大学霸IT达人
  5. 企业网络推广专员浅析大型网站企业网络推广优化需要注意哪些内容?
  6. python改文件名_python批量修改文件名、批量修改xml文件的path和filename
  7. VS2003,VS2005,VS2008 低版本打开高版本的解决方案和工程文件
  8. OpenMV(一)--基础介绍与硬件架构
  9. Mybatis的复习
  10. CUDA Fortran for Scientists and Engineers第二版翻译
  11. ConcurrentModificationException---异常剖析
  12. 世界各国及其省份城市经纬度
  13. 系统中如何做到实名认证
  14. java自行车北京_JAVA公共自行车地图api调用代码实例
  15. 阿里云上的ssh反向代理
  16. 相机标定与棋盘格标定
  17. Android 电子书
  18. 猿辅导:一个班主任老师的影响力能有多大?
  19. agc012E Camel and Oases(状压dp+思路题)
  20. MySQL error 1101,MySQL error 1170

热门文章

  1. 寻声定位 matlab,【图片】一款暖色调的单核AK4497平价播放器小评-寻声饭盒FA3初烧精品【耳机吧】_百度贴吧...
  2. HTML锚点的id属性和name属性
  3. 分析报告撰写毫无头绪?掌握这个小技巧即可迎刃而解
  4. Java对象类型向上转型和向下转型
  5. 人脸检测器:对DSFD的理解
  6. 基于SM3的HMAC算法的实现
  7. jieba分词的词性表
  8. c4d学习之路Day1
  9. MySQL索引优化看这篇文章就够了!
  10. APP测试_测试点总结