feat(profile): 新增内置 CeramixNano_EDDY_Dual_FW——EDDY 板双固件布局(与 MB 逐字节相同,BL 复用同一 bin)
This commit is contained in:
+21
-3
@@ -10,7 +10,7 @@ fw_pack — GD32E230 双固件打包公共库 (CLI 与 FlashTool GUI 共用)
|
||||
锚点擦除态 → A 向量非法 → 落 B 记录校验 → 跳出厂固件)
|
||||
*.md5.txt 产物 MD5 清单 + 布局摘要
|
||||
|
||||
规则与 BL dev_fact 侧 (v5.1) 逐字一致:
|
||||
规则与双固件 bootloader 侧逐字一致:
|
||||
- CRC-16/XMODEM (poly 0x1021, init 0x0000, 不反转, 无 xorout),
|
||||
自检向量 b"123456789" -> 0x31C3;
|
||||
- A 包: 补 0xFF 至整 N 页; body 恰整页或 余量 < 记录长 R -> 向后扩 1 页;
|
||||
@@ -197,7 +197,7 @@ class SlotSpec:
|
||||
# ═══════════════════════════════════════════════════════════
|
||||
|
||||
BUILTIN_PROFILES = {
|
||||
# CeramixNano-MB v5.1 双固件 BL 的布局 (BL dev_fact@512bf7a)
|
||||
# CeramixNano-MB 双固件 bootloader 的布局
|
||||
'CeramixNano_MB_Dual_FW': {
|
||||
'profile': 'CeramixNano_MB_Dual_FW',
|
||||
'chip': 'GD32E230F8',
|
||||
@@ -214,6 +214,24 @@ BUILTIN_PROFILES = {
|
||||
'flag': {'page': 'last', 'addr': '0x0800FFFC', 'value': '0xEEEE'},
|
||||
'crc': 'xmodem',
|
||||
},
|
||||
# CeramixNano EDDY (LDC1612) 双固件布局——Flash 分配与 MB 完全相同;
|
||||
# BL 直接复用 bootloader_CeramixNano_MB 同一 bin(RS485 引脚/波特率一致,仅 LED 引脚差异)
|
||||
'CeramixNano_EDDY_Dual_FW': {
|
||||
'profile': 'CeramixNano_EDDY_Dual_FW',
|
||||
'chip': 'GD32E230F8',
|
||||
'flash_base': '0x08000000',
|
||||
'flash_size': '64K',
|
||||
'page_size': 1024,
|
||||
'bl': {'addr': '0x08000000', 'size': '8K'},
|
||||
'slot_a': {'addr': '0x08002000', 'size': '36K',
|
||||
'anchor': 'slot_end-4',
|
||||
'record': '{pages16@+0, crc16@+2}'},
|
||||
'slot_b': {'addr': '0x0800B000', 'size': '19K', 'fixed_slot': True,
|
||||
'record': '{magic16@+0=0xC0DE, pages16@+2, crc16@+4}',
|
||||
'record_addr': 'slot_end-8'},
|
||||
'flag': {'page': 'last', 'addr': '0x0800FFFC', 'value': '0xEEEE'},
|
||||
'crc': 'xmodem',
|
||||
},
|
||||
# 无保底槽的单槽布局 (旧 BL 升级过渡 / 无 B 槽工程)
|
||||
'f8_single_slot': {
|
||||
'profile': 'f8_single_slot',
|
||||
@@ -555,7 +573,7 @@ def build_full(profile, bl_data, a_pack, b_pack=None):
|
||||
def build_factory(profile, bl_data, b_pack):
|
||||
"""工厂烧录镜像: BL + B 满槽(含记录) + flag, **无 A 包、无锚点**。
|
||||
|
||||
上电判定链(v5.1 BL): A 锚点为擦除态(0xFFFF...) → legacy flag + A 向量校验
|
||||
上电判定链(双固件 BL): A 锚点为擦除态(0xFFFF...) → legacy flag + A 向量校验
|
||||
(A 槽全 0xFF → 向量非法) → 落 B 记录 {magic|pages|crc} 校验 → 跳出厂固件;
|
||||
后续 OTA 写入 A 槽后即切运行固件。
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user