ワンクリックで
ddev-hardware
固件/嵌入式项目硬件资源分析与文档化。从 sdkconfig、peripheral_cfg.h、分区表等文件中提取 MCU 算力、存储、外设、GPIO 信息,输出结构化硬件规格文档。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
固件/嵌入式项目硬件资源分析与文档化。从 sdkconfig、peripheral_cfg.h、分区表等文件中提取 MCU 算力、存储、外设、GPIO 信息,输出结构化硬件规格文档。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | ddev-hardware |
| description | 固件/嵌入式项目硬件资源分析与文档化。从 sdkconfig、peripheral_cfg.h、分区表等文件中提取 MCU 算力、存储、外设、GPIO 信息,输出结构化硬件规格文档。 |
从固件仓库的配置文件中提取硬件资源信息,输出结构化的 Markdown 硬件规格文档。
用户请求分析硬件资源、硬件规格、主板资源、外设清单、引脚定义,或要求"硬件文档""hardware spec""板级资源""GPIO 汇总"。
执行前需确认两个信息(若用户未提供则主动扫描):
prt_cfg.h、board_cfg.h、*_cfg.h 中 #define 的宏)在项目根目录下搜索机型定义:
grep -rn "^#define TP\|^#define BOARD_\|^#define PRODUCT_" --include="*_cfg.h" --include="*board*.h" | head -30
规则:
#define <NAME> 行为准GEN、DEV、V2、MT 等版本/变体后缀的宏从 ESP-IDF 的 sdkconfig 或等效内核配置文件中提取:
# CPU 核数与频率
grep -E "UNICORE|DEFAULT_CPU_FREQ|NUMBER_OF_CORES" sdkconfig
# 缓存配置
grep -E "INSTRUCTION_CACHE_SIZE|DATA_CACHE_SIZE|CACHE" sdkconfig
# Flash 配置
grep -E "FLASHSIZE|FLASHMODE|FLASHFREQ|FLASH_SIZE" sdkconfig
# PSRAM / 外部 RAM
grep -E "SPIRAM|PSRAM|EXTERNAL_RAM" sdkconfig
必须回答的关键问题:
IDF_TARGET 或 CMakeLists 推导)嵌入式 MCU 的片内 ROM/SRAM 值可从芯片 datasheet 常量获取,不需要从配置文件推导。
搜索项目中的分区表文件:
find . -name "partitions*.csv" -o -name "partitions*.h" | head -10
根据当前机型选择对应的分区表文件,解析 CSV 格式的分区表:
# 注释行必须注明:固件写入的起始偏移、最大可用空间。
在项目中搜索外设配置文件(常见文件名:prt_peripheral_cfg.h、peripheral_cfg.h、board_pin.h、pin_mux.h):
find . -name "*peripheral*" -o -name "*pin_mux*" -o -name "*board_pin*" | head -10
从该文件中逐段扫描,每个 // ===== 或明显的注释分隔块对应一类外设。提取以下信息:
通信接口:
执行机构(若为打印机/电机控制类设备):
传感器与检测:
音频:
人机交互:
电源与系统:
将所有 GPIO 整理成统一表格:GPIO 号、功能、方向(I/O)、备注(复用/特殊说明)。
过滤规则:
PRT_GPIO_UNVALID、-1、0xFF 等无效值不列出若 prt_cfg.h 中存在多个 #if defined(MODEL_A) ... #elif defined(MODEL_B) 分支,提取当前机型所在分支的 #define 列表,并与相邻机型分支对比,总结功能差异。
写入 docs/spec/<MODEL>-hardware-spec.md,按以下结构:
# <MODEL> 硬件资源规格
> 整理自: <源文件列表>
> 日期: <当前日期>
## 一、主控与计算资源
- MCU 型号、内核架构和说明、核数、主频
- I-Cache / D-Cache 大小
- 片内 SRAM / ROM 大小
## 二、存储资源
- 片内存储(SRAM、ROM、RTC 内存)
- 片外 Flash(容量、接口类型、频率、用途)
- 片外 PSRAM(容量、接口类型、频率、用途)
- 明确指出固件烧录到哪个物理介质
## 三、Flash 分区布局
- 主分区表(名称、偏移、大小、用途)
- 子分区(如有)
## 四、通信接口
## 五、打印/执行子系统(根据实际硬件调整标题)
## 六、音频子系统
## 七、人机交互
## 八、电源与系统
## 九、系统参数(任务栈、RTOS 配置等)
## 十、GPIO 汇总
## 十一、机型差异对比(如有多个变体)
find / grep 搜索得到# 注释行,正确处理 hex 偏移值PRT_GPIO_UNVALID / -1 等占位符,视为"未使用",不写入汇总在当前会话里按已写好的实现计划顺序执行任务时使用
在已有规格或多步骤任务需求、且在动代码之前使用。若上游 ddev-pc-test 已产出测试用例,自动走 TDD 流程:先实现测试 demo 代码(红灯),再实现被测代码(绿灯),测试覆盖不到的部分直接开发。
文档审查技能。将文档审查任务派发给独立子代理,重点审查文档基于代码改动的合理性、说明正确性、前后一致性、错漏和逻辑谬误,以及 AI 实现过程中产生的决策记录(implementation-notes.md)。当用户需要审查技术文档、spec文档、设计文档、计划文档、API文档、README 或任何与代码改动相关的文档时使用。
代码修改场景下,spec 文档确认后,需要继续以图优先方式梳理结构体定义、数据流和流程时使用
在代码修改前需要编写 spec 文档且应优先用图表达边界、入口、流程和改动关系时使用(仅限代码改动场景,非项目级架构文档初始化)
在代码实现完成后、准备结束任务或进入发布前使用,用来核对代码实现是否与 spec 文档以及 detail 文档一致,并通过代码质量审查、清理、编码规范和注释审查后给出最终验收结论