星標公眾號,讓嵌入式知識 “投喂” 不停歇!
接上篇:嵌入式專用的 AI 代碼審查 Checklist
在 Codex 里,Skill 本質上就是一個標準化的文件夾。把之前的審查要點做成 Skill,就是把“一堆規則文本”升級為“一個可被 Codex 自動識別和調用的工作流模塊”。

核心提示:截至 2026 年 5 月,Cursor、Codex、Claude Code 都已支持圍繞
SKILL.md組織能力。這意味著按本指南制作的 Skill,天然具備跨平臺兼容性,換工具也不用重寫。
Codex Skill 是一個封裝了可復用工作流的文件夾。它把“任務指令 + 腳本 + 參考資料”打包成標準化模塊,讓 AI 穩定執行特定開發任務。
它的核心價值在于:

打個比方:傳統 Prompt 像給 AI 一本 200 頁的全科手冊讓它從頭讀到尾,Skill 像只遞一本《嵌入式代碼審查專項手冊》,用到時才翻開。
一個標準的 Codex Skill 長這樣:
embedded-code-review/ # 技能文件夾(名稱即技能 ID)
├── SKILL.md # 核心入口文件(必需)
├── scripts/ # 可選:輔助腳本(Python/Shell)
│ └── check_embedded_smells.py
├── references/ # 可選:參考資料、詳細規范
│ └── review-checklist.md
└── assets/ # 可選:配置文件、模板
└── report_template.md
SKILL.md 是唯一必需的文件,其他都是錦上添花。

這是最直觀的方式——先讓 Codex 跑通一次審查流程,然后把流程固化成 Skill。
Step 1:在 Codex 中啟動一個新對話,手動執行一次完整的代碼審查:
請審查當前 Git diff。重點看嵌入式風險:
1. 中斷和主循環共享變量是否需要 volatile
2. DMA 緩沖區生命周期是否安全
3. 是否有阻塞式延時影響實時性
4. 是否修改了 CubeMX 生成區域
5. CMake 是否漏加源文件
只輸出問題、風險和建議,不要改代碼。
這個提示詞模板參考了 Codex 做嵌入式代碼審查的官方推薦寫法。
Step 2:等 Codex 完成審查、輸出結果后,直接說:
把剛才的流程固化成一個 Skill,命名為 embedded-code-review,按標準格式生成 SKILL.md 和文件夾結構。
Step 3:Codex 會自動生成完整的 Skill 文件夾和 SKILL.md 文件。你只需要檢查內容是否正確,然后保存到 Codex 的 skills 目錄即可。
如果你想從頭手寫,可以按以下步驟操作:
Step 1:在 Codex 的 skills 目錄下創建文件夾:
# macOS / Linux
mkdir -p ~/.codex/skills/embedded-code-review
# Windows
mkdir C:\Users\你的用戶名\.codex\skills\embedded-code-review
Codex Skills 支持多個層級:系統級(內置)、全局級(所有項目生效)、倉庫級(僅當前項目)。上面創建的是全局級 Skill。
Step 2:在文件夾中創建 SKILL.md 文件:
---
name: embedded-code-review
description: 嵌入式 C/C++ 代碼審查。用于審查嵌入式Linux、MCU、RTOS、驅動、BSP 相關代碼,重點發現內存安全、并發競態、中斷上下文誤用、DMA/cache 一致性、實時性風險等問題。
---
# 嵌入式 C/C++ 代碼審查 Skill
## 觸發條件
當用戶要求審查嵌入式 C/C++ 代碼、驅動代碼、RTOS 相關代碼、BSP 代碼時自動啟用。
## 核心原則
**先看會不會死機、丟數據、破壞硬件狀態、影響實時性。風格建議往后放。**
## 審查流程
1. **首先**:掃描第一優先級——正確性缺陷(內存安全、并發競態、整數邊界、錯誤處理)
2. **其次**:檢查嵌入式專屬風險(DMA/cache 一致性、動態內存、硬件超時、中斷上下文)
3. **然后**:評估實時性風險(優先級反轉、ISR 長度、阻塞調用)
4. **最后**:給出風格建議(優先級最低)
## 嵌入式專項檢查要點
### ?? 第一優先級:正確性缺陷
- [ ] 是否存在 use-after-free、double-free?
- [ ] 錯誤路徑上是否有資源泄漏(內存、文件描述符、鎖)?
- [ ] 是否存在 NULL 指針解引用?
- [ ] 是否存在緩沖區溢出或數組越界?
- [ ] 是否存在未初始化變量在可達路徑上被使用?
- [ ] 共享狀態是否存在競態條件?
- [ ] 中斷上下文中是否調用了可能阻塞的函數?
- [ ] 長度字段是否先驗證再使用?
- [ ] 整數運算是否存在溢出或截斷?
- [ ] 可能失敗的函數調用是否檢查了返回值?
### ?? 第二優先級:嵌入式專屬風險
- [ ] 是否使用了動態內存分配(malloc/free)?如有,是否有嚴格規范?
- [ ] DMA buffer 是否處理了 cache 一致性?
- [ ] 等待硬件狀態是否有超時機制?
- [ ] 任務間共享變量是否有保護措施?
- [ ] 是否存在忙等(busy-wait)而無合理退出條件?
- [ ] 寄存器操作和硬件交互邏輯是否正確?
### ?? 第三優先級:實時性風險
- [ ] 是否存在優先級反轉風險?
- [ ] 關鍵路徑上是否有不可預測執行時間的操作?
- [ ] 中斷服務程序(ISR)是否足夠短?
### ?? 第四優先級:編碼規范
- [ ] 是否符合團隊編碼風格?
- [ ] 函數圈復雜度是否過高(建議 ≤ 10-15)?
- [ ] 是否存在硬編碼的密碼、密鑰或魔數?
- [ ] 硬件相關注釋是否準確?
## 輸出格式
- ?? **嚴重問題**(必須修復):正確性缺陷
- ?? **高風險**(強烈建議修復):嵌入式專屬風險
- ?? **中風險**(建議修復):實時性問題
- ?? **低風險/建議**:風格和規范問題
## 審查原則
- 理解代碼的硬件上下文(芯片型號、外設資源、編譯配置)
- 建立“軟件邏輯 ? 硬件約束”的雙向映射
- 對可疑代碼實施“雙重校驗”:靜態分析 + 邏輯推理
Step 3:可選——添加 references/review-checklist.md 存放更詳細的檢查清單,添加 scripts/ 存放自動化檢測腳本。Codex 會在需要時按需加載這些內容。
方法一:使用 Skill Installer(最省事)
在 Codex 終端中輸入 $,選擇 Skill Installer,然后輸入技能名稱或粘貼 GitHub 倉庫 URL,Codex 會自動完成安裝。安裝完成后務必重啟 Codex。
方法二:手動放置
把 embedded-code-review/ 文件夾直接放到 Codex 的 skills 目錄下:
/Users/你的用戶名/.codex/skills/C:\Users\你的用戶名\.codex\skills\放好后新開一個 Codex 對話,因為舊對話可能因緩存讀不到新 Skill。
方式一:自動觸發當你說“幫我 review 這段嵌入式代碼”時,Codex 會自動匹配 Skill 的 description 并調用。
方式二:顯式調用輸入 $embedded-code-review 或通過 /skills 菜單選擇。

方式三:對話中引用直接說“用 embedded-code-review 技能審查當前文件”。
在 Codex 中可以直接說:
用 embedded-code-review 技能審查當前 Git diff,只看本次變更引入的問題。
這對應了 Codex 做代碼審查的典型場景。
由于 Cursor、Codex、Claude Code 都支持 SKILL.md 格式,你做的這個 Skill 可以直接復制到其他工具的 skills 目錄下使用。
~/.codex/skills/ | |
~/.claude/skills/ | |
~/.cursor/skills/ |
把嵌入式代碼審查要點制作成 Codex Skill,只需要 3 步:
~/.codex/skills/embedded-code-review/之后每次說“幫我 review 這段嵌入式代碼”,Codex 就會自動按 Checklist 的標準執行審查——不用再復制粘貼長篇提示詞,也不用擔心 AI 漏掉關鍵檢查項。
Skill 的本質,就是把團隊反復踩過的坑、反復強調的規則,固化成 AI 默認遵守的工作流程。今天花幾分鐘做好,以后每次代碼審查都能受益。
猜你喜歡:
適用于嵌入式的輕量級環緩沖區管理庫!
Git 交互式變基修改commit描述
單例模式:嵌入式全局狀態一致性的守護者
嵌入式領域:Linux 與 RTOS 的巔峰對決!
嵌入式軟件進階指南,一起來進階!