使用zig編寫的,一個bin文件適配STM32全系列的通用BootLoader!

代碼倉庫:
github//github.com/puppy-rtos/stm32-zboot
gitee//gitee.com/puppy-rtos/stm32-zboot
功能特性
自動探測芯片架構(gòu)、片上flash容量
支持配置uart、spi管腳信息
支持crc、hash校驗固件
默認使用FastLZ壓縮固件
支持SPI Flash,自動探測型號、容量
自帶配置工具:支持生成boot,打包更新包,生成測試app
固件體積極小,僅14.6KB
依托于zig強大的性能和跨平臺構(gòu)建能力,zboot在功能性和固件體積之間取得了良好的平衡!
使用方式
下面以星火1號開發(fā)板(主控:stm32f407)為例,展示zboot的使用方法。
1. 下載zboot工具
https://gitee.com/puppy-rtos/stm32-zboot/releases/tag/v0.0.6
目前默認提供了Linux和Windows上的二進制包,MAC的可通過源碼編譯獲取。

2. 生成stm32-zboot.bin
使用zboot工具生成對應(yīng)的stm32-zboot.bin和config.json配置文件,運行zboot boot 命令,即可生成這兩份文件,如下所示:

stm32-zboot.bin:stm32全系列通用的boot鏡像,需要下載到芯片的起始地址。
config.json:stm32 boot配置文件,用來配置boot文件的參數(shù),具體參數(shù)的意義看下面的圖片??梢园凑兆约河布膮?shù),修改配置文件。修改完之后,再次運行 zboot boot 命令即可更新stm32-zboot.bin的參數(shù)配置。

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

燒錄配置好的stm32-zboot.bin到開發(fā)板,即可通過配置的uart引腳,查看到啟動信息。

3. 測試引導(dǎo)功能
使用命令 zboot app可以生成測試應(yīng)用固件。
(默認生成的app.bin加載地址是0x08008000,如果要生成其他地址的測試應(yīng)用,需要修改項目源碼,重新編譯。)

燒錄測試固件到0x08008000地址處,然后重啟硬件,測試跳轉(zhuǎn)正常。

4. 測試OTA功能
使用命令 zboot rbl 可以打包app固件。默認使用fastlz算法壓縮固件體積。

然后將stm32-app.bin.rbl燒錄到swap分區(qū)對應(yīng)的位置0x08040000。重啟硬件,zboot會自動完成應(yīng)用固件的更新。

zboot默認集成了SFUD功能,會自動探測外部flash,如果硬件有外部SPI Flash的話,也可以修改配置文件中的引腳信息,并使能外部Flash。
期待您的測試反饋?。。?/p>
-
STM32
+關(guān)注
關(guān)注
2309文章
11161瀏覽量
373387 -
bin
+關(guān)注
關(guān)注
1文章
34瀏覽量
13947 -
Boot
+關(guān)注
關(guān)注
0文章
154瀏覽量
37738
發(fā)布評論請先 登錄
fn_u-boot-spl.bin和u-boot-spl.bin區(qū)別是什么?請問如何從u-boot-spl.bin生成fn_u-boot-spl.bin?
SUPERPRO全系列通用操作手冊 (中文版 SP3000U
Zynq 7015 linux跑起來之導(dǎo)入之BOOT.bin生成詳解
MPSOC案例:petalinux打包和BOOT.BIN開發(fā)流程
分享一個通過STM32的bin文件逆向分析代碼的工具
學(xué)技術(shù) | STM32F系列向G系列切換應(yīng)用總結(jié)—Boot mode及Option byte
STM32全系列支持功能安全應(yīng)用
STM32F0系列MCU硬件電路boot設(shè)計
一個Bin適配STM32全系列的通用BOOT
評論