当前位置: 首页 > news >正文

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) #xvoid main() {printf("Build Config: %s\n", XSTR(BUILD_CONFIG));
}

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

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

http://www.jsqmd.com/news/114995/

相关文章:

  • vue3+springboot基于微信小程序的在线点餐聊天交流平台(编号:30421625)
  • Open-AutoGLM模式匹配加速实战(从毫秒到微秒的跨越)
  • AI客服系统“开天眼“了!多模态大模型技术解析,小白也能轻松实现
  • 最新AI换脸软件,全面升级可直播,Mirage下载介绍(支持cpu)
  • 2025年装修设计企业客户首选品牌TOP5,别墅装修/豪宅设计/家居装修/家居设计品牌哪个好 - 品牌推荐师
  • 还在为显存溢出崩溃?Open-AutoGLM内存压缩5步极速瘦身法
  • 【AI模型预处理新纪元】:Open-AutoGLM如何实现毫秒级特征输出
  • 2025年12月理发店会员,美发会员,理发店会员厂家品牌推荐榜,彰显美发会员服务国产技术实力 - 品牌鉴赏师
  • 从入门到精通:掌握Open-AutoGLM推理优化的7个关键步骤
  • Java数据结构与算法
  • 从选题到框架:8个 AI 工具,把开题报告的 “难” 变成 “顺”
  • 收藏备用!大模型5大微调技术深度解析:SFT/ReFT/RLHF/DPO/PPO异同与选型指南
  • 为什么顶尖团队都在用Open-AutoGLM做高效特征提取?真相曝光
  • 2025年12月喜糖伴手礼批发,喜糖伴手礼购买,喜糖伴手礼进货厂家品牌推荐榜,彰显国产供应链实力 - 品牌鉴赏师
  • vue3+springboot基于微信小程序的应急救援小能手软件系统的设计与实现(编号:48747828)
  • java计算机毕业设计图书借阅管理系统 基于SpringBoot的图书馆流通与借还管理平台 智慧图书借阅与归还一体化系统
  • 当下的网络安全行业前景到底怎么样?还能否入行?
  • 如何将Open-AutoGLM操作延迟降低85%?资深架构师亲授调优心法
  • 2025年12月喜糖伴手礼,喜糖伴手礼购买,喜糖伴手礼进货厂家推荐:行业权威盘点与品质红榜发布 - 品牌鉴赏师
  • 基于OpenCV的安全帽佩戴识别的分析与实践
  • vue3+springboot基于微信小程序的智能医疗就诊排号管理系统设计与实现(编号:70465420)
  • 【性能压测实测】:Open-AutoGLM在千万级数据下的极速响应之谜
  • 探索大数据领域Doris的增量更新机制
  • 2025年富氧水售水机订制厂家综合实力盘点:节能型自动售水机/户外饮用水站/一站式饮水机源头供应商精析 - 品牌推荐官
  • 测试覆盖率的理论与度量标准
  • 压接 + 焊接(最好)铜丝
  • 【Open-AutoGLM模式匹配优化】:揭秘亿级规则引擎提速300%的核心技术
  • 从百GB到十GB,Open-AutoGLM内存压缩秘诀大公开,速看!
  • Open-AutoGLM多任务调度实战指南(企业级资源优化方案曝光)
  • Java异常处理完全指南:轻松搞定运行时与编译时异常!