新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 揭秘STM32 OTA升级:轻松实现固件远程无缝更新(三)

揭秘STM32 OTA升级:轻松实现固件远程无缝更新(三)

作者:嵌入式芯视野 时间:2025-06-11 来源:今日头条 收藏

在嵌入式 升级过程中,构建一套标准化的固件包格式至关重要。为了配合 m 组件中的 Bootloader 正确识别、解析和验证固件,本项目提供了一款高效实用的 固件打包工具,用于将 .bin 固件打包为具有表头信息的 .fpk 固件包。

本文引用地址:https://www.eepw.com.cn/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

评论


相关推荐

技术专区

关闭