新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 揭秘STM32 OTA升級:輕松實現固件遠程無縫更新(三)

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

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

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

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

        一、工具簡介

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




        關鍵詞: STM32 OTA

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宝山区| 太康县| 锦州市| 津南区| 临漳县| 广平县| 克拉玛依市| 彭阳县| 宁蒗| 大城县| 霍山县| 洪泽县| 灵台县| 醴陵市| 兰考县| 本溪| 六安市| 筠连县| 奉贤区| 新津县| 上高县| 新乡市| 兰溪市| 潜山县| 门源| 邵阳县| 诸城市| 海兴县| 封开县| 通州市| 巴青县| 永定县| 双桥区| 盐山县| 朝阳市| 建始县| 宜州市| 灵台县| 滦南县| 台州市| 鹤岗市|