一个Bin适配STM32全系列的通用BOOT

使用zig编写的,一个bin文件适配STM32全系列的通用BootLoader!

c1e9da86-9219-11f0-8ce9-92fbcf53809c.png

代码仓库:

github//github.com/puppy-rtos/stm32-zboot

gitee//gitee.com/puppy-rtos/stm32-zboot

功能特性

自动探测芯片架构、片上flash容量

支持配置uart、spi管脚信息

支持crc、hash校验固件

默认使用FastLZ压缩固件

支持SPI Flash,自动探测型号、容量

自带配置工具:支持生成boot,打包更新包,生成测试app

固件体积极小,仅14.6KB

依托于zig强大的性能和跨平台构建能力,zboot在功能性和固件体积之间取得了良好的平衡!

使用方式

下面以星火1号开发板(主控:stm32f407)为例,展示zboot的使用方法。

1. 下载zboot工具

https://gitee.com/puppy-rtos/stm32-zboot/releases/tag/v0.0.6

目前默认提供了Linux和Windows上的二进制包,MAC的可通过源码编译获取。

2. 生成stm32-zboot.bin

使用zboot工具生成对应的stm32-zboot.bin和config.json配置文件,运行zboot boot 命令,即可生成这两份文件,如下所示:

c215d6d6-9219-11f0-8ce9-92fbcf53809c.png

stm32-zboot.bin:stm32全系列通用的boot镜像,需要下载到芯片的起始地址。

config.json:stm32 boot配置文件,用来配置boot文件的参数,具体参数的意义看下面的图片。可以按照自己硬件的参数,修改配置文件。修改完之后,再次运行 zboot boot 命令即可更新stm32-zboot.bin的参数配置。

下面是我修改过的配置文件。

c249202c-9219-11f0-8ce9-92fbcf53809c.png

烧录配置好的stm32-zboot.bin到开发板,即可通过配置的uart引脚,查看到启动信息。

c254b34c-9219-11f0-8ce9-92fbcf53809c.png

3. 测试引导功能

使用命令 zboot app可以生成测试应用固件。

(默认生成的app.bin加载地址是0x08008000,如果要生成其他地址的测试应用,需要修改项目源码,重新编译。)

c268b608-9219-11f0-8ce9-92fbcf53809c.png

烧录测试固件到0x08008000地址处,然后重启硬件,测试跳转正常。

c27afd5e-9219-11f0-8ce9-92fbcf53809c.png

4. 测试OTA功能

使用命令 zboot rbl 可以打包app固件。默认使用fastlz算法压缩固件体积。

c28a595c-9219-11f0-8ce9-92fbcf53809c.png

然后将stm32-app.bin.rbl烧录到swap分区对应的位置0x08040000。重启硬件,zboot会自动完成应用固件的更新。

c295238c-9219-11f0-8ce9-92fbcf53809c.png

zboot默认集成了SFUD功能,会自动探测外部flash,如果硬件有外部SPI Flash的话,也可以修改配置文件中的引脚信息,并使能外部Flash。

期待您的测试反馈!!!

为您推荐

当前非电脑浏览器正常宽度,请使用移动设备访问本站!