
作为嵌入式开发工程师,我们设计的产品在大批量量产后,在客户使用过程中发现bug,或者客户需要增添新功能时,我们不可能召回产品来进行分析升级固件,这时候,我们就需要使用Bootloader来进行修复固件了,嵌入式开发中采用的通讯协议五花八门,硬件平台也是百家争鸣,那么,有没有一种通用的bootloader架构,不限制平台,能方便的移植到各种电路板上,造福广大嵌入式开发工作者呢? 答案当然是肯定的,果真就有一款开源的bootloader架构,它叫做OpenBLT,是一个美国的嵌入式高手开发后开源公布在github上的,https://github.com/feaser/openblt 好了,话不多说,我们献上干货。 1。硬件平台 这里我是用的淘宝购买的STM32F405开发板,所有STM32F405/407系列都可以拿我这个移植模版直接使用,基本无需修改即可使用(除了亮灯的LED1和LED0作为指示灯需要大家根据实际情况简单配置)。我先拍个照片 上面是STM32F405开发板,我接的右上角是DB9针的串口线,用到的是USART1,PA9和PA10口 大家根据实际情况,对串口和引脚进行修改。接下来我就一步一步交大家怎么修改。 2。我们进入openblt文件 从github上下载下来。 实际上就这3个文件夹 我们打开target文件夹内 这里我们只需用到STM32F405模版,其它全部删除 先打开boot文件 打开keil 1。我们先配置串口,打开原理图可知 使用的串口是USART1 PA9和PA10 使能串口1时钟和引脚时钟 同样的 串口初始化修改完毕 打开hooks.c文件 删掉LED之前的函数语句 打开这个配置头文件 因为用到是USART1,所以下标选择0 然后编译后烧录到板子上,至此完成了bootloader的烧录 观察板子上,LED是不亮的 3。修改prog应用程序 打开keil工程 先修改main文件 因为LED0和LED1是PE2 PE3所以需要使能GPIOE时钟 配置串口PA9 PA10和LED :PE3 PE4 同样的 这里时钟和引脚初始化完毕, 下面修改LED文件 我用到的是PE3 PE4,大家自行修改 然后编译生成srec文件 先打开bootloader上位机,进入Host文件夹 双击MicroBoot.exe 点击setting COM4是我自己的实际DB9串口,你们是多少选COM几,千万别弄错 选择生成的srec文件 升级完毕,这个上位机会自动消失 然后观察STM32F405开发板,LED0 LED1闪烁,bootloader成功升级固件 |
Nucleo-F429ZI开发板体验LWIP功能
TouchGFX应用移植自定义屏幕
STM32固件库分享,超全系列整理
【经验分享】新建基于STM32F40x 固件库的MDK5 工程
年终中奖---F429板卡网络应用
【NUCLEO STM32F429ZI开发板】之点灯大师
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
stm32使用定时器触发dma传输,启动dma没反应的几种情况的解决方法
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法