1.9 KiB
1.9 KiB
GPIO 实施计划契约
原理图或 GPIO List 导致 GPIO/Pinmux/DTS 变化时,在写代码前创建:
doc/bsp_adaptation/inputs/gpio_plan.json
CSV 可作为附加审核视图,但不能替代该计划。计划顶层包含 schema_version=1、项目名、验证模式、来源、确认信息和 signals。每个信号至少包含:
function:稳定的板级功能名;pad、mux;gpio:GPIO 时写A14、C17、PWR22等,非 GPIO 写null;direction:input、output、peripheral或none;active_level:high、low、paired、unknown或null;boot_value:输出为0/1,其他方向为null;runtime_owner;dts_consumers:已知的旧/新消费者数组;source_evidence:带页码、表格行或文件位置的来源数组;芯片侧证据必须包含自动选中的内置表路径、SHA-256、工作表名和 Excel 行号;decision:confirmed、inherited、no-gpio、provisional或blocked;note。
执行:
python3 scripts/bsp/validate_gpio_plan.py <gpio_plan.json>
校验器检查字段、Pad/GPIO 重复、方向与启动值、GPIO/非 GPIO 语义和决策状态。写代码前向用户展示同一份实施表;用户确认后写入 confirmation.confirmed=true、确认时间和摘要,再次运行校验器。
只有 confirmed、inherited 和 no-gpio 行可以进入已确认实现。provisional 或 blocked 行必须先补证据或取得明确硬件决定。no-gpio 行不得生成虚构 GPIO 代码,应移除参考项目旧控制并留下包含功能名的注释。
对内置目录覆盖的 CV18 芯片,先按 内置 GPIO 资料目录运行 query_builtin_pinout.py,再建立计划。项目原理图或 GPIO List 负责说明板级连接与目标用途;内置表负责证明 Pad、脚号和 FMUX 能力,二者不能互相替代。