build-platformio
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese构建 PlatformIO 工程
Building PlatformIO Projects
适用场景
Applicable Scenarios
- 中标明
Project Profile或工作区中存在build_system: platformio。platformio.ini - 用户希望对 PlatformIO 工程执行编译、清理或上传固件。
- 烧录或调试流程需要新的 、
ELF或HEX。BIN - 需要在构建前确认 PlatformIO CLI 是否就绪。
- The specifies
Project Profileor abuild_system: platformioexists in the workspace.platformio.ini - Users want to compile, clean, or upload firmware for a PlatformIO project.
- A new ,
ELF, orHEXis required for flashing or debugging processes.BIN - Need to confirm if PlatformIO CLI is ready before building.
必要输入
Required Inputs
- 工作区路径(包含 ),或一份已有的
platformio.ini。Project Profile - 可选的环境名称(environment)。
- Workspace path (containing ), or an existing
platformio.ini.Project Profile - Optional environment name.
自动探测
Automatic Detection
- 脚本自动检测 命令是否可用并获取版本。
pio - 解析 中的环境列表,提取 platform、board、framework 和上传协议。
platformio.ini - 识别 section 中的
[platformio]作为默认环境。default_envs - 若未指定环境且存在默认环境,使用默认环境;否则使用第一个环境。
- 在 中搜索 firmware.elf/hex/bin 产物,按
.pio/build/<env>/排序。ELF > HEX > BIN - 若存在多个同样合理的环境,列出候选而不是静默猜测。
- The script automatically detects if the command is available and retrieves its version.
pio - Parses the list of environments in , extracting platform, board, framework, and upload protocol.
platformio.ini - Identifies in the
default_envssection as the default environment.[platformio] - If no environment is specified and a default environment exists, use the default environment; otherwise, use the first environment.
- Searches for firmware.elf/hex/bin artifacts in , sorted by
.pio/build/<env>/.ELF > HEX > BIN - If multiple equally reasonable environments exist, list candidates instead of making silent guesses.
执行步骤
Execution Steps
- 先阅读 references/usage.md,确认本次是环境探测、列出环境、执行构建,还是仅扫描产物。
- 若不确定环境是否就绪,先运行自带脚本 scripts/platformio_builder.py 的 模式确认。
--detect - 使用 确认可用环境,再用
--list-envs --project-dir <dir>+--project-dir执行构建。--env - 读取脚本输出的构建结果和产物扫描报告,重点关注首选产物(ELF > HEX > BIN)和失败分类。
- 将构建环境、产物路径和板卡信息写回 ,并在需要时交给下游 skill。
Project Profile
- First read references/usage.md to confirm whether this is environment detection, listing environments, executing builds, or just scanning artifacts.
- If unsure whether the environment is ready, first run the mode of the built-in script scripts/platformio_builder.py to confirm.
--detect - Use to confirm available environments, then use
--list-envs --project-dir <dir>+--project-dirto execute the build.--env - Read the build results and artifact scan report output by the script, focusing on the preferred artifacts (ELF > HEX > BIN) and failure categories.
- Write the build environment, artifact path, and board information back to the , and hand it over to downstream skills when needed.
Project Profile
失败分流
Failure Handling
- 当 命令不可用时,返回
pio。environment-missing - 当 不存在或环境名无效时,返回
platformio.ini。project-config-error - 当构建看似成功但未找到可烧录或可调试产物时,返回 。
artifact-missing - 当存在多个同样合理的环境,且任意选择都不安全时,返回 。
ambiguous-context
- When the command is unavailable, return
pio.environment-missing - When does not exist or the environment name is invalid, return
platformio.ini.project-config-error - When the build appears successful but no flashable or debuggable artifacts are found, return .
artifact-missing - When multiple equally reasonable environments exist and arbitrary selection is unsafe, return .
ambiguous-context
平台说明
Platform Notes
- PlatformIO 完全跨平台(Linux / macOS / Windows),无平台限制。
- 自带脚本使用 Python 标准库和 subprocess 调用 ,构建调度路径本身是跨平台的。
pio - 输出中的构建目录和产物路径应保持为绝对路径,方便下游烧录和调试 skill 直接复用。
- PlatformIO is fully cross-platform (Linux / macOS / Windows) with no platform restrictions.
- The built-in script uses Python standard libraries and subprocess to call , and the build scheduling path itself is cross-platform.
pio - The build directory and artifact paths in the output should remain absolute paths for direct reuse by downstream flashing and debugging skills.
输出约定
Output Conventions
- 输出构建命令、工程目录、环境名、板卡和首选产物路径。
- 用 、
artifact_path和板卡信息更新artifact_kind。Project Profile - 成功后推荐 或
flash-openocd。debug-gdb-openocd
- Output the build command, project directory, environment name, board, and preferred artifact path.
- Update the with
Project Profile,artifact_path, and board information.artifact_kind - Recommend or
flash-openocdafter success.debug-gdb-openocd
交接关系
Handover Relationships
- 当下一步意图是给硬件烧录程序时,将成功构建结果交给 。
flash-openocd - 当下一步需要符号信息或调试会话时,将成功构建结果交给 。
debug-gdb-openocd - PlatformIO 自带上传功能(),简单场景可直接使用而无需交接。
--upload
- When the next step is to flash the program to hardware, hand over the successful build result to .
flash-openocd - When the next step requires symbol information or a debugging session, hand over the successful build result to .
debug-gdb-openocd - PlatformIO has a built-in upload function (), which can be used directly in simple scenarios without handover.
--upload