前段时间要写一个BootLoader程序,想起来好像在STM32的HAL库里面看到过相关的Demo,打算参考一下。打开相关的目录看了一下,确实是有相关文件:
但是没找到工程文件。没办法,那就自己百度吧,关键词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:
OpenBTL Demo
正好手上有个STM32G0的开发板,拿来试一下。打开G071的Keil目录,里面有Boot程序和用户程序Prog两个工程。
G071 Demo
将Boot 程序用仿真器下载到开发板中,打开配到的上位机软件MicroBoot v2.05,这里使用的是串口升级,设置好串口号和波特率。
MicroBoot v2.05
设置串口号和波特率
点击Browse选择编译好的用户程序,这里是.srec格式的文件,点击选择后会直接下载程序。如下:
下载程序
这里说明一下,.srec格式的文件的生成方式跟bin文件类似,在Keil中设置如下:
.srec生成方法
另外,用户程序的Flash起始地址是通过.sct文件配置的:
起始地址配置
也可以在IDE里配置,两种方式都可以。
,