docs: BL 改为专属并列分支 bootloader_CeramixNano_EDDY(LED=PB1,V0.1.0=4,040B)

This commit is contained in:
2026-10-24 21:33:14 +08:00
parent 8dcbfa9f99
commit f556d1f590
2 changed files with 19 additions and 14 deletions
+18 -13
View File
@@ -47,7 +47,7 @@ LDC1612(电涡流/电感数字转换器)+ TMP112(板载温度),RS485
```
0x08000000 ┌─────────────────┐
│ Bootloader │ 8K 页 0~7 复用 MB 板 BL bin(V0.1.0,4,044B,MD5 f7b447cf…)
│ Bootloader │ 8K 页 0~7 专属分支 bootloader_CeramixNano_EDDY(V0.1.0,4,040B)
0x08002000 ├─────────────────┤
│ FW_A 运行槽 │ 36K 页 8~43 OTA/Ymodem 接收区;锚点 A 记录@0x0800AFFC
0x0800B000 ├─────────────────┤
@@ -57,9 +57,11 @@ LDC1612(电涡流/电感数字转换器)+ TMP112(板载温度),RS485
0x08010000 └─────────────────┘
```
- **BL 复用**:直接使用 `gd32e230_bootloader` 仓库 `bootloader_CeramixNano_MB` 分支
V0.1.0 bin(RS485 引脚/波特率/DE 方案与 EDDY 完全一致;唯一差异 LED 引脚
MB=PA14 / EDDY=PB1——BL 的 LED 仅 Ymodem 收包闪烁,纯装饰,EDDY 板不亮无碍)。
- **BL = 并列板卡分支 `bootloader_CeramixNano_EDDY`**(BL 仓库,2026-10-24 自 MB 分支
创建;板卡宏 CERAMIXNANO_EDDY,**LED=PB1**,Ymodem 每成功烧录一包翻转一次,逻辑
同 MB 分支;版本独立编号 V0.1.0 = 4,040B,MD5 1dcc17bf…)。RS485 配置与 MB 逐宏
相同;**PA14 不被 BL 占用 ⇒ 升级会话期间 SWD 保持可用**(MB 分支 BL 的 LED=PA14
会占 SWCLK,勿混烧)。
- **A 线 = dev/main**:链接 0x08002000 / **LENGTH 36K**(LD 上限防溢出 B 槽),
VTOR 0x2000;版本从 V1.0.3 起(首个双固件 A 版本,码 26)。
- **B 线 = release/golden**:链接 0x0800B000 / LENGTH 0x4BF8(19K−8B,B 记录由打包
@@ -86,15 +88,17 @@ LDC1612(电涡流/电感数字转换器)+ TMP112(板载温度),RS485
- 2026-10-02:IIC 驱动改进导入(总线恢复重试/超时辅助/read_raw/scan AERR 处理);
硬件全命令实测通过;DAPLink 烧录问题解决;发布 V1.0.2(Gitea Release + tag)
- **2026-10-24:双固件(出厂救援)方案移植完成并全链路实测通过**(详见下节)
- BL 复用 MB V0.1.0 bin(未改动 BL 代码,仅文档说明)
- BL 仓库新建并列板卡分支 `bootloader_CeramixNano_EDDY`(LED=PB1,V0.1.0 = 4,040B,
每收包翻转一次;此前短暂采用"复用 MB bin"方案,因 LED 引脚不同已废弃并重打包)
- dev:LD 54K→36K、命名 CeramixNano-EDDY、板卡码 26、V1.0.3;
golden:V1.0.2 冻结命名 + variant=golden
- 两线 CMake 补齐 `--gap-fill=0xFF` 与 `LD LINK_DEPENDS`
- fw_pack 新增 `CeramixNano_EDDY_Dual_FW` profile(55 项回归过,skill 缓存已同步)
- 产物(`Build/test/dualfw_2026-10-24/`):UPDATE(12 页,trailer 0x5C09000C)、
FULL(A=V1.0.3/B=V1.0.2,19 项校验过)、FACTORY(12 项校验过)+ MD5 清单;
FULL(EDDY BL + A=V1.0.3/B=V1.0.2,19 项校验过)、FACTORY(12 项校验过)+ MD5 清单;
独立 python XMODEM 复算全部命中
- **硬件实测矩阵(SWD 探针 PC 采样 + 485 命令双重手段,全部 PASS)**:
- **硬件实测矩阵(SWD 探针 PC 采样 + 485 命令双重手段,全部 PASS;先用 MB bin 实测,
换 EDDY 专属 BL 后 FULL/FACTORY/OTA 全周期复测通过)**:
FACTORY→跳B(v26.1.0.2) / FULL→记录路径跳A(v26.1.0.3) / PC 模拟 SOC 完整 OTA
44s 成功+读回整片逐字节与包一致(B 区在真实 OTA 中毫发无损)/
擦锚点页→legacy 跳A / 锚点在位毁A体→CRC 拦截直落B(防降级)/
@@ -114,12 +118,13 @@ LDC1612(电涡流/电感数字转换器)+ TMP112(板载温度),RS485
或 RSTFC 清),此后任何复位 BL 都直进升级模式、不跳 APP——表现为"设备沉默,
M999 无响应,但 0x30 能回 ok"。排障/测试时须 SWD `mww 0x40021024 0x01000000`
清标志后再放跑(`swd.py boot` 已内置)。
- **BL 收到 0x30 后 SWD 必死**:复用的 MB BL 在 0x30 应答后调用 gpio_init 把
PA14(EDDY 板=SWCLK)切为 LED 输出。因此:探针类 SWD 操作前**不要**发 0x30;
OTA/升级会话结束后 SWD 失联属预期,恢复 = `M9999` 复位(PA14 回默认)后再连。
若 APP 也没在跑(BL 卡收包),用 connect_assert_srst 变体 cfg
(`Toolchain/eddy_test/daplink_srst.cfg`)脉冲 SRST 复位恢复——SRST 线已验证接通,
但该 DAPLink 下 examination 必失败属正常,复位本身生效。
- **(历史)误烧 MB 分支 BL 会让 SWD 在 0x30 后失联**:MB 分支 BL 的 LED=PA14
(SWCLK),0x30 应答后切输出 ⇒ SWD 死。**本板专用 `bootloader_CeramixNano_EDDY`
分支 LED=PB1,PA14 不占用,升级会话期间 SWD 全程可用**(2026-10-24 起所有镜像
均为 EDDY BL,此坑仅存档)。若真误烧:`M9999` 复位(有 APP 时)或用
connect_assert_srst 变体 cfg(`Toolchain/eddy_test/daplink_srst.cfg`)脉冲 SRST
复位恢复——SRST 线已验证接通,但该 DAPLink 下 examination 必失败属正常,
复位本身生效。
- **Ymodem 文件头 ACK 后是 ACK+'C' 连发**:发送器若分两次等会永远等不到第二个 'C'
(首次 OTA 调试即栽在此,BL 无超时会卡死;随后发 5×CA 可解)。
- OpenOCD `program`/`dump_image` 的文件路径必须转正斜杠,否则 Tcl 吃掉 `\l` `\t`。
+1 -1
View File
@@ -47,7 +47,7 @@ GD32E230F8(64KB Flash)采用与 CeramixNano-MB 相同的双固件(出厂
| 区域 | 地址范围 | 说明 |
|---|---|---|
| Bootloader | `0x08000000` - `0x08001FFF`(8KB,页 0~7) | **复用 CeramixNano-MB 板 BL**(V0.1.0,4,044B)——RS485 引脚/波特率/DE 方案完全一致;启动判定链 + RS485 Ymodem OTA |
| Bootloader | `0x08000000` - `0x08001FFF`(8KB,页 0~7) | **专属分支 `bootloader_CeramixNano_EDDY`**(V0.1.0,4,040B,LED=PB1,Ymodem 每烧录一包翻转一次;与 MB 分支并列、版本独立编号)——启动判定链 + RS485 Ymodem OTA;PA14 不占用,升级会话期间 SWD 可用 |
| FW_A 运行槽(本仓库 dev/main) | `0x08002000` - `0x0800AFFF`(36KB,页 8~43) | 唯一 OTA/Ymodem 接收区;链接 `ORIGIN=0x08002000, LENGTH=36K`(上限防溢出 B 槽);槽尾锚点 A 记录 @`0x0800AFFC` |
| FW_B 出厂保底槽(release/golden 分支) | `0x0800B000` - `0x0800FBFF`(19KB,页 44~62) | 出厂救援固件(版本冻结 V1.0.2),OTA 永不擦写;B 记录 @`0x0800FBF8` |
| 末页标志页 | `0x0800FC00` - `0x0800FFFF`(1KB,页 63) | legacy 标志 `0xEEEE` @`0x0800FFFC` |