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

代码仓库:
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 命令,即可生成这两份文件,如下所示:

stm32-zboot.bin:stm32全系列通用的boot镜像,需要下载到芯片的起始地址。
config.json:stm32 boot配置文件,用来配置boot文件的参数,具体参数的意义看下面的图片。可以按照自己硬件的参数,修改配置文件。修改完之后,再次运行 zboot boot 命令即可更新stm32-zboot.bin的参数配置。

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

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

3. 测试引导功能
使用命令 zboot app可以生成测试应用固件。
(默认生成的app.bin加载地址是0x08008000,如果要生成其他地址的测试应用,需要修改项目源码,重新编译。)

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

4. 测试OTA功能
使用命令 zboot rbl 可以打包app固件。默认使用fastlz算法压缩固件体积。

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

zboot默认集成了SFUD功能,会自动探测外部flash,如果硬件有外部SPI Flash的话,也可以修改配置文件中的引脚信息,并使能外部Flash。
期待您的测试反馈!!!
-
STM32
+关注
关注
2305文章
11123浏览量
371210 -
bin
+关注
关注
1文章
34浏览量
13881 -
Boot
+关注
关注
0文章
154浏览量
37498
发布评论请先 登录
fn_u-boot-spl.bin和u-boot-spl.bin区别是什么?请问如何从u-boot-spl.bin生成fn_u-boot-spl.bin?
SUPERPRO全系列通用操作手册 (中文版 SP3000U
Zynq 7015 linux跑起来之导入之BOOT.bin生成详解
MPSOC案例:petalinux打包和BOOT.BIN开发流程
分享一个通过STM32的bin文件逆向分析代码的工具
学技术 | STM32F系列向G系列切换应用总结—Boot mode及Option byte
STM32F0系列MCU硬件电路boot设计

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