来源:抖音视频 · 电流秩序 · 约 2 分 22 秒 · 作品 ID 7698624652372905270
写底层驱动前,先把原理图导出网表,让 AI 总结成一份针对主控 MCU 的引脚资源说明(作者叫它 mcu_pin.md),放进项目的 hardware/ 目录,并在 AGENTS.md 或项目 SKILL 里写一条规则:「开发驱动前先查这个文件」。之后让 AI 写驱动,你只说「帮我开发板载 Flash 驱动」就行,不用再一遍遍交代用的是哪路 SPI、片选接哪个脚。
如果你的实际工程采用 drv / bsp / app / hal 之类分层,这条和分层工作可以互补:分层解决代码结构,这份文档解决「AI 怎么知道板子长什么样」。
1. 痛点:接线信息每次都要重说一遍
此处配图暂缺,参阅原帖。
写底层驱动前,先得弄清板子上器件怎么连的:屏幕接哪个 SPI、串口用了哪两个脚、哪些是输出控制、哪些是模拟输入。传统做法是一次次翻原理图,或者做成表格再一次次查看;到了 AI 时代,如果不处理,就变成每次在提示词里重复交代一遍接线。
2. 做法:把原理图总结成一份 MD 文档
此处配图暂缺,参阅原帖。
作者把这个文档命名为 mcu_pin.md,放在 hardware/ 下。理由是:MD 是最适合 AI 读取的文档格式之一(各种 Skill 都是 MD 格式)。
文档里详细清晰地描述各个外设与 MCU 之间的连接关系:网表网络名、MCU 端口、物理脚号、复用功能(AF)、直连到器件的哪个脚。
原帖里真实的表格长这样(NOR Flash U7 / W25Q128JVSIQ 那一节):
此处配图暂缺,参阅原帖。
最值得抄的不是表格,是那几条「边界声明」
此处配图暂缺,参阅原帖。
视频里这份文档的开头藏着一整套防 AI 幻觉的设计,这部分比表格本身更值钱:
| 声明 | 作用 |
|---|---|
板级连接唯一来源:prism_h7_Netlist_V1.1,不混入其他版本网表 |
防止 AI 拿旧版本网表的信息来回答 |
| 物理脚号来源:引脚 csv + 数据手册管脚表 | 说清哪些是查表得来的 |
| AF、GPIO 模式、有效电平、软件用途是交叉核对现有驱动得到的,不是网表直接给的 | 明确区分「事实」与「推测」,避免 AI 把推测当事实 |
| 器件时序、电气限制仍需查对应手册 | 划出文档的适用边界 |
| 网表没定义外接模块型号,不能仅凭连接器推断协议或 I²C 地址 | 直接堵死最典型的一类幻觉 |
| 网表「未列出」≠ 已确认可用于新外设 | 防止 AI 把「没写」当成「可以用」 |
| 整理日期 + 网表 SHA-256 | 硬件改版后能立刻发现文档过期 |
3. 四步落地
此处配图暂缺,参阅原帖。
- 从原理图导出网表文件(作者说具体导出方法见他之前的视频);
- 让 AI 从网表总结出一份针对主控 MCU 的引脚资源说明,即
mcu_pin.md; - 在项目规则文件
AGENTS.md或项目 SKILL 里提及这个文件,提醒 Agent 开发驱动时要查询它作为参考; - 后续开发时 Agent 自己查,你不用再交代接线。
配套动作(视频强调):硬件有改动就同步更新。过期文档比没文档更危险——它会让 AI 自信地给出错误引脚。
4. 效果:同一句需求,两种反应
此处配图暂缺,参阅原帖。
视频里的真实例子:让 AI 移植 Flash 驱动,只说「帮我开发板载 Flash 驱动,支持初始化、读取 JEDEC ID、数据读取、扇区擦除和分页写入」。
Agent 的回复(画面原文大意):查阅 hardware/mcu_pin.md,确认板载器件为 W25Q128JVSIQ,使用 OCTOSPI1 + OCTOSPIM 端口 1,CLK=PB2、CS=PG6,IO0~IO3 分别为 PA2、PD12、PA3、PA10;FLASH 与 PSRAM 共用 OCTOSPIM 管理,会复用现有总线封装并保留 PSRAM 路由,继续核对擦写时序及映射访问的并发约束。
注意最后那句——Agent 不只是查到引脚,还自己指出了总线复用与并发约束这个真风险。外设引脚越多越杂乱时,这种做法的优势越大。
5. 为什么不直接让 AI 读网表
此处配图暂缺,参阅原帖。
视频的回答很实在:当然可以直接读。只是:
- 网表包含整块板子的连接信息,每次开发都要重新查找和梳理;
- 提前整理成面向 MCU 的引脚资源说明,信息更集中;
- 自己方便核对、Agent 后续方便查阅;
- 相对于读网表,读信息集中的 MD 也能省 token。
6. 怎么套到你的工程上
你做 H 题智能车和四足机器人,两块板子都可以这么做(下面是我的落地建议,非视频原话):
- 嘉立创/立创 EDA 里直接导出网表,和原理图一起放进
hardware/,顺手记下版本号。 - 让 AI 生成
hardware/<板名>_pin.md,要求它包含:元信息(网表版本 + 日期 + 校验值)、按外设分组的表格(网络名 / 端口 / 物理脚 / AF / 直连器件脚)、以及上面那几条边界声明。 - 在
AGENTS.md里写死一条规则:「涉及底层驱动或管脚定义时,先查hardware/<板名>_pin.md;需要进一步核对时使用文档标注的对应版本网表;发现文档与驱动代码不一致时明确指出,不要凭文件名或历史结论猜测。」——这最后一句是视频里的原话,也是最有用的一条。 - 和分层架构对齐:
bsp层的管脚定义可以从这份文档生成,drv层的总线封装照文档里的「现有驱动」一列复用,避免同一路 SPI 被两处重复初始化。 - 改板必更新。 可以在文档里写「硬件版本变更后必须重新生成」,并要求 AI 报告它依据的是哪个版本。
顺带一提,这其实就是 008 那条「别一句话让 AI 干完」在嵌入式上的解法:不是靠提示词写得更长,而是把反复要交代的信息固化成项目里的一份文档。
来源与关联索引
- 来源
- 个人知识库
- 原笔记
- 抖音收藏待整理/018-把原理图做成MD文档.md
- 资料性质
- 工程笔记。原文的版本、来源与验证边界继续保留。