IAR如何把编译时间加入到Hex文件中?
深芯 2026-01-14

在软件的开发过程中,需要经常编译不同版本的软件。有时为了测试某个功能,需要临时添加一个版本;有时为了查找bug,需要不断编译和调试...如果编译的版本多了,可能自己都会混淆。所以,为了更好的识别软件的版本信息,最好的方式就是让工具“操心”这个容易忘记的事情。怎么做呢?让编译器每次编译时,自动添加软件编译的时间戳。

IAR编译器提供内置宏 __DATE__(日期)和 __TIME__(时间),无需手动设置,其值由编译器在编译时自动生成。在代码中声明全局变量存储时间戳:

// version_info.c#include const char *buildInfo = "AppVersion 2.3 | Build: " __DATE__ " " __TIME__;

关键问题:若该文件未修改,编译器可能跳过重新编译,导致时间戳未更新。需强制触发每次编译。

强制更新时间戳的配置方法:

在工程选项中配置预编译命令,强制重新编译时间戳源文件:

  • 打开工程配置:Project > Options > Build Actions

  • 添加Pre-build命令:

cmd /c "del "$OBJ_DIR$\version_info.o""

$OBJ_DIR$:IAR内置变量,指向目标文件输出目录

删除version_info.o后,链接阶段发现文件缺失,重新编译version_info.c,更新宏__DATE__和__TIME__。

这样便可以保证每次编译时间戳都会自动更新了。

使用HEX编辑器hexworkshop便可以查看hex中的时间戳了




声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。 微信联系小助理
0
评论
  • 相关技术文库
  • EDA
  • 仿真
  • CAD
  • 芯片
下载排行榜
更多
评测报告
更多
广告