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

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

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

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

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

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

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

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

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

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

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