用途:该技能用于通过 ESP-IDF 工具链把已构建的固件烧录到 ESP32 系列芯片,或启动调试会话;适用于工作区已有构建产物、需要擦除或重新烧录固件、通过 JTAG 启动 OpenOCD 调试,以及团队需要标准化烧录流程的场景。
必要输入:包含 build/ 目录的工作区路径,或含 artifact_path 的 Project Profile;串口设备路径与波特率;JTAG 调试模式可选调试探针配置。
使用方式:先阅读 references/usage.md 确认本次是环境探测、烧录、擦除还是启动调试;环境不确定时先运行 scripts/idf_flasher.py --detect 确认;烧录用 --flash --project <path>,可用 --port 与 --baud 指定串口参数;擦除 Flash 用 --erase-flash;需要烧录后查看串口输出时,提示手动运行 idf.py flash monitor;JTAG 调试用 --debug 检测并启动 OpenOCD。
参数确认与探测:首次调用必须由用户确认串口设备与波特率(默认展示 460800),不得自动采用探测值;Project Profile 已记录过则可复用。脚本启动会复用工程根目录 .em_skill.json 中上次成功的 profile,显式参数优先,--resume 仅用于断言缓存存在,无缓存则非零退出;无缓存或用户要求重新探测时回退正常扫描。扫描覆盖 Linux /dev/ttyUSB*、/dev/ttyACM*,macOS /dev/cu.usbserial*、/dev/cu.wchusbserial*,Windows COM*,并读取 sdkconfig 的 Flash 大小与分区表、检查 build/ 中的 *.bin 与 flasher_args.json。
失败分流:idf.py 不可用返回 environment-missing(提示安装 ESP-IDF 并激活环境,v5.x 用 export.sh,v6.0+ 用 EIM 激活脚本);串口不存在或被占用返回 connection-failure;Linux 无串口权限返回 permission-problem(建议加入 dialout 组);build/ 缺失返回 artifact-missing(推荐 build-idf);芯片无响应返回 target-response-abnormal;多个串口无法确定目标返回 ambiguous-context。
平台与限制:串口命名因平台而异(Linux /dev/ttyUSB0、macOS /dev/cu.usbserial-*、Windows COM3);Linux 可用 sudo usermod -aG dialout $USER 添加权限;ESP32 系列常用 USB-UART 桥接芯片(CP2102、CH340)需安装对应驱动;脚本通过 subprocess 调用 idf.py,烧录调度路径跨平台。输出烧录命令、串口设备、波特率、Flash 大小与烧录状态,并在 Project Profile 中更新 serial_port、baud_rate、idf_target;查看运行日志可交接 serial-monitor,需要调试或崩溃分析可交接 debug-gdb-openocd。收费、价格与具体效果资料暂未提供。