
一、核心缺陷 1:硬件信息幻觉 —— 编造寄存器、引脚、外设宏,致命且隐蔽
编造不存在的寄存器地址、HAL 宏定义、传感器常量(例如TCS34725_INTEGRATIONTIME_700MS未定义)
混用同系列不同型号 MCU 的引脚映射,原理图 PA0 和 AI 写的 PB0 完全冲突 把旧版 SDK API、停产芯片驱动当成当前工程可用代码

二、核心缺陷 2:分不清 “编译正确” 和 “硬件功能正确”,时序 / 物理约束完全弱感知
容易忽略外设上电顺序、等待稳定延时、复位时序;写出来的驱动逻辑在仿真 OK,真实板子概率性失败 RTL/Verilog 场景下,分不清软件串行逻辑和硬件并行时序,经常出现锁存器推断、跨时钟域、亚稳态风险,只保证语法可综合,不保证时序收敛 不理解 Debug (-O0) 和 Release (-O2) 行为差异:很多代码调试正常,开优化后栈溢出、未定义行为爆发、临界区被优化掉

编译通过 ≠ 时序合规;仿真通过 ≠ 上板稳定,而通用 LLM 很难天然绑定波形、逻辑分析仪、J-Link 故障日志这类物理证据
三、核心缺陷 3:缺乏工程上下文孤岛 —— 私有原理图、自定义协议、团队规范完全失忆
本项目原理图、板级改动、自研底层驱动、私有通信帧格式、客户定制安全规则 工程约束:栈大小、RAM/Flash 分区、链接脚本、看门狗策略、故障处理规范大模型只能基于你单次 prompt 里粘贴的片段做局部生成,没有持续、可信的工程知识库绑定。常见现象:你要 “基于本项目现有驱动扩展传感器”,AI 直接重写一套独立逻辑,和已有中断、互斥锁、资源管理冲突;团队多年沉淀的 HAL 封装、错误码规范、安全编码规则经常被无视。
四、核心缺陷 4:实时性、资源约束意识薄弱,容易写出 “资源爆炸型代码”
随手写动态内存分配、递归、大局部数组,直接造成栈溢出、内存碎片,在 Cortex-M 这类小资源平台直接 HardFault 大量浮点运算,不考虑 FPU 开关、精度、NaN/Inf 故障分支,缺少故障保护逻辑 生成不带临界区保护、不考虑中断抢占的共享变量代码,埋下偶发竞态 bug 做 TinyML 部署时,低估内存带宽、缺少量化 / 算子融合 / 对齐优化,直接内存溢出、推理超时

五、核心缺陷 5:故障调试能力弱 —— 只能 “文本猜 bug”,不能接入真实硬件诊断流
无法直接读取 J-Link/ST-Link 寄存器、异常栈、波形文件、逻辑分析仪抓包 对非确定性、概率性硬件故障推理弱;擅长 “按报错文本改代码”,不擅长溯源物理层根源 安全 / 功能安全场景(IEC61508、ISO26262)缺陷明显:自动生成代码缺少可追溯性、形式化验证、覆盖度证明,不能直接用于高可靠产品
六、核心缺陷 6:RTL / 数字硬件设计的特有短板:并行逻辑、约束、综合 / 时序鸿沟
容易把软件顺序思维套到硬件并发,错误处理组合逻辑、时序逻辑、复位策略 缺少 SDC 时序约束、时钟域划分、异步握手、亚稳态处理意识 可综合 ≠ 时序收敛;仿真通过 ≠ 流片后稳定;这类缺陷在学术评测里被反复验证:语法错误容易修复,但深层功能 / 时序错误很难靠提示工程根治
七、理性定位:不是 “AI 不行”,是使用范式错了
八、工程避坑建议(实操干货,方便读者收藏)
做嵌入式 prompt 时,强制带上完整约束:芯片型号、SDK 版本、原理图引脚、栈 / 内存限制、是否 RTOS、上电时序要求、安全等级 建立 “先查手册,再看 AI” 流程;对寄存器、外设宏必须对照 datasheet 二次核验 AI 产出代码强制过:静态检查、栈用量分析、仿真、上板实测、Release 优化版复测 高可靠产品严禁直接采信 AI 生成底层驱动 / RTL;必须保留可追溯、评审、测试报告 长期方向:不要只用通用大模型,优先领域微调 + 绑定工程知识库(datasheet、原理图、git、链接脚本) 的嵌入式专用 Agent
夜雨聆风