当前位置:首页 > > 嵌入式云IOT技术圈
[导读]嵌入式开发中,经常需要bootloader进行程序固件升级和系统维护,所以bootloader是必不可少的功能。STM32系统自带的系统bootloader很方便使用,大量减少了工程师开发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. 参考文档

序号 文献
1 STM32H743RM
2 AN2606: STM32 microcontroller system memory boot mode


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭