你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

OpenBLT移植到STM32F405开发板

[复制链接]
秋刀鱼的 发布时间:2024-12-30 13:26

作为嵌入式开发工程师,我们设计的产品在大批量量产后,在客户使用过程中发现bug,或者客户需要增添新功能时,我们不可能召回产品来进行分析升级固件,这时候,我们就需要使用Bootloader来进行修复固件了,嵌入式开发中采用的通讯协议五花八门,硬件平台也是百家争鸣,那么,有没有一种通用的bootloader架构,不限制平台,能方便的移植到各种电路板上,造福广大嵌入式开发工作者呢?

答案当然是肯定的,果真就有一款开源的bootloader架构,它叫做OpenBLT,是一个美国的嵌入式高手开发后开源公布在github上的,https://github.com/feaser/openblt

好了,话不多说,我们献上干货。

1。硬件平台

这里我是用的淘宝购买的STM32F405开发板,所有STM32F405/407系列都可以拿我这个移植模版直接使用,基本无需修改即可使用(除了亮灯的LED1和LED0作为指示灯需要大家根据实际情况简单配置)。我先拍个照片

76988266732d4d195281d3231ef2a20.jpg

上面是STM32F405开发板,我接的右上角是DB9针的串口线,用到的是USART1,PA9和PA10口

大家根据实际情况,对串口和引脚进行修改。接下来我就一步一步交大家怎么修改。

2。我们进入openblt文件

image.png

从github上下载下来。

image.png

实际上就这3个文件夹

我们打开target文件夹内

image.png

image.png

image.png

image.png

这里我们只需用到STM32F405模版,其它全部删除

先打开boot文件

image.png

image.png

打开keil

1。我们先配置串口,打开原理图可知

image.png

使用的串口是USART1 PA9和PA10

image.png

使能串口1时钟和引脚时钟

image.png

同样的

image.png

image.png

串口初始化修改完毕

打开hooks.c文件

删掉LED之前的函数语句

image.png

打开这个配置头文件

image.png

因为用到是USART1,所以下标选择0

然后编译后烧录到板子上,至此完成了bootloader的烧录

观察板子上,LED是不亮的

d3c173c47944dec8c84e5b167a2e062.jpg

3。修改prog应用程序

image.png

打开keil工程

先修改main文件

image.png

image.png

因为LED0和LED1是PE2 PE3所以需要使能GPIOE时钟

image.png

配置串口PA9 PA10和LED :PE3 PE4

同样的

image.png

image.png

这里时钟和引脚初始化完毕,

下面修改LED文件

image.png

image.png

我用到的是PE3 PE4,大家自行修改

然后编译生成srec文件

先打开bootloader上位机,进入Host文件夹

双击MicroBoot.exe

image.png

点击setting

image.png

image.png

COM4是我自己的实际DB9串口,你们是多少选COM几,千万别弄错

image.png

选择生成的srec文件

image.png

升级完毕,这个上位机会自动消失

然后观察STM32F405开发板,LED0 LED1闪烁,bootloader成功升级固件

image.png

0bf91e16b21f125cf61fa59318c7143.jpg0bf91e16b21f125cf61fa59318c7143.jpg

收藏 评论0 发布时间:2024-12-30 13:26

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版