STM32系统bootloader的应用有哪些

发布者:温暖微笑最新更新时间:2024-07-24 来源: elecfans关键字:STM32系统  bootloader  系统维护 手机看文章 扫描二维码
随时随地手机看文章

嵌入式开发中,经常需要bootloader进行程序固件升级和系统维护,所以bootloader是必不可少的功能。STM32系统自带的系统bootloader很方便使用。大量减少了工程师开发bootloader的工作。


1. 摘要

本篇笔记主要介绍,STM32系统bootloader的应用,以STM32H743芯片为例介绍,

2. 准备工作

1, IAR 8.32.1

2, STM32CubeProgrammer

3. 系统bootloader介绍

相信用过STM32芯片的童鞋应该都不陌生,在芯片出厂的时候,意法在内部系统固化了bootloader,并且支持多种接口像UART,I2C,SPI,USB,CAN等等,可用于下载升级用户程序,就我使用的H743来讲可支持接口如下:

注意红色框部分地址有误,程序中代码需要注意,目前支持几乎全系列STM32。像F0, F1,F4,F7,H7,包括比较新的G系列也都支持,还有L系列和W系列。此bootloader可配合ST官方的STM32CubeProgrammer上位机使用,这样大大节省了开发时间,当然你如果要做更好的bootloader可以根据这个思路自己在添加更多功能。

就我最近使用的H743来讲,我们今天以H743为例,以USB接口为例来介绍。

4. 硬件连接示意图

将板子通过USB线连入电脑,板子作为USB device

5. Bootloader模式

在使用bootloader时候,需要考虑怎么进入boot模式,而STM32支持通过boot引脚跳转,通过boot引脚跳转需要配置引脚和地址寄存器

通过用户应用程序跳转则不需要配置boot引脚,而一般通过应用程序跳转比较方便,尤其是带有不好拆卸外壳的产品,我们通过应用程序跳转极为方便,固以后者为例来说明。通过boot引脚跳转的配置说明大家可以参考官方文档AN2606.

6. 配置需求

一般来说我们在进入跳转到bootloader时候需要做一些工作,STM32在进入系统bootloader时候需要做以下动作:关闭全局中断,时钟恢复配置为HIS,清除中断挂起标志,使能中断,设置跳转地址,执行跳转,可以是按键检测跳转,或者触摸操作跳转,这个根据自己的应用去实现。

7. 代码实现

通过按照上面的说明我们就可以通过代码实现,只需要在需要跳转动作的地方调用下面的函数。注意ST官方给的系统bootloader系统地址不对,AN2606中给出的地址有误,使用时候要注意,需采用下面的地址,此处参考了安富莱例程,一并感谢。

8. 测试

配合STM32CubeProgrammer完成测试,测试步骤很简单,打开STM32CubeProgrammer,当应用程序中满足跳转条件进入系统bootloader后,就会进入DFU,点击连接,如过连接无误,可以选择要下载的文件,进行下载,下载成功后,有提示。按照图示操作就可以完成。

点击Open file,选择自己要下载的文件

或者可以在菜单里选择第二项进入下面界面更新。

9. 参考文档


关键字:STM32系统  bootloader  系统维护 引用地址:STM32系统bootloader的应用有哪些

上一篇:创建STM32工程模板
下一篇:STM32 ADC 的使用说明

推荐阅读最新更新时间:2024-11-12 08:41

基于STM32的无线通讯终端系统的设计方案
1.引言 目前仪器设备多数采用RS232接口与计算机通信,但是随着计算机技术的发展,支持热插拔的USB标准接口将取代RS232接口,因此计算机将越来越少配置甚至不配置RS232接口。 实验证明,该系统的设计具有低成 本、高集成度和设计简单等优点,实现无线联网和组网功能,适于便携式电子设备的文件远端下载和上传,为诸如无线切割机、各类物联网掌上终端等设备的数据传输提供了解决方案。 RS232接口与USB接口虽然都属于串行接口,但它们的数据格式、通信协议、信号电平以及机械连 接方式则不同。这样计算机不能控制现有仪器设备,解决这一问题就得把现有的仪器设备的RS232接口转换成USB接口。实现这种转换可以采用 USB/RS232桥接器件如C
[电源管理]
基于<font color='red'>STM32</font>的无线通讯终端<font color='red'>系统</font>的设计方案
STM32bootloader
项目需要编写了STM32的bootloader,其实编写bootloader主要事项有以下: 1、为你的bootloader程序选择存储器地址,因为STM32的存储器FLASH存储程序代码空间为512K,需要进行划分。 2、如果需要使用JTAG在线调试,则需要配置区域: 3、为您的用户程序选择合适的存储空间: 同时配置在线调试区域: 4、bootloader程序编写基本流程如下: 1)检测有无需要更新的标志,用户可自定义。比如说读取flash某位置存储的字节作为标志位。 2)如需更新,则调用STM32的FLASH程序擦鞋用户代码部分。 3)将新的bin文件(即2进制文件直接烧写进去,需要将keil生成的he
[单片机]
基于stm32的蓝牙串口收发系统
本实验利用信驰达的蓝牙模块进行串口的收发任务,stm32f103用的是串口1,手机APP用的是LighntBlue,蓝牙名字为Vence,stm32开发板为中国移动的OneNet开发板 ①连线 蓝牙模块 stm32f103 VCC VCC GND GND EN PC10 RX TX1 TX RX1 BRTS GND P04 PC7 P05 PC8 ②蓝牙模块的工作模式 启动蓝牙模块需要将EN置0,BRTS置0,接上电源,就开始广播模式 当连接成功时,
[单片机]
基于<font color='red'>stm32</font>的蓝牙串口收发<font color='red'>系统</font>
MC9S12XS128 MAL BootLoader(2)
用户程序就按照正常程序写即可,需要注意以下几点 程序写入固定的位置,不能和BootLoader程序的位置重合,否则有可能程序无法经过BootLoader下载后运行,同样也是在prm中进行相应的操作; 需要用到中断的,要对中断向量进行偏移; 对起始向量进行偏移; 写入地址对齐。 1.BootLoader程序写入固定位置: ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xEFDF; 确保不会和BootLoader的F000开始的地址重合; INTO ROM_C000/*, ROM_4000*/; 2.对中断向量进行偏移,中断发生时,将当前PC位置
[单片机]
avr bootloader 开发笔记
折腾了差不多3天,终于调试成功了,不过是个初期的东西,以后还需要加强可靠性和易用性及安全性的考虑,好歹现在可以直接通过bootloader升级程序了,先整理下整个过程吧,方便自己以后查阅,也方便有需要的人,因为开发的过程中借鉴了好多别人的东西。 开发的缘由:公司的定制化软件比较多,用户拿到产品后又会有新的需求,其实很多就是纯软件的修改,现在就是工程师到现成开盖,拿下载器重新烧程序,会比较麻烦,因为产品的对外接口都有串口,而且Atmega 本身支持bootloader功能,于是想到了用串口升级程序这个法子J。 开发环境及工具:硬件平台:用的是公司Atmega128平台下的板子,AVR的一个并口下载器,软件:编译器:ICCAVR 7.
[单片机]
avr <font color='red'>bootloader</font> 开发笔记
stm32bootloader、startup_stm32f10x_md.s的作用
一、启动文件的作用是: 1. 初始化堆栈指针 SP; 2. 初始化程序计数器指针 PC; 3. 设置堆、栈的大小; 4. 设置异常向量表的入口地址; 5. 配置外部 SRAM 作为数据存储器(这个由用户配置,一般的开发板可没 有外部 SRAM); 6. 设置 C 库的分支入口__main(最终用来调用 main 函数); 7. 在 3.5 版的启动文件还调用了在 system_stm32f10x.c 文件中的 SystemInit() 函数配置系统时钟,在旧版本的工程中要用户进入 main 函数自己调用 SystemInit() 函数。 二、关于启动文件的介绍,可以参考: 1、http://www.360doc.com/cont
[单片机]
<font color='red'>stm32</font> 中<font color='red'>bootloader</font>、startup_stm32f10x_md.s的作用
ARM裸机开发bootloader代码搬移从SRAM到DRAM
本部分分两部分去阐述: 1、ARM启动流程 2、编写代码 一、2440:一上电,就从Nand中取出4KB的代码到SRAM中stepping stone运行,并对内存进行初始化。而后将Nand中代码全部到内存中。 6410:一上电,SROM中的BL0会将Nand中8KB的代码搬移到SRAM中stepping stone运行,并对内存进行初始化。而后将Nand中代码全部到内存中,剩余代码会在内存中运行。 210:一上电,SROM中的BL0会将Nand中代码到IRAM中运行,初始化内存。而后将Nand中全部代码搬移到内存中。 注:2440中stepping stone有4KB 6410中stepping stone有8KB
[单片机]
ARM裸机开发<font color='red'>bootloader</font>代码搬移从SRAM到DRAM
第三方ROM将来临!realme X支持解锁BootLoader
我们上官方论坛发现目前升级安卓10操作系统的 realme X的BootLoader(以下简称BL)解锁工具已经登场了,顺便该机的源代码也已经开放,意味着该机的第三方ROM也即将来临,喜欢折腾手机的realme X用户可以行动了。 值得注意的是,realme官方提醒解锁BL会有以下风险,普通消费者需要谨慎行事: 1、解锁后可能会对手机造成不可预估的影响; 2、三方固件有可能会使手机部分功能无法正常运行,例如相机拍照功能不可用,并可能导致设备受损; 3、可能造成手机上的私密个人信息泄漏; 4、解锁后,将影响系统升级,用户无法收到系统OS的后续更新版本; 5、解锁后,手机状态相当于恢复出厂设置,所有用户个人数据将被清空,建议提前备
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved