PlatformIO 烧录
适用场景
Project Profile中标明build_system: platformio或工作区中存在platformio.ini。- 用户希望将编译产物烧录到目标板,利用 PlatformIO 内置的上传机制。
- 支持串口、JTAG、DFU 等多种上传协议,由
platformio.ini中的upload_protocol决定。
必要输入
- PlatformIO 工程目录(包含
platformio.ini)。 - 可选的环境名称和上传端口。
自动探测
- 脚本启动即自动复用工程根目录
.em_skill.json中上次成功的 profile 作为默认参数(显式参数优先,无需先手动传--resume);--resume仅用于断言缓存必须存在,无缓存则非零退出。无缓存或用户明确要求重新探测时,脚本自动回退到正常扫描。 - 自动定位
pioCLI。 - 解析
platformio.ini中的环境列表和upload_protocol。 - 若未指定环境,使用
default_envs或第一个环境。 - 可列出已连接设备帮助用户确认端口。
执行步骤
- 先阅读 references/usage.md,确认本次操作。
- 对于常见场景,直接一次调用完成烧录:
python scripts/pio_flasher.py --flash --project-dir <工程目录> --env <环境名> - 若需指定上传端口:
python scripts/pio_flasher.py --flash --project-dir <工程目录> --env <环境名> --upload-port COM3 - 读取脚本输出的烧录结果报告,关注成功/失败状态和证据。
- 将烧录结果写回
Project Profile,推荐下一步 skill。
失败分流
connection-failure:设备未连接、串口被占用或权限不足。project-config-error:板卡配置无效或环境名不存在。upload-failure:上传过程中出错。
输出约定
示例输出格式:
烧录成功 ✅
工程: ESP32_DEV → 环境: esp32dev
板卡: esp32dev | 平台: espressif32
固件: firmware.bin (200.0 KB)
耗时: 15.3 秒
- 成功后推荐
serial-monitor(查看串口输出)或debug-platformio(在线调试)。 - 失败时输出失败分类和日志证据。
交接关系
- 从
build-platformio接收编译成功的工程信息。 - 烧录成功后交给
serial-monitor(查看串口输出)或debug-platformio(在线调试)。