揭秘STM32 OTA升級:輕松實現(xiàn)固件遠(yuǎn)程無縫更新(三)
在嵌入式 OTA 升級過程中,構(gòu)建一套標(biāo)準(zhǔn)化的固件包格式至關(guān)重要。為了配合 mOTA 組件中的 Bootloader 正確識別、解析和驗證固件,本項目提供了一款高效實用的 固件打包工具,用于將 .bin 固件打包為具有表頭信息的 .fpk 固件包。
本文引用地址:http://www.2s4d.com/article/202506/471237.htm一、工具簡介
該工具是 mOTA 開源 OTA 升級系統(tǒng)的重要組成部分,名稱為 Firmware_Packager。其主要功能是為原始 .bin 固件添加一個結(jié)構(gòu)化的 fpk 表頭,生成標(biāo)準(zhǔn)格式的 .fpk 固件包,便于 Bootloader 快速識別和校驗。
其支持圖形化界面操作,使用簡單直觀,可選加密和多種參數(shù)配置,適合日常嵌入式開發(fā)打包使用。
二、實現(xiàn)的核心功能
(一)固件打包功能
通過加載 .bin 固件后,點擊“打包”,即可將其轉(zhuǎn)換為 .fpk 格式,具體特性如下:
功能 | 說明 |
表頭附加 | 自動在 bin 固件前添加 96 字節(jié) fpk 表頭(支持自定義大小,超出部分以 0x00 填充) |
固件合并 | 表頭與固件數(shù)據(jù)合并生成 .fpk 包 |
AES 加密(可選) | 支持開啟 AES-256 加密,確保傳輸安全 |
支持字符水印 | 可寫入水印標(biāo)記,用于驗證或追蹤 |
自定義分區(qū)名 | 標(biāo)明該固件所對應(yīng)的存儲分區(qū),如 app, backup |
固件版本管理 | 使用數(shù)值型版本標(biāo)識(如 1003 表示 1.0.3) |
注意:若需要字符型版本號(如 "v1.0.3"),請參考源碼修改表頭結(jié)構(gòu)。
打包后會在指定保存路徑生成 .fpk 固件包,供 Bootloader 使用。
界面預(yù)覽:
(二)固件解析功能
支持打開已有的 .fpk 固件包,并解析其中的表頭字段,自動顯示固件的各項元數(shù)據(jù)。
解析項包括但不限于:
Magic Code(合法性標(biāo)識)
固件長度
固件版本
水印內(nèi)容
加密標(biāo)識
所屬分區(qū)名
CRC 校驗碼
界面預(yù)覽:
三、編譯與使用說明
(1)編譯環(huán)境
本工程采用 Qt6 開發(fā)并構(gòu)建,但也可在 Qt5 環(huán)境下編譯,需根據(jù) Qt 版本適配一些依賴模塊。
如不熟悉 Qt 編譯流程,推薦直接使用編譯好的可執(zhí)行文件:
復(fù)制編輯
firmware_packager.exe
該文件已打包完整依賴,開箱即用。
(2)運行環(huán)境
操作系統(tǒng):Windows 7/10/11
依賴:無需額外依賴庫,支持離線使用
四、典型使用場景
使用場景 | 說明 |
日常 OTA 固件打包 | 為 Bootloader 提供標(biāo)準(zhǔn)固件包格式 |
安全版本發(fā)布 | 使用 AES 加密避免未授權(quán)設(shè)備刷入 |
工廠產(chǎn)線版本驗證 | 通過表頭字段解析核對版本和水印 |
多分區(qū)多版本管理 | 同時支持 APP / Backup / Recovery 固件打包 |
評論