STM32自举程序,你了解多少?

article/2025/9/15 21:00:12

置顶/星标公众,不错过每一条消息

640?wx_fmt=jpeg

    本文主要讲述STM32启动模式中System memory的内容,以及围绕的相关内容。

1写在前面

STM32中内嵌了一段自举程序,可能很多人不知道。


那段自举程序存放在System memory(系统存储器)中,我们通过配置启动,选择启动系统存储器就可以运行这段程序。


2STM32启动配置

STM32有三种启动模式:

  • Main Flash memory:主FLASH

  • System memory:系统存储器

  • Embedded SRAM:内置SRAM

三种模式是通过不同配置来实现,一般通过BOOT引脚和BOOT位来配置启动模式。


不同的芯片配置有差异,有些芯片没有BOOT1引脚,会结合BOOT位来实现。


F1启动配置:

640?wx_fmt=png

F0启动配置:

640?wx_fmt=png

复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。复位后,用户可以通过设置BOOT1 和 BOOT0 引脚来选择需要的启动模式。


3内嵌的自举程序

STM32内嵌的自举程序存放在系统存储区,由ST在生产线上写入,用户不能修改。


我们选择System memory(系统存储器)启动模式,就会进入系统存储区执行自举程序。


内嵌的自举程序主要用于通过串行接口重新编程 Flash


有哪些串行接口呢?

UART、 I2C、 SPI、 CAN、 USB等。


F103只支持的UART:

640?wx_fmt=png

F4支持多种串行接口:

640?wx_fmt=png

不同型号MCU支持的串行接口不一样,具体请参看应用笔记 AN2606


4自举程序中 USART 协议

通信就会牵涉到协议,这里也说一下自举程序中 USART 协议


1.协议序列

640?wx_fmt=png

当配置 STM32 微控制器为自举启动,系统将进入自举程序模式。


2.USART 自举程序命令集

640?wx_fmt=png

3.命令流程

有命令就有相应命令执行流程,这里拿Get 命令流程为例:

640?wx_fmt=png


其他命令流程这里就不一一讲述,请参看官方文档AN3155


5自举程序上位机

自举程序主要是针对STM32进行编程,说白了,自举程序上位机就是FLASH编程工具

自举程序上位机工具大家都比较熟悉,这里简单说一下。


1.STMFlashLoader

这个工具是相对叫老的工具,好像现在没有维护更新了。

640?wx_fmt=png

640?wx_fmt=png

主要就是使用UART对STM32FLASH读写擦除等操作。

2.STM32CubeProgrammer

这个工具在2月底更新到了V2.0.0,新增OTA功能。

640?wx_fmt=png

写到这里,相信大家都更加明白这个工具的用途了吧?

推荐阅读:

1.LPTIM低功耗定时器有哪些独特功能

2.几点关于STM32CubeProgrammer的内容

6最后

我的知乎:strongerHuang

我的网站:www.strongerhuang.com

若觉得文章对你有帮助,随手点“在看、转发分享,也是我继续更新的动力。

扫描下面二维码、关注公众号,在底部菜单中查看更多精彩内容!

640?wx_fmt=jpeg

长按识别图中二维码关注


http://chatgpt.dhexx.cn/article/WvVTIgM1.shtml

相关文章

静态网站以及动态网站

学习时间:7月7日-8日 学习素材:B站博主 学习的内容:静态网站以及动态网站 静态网站就是没有采用任何程序开发的网站,纯粹采用HTML语言编写,不要求懂太多网站制作知识,使用一般的软件就可以制作网页了。网页…

编译器之自举

**要阅读本文,不需要太高深的编译原理知识,甚至不需要编译相关的知识。但是本文也不是面向对电脑一无所知的读者的,你至少要知道: 不管是exe可执行文件还是Linux下的程序,都是一些二进制代码,我们称之为机器…

DC-DC电路中自举电容和自举电阻是什么?

文章目录 1. 什么是自举电容2. 自举电容的原理3. 自举电容的额定电压如何选择4. 什么是自举电阻1. 什么是自举电容 DCDC BUCK芯片有一个管脚叫BOOT,有的叫BST,如下是一个DCDC芯片对BOOT管脚的解释,在外部电路设计时,BOOT和SW管脚之间,需要加一个电容,一般是0.1uF,连接到…

自举电路原理分析

原文来自公众号:工程师看海 自举电路字面意思是自己把自己抬起来的电路,是利用自举升压电容的升压电路,是电子电路中常见的电路之一。 我们经常在IC外围器件中看到自举电容,比如下图同步降压转换器(BUCK)电…

自举电路分析

1.什么是自举电路 自举电路也叫升压电路,是利用自举升压二极管,自举升压电容等电子元件,使电容放电电压和电源电压叠加,从而使电压升高,有的电路升高的电压能达到数倍电源电压。 有一个12V的电路,电路中有一…

自举电路学习(一)

1 什么是自举电路? 利用晶体管,电容,电阻等元器件,通过上电时序等控制,使自举电容实现低电位充电,高电位放电,得到所需的高压(针对同一参考平面)。 自举电路由一个自举二极管,一个自…

【STM32】自举模式 和 程序下载(ST-Link和串口示例)

STM32官方网站STM32中文社区 如果遇到不清楚的概念,可以看之前的文章。 一、自举模式二、程序下载2.1 概述2.2 实操2.21 SWD 方式下载(ST-Link)2.22 串口下载 一、自举模式 STM32有一个特殊的功能,就是可以通过不同的方式启动程序…

自举电容

自举电容的核心原理是:电容两端电压不能突变。 为什么需要自举电容? DCDC电路中有两个mos开关管,如下图所示。对于低端的管子Q2,由于其源极接地,所以想要Q2导通,只要在Q2的栅极加一定的电压即可&#xff…

自举电路原理

充电储能 在充电过程中,开关闭合(三极管导通),这时,输入电压流过电感。二极管防止电容对地放电。由于输入是直流电,所以电感上的电流以一定的比率线性增加,这个比率跟电感大小有关。随着电感电流增加,电感…

自举电路、自举电容

自举电路也叫升压电路,是利用自举升压二极管,自举升压电容等电子元件,使电容放电电压和电源电压叠加,从而使电压升高.有的电路升高的电压能达到数倍电源电压。 举个简单的例子:有一个12V的电路&#xff0c…

自举电路工作原理和自举电阻和电容的选取

自举电路的工作原理 如下图自举电路仅仅需要一个15~18V的电源来给逆变器的驱动级提供能量,所有半桥底部IGBT都与这个电源直接相连,半桥上部IGBT的驱动器通过电阻Rboot和二极管VF连接到电源Vb上,每个驱动器都有一个电容Cboot来缓冲电压&#…

自举电路

自举电路 Bootstrap circuit 我们知道Nmos管开启时需要大于阈值电压Vth,但是当MOS做高端驱动时,G极电压一定要高于Vcc电压(D极)Vth,所以需要一种电路将G极电路举高,这个电路就是自举电路。 如下: P与N m…

C语言中的循环语句(while、dowhile、for)

文章目录 goto语句循环语句的类型while语句死循环语句的嵌套 do..while语句for语句 goto语句 如果我们想要实现从0输出到n,如果要写0~100的话那我们就要写100个printf,这样非常麻烦,也 不现实,在汇编中当程序print完了我们可以用…

【汇编 C】循环语句goto、while、dowhile、for

目录 前言 一、什么是循环语句? 二、goto语句实现循环 goto底层汇编 三、while循环语句 while底层汇编 四、dowhile语句 do while底层汇编 五、for循环 for语句的几种写法 for底层汇编 总结 结语 封面 前言 本教程内容可能会涉及到汇编&#xff0…

【C语言】循环语句(do while循环)

简单不先于复杂,而是在复杂之后。 目录 do while循环 do 语句的用法 执行流程 do语句的特点 go to语句 do while循环 do 语句的用法 while循环和for循环都是入口条件循环,即在循环的每次迭代之前检查测试条件,所以有可能根本不执行循环…

while和do while的用法区别

前言 在上一篇文章中,壹哥给大家讲解了循环的概念,并重点给大家讲解了for循环的使用。但在Java中,除了for循环之外,还有while、do-while、foreach等循环形式。今天小千就再用一篇文章,给大家讲解while循环的使用。 本文…

循环语句—do…while循环

目录 3.do……while循环语句 3.1do……while循环语句格式 3.2三种循环的区别 3.3总结三种循环的区别 3.do……while循环语句 3.1do……while循环语句格式 基本格式: do { 循环体语句; } while(条件判断语句); …

While语句与do...while语句

循环结构之while语句: while(表达式) {语句} 注意:1.while循环的特点是先判断条件表达式,后执行循环体语句。 2.“语句”就是循环体。循环体可以是一个简单的语句,可以是复合语句(用花括号括起来的若干语…

C/C++之while(do-while)详细讲解

目录 while循环有两个重要组成部分: while 是一个预测试循环 无限循环 do-while 循环 while循环有两个重要组成部分: 进行 true 值或 false 值判断的表达式;只要表达式为 true 就重复执行的语句或块; 图 1 显示了 while 循环的…

do{...}while(0)的用法

首发于微信公众号:【码农在新加坡】,欢迎关注。 个人博客网站:do{...}while(0)的用法 零.导引 第一次见到 do{...}while(0)是在学习libevent的时候,看到里面有很多类似 #define TT_URI(want) do { \char *ret evhttp_uri_…