SuperAPI AI 工具集

pin-assignment

编程与开发

查看项目

更新于 10-16 10:37

技能介绍

用途

Pin Assignment 用于为 Arduino、ESP32、ESP32-S3、Pico 或 Pico W 生成板级感知的引脚计划,同时不破坏仓库既有的声明约定。其核心原则是:逻辑声明 ID 并不自动等于物理 GPIO 编号,必须将这两层保持区分。

主要能力

  • 记录并处理开发板/版本、MCU/模块、框架/核心版本、工具链、信号名称、方向、电压、电流、上拉需求、总线归属,以及启动/调试/USB/射频约束。
  • 判断用户需要的是声明、物理接线,还是两者都要。
  • 将每个信号分类为输入、输出、模拟、PWM、总线、中断、启动、调试、USB、flash、PSRAM 或射频相关。
  • 保留板级特定的 flash、PSRAM、USB、启动绑带、调试和默认总线引脚,除非确切板级文档批准复用。
  • 拒绝方向、上拉能力、电压、电流、ADC、PWM 或协议行为与信号不匹配的候选引脚。
  • 保持逻辑 ID 稳定,并按请求的固定顺序分配。
  • 支持生成原始 C++ 声明,例如:
constexpr int btn_esc = 101;
constexpr int btn_enter = 102;
constexpr int led_status = 103;

每个请求的信号使用下一个连续的逻辑值。除非用户明确将其定义为物理 GPIO 编号,否则这些值是稳定的逻辑标识符。不得将该格式替换为 enum、宏、数组、命名空间、解释性包装或重新排序的声明列表。

使用方式

  1. 先通过 ../board-support/SKILL.md 解析目标板,其 resolution_status 必须为 resolved,才能用于所请求的引脚建议目的。
  2. 在选择物理引脚前,加载 ../../references/boards/ 下匹配的文件。
  3. 如果开发板属于有界系列但缺少身份字段,应停止并请求补充,而不是使用相似配置。
  4. 若用户只请求声明,则仅以纯文本输出声明,不添加代码围栏、标题、解释或尾随注释。
  5. 若请求物理映射,则单独提供,并标注假设与有来源支持的约束。

适用场景

  • 为 Arduino、ESP32、ESP32-S3、Pico、Pico W 分配引脚。
  • 创建 GPIO 映射。
  • 分配按钮、LED、传感器、总线或执行器引脚。
  • 迁移引脚映射。
  • 生成 constexpr int 声明。

限制与注意事项

  • 必须检查确切开发板与物理引脚约束,不能假设引脚空闲。
  • 经典 ESP32 的 GPIO34-39 为仅输入引脚,不能用于输出;ESP32-S3 需区分并核对其模块表。
  • GPIO0 等绑带引脚在分配前需检查其绑带角色与复位电平。
  • 编译通过不代表接线与目标行为已验证。
  • 构建证明、上传证明、硬件证明与系统证明应分别报告。
  • 电压/电流与上拉需求必须有来源,或明确标注为未知。
  • 共享输出契约要求说明假设、所需工具与版本、实现步骤、按证明阶段划分的测试/证据、已知限制,以及恢复/安全说明。