IAR Embedded Workbench 常用宏变量(Argument Variables)备忘录

IAR Embedded Workbench 常用宏变量(Argument Variables)备忘录

在 IAR 开发过程中,配置 Pre/Post-build command(预/后构建命令行)或 External Tools(外部工具)时,经常需要使用动态路径。IAR 提供了一套类似环境变量的 Argument Variables,熟练使用它们可以让工程配置更灵活,不受绝对路径限制。

1. 核心路径类 (Project & Workspace)

这是最常用的变量,用于定位工程和工作空间的位置。

变量名 说明 示例 (假设工程在 C:\Project)
$PROJ_DIR$ 项目目录 (.ewp 文件所在目录) C:\Project
$PROJ_FNAME$ 项目名称 (不带扩展名) MyProject
$PROJ_PATH$ 项目文件全路径 C:\Project\MyProject.ewp
$WS_DIR$ 工作空间目录 (.eww 文件所在目录) C:\Project (通常同项目目录)
$WS_FNAME$ 工作空间名称 (不带扩展名) MyWorkspace

2. 构建配置与输出类 (Configuration & Output)

用于区分 Debug/Release 版本以及定位编译生成的二进制文件。

变量名 说明 示例
$CONFIG_NAME$ 当前配置名称 (Debug / Release) Debug
$TARGET_DIR$ 输出目标目录 (生成 .out/.hex 的文件夹) C:\Project\Debug\Exe
$TARGET_BNAME$ 输出文件名 (带扩展名) MyProject.out
$TARGET_BPATH$ 输出文件全路径 C:\Project\Debug\Exe\MyProject.out
$OBJ_DIR$ 中间对象目录 (生成 .o 文件的文件夹) C:\Project\Debug\Obj
$LIST_DIR$ 列表文件目录 (生成 .map/.lst 的文件夹) C:\Project\Debug\List

3. 环境变量与工具类 (Environment & Tools)

用于引用 IAR 安装目录或编译器路径。

变量名 说明 示例
$EW_DIR$ IAR 安装根目录 C:\Program Files\IAR Systems\Embedded Workbench 9.0
$TOOLKIT_DIR$ 特定架构工具链目录 C:\...\Embedded Workbench 9.0\arm
$DATE$ 当前系统日期 Oct 25 2023
$TIME$ 当前系统时间 09:30:00

4. 当前处理文件类 (Current File)

注意:这类变量通常只在“自定义构建规则”或对单个文件执行操作时有效。

变量名 说明
$FILE_DIR$ 当前正在处理文件的目录
$FILE_FNAME$ 当前文件名 (不带扩展名)
$FILE_PATH$ 当前文件的绝对路径

💡 实战使用技巧

1. 永远记得加引号!

Windows 路径中经常包含空格(例如 Program FilesMy Documents)。如果不加引号,命令行会把空格视为参数分隔符,导致报错。

  • ❌ 错误:$PROJ_DIR$\output.bin
  • ✅ 正确:"$PROJ_DIR$\output.bin"

2. 经典应用:Post-build 自动复制文件

Options -> Build Actions -> Post-build command line 中:

将生成的固件重命名并复制到项目根目录下的 Firmware 文件夹:

cmd /c copy "$TARGET_BPATH$" "$PROJ_DIR$\Firmware\App_$CONFIG_NAME$.hex"

效果: 编译 Release 版时,自动生成 App_Release.hex

3. 经典应用:将配置传递给 C 代码

想在代码里知道当前是 Debug 还是 Release?
Options -> C/C++ Compiler -> Preprocessor -> Defined symbols 中添加:

BUILD_CONFIG="$CONFIG_NAME$"

在 C 代码中:

#include <stdio.h>
#define XSTR(x) STR(x)
#define STR(x) #x

void main() {
    printf("Build Config: %s\n", XSTR(BUILD_CONFIG));
}

4. 经典应用:调用 Python 脚本处理 Bin 文件

python "$PROJ_DIR$\script\checksum.py" "$TARGET_BPATH$"

posted @ 2025-12-20 15:22  口嗨养生博  阅读(0)  评论(0)    收藏  举报