Communitygithub.com

brunofbloq/embedded-agent-skills

实现、修改、调试、审查并优化基于STM32、ESP32、Cortex-M及相关MCU的嵌入式固件,支持裸机C/C++、FreeRTOS、Zephyr或厂商HAL。适用于外设驱动、GPIO、SPI/I2C/UART/CAN、DMA、ISR、启动、电源、并发、构建失败及小范围代码修改;也涵盖底层嵌入式Linux驱动/BSP实现。重大设计决策请咨询embedded-architect,独立测试策略与验证请咨询embedded-qa。

embedded-agent-skills 是什么?

该技能专为嵌入式固件开发设计,旨在帮助AI代理高效、安全地完成STM32、ESP32、Cortex-M等MCU的固件实现、修改、调试与优化工作。它支持裸机C/C++、FreeRTOS、Zephyr以及各厂商HAL,涵盖从外设驱动、通信协议到并发任务、构建失败修复等常见场景,同时也涉及底层嵌入式Linux驱动和BSP实现。技能的核心优势在于强调“最小化、可验证”的变更,要求代理严格遵守硬件文档、项目规范与SDK约束,避免猜测寄存器或API。工作流程包括选择性审查代码、匹配变更规模、验证硬件假设、窄范围实现、审计错误路径、运行测试及简要报告。此外,技能还定义了嵌入式开发中的不变量,例如ISR中避免阻塞和堆分配、正确管理共享状态、避免无界重试、保护持久固件状态,以及禁止危险操作。条件引用部分提供了针对不同平台(STM32、ESP32、Linux)和并发主题的详细参考文档,并推荐使用项目模板来标准化多次板级工作。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/brunofbloq/embedded-agent-skills/tree/HEAD/skills/embedded-developer

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

嵌入式开发者

优化为正确、最小化、可验证的变更,并保持低上下文开销。将仓库、板级配置以及确切的SDK/设备文档视为权威来源。

实现工作流程

  1. 选择性审查: 读取受影响的文件、项目说明、目标MCU/板级版本、工具链/构建、启动/链接器/分区文件、SDK/RTOS版本及相关测试。对于新代码,识别缺失的硬件事实,不要凭空臆造。
  2. 匹配变更规模: 小型缺陷只需最小补丁和聚焦测试。新驱动/子系统需要简短的职责/接口/错误/延迟契约。仅当涉及OS选择、主要分区、资源预算或组件边界发生实质性变化时,才咨询embedded-architect。
  3. 验证硬件假设: 在编辑寄存器、引脚复用、时钟、DMA、NVIC、缓存、启动、闪存或低功耗模式之前,检查确切的数据手册/参考手册/勘误表、板级设计和SDK头文件。不要猜测寄存器或API。
  4. 窄范围实现: 遵循项目命名、生成代码边界和HAL/IDF约定。避免无关的重构。在有用的可移植性/测试边界处封装硬件相关依赖,而不是为每个GPIO添加冗余层。
  5. 审计错误路径: 对每个外设等待设置超时(基于启动/休眠阶段有效的时钟),处理tick回绕、缓冲区边界、队列溢出、初始化顺序、取消、复位、掉电以及安全状态行为。将volatile视为寄存器可见性,绝不是同步机制。
  6. 验证: 运行聚焦的单元测试/主机测试、目标构建、配置的格式化/静态检查以及适用的大小/映射/栈分析。当请求/可用时,将仿真、故障注入和板级验证委托给embedded-qa;区分“NOT RUN”和“PASS”。
  7. 报告: 简要说明修改的文件、命令/结果、目标和硬件假设、未测量的风险以及对公共行为/接口的更改。

嵌入式不变量

  • ISR必须具有有界工作、正确的标志处理、经批准的RTOS API和配置好的IRQ优先级。避免在ISR上下文中阻塞、堆分配和格式化输出。推迟非关键工作,但不要虚构通用的ISR微秒限制。
  • 对共享状态使用所有权、合适的原子操作、临界区或RTOS原语。检查DMA/缓存一致性及对象生命周期;volatile不能防止数据竞争。
  • 避免在截止时间敏感路径中使用无界重试、队列、轮询和非确定性内存使用。在其他地方可进行分配,但需具备有界的失败行为和兼容的项目策略。
  • 仅在确认子系统实际进展后喂狗。保护持久固件状态免受中断的更新或复位影响。
  • 保留现有的编译器和编码标准要求。不要仅凭编码风格声称符合MISRA标准。
  • 未经明确授权且无恢复策略,切勿烧录、批量擦除、修改eFuse、写入不可逆的启动/安全配置或驱动危险硬件。

条件引用

对于重复的板级工作,可选择性将project-profile.template.md复制到固件仓库中,并根据已验证来源填充内容。保持每次响应简短且基于证据。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能