六组编号(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]>
11 行
372 B
CMake
11 行
372 B
CMake
# ESP-IDF 侧的 main 组件。
|
|
# app_main.c 是 ESP 专用入口;其余 .c 必须同时在宿主机上编得过
|
|
# (新增文件时两处都要加:这里 + host/CMakeLists.txt 的 PHONERAIL_CORE_SRCS)。
|
|
idf_component_register(
|
|
SRCS "app_main.c"
|
|
"version.c"
|
|
"rail.c"
|
|
"rail_cfg.c"
|
|
INCLUDE_DIRS "."
|
|
REQUIRES phonerail_hal drv)
|