A7:五路配置表 + 表驱动遍历 + 启动自检
六组编号(INA 地址 / DAC 片通道 / 三个按键位 / EDL 位 / 两根 EN 的 GPIO)拼成 一张 const 表 rail_cfg(1..5),没有一列是顺排的。开机 rail_selftest() 把它和 A3~A6 四个驱动的表逐格对账,再查全板引脚重复 / 越界,不过就 abort —— 那四个自检谓词至此全部有了调用点。 判据拎成 rail_selftest_table(t) 单独可调:真表是 const 的,不这么做就没法证明 「真有事的时候查得出来」。测试复制一张表出来逐样改坏,六种坏法都验过。 顺带修一个真 bug:HAL 两侧 GPIO 边界写的是 pin < 48,而 EFUSE_EN2 就在 IO48 上 —— CH2 的 eFuse 既开不了也关不掉。sim 与 ESP 两份都改成 0~48 含。 9 条 ctest(131 个用例)全绿,idf.py build 通过,16 条注错 15 条变红 (唯一没红的那条与原因记在 HANDOFF.md)。 Co-Authored-By: Claude Opus 5 <[email protected]>
这个提交包含在:
@@ -5,5 +5,6 @@ idf_component_register(
|
||||
SRCS "app_main.c"
|
||||
"version.c"
|
||||
"rail.c"
|
||||
"rail_cfg.c"
|
||||
INCLUDE_DIRS "."
|
||||
REQUIRES phonerail_hal drv)
|
||||
|
||||
在新工单中引用
屏蔽一个用户