C 裸机驱动调试:把这次排查留下可复用的规则
裸机调试最怕“这次改寄存器值就好了”。没有条件、现象和验证,经验无法复用,也容易在换芯片或换编译器后失效。
记录决策而不是结论
每次问题处理至少写下:硬件版本、时钟树、寄存器初值、触发条件、观测方式和修复后的证据。例如 DMA 异常,不只记录“加了延迟”,还要说明是哪一个状态位未清、为什么该顺序有效,以及是否影响其他通道。
把这类记录整理成简短的驱动检查项:时钟是否开启、引脚复用是否匹配、清中断的顺序、缓存一致性要求、超时后的复位步骤。清单应链接到手册章节和对应测试,避免变成口口相传的规则。
让规则能被验证
尽量把检查放到编译期或测试中:寄存器字段用命名常量、参数做范围校验、关键时序用逻辑分析仪或仿真验证。可重复的证据比“经验判断”更可靠。