feat(pack): FACTORY 工厂镜像 + 内置 profile 改名 CeramixNano_MB_Dual_FW
This commit is contained in:
@@ -13,8 +13,8 @@ GD32E230 系列固件处理与烧录工具仓库。本文件为项目标杆文
|
||||
- **项目结构**:
|
||||
- 根目录:`gd32e230_firmware_tool.py` 命令行固件工具 v2(默认双固件 profile
|
||||
打包;`-f`/`-m` 触发 legacy 单槽模式),`fw_pack.py` 打包公共库(CLI 与 GUI
|
||||
共用的单一真相:profile 解析/校验/CRC/A 包/B 包/FULL/回读复核/MD5 清单),
|
||||
`test_fw_pack.py` 回归测试套件(49 项,含 CeramixNano 实测基准);
|
||||
共用的单一真相:profile 解析/校验/CRC/A 包/B 包/FULL/FACTORY/回读复核/
|
||||
MD5 清单),`test_fw_pack.py` 回归测试套件(55 项,含 CeramixNano 实测基准);
|
||||
`merge_bin.py`/`fill_bin.py` 旧版脚本保留兼容,
|
||||
`gd32e230f8_bootloader_hulk.bin` 出厂 bootloader;
|
||||
- `FlashTool/`:DAPLink Flash GUI v2.6.0(烧录 + 打包 v2 + 补齐 Pad + 拼接
|
||||
@@ -30,7 +30,11 @@ GD32E230 系列固件处理与烧录工具仓库。本文件为项目标杆文
|
||||
CRC-16/XMODEM(自检向量 `"123456789"→0x31C3`);A 包补 0xFF 至整 N 页 +
|
||||
末 4B trailer{页数16|CRC16},CRC 范围=去末 4B,恰整页或余量<4B 扩 1 页;
|
||||
B 包固定满槽 + 槽末 8B 记录{magic=0xC0DE|页数|CRC|2B FF},CRC 范围=去末 8B,
|
||||
固件>槽-8B 报错;FULL=BL+A 包+槽尾锚点(0x0800AFFC)+B 满槽+0xEEEE@0x0800FFFC。
|
||||
固件>槽-8B 报错;FULL=BL+A 包+槽尾锚点(0x0800AFFC)+B 满槽+0xEEEE@0x0800FFFC;
|
||||
FACTORY=BL+B 满槽+flag **无 A**(A 槽整体擦除态,上电判定链落 B 跳出厂固件),
|
||||
12 项字节校验;不再单独落盘 B 包文件(B 内容已含于 FULL/FACTORY)。
|
||||
默认 profile 名为 `CeramixNano_MB_Dual_FW`(旧名 `ceramixnano_mb_v51` 已
|
||||
废弃不留别名,GUI 旧配置自动迁移)。
|
||||
回归基准(CeramixNano 实测):1.0.17→20 页 trailer=0xD30F0014;1.0.18→
|
||||
0x6F380014;V1.0.12 B→记录 `DE C0 13 00 6F 18 FF FF`;FULL 镜像 MD5
|
||||
`f704b837...` 逐字节复现。**改 `fw_pack.py` 后必须
|
||||
@@ -56,14 +60,15 @@ GD32E230 系列固件处理与烧录工具仓库。本文件为项目标杆文
|
||||
cfgs/ 自定义 cfg 机制、全操作 SRST 连接序列、整包 0.11 工具链、
|
||||
Gitea Release 发布流水线;
|
||||
- 2026-10-22 **v2 彻底升级落地**(`UPGRADE_PLAN_v2.md` 全部实现并自验收):
|
||||
- `fw_pack.py` 公共库:布局 profile(内置 `ceramixnano_mb_v51` /
|
||||
- `fw_pack.py` 公共库:布局 profile(内置 `CeramixNano_MB_Dual_FW` /
|
||||
`f8_single_slot` + JSON 自定义,完整性校验)、向量表自动识别 A/B 包
|
||||
(显式指定冲突报错)、A 包动态补页+trailer+整页扩展、B 包固定满槽+记录、
|
||||
FULL 整片镜像+槽尾锚点+flag、CRC-16/XMODEM 启动自检、写盘回读复核、
|
||||
19 项 FULL 字节校验、MD5 清单+布局摘要、FULL 自动命名(项目/双版本/日期);
|
||||
- `gd32e230_firmware_tool.py` v2.0.0 重构:默认 v2 模式(位置参数自动识别、
|
||||
`--a/--b/--bl/--profile/-o 目录/--no-full`),`-f/-m` 保留 legacy 行为不变;
|
||||
- `test_fw_pack.py`:49 项回归全绿——规格第五节基准逐项复现(1.0.17 UPDATE
|
||||
`--a/--b/--bl/--profile/-o 目录/--no-full/--no-factory`),`-f/-m` 保留
|
||||
legacy 行为不变;
|
||||
- `test_fw_pack.py` 回归全绿(55 项)——规格第五节基准逐项复现(1.0.17 UPDATE
|
||||
与验收包逐字节一致、FULL MD5 `f704b837...` 复现、恰整页/余量<4 扩页、
|
||||
LDC1612 legacy update.bin 复现)、变体 profile(B 8K/28K/无)、错误路径、
|
||||
CLI 冒烟;
|
||||
@@ -72,6 +77,17 @@ GD32E230 系列固件处理与烧录工具仓库。本文件为项目标杆文
|
||||
`build_exe.py` 以 `--paths+hiddenimport` 收录根目录 `fw_pack.py`;
|
||||
- `make_v5_update.py` 已删除(能力并入 `fw_pack.py`);README(根 + FlashTool)
|
||||
已重写;尚未发布 GUI 新版 zip(待下次 `build_exe.py`→`package_release.py`)。
|
||||
- 2026-10-22 **FACTORY 工厂镜像改造 + profile 改名**(上个会话收尾、本会话续完):
|
||||
- `fw_pack.py`:新增 `build_factory`/`verify_factory_blob`/`suggest_factory_name`
|
||||
(BL+B 满槽+flag、无 A、12 项字节校验),`pack_all` 产物改为 UPDATE/FULL/
|
||||
FACTORY/MD5,**不再单独落盘 B 包文件**;仅 B 输入时只出 FACTORY(不拼 FULL);
|
||||
- CLI:根工具与 `flash_gui --pack` 均加 `--no-factory`(flash_gui 侧为
|
||||
`--pack-no-factory`),GUI 弹窗文案/结果映射同步;
|
||||
- 内置 profile 改名 `ceramixnano_mb_v51` → `CeramixNano_MB_Dual_FW`(旧名
|
||||
废弃不留别名;CLI/GUI 默认值、config 默认+旧配置迁移、测试、文档全量同步);
|
||||
- 参数拼接审计:`flash_gui --pack -o` 加目录护栏(拒绝 .bin 路径,对齐根工具),
|
||||
全链路冒烟(GUI 弹窗/CLI/命名拼接)通过;`bootloader_disasm*.txt` 为分析
|
||||
副产物留在工作区未入库。
|
||||
|
||||
### 计划 / TODO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user