使用zig編寫(xiě)的,一個(gè)bin文件適配STM32全系列的通用BootLoader!
代碼倉(cāng)庫(kù):
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)開(kāi)發(fā)板(主控:stm32f407)為例,展示zboot的使用方法。
1. 下載zboot工具
https://gitee.com/puppy-rtos/stm32-zboot/releases/tag/v0.0.6
目前默認(rèn)提供了Linux和Windows上的二進(jìn)制包,MAC的可通過(guò)源碼編譯獲取。
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配置文件,用來(lái)配置boot文件的參數(shù),具體參數(shù)的意義看下面的圖片??梢园凑兆约河布膮?shù),修改配置文件。修改完之后,再次運(yùn)行 zboot boot 命令即可更新stm32-zboot.bin的參數(shù)配置。
下面是我修改過(guò)的配置文件。
燒錄配置好的stm32-zboot.bin到開(kāi)發(fā)板,即可通過(guò)配置的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è)試反饋!?。?/p>
-
STM32
+關(guān)注
關(guān)注
2301文章
11069瀏覽量
369292 -
bin
+關(guān)注
關(guān)注
1文章
34瀏覽量
13815 -
Boot
+關(guān)注
關(guān)注
0文章
154瀏覽量
37285
發(fā)布評(píng)論請(qǐng)先 登錄
fn_u-boot-spl.bin和u-boot-spl.bin區(qū)別是什么?請(qǐng)問(wèn)如何從u-boot-spl.bin生成fn_u-boot-spl.bin?
SUPERPRO全系列通用操作手冊(cè) (中文版 SP3000U
Zynq 7015 linux跑起來(lái)之導(dǎo)入之BOOT.bin生成詳解
PIC? MCU全系列通用開(kāi)發(fā)板簡(jiǎn)介
MPSOC案例:petalinux打包和BOOT.BIN開(kāi)發(fā)流程

試圖構(gòu)建一個(gè)便于適配不同平臺(tái)mcu的通用庫(kù)

分享一個(gè)通過(guò)STM32的bin文件逆向分析代碼的工具

學(xué)技術(shù) | STM32F系列向G系列切換應(yīng)用總結(jié)—Boot mode及Option byte

STM32全系列支持功能安全應(yīng)用

STM32F0系列MCU硬件電路boot設(shè)計(jì)

評(píng)論