新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 揭秘STM32 OTA升級:輕松實現(xiàn)固件遠(yuǎn)程無縫更新(三)

揭秘STM32 OTA升級:輕松實現(xiàn)固件遠(yuǎn)程無縫更新(三)

作者:嵌入式芯視野 時間:2025-06-11 來源:今日頭條 收藏

在嵌入式 升級過程中,構(gòu)建一套標(biāo)準(zhǔn)化的固件包格式至關(guān)重要。為了配合 m 組件中的 Bootloader 正確識別、解析和驗證固件,本項目提供了一款高效實用的 固件打包工具,用于將 .bin 固件打包為具有表頭信息的 .fpk 固件包。

本文引用地址:http://www.2s4d.com/article/202506/471237.htm

一、工具簡介

該工具是 m 開源 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 固件打包




關(guān)鍵詞: STM32 OTA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉