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. [zhuan]二叉树遍历算法实现(C#2.0)
  2. 设计模式-行为-解释器
  3. 转载 Net多线程编程—System.Threading.Tasks.Parallel
  4. 鹦鹉助手模拟器 梦幻西游 找不到服务器,模拟器玩梦幻 17173鹦鹉助手模拟器上线...
  5. 100层楼扔2个鸡蛋、3个鸡蛋……
  6. 高效 保活长连接:手把手教你实现 自适应的心跳保活机制
  7. Android开发笔记(一百五十九)Android7.0的分屏模式
  8. 设计一个方法,可以实现任意范围内的随机数
  9. Excle 常用函数
  10. fastreport picture 放入data展示_博客 城市访问量统计并且通过Echarts展示
  11. php 扩展jpeg,php重新编译,gd扩展支持jpeg文件-Go语言中文社区
  12. 化学堵水剂处理油井出水问题
  13. maya前台渲染_maya前台渲染MEL
  14. Python数据治理,异常点检测,离群点异常点分析
  15. 信息系统分析与设计(自考)
  16. catia曲面扫掠命令详解_CATIA建模教程(三)——扫掠曲面在曲面造型中的应用.pdf...
  17. 罗克露计算机组成原理书籍,计算机组成原理
  18. lamp兄弟连的解决问题套路
  19. 安微六安二中2021高考成绩查询,喜报!六安一中、六安二中、毛坦厂中学......高考“成绩单”出炉...
  20. [数学学习笔记]导数的定义

热门文章

  1. 温暖明亮色调调色效果Lr预设
  2. [ElasticSearch] 三种方式进行ES检索评分控制
  3. 搭建本地服务器,并免费内网穿透实现外网访问
  4. 计算机常识之计算机端口(Port)
  5. Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flas
  6. Face Detection DSFD 论文理解
  7. 数据库优化器浅析 - Cascades
  8. AI时代PM修炼手册
  9. MYSQL 5.7 linux 安装 (转载)
  10. 学生专用计算机的小游戏,最适合学生党的三款笔记本电脑,办公游戏两不误!...