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

描述

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

bin

代码仓库:

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的可通过源码编译获取。

bin

2. 生成stm32-zboot.bin

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

bin

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

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

bin

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

bin

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

bin

3. 测试引导功能

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

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

bin

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

bin

4. 测试OTA功能

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

bin

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

bin

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

期待您的测试反馈!!!

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分