揭秘STM32 OTA升级:轻松实现固件远程无缝更新(三)
在嵌入式 OTA 升级过程中,构建一套标准化的固件包格式至关重要。为了配合 mOTA 组件中的 Bootloader 正确识别、解析和验证固件,本项目提供了一款高效实用的 固件打包工具,用于将 .bin 固件打包为具有表头信息的 .fpk 固件包。
本文引用地址:https://www.eepw.com.cn/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 固件打包 |
评论