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