用途:在 IAR Embedded Workbench 命令行环境下编译嵌入式工程,解析工程文件、执行构建并定位固件产物。适用场景包括 Project Profile 中标注 build_system: iar,或工作区存在 .ewp/.eww 文件;需要编译、重编译或确认固件产物;烧录与调试流程需要新的 .out(ELF)、HEX 或 BIN;编译前需确认 IAR 环境是否就绪。
必要输入:工作区路径或 .ewp 工程文件路径,或已有 Project Profile;可选配置名称与 IAR 安装路径。
自动探测与用法:脚本启动即复用工程根目录 .em_skill.json 中上次成功的 profile(显式参数优先,--resume 仅用于断言缓存必须存在,无缓存则非零退出),否则回退正常扫描;自动搜索 IAR 安装路径及环境变量 IAR_ROOT、EWARM_ROOT 定位 iarbuild.exe;解析 .ewp 中的 configuration 列表,提取工具链(ARM/RISCV)、芯片型号、输出目录与文件名,未指定则默认第一个 configuration;在输出目录搜索 .out、HEX、BIN,按 ELF > HEX > BIN 排序;存在多个合理工程或配置时列出候选而非静默猜测。执行时先读 references/usage.md 确认动作,可用 scripts/iar_builder.py 的 --detect 确认环境、--scan 搜索工程、--list-configs --project X.ewp 列出配置,再以 --project 加 --config 编译,读取构建结果与产物扫描报告,将构建配置、产物路径、芯片型号与工具链写回 Project Profile。
失败分流:IAR 未安装或 iarbuild.exe 不可用返回 environment-missing;工程损坏、配置名无效或配置问题导致失败返回 project-config-error;编译看似成功但无可烧录/调试产物返回 artifact-missing;多个同样合理工程或配置且任意选择不安全返回 ambiguous-context。
平台限制:IAR Embedded Workbench 仅在 Windows 原生运行,iarbuild.exe 命令行编译需 Windows 环境;非 Windows 平台仍可执行 --list-configs、--scan 与 --scan-artifacts,但实际编译被阻塞。输出产物路径保持绝对路径,便于下游复用;成功后推荐 flash-openocd 或 debug-gdb-openocd,分别用于烧录与调试会话交接。