这些skill,让AI学会编译代码,SWD烧写调试,串口收发,逻分抓波形。一句话,完成几天的工作

前  言

Coding agent和基座模型的飞速发展,极大的提高了前后端开发效率,而嵌入式MCU软件开发,由于环境复杂,并且需要通过各种硬件设备(调试器,逻辑分析仪,USB-to-TTL模块等等)帮助调试和烧录,即使使用了codex/claude code这种顶级的coding agent,也让人感觉有点美中不足。

本文将会演示利用skill,一句话让AI从零开始,实现MCXA344对Arduino的支持。

这个演示需要以下skills:

正  文

话不多说,是骡子是马拉出来溜溜。

下面的演示使用的是codex cli + gpt-5.5 high。

Code is cheap, show me the prompt

首先,我们创建一个文件夹,把MCXA344的arm gcc版本的SDK和FRDM-A344板子的原理图扔进来。

1.png

然后启动Codex cli,通过goal模式,输入以下提示词:

“/goal请帮我实现MCXA344 FRDM板子的arduino支持,至少实现arduino的串口和GPIO。板子已经和电脑连接好,串口是com74,salease逻辑分析仪的通道15连接了芯片的P3_22。

你可以使用skill nxp-mcu-build-verify进行编译验证,用mcu-debug-probe进行下载和调试,用saleae-logic和逻辑分析仪检测信号,用using-serial-devices接收串口数据。

板子的原理图是spf-95730_a.pdf,arm gcc的SDK是SDK_26_03_00_FRDM-MCXA344。验收标准是要提供可以工作的串口和GPIO操作的示例。”

其实这里有点保守了,正常来说,不需要提示Codex应该使用什么skill,Codex完全可以自己判断。

上面这些就是所有需要我做的工作,从输入提示词之后,后面的所有操作都是AI自主完成的。而我则化身"Yes"工程师,只需要敲几下回车键,对Codex提出的方案说"Yes"。

然后天才程序员Codex就进行了规划:

2.png

完成规划后,Codex就按照规划开始了代码编写,写代码对天才程序员Codex可谓是易如反掌,Codex不仅写完了代码,还用mcu-build-verify这个skill完成了编译验证:

3.png

重点是完成代码编写后,Codex开始利用skills,将程序下载到板子里,并计划验证串口和P3_22的波形输出:

4.png

和我们人类工程师进行嵌入式开发一样,代码编写完成编译成功,并下载到板子里,只是万里长征的第一步,我们得实际上板验证调试:

5.png

从上面可以看到,天才程序员Codex并没有一把通过,当Codex发现程序有问题之后,很快捋清了调试的思路。

接下来按部就班进行调试:

6.png

令我大吃一惊的是,Codex并没有像无头苍蝇一样四处乱撞,而是精准地通过SWD调试,有条不紊地排查,甚至解决了一个Hardfault问题!我相信即使我亲自debug,也很难这么快解决这个问题。

做完这些还没完,Codex还进行了自我审计,确保所有的成果符合我们最初的要求:

7.png

还给出了简单明了的readme文档:

8.png

我也真人实际验证了串口输出和它抓到的逻辑分析仪的波形,都符合我的要求:

9.png

10.png

未来已来

可以看到,在这些skills的加持下,Codex的工作流程和思路不亚于一个资深的嵌入式工程师,而Codex完成上述工作,用时不到30分钟。

扪心自问,同样的工作,尤其是我还不了解Arduino的架构,我可能需要花费十几倍的时间。

虽然这些skill都是我做的,但是我没想到组合起来使用能达到这么好的效果。这给我带来了很大冲击:当我们能通过skill/MCP和工作流编排等方式,让AI在进行嵌入式MCU开发的时候能够完全闭环(即上板验证,调试,抓波形等等),能碰发出什么样的火花?“Code is cheap, show me the prompt”这句玩笑话,最终也会在嵌入式领域成立吗?

未来已来,你准备好了吗?

小  结

本文使用和提到的所有skill,都以Apache-2.0的许可证开源在github,欢迎大家试用和指导,目前还在开发的早期阶段,主要的测试平台是Windows,部分skill在MAC OS下进行过简单验证,难免会有bug,我会持续更新迭代,欢迎大家提issue和PR。

建议大家用一个新的session单独去让coding agent安装这些skill和依赖,安装方法也很简单,就把这些skill的地址贴给AI,告诉AI“帮我安装这些skill和依赖“。然后真正的开发任务重新开一个session进行,避免这些杂活污染开发任务的上下文。

来源:恩智浦MCU加油站

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。