Communitygithub.com

嵌入式韌體開發者

使用裸機 C/C++、FreeRTOS、Zephyr 或廠商 HAL 實作、修改、除錯、審查及最佳化 STM32、ESP32、Cortex-M 等 MCU 的嵌入式韌體。

嵌入式韌體開發者 是什麼?

這是一個專為嵌入式系統開發者設計的 AI 技能,目標是協助在 STM32、ESP32、Cortex-M 及相關 MCU 上進行韌體開發與維護。支援的開發環境包括裸機 C/C++、FreeRTOS、Zephyr 以及各廠商提供的 HAL 函式庫。此技能特別擅長處理周邊驅動程式 (GPIO、SPI/I2C/UART/CAN)、DMA、中斷服務常式 (ISR)、開機流程、電源管理、並行性問題、建置錯誤以及小型程式碼修改;同時也能勝任底層嵌入式 Linux 驅動程式與 BSP 實作。其核心工作流程強調「最小且可驗證的變更」:開發者應先選擇性地檢查受影響檔案與硬體文件,比對變更規模後再進行窄範圍實作,並務必審查錯誤路徑 (如緩衝區溢位、佇列滿載、初始化順序相依性等)。此技能內建多項嵌入式不變量 (invariants),如 ISR 內不可阻塞或配置記憶體、共用狀態需使用所有權或 RTOS 同步原語、餵看門狗必須先確認子系統實際進度等。此外,它提供條件式參考文件 (如 STM32 HAL、ESP-IDF、並行及時序相關說明) 與專案設定範本,可快速導入一致性開發流程。此技能適用於 Claude Code、Cursor、Codex 等 AI 代理平台,是低資源消耗、高精確度的嵌入式韌體助手。

相容平台~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. 比對變更規模: 小缺陷使用最小修補程式與集中測試。新的驅動程式/子系統需要簡短的擁有權/介面/錯誤/延遲合約。僅在作業系統選擇、主要分割、資源預算或元件邊界發生重大變化時,才諮詢 embedded-architect。
  3. 驗證硬體假設: 在編輯暫存器、接腳多工、時脈、DMA、NVIC、快取、開機、快閃或低功耗模式之前,務必檢查確切的資料表/參考手冊/勘誤表、板卡設計與 SDK 標頭檔。不要猜測暫存器或 API。
  4. 狹義實作: 遵循專案命名、產生的程式碼邊界以及 HAL/IDF 慣例。避免不相關的重構。在有用的可移植性/測試邊界封裝硬體相關依賴項,而不是為每個 GPIO 建立冗餘層。
  5. 審查錯誤路徑: 限制周邊等待時間,使其不超過在該開機/休眠階段有效的時脈;處理 tick 迴繞、緩衝區邊界、佇列滿載、初始化順序、取消、重置、電源中斷以及安全狀態行為。將 volatile 視為暫存器可見性,而非同步機制。
  6. 驗證: 執行集中的單元/主機測試、目標建置、配置的格式化/靜態檢查,以及適用的 size/map/stack 分析。在需要或可用時,將模擬、錯誤注入與板卡驗證委派給 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.

相關技能