SuperAPI AI 工具集

esp-idf

部署与运维

查看项目

更新于 10-16 03:17

技能介绍

用途:面向 ESP-IDF 固件工程的开发与排错,适用于配置 ESP-IDF 应用、排查编译或依赖问题、烧录授权硬件并验证运行行为、借助解码后的监控输出调试运行时崩溃。

项目与环境:定位含顶层 CMakeLists.txt 的项目根,多应用仓库需找出所有受影响根目录;阅读 README、CI 配置、sdkconfig.defaults*、清单与构建脚本以确定所需 ESP-IDF 版本、目标与验证方式。新建项目用 idf.py create-project <PROJECT_NAME>。用 idf.py --version 校验环境,优先按仓库规定方式,否则用 EIM:eim --version、eim list、eim select <ESP_IDF_VERSION>、eim run "idf.py <command>" <ESP_IDF_VERSION>;仅授权时 eim install -i <ESP_IDF_VERSION>,仅在要求交互式安装时 eim wizard。使用与版本匹配的文档和迁移指南。

目标与硬件:先从配置和构建输出确定目标,再探测硬件。执行 idf.py set-target <TARGET> 前需询问用户(它会清空 build/、把 sdkconfig 移至 sdkconfig.old 并重配置)。仅在任务需要且确认端口时探测,按安装的 esptool 帮助使用语法,如 esptool --port <PORT> chip-id 或旧式 esptool.py --port <PORT> chip_id;自动进入引导加载失败时请用户手动进入下载模式。

构建与配置:常规增量构建用 idf.py build;失败时先看首个相关错误及引用日志。sdkconfig 视为生成文件,默认值写入 sdkconfig.defaults*(目标专用默认值文件需要基础 sdkconfig.defaults,可为空)。修改 Kconfig 或 Kconfig.projbuild 后询问是否运行 idf.py reconfigure。不要手工编辑 build/、managed_components/ 或 dependencies.lock;仅在已证实存在陈旧构建问题且经批准时使用 idf.py fullclean。

烧录与监控:不得仅因板子连接就烧录,仅在请求或明确授权且确认端口、目标与设备可安全覆写后进行。烧录用 idf.py -p <PORT> flash,需运行时校验用 idf.py -p <PORT> flash monitor;崩溃分析用 idf.py -p <PORT> monitor 以将回溯地址解码到源码位置。采集输出至目标行为或崩溃出现,干净停止监控并总结证据。怀疑内存损坏或泄漏时,先查看现有证据,再提出堆跟踪或调试配置并获批准后修改。

代码约定:入口保持 void app_main(void);优先用 ESP-IDF API 与头文件;用 ESP_LOGI/W/E;组件用 idf_component_register(...) 注册,依赖用 REQUIRES 或 PRIV_REQUIRES;显式处理 esp_err_t。实现前先查 ESP Component Registry,可用 Registry MCP 工具,否则用公共 REST API;添加依赖用 idf.py add-dependency "namespace/component^<VERSION>",非 main 组件用 --component 或 --path。交付时报告所运行命令、ESP-IDF 版本、目标、测试与硬件,并标注未验证项。

限制:flash、fullclean、set-target、安装环境等操作均需用户确认或授权;具体收费、平台与效果资料暂未提供。