1. AI 能给嵌入式开发带来什么

做嵌入式开发的人,日常里有一大块时间花的不是”设计”,而是”操作”。

翻数据手册比对芯片参数、手动配编译链、等烧录、盯串口 log、反复试 PID 参数。这些事情不算难,但碎、耗时间、容易出错。一个变量溢出或者中断优先级搞反了,你可能要对bug找一下午。

AI 现在能把这些活接过去一部分。AI 不只是能写代码——而是你告诉它一个方向,它自己去编译、烧录、看 log、调参数,做完回来告诉你结果。你可以把精力放到系统架构和关键决策上,而不是被绑在”调一下、等三分钟、看一眼日志、再调一下”这种循环里。

2026 年的情况是:Agent 帮助 ai 调用 MCP 和读 Skills,让 AI 直接操作硬件工具链。调 EDA 画板、ssh 上板子跑命令、GDB 分析崩溃现场。直接闭环完成一个目标,编译,运行,调试的步骤都可以交给ai来做。

只需要安装agent工具并安装下面的这些工具就可以让ai拥有闭环调试的能力,下面所有工具都是挂在 Agent 上用的,安装配置参考 /posts/52013

2. 做方案和画板子

NextBoard

LeoKemp223/NextBoard 把硬件选型做成了一套 AI Agent 流水线。

你输入一个需求,例如”带 Wi-Fi 的温湿度采集器”,它自动做需求确认、芯片选型(给国产优先/混合折中/海外主流三套对比)、下载数据手册、算成本、出模块框图,最后还有独立评审 Agent 从成本和供应链风险角度打分。

安装:

1
2
3
4
5
6
# 全局安装
./scripts/install.sh --global --platform claude

# 或通过 marketplace
claude plugin marketplace add LeoKemp223/NextBoard
claude plugin install nextboard-hardware-solution

装好后输入 /hardware-solution 即可启动该工作流。

但我得泼盆冷水。 AI 做器件选型目前还不太靠谱。

推荐的芯片可能已经停产、价格虚高,或者根本没考虑你项目的实际情况,因为行情随时在变,需求随时在变,ai无法直接考虑到这些(ai的语料库只会在训练阶段更新)。更务实的做法是先去 立创开源平台 搜类似方案,看看别人实际用了什么器件、布线怎么走的,心里有数之后再让 AI 帮你细化方案。现阶段做硬件选型还是人来做比较靠谱,ai只能做辅助。

嘉立创 EDA AI

方案定了之后,落到原理图设计和 PCB 绘制上,可以用嘉立创官方最新推出的 Run API Gateway 扩展(详细教程可参考官方推文:嘉立创EDA,能用AI了?!还能免费使用……)。

该扩展为 AI 工具提供了完整的 WebSocket API 网关桥接,链路架构为:
AI 客户端 (Claude Code / OpenCode / QwenCode) → easyeda-api Skill → Bridge Server (端口 49620-49629) → Run API Gateway 扩展 → 嘉立创EDA 专业版

它能调用嘉立创 EDA 绝大部分功能:根据你的自然语言指令调用元件库、生成电路模块、进行原理图修改与布局布线辅助。

安装与配置步骤

  1. EDA 侧安装扩展
    打开 嘉立创EDA 专业版 → 顶部菜单【高级】→【扩展管理器】→ 搜索并安装 Run API Gateway。安装后勾选「允许外部交互」与「显示在顶部菜单」,顶部出现 API Gateway 菜单。

  2. 安装 easyeda-api Skill
    在终端执行全局安装命令:

    1
    npx clawhub@latest install easyeda-api --workdir "$HOME" --dir skills

    若网络受限或命令安装失败,可手动下载 easyeda-api.zip,解压到 ~/skills/easyeda-api/ 目录(确保 SKILL.md 位于该目录下,不要多层嵌套)。

  3. AI 客户端准备

    • 如果使用 Claude Code,确保配置中能读取全局 skills 目录;
    • 如果使用 OpenCode,终端运行 npm install -g opencode-ai 安装,启动后输入 /connect 连接模型(支持绑定 API Key 或直接使用 OpenCode 免费模型)。
  4. 一键启动连接
    在 AI 客户端(Claude Code 或 OpenCode)中直接输入:

    1
    嘉立创EDA,启动!

    Skill 会自动启动本地 Bridge Server 并与 EDA 侧扩展完成握手验证。

  5. 验证与实战调用
    连接成功后,先发送只读验证指令:请检查当前嘉立创EDA窗口是否连接成功,返回当前窗口状态。链路通畅后,即可用自然语言下发具体硬件设计任务,例如:“生成 ESP32-C3 最小系统电路”、“给电源输入部分加上 ESD 保护电路”等。

3. 编译、烧录、调试

嵌入式开发最烦人的不是写代码,是写完代码之后的事。编译调工具链,烧录配 OpenOCD 或 J-Link,调试开 GDB、接串口。每个操作单独看都不难,但换一个芯片平台就要重新学一遍。

LeoKemp223/embed-ai-tool 干的事很简单:给 AI 装上操作这些工具链的能力。23 个 Claude Code Skill,覆盖整条链路:

embed-ai-tool 终端界面

  • 编译:cmake、keil、iar、platformio、esp-idf
  • 烧录:keil、openocd、platformio、esp-idf、jlink
  • 调试:gdb+openocd、platformio、jlink、rtos-debug(FreeRTOS/RT-Thread/Zephyr)、memory-analysis(map/ELF 解析)
  • 外设和协议:serial-monitor、modbus-debug(RTU/TCP)、can-debug、visa-debug(SCPI 仪器)
  • 分析:static-analysis(cppcheck/clang-tidy/MISRA-C)

embed-ai-tool 嵌入式全链路 AI 能力矩阵

安装:

1
2
3
4
5
# 一键装全部
npx skills add LeoKemp223/embed-ai-tool -g -y

# 或按需
npx skills add LeoKemp223/embed-ai-tool --skill build-cmake --skill flash-openocd -g -y

装完以后,你跟 Claude 说”编译当前工程并烧录到板子”,它自己识别工程类型(Keil 的 .uvprojx?CMake 的 CMakeLists.txt?ESP-IDF?),匹配工具链,执行编译,检测烧录器型号,走完烧录,回报结果。

要调试就说”在 main.c 第 42 行设断点看 crc 值”。想看串口输出就说”打开串口监控,过滤 ERROR 行”。RTOS 卡死了说”分析一下 FreeRTOS 任务栈,看看哪个任务溢出”。

注意:它不帮你装 Keil、IAR、gcc-arm-none-eabi 这些编译环境。那些还是得你自己装好。它做的是替你去调这些工具,省掉手动敲命令的时间。

4. 针对 Linux 板子:让 AI 直接上板操作

embed-ai-tool 的调试能力侧重 MCU 侧(GDB + 串口 + RTOS),如果你的板子跑的是嵌入式 Linux,yolejee/bsp_board_mcp 更适合。

它是一个 MCP Server,让 Claude Code 通过 SSH、串口、ADB-USB、ADB-WiFi 直连 Linux 开发板。不需要你手动 ssh 上去复制粘贴。

安装:

1
2
3
git clone https://github.com/yolejee/bsp_board_mcp.git
cd bsp_board_mcp
uv sync # Windows 双击 setup.bat

在项目根目录的 .mcp.json 中配置(SSH 为例):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"mcpServers": {
"linux-board-ssh": {
"command": "uv",
"args": ["--directory", "/path/to/bsp_board_mcp", "run", "python", "-m", "linux_board_mcp"],
"env": {
"BOARD_TRANSPORT": "ssh",
"BOARD_HOST": "192.168.7.2",
"BOARD_USER": "root",
"BOARD_KEY": "/home/you/.ssh/board_rsa"
}
}
}
}

串口模式把 BOARD_TRANSPORT 改成 serial,填 BOARD_SERIAL_PORT 和波特率。ADB 模式改 adb-usb(填 ADB_SERIAL)或 adb-wifi(填 ADB_WIFI_HOST)。

配好之后直接对 Claude 说:”看看板子内存情况”、”查这个 GPIO 中断触发次数”、”加载 ko 驱动,看 dmesg 有没有报错”。只读操作(read_dmesg、read_sysfs、read_proc、run_shell 等)不需要每次确认,破坏性操作(install_module、write_sysfs、reboot_board)需要批准。

一句话区分:embed-ai-tool 的调试面向 MCU/RTOS/裸机场景,bsp_board_mcp 面向 Linux 板子。两者不互斥,你的项目该用哪个取决于板子上跑的是什么。

5. 闭环调参:让 AI 自己试,试对为止

有些任务不是”查个 log”就能解决的。PID 调参是典型——参数对不对,要跑起来看才知道。会调的人十几分钟搞定,不熟的可能耗一天。

KINGSTON-115/llm-pid-tuner 让 LLM 自己闭环迭代。你告诉它”响应要快,但别超调”,它自己跑、自己看效果、自己调参数。

安装:

1
2
3
4
# Windows:从 https://github.com/KINGSTON-115/llm-pid-tuner/releases/latest 下载 exe
# 源码:
git clone -b dev https://github.com/KINGSTON-115/llm-pid-tuner.git
cd llm-pid-tuner && pip install -r requirements.txt

连接方式:单片机通过串口跑 firmware.cpp,持续上报 CSV 格式的控制数据(时间戳、设定值、输入、PWM、误差、P/I/D 分量)。上位机读串口,调 LLM API 分析响应质量,生成新参数写回单片机。

LLM 配置(config.json),国内中转站用 openai_claude 协议:

1
2
3
4
5
6
{
"LLM_PROVIDER": "openai_claude",
"LLM_API_BASE_URL": "https://你的中转站/v1",
"LLM_MODEL_NAME": "claude-sonnet-4-6",
"LLM_API_KEY": "sk-xxx"
}

工作流很直接:采数据→ LLM 分析(超调、稳态误差)→ 给新 P/I/D → 写入执行 → 观察。变差了自动回退到历史最佳,连续几轮满足阈值自动停。

这和以前手动调参的区别在于:AI 不会烦、不会累,可以连续迭代几十轮。你只需要告诉它方向,它自己去闭环到收敛。

6. 板子没有现成工具怎么办

上面这些工具覆盖的场景——STM32/ESP32、Linux 板子、PID 控制器——都有比较成熟的开发生态。但做嵌入式的都知道,大量国产 MCU 不在这份名单上。

Hi3863 就是这种情况。LiteOS 环境,编译和烧录是分开的,烧录前还得手动按一下复位键。embed-ai-tool 没适配,bsp_board_mcp 也不是给 LiteOS 设计的。

我的做法是自己给 AI 写工具

在设备端搭了个 TCP 服务端,用 /posts/49583 里那套OTA升级固件、固件里实现自动写 Flash、校验、重启。然后写了个 Python 发送脚本(tools/ota_sender.py),Claude Code 改完代码后可以调用这个脚本把固件推到板子上:

1
改代码 → 编译 → ota_sender.py 推固件 → 串口看结果 → 再改

以前手动烧录,改一行代码要三五分钟才能看到效果;走 OTA 之后几十秒一个循环。

这不是说每个项目都要写 OTA 工具。核心思路是:在应用层开一扇门让 AI 能够到你的设备。串口协议、TCP 服务、简单的 CLI 都可以。哪怕只是一个能收发指令的串口小程序,也比每次手动复制粘贴强。

7. 真正值钱的是什么

以前做嵌入式,最怕的是那种不复杂但很难找的 bug。变量溢出、中断优先级搞反、DMA 缓冲区没对齐——表面现象可能毫无关联,你对着串口盯半天,脑力全耗在排查上。

现在这些活可以丢给 AI。不是”AI 帮你跑一个工具”——而是你给它一个方向,它自己去做闭环。写完代码自己编译、烧录、看串口、查 log、定位问题、修改、重来,直到跑通。

Claude Code 不和板子交互时,它是代码助手。加上 embed-ai-tool,它能编译烧录调试。加上 bsp_board_mcp,它能上 Linux 板子查日志。加上 llm-pid-tuner,它能连续调参。板子太偏门?自己写个桥接脚本让 AI 够到它。

但工具层面的事说完了,有个更深的问题绕不开。

8. AI 写完了所有代码,然后呢

最近很多人问我同一个问题:用了 Claude Code 以后,客户提需求,几句提示词项目就出来了,代码都不用自己写,剩下就修修改改。他们问我——以后怎么办?还需要学编程吗?手写代码是不是已经变成”古法编程”了?

这个焦虑,用过 AI 的人应该都有。

嵌入式开发的本质是”组装”

先说一个基本事实:嵌入式这个工种,本质就是组装。

你用的芯片不是你的,Flash 不是你的,RTOS 内核不是你的,协议栈也不是你写的。你的工作是买来这些积木,搭起来,调通,让它能卖。大一点讲,IT 行业做应用开发全是这样——没有哪行代码是你发明创造的,你做的就是整合资源。

以前整合一辆”汽车”,买预控、买存储、买外设,最后组装调试,中间要走很长的路。现在 Claude Code 把这条路压短了,一句话的事。但本质没变,还是组装。

只是有一个东西变了:公司还愿不愿意为组装的时间付钱。

公司到底在为什么付钱

一家嵌入式公司,对研发侧的花费,过去就两块:为劳动时间付钱,为经验付钱。

劳动时间是什么?就是你坐在那敲代码、调参数、盯串口。经验是什么?往下细分就多了——工程经验、管理经验、研发经验。

AI 来了以后,第一块直接归零。你跟 AI 比时间?一个人学会的东西不可能瞬间复制给另一个大脑,但 AI 的参数一旦更新,下一秒全世界的 AI 都能用。不要跟 AI 比劳动时间,这是一条断头路。

但经验,公司还会付钱。

工程经验是你踩过的坑。AI 能写出代码,但那东西离量产有距离。产品只有在真实生产环境里跑起来、卖出去的时候,才会告诉你哪里不对。你打完补丁,走完这个循环,得到的就是工程经验。公司愿意为这个买单——因为一个高级工程师配 20 个 AI,能把劳动时间压到极致,但量产要踩的坑一个都跳不过去。

管理经验也在变。以前产品经理管 20 个研发工程师,用敏捷开发、V 字流程、瀑布模型来排期同步。未来你可能管一个人加 20 个 Agent。管理对象变了,但”把所有人的工作在环测试、在环集成、前后有序”这个需求没变。以前是为管人付钱,以后是为管 Agent 付钱。你现在要学的,是 Agent 怎么组织。

研发经验又是另一回事。工程经验是”我知道做得出来”,研发经验是”我不知道能不能做出来,但我愿意试”。世界大模型能不能跑通?AI 能不能替代人类?科学界没有定论。研发可能血本无归,但大公司愿意为这个砸千亿美金。这不是工程人员的事,是研究人员的事。区别在哪?搞工程不会吵架,搞研发天天吵——因为谁都不知道答案。

你要积累的是什么

所以回到那个问题:还用学编程吗?手写代码还有意义吗?

零基础当然要写,原理都不懂,AI为了快速达到目的,骗你那不带眨眼的。

但过了那个阶段,你要卷的东西不再是”多快写完一个驱动”。你要攒的是方案——在某个行业里,市场验证过的、能快速上线的、可维护可裂变的方案。然后带着这个方案去下一家公司变现。

你能把四个月的项目周期压到一个月,公司多出来三个月去铺渠道、跑营销——这三个月可能创造 60 万的业绩。你问他要 5 万,他是闭着眼睛给的。

以后不会再有”辛苦的程序员”了,996 的日子真的到头了。不是因为它不好,是因为靠堆人力的公司自己会发现自己一直在亏。市场验证得很快。

这就是未来的核心竞争力:把一个产品快速正确地组装出来,卖得出去,还能维护、还能复用到下一个产品。这件事的瓶颈不在代码,在你对架构的理解、你对 Agent 的掌控、你攒过的工程经验。

过去市面上有两条路——靠铆时间拼 996,或者靠经验走到管理层。接下来不是了。普通工程师也可以做管理,只不过你管的不是人,是 Agent。把架构和 Agent 工程学好,开发出来的产品能快速上线、可维护、能裂变到不同产品线,你就已经走到了那个位置。

最后,推荐一本我认为至今最好的嵌入式软件架构入门书:兆明嵌入式——C 语言面向对象编程·嵌入式实战。它把”怎么用 C 写出可复用、可维护的嵌入式架构”这件事讲透了,跟 AI 时代要攒的工程经验正好对口。

如果你已经有了c语言基础和嵌入式开发基础(例如STM32开发),想学架构设计,这本书是最好的起点。它的核心思想是”用 C 语言写面向对象的代码”,通过封装、抽象、模块化来提升代码的复用性和可维护性。无论是现在还是未来,这些都是嵌入式开发的核心能力。

另外推荐一个非常优质且实用的嵌入式设计模式开源项目:xuanlinzhu/DesignMode——设计模式-面向嵌入式软件开发。它详细总结了单例、工厂、观察者、状态机等经典设计模式在 C 语言嵌入式系统中的工程实现,配合面向对象的架构思想阅读,能帮助你进一步打牢模块化、低耦合的系统设计内功。