前段时间要写一个BootLoader程序,想起来好像在STM32的HAL库里面看到过相关的Demo,打算参考一下。打开相关的目录看了一下,确实是有相关文件:

bootloader新手教程(不会写Bootloader看这里现成的)(1)

但是没找到工程文件。没办法,那就自己百度吧,关键词OpenBootloader一搜索,发现这不是ST原创的,是一个开源的项目。简称OpenBLT,是一种开源引导加载程序,可以在任何微控制器上运行,并使用支持Usart、Can、USB、SD卡等多种类型的通信接口来执行软件更新。

官网地址:

homepage [OpenBLT Bootloader]

下载地址

OpenBLT - Browse Files at SourceForge.net76 weekly downloads

百度网盘:

链接:https:///s/1ZZV7AxGna5cwH_EkIDjftA?pwd=cdq1

提取码:cdq1

下载下来后发现,里面有很多单片机的Demo程序,还有不同的IDE:

bootloader新手教程(不会写Bootloader看这里现成的)(2)

OpenBTL Demo

正好手上有个STM32G0的开发板,拿来试一下。打开G071的Keil目录,里面有Boot程序和用户程序Prog两个工程。

bootloader新手教程(不会写Bootloader看这里现成的)(3)

G071 Demo

将Boot 程序用仿真器下载到开发板中,打开配到的上位机软件MicroBoot v2.05,这里使用的是串口升级,设置好串口号和波特率。

bootloader新手教程(不会写Bootloader看这里现成的)(4)

MicroBoot v2.05

bootloader新手教程(不会写Bootloader看这里现成的)(5)

设置串口号和波特率

点击Browse选择编译好的用户程序,这里是.srec格式的文件,点击选择后会直接下载程序。如下:

bootloader新手教程(不会写Bootloader看这里现成的)(6)

下载程序

这里说明一下,.srec格式的文件的生成方式跟bin文件类似,在Keil中设置如下:

bootloader新手教程(不会写Bootloader看这里现成的)(7)

.srec生成方法

另外,用户程序的Flash起始地址是通过.sct文件配置的:

bootloader新手教程(不会写Bootloader看这里现成的)(8)

起始地址配置

也可以在IDE里配置,两种方式都可以。

bootloader新手教程(不会写Bootloader看这里现成的)(9)

,