prune-boot-dead-code 规格复核(修订版)
原文件:.trae/specs/prune-boot-dead-code/spec.md、tasks.md、checklist.md(保留不动)· 复核基线 644c8fb · 2026-10-19
逐条复核
| 原条目 | 结论 | 2026-10-19 复核(基于 644c8fb) | 状态 |
|---|
| A | 删除 OTAHandler::ota_stateota_time | 全仓 grep 0 命中 | 仍成立 |
| B | 删除 handleOTAMessage 旧接口 | 0 命中;链路统一走 handleLinkMessage | 仍成立 |
| C | 删除 sendDATA_ACK 两个重载 | 0 命中 | 仍成立 |
| D | 删除 can_dma_init 占位 | 0 命中;canfd_config 中无调用 | 仍成立 |
| E | 删除 BootPlatform 及其 4 个预留接口 | 0 命中 | 仍成立 |
| F | 删除 SPI0_IRQHandler 空壳 ISR | 仅启动文件 [WEAK] 处出现;SpiOta.cpp:725-727 仍禁用 SPI0 中断,未使能 SPI0_IRQn | 仍成立 |
| G | 删除 .bak 备份与 RTE 冲突副本 | 仓库中已不存在 | 仍成立 |
| H | C 包装层审计(保留 delay_1ms/1us、system_soft_reset、EXTI/CAN IRQ) | 保留项仍有调用方;spi_ota_* 仅剩类型名 spi_ota_frame_type_t | 仍成立 |
| I | 注释一致性(已删符号 0 命中) | 已删符号仍 0 命中;但出现新的注释漂移(见 R39) | 部分退化 |
| J | 行为零变化 | 该次提交(3377a2e)之后又有 10 个功能提交,行为已演进,此项仅对当时快照有意义 | 不再适用 |
| K/G2.2 | 编译验证(当时未执行) | 仓库仍无 CI 与构建产物,无法从仓库证实;且构建依赖仓库外 spi_link(R31),克隆后无法独立编译 | 仍未完成 |
| L | “不漏不错”自检 | 当时范围内成立;之后新增 branchToApplication(未使用)、HW_*SyncManChannel/HW_SetLed 等死代码(R30、R39) | 需续做 |
复核方法
for s in ota_stateota_time handleOTAMessage sendDATA_ACK can_dma_init get_reset_cause unused_pin_init \
print_system_clock_info scanAppFlashContent getResetCause initUnusedPins printSystemClockInfo \
BootPlatform onSpiInterrupt spi_ota_irq_handler spi_ota_cs_exti_handler systick_config delay_1s \
delay_decrement USART0_init enter_deep_sleep check_sleep; do
grep -rn "$s" --include=*.c --include=*.cpp --include=*.h GD32E50X_BOOT/ # 结果均为 0
done
grep -rn SPI0_IRQHandler GD32E50X_BOOT/ # 仅 startup_gd32e50x_cl.s [WEAK]
grep -n nvic_irq_enable GD32E50X_BOOT/device/SpiOta.cpp # 仅 EXTI10_15_IRQn,SPI0 未使能
建议续做(prune 第二轮)
| 目标 | 位置 | 说明 |
| branchToApplication | GD32E50X_BOOT/sys/OTA.cpp:25-37 | naked 跳转函数,无调用方 |
| HW_Enable/DisableSyncManChannel、HW_SetLed、HW_Reset/SetALEventMask、HW_GetSyncMan、s_alEventMask | GD32E50X_BOOT/comm/ecat/boot_ecat_hw.cpp:649-665 等 | SSC 5.11 未调用,且其中两处写错寄存器 |
| escResetForJump(被注释调用) | GD32E50X_BOOT/comm/ecat/boot_ecat_hw.cpp:511,552 | 应先决定恢复还是删除(见主报告 R15) |
| 注释漂移 | ota_layout.h:5、config.h:19、OTA.cpp:138、OTA.cpp:957-958 | 路径、“见上方注释块”、配置字数量、过时行号 |
| 编译验证 | — | 先把 spi_link 纳入仓库,再以 CI 跑 cbuild 完成原 K/G2.2 项 |