如何设置IAR Embedded Workbench for ARM自动将生成文件按4字节对齐
IAR Embedded Workbench for ARM hex文件自动4字节对齐方案
实现逻辑
无需手动计算填充长度,也不用固定填充到ROM最大容量,仅在实际生成的镜像末尾补充最多3个字节完成4字节对齐,不会产生冗余空间。
配置步骤
- 步骤1:在工程根目录新建批处理脚本
align_hex.bat,内容如下:
@echo off :: 入参1:编译生成的out文件路径 入参2:输出对齐后hex的路径 set ELF_PATH=%1 set OUT_HEX_PATH=%2 :: 对齐粒度,可按需修改为8/16等其他值 set ALIGN_GRANULARITY=4 :: 填充值,按需修改为0x00/0xFF等 set FILL_VAL=0xFF :: 调用ielftool直接生成对齐后的hex,仅填充镜像末尾到对齐边界的空白区域 ielftool %ELF_PATH% %OUT_HEX_PATH% --intel-hex --fill %FILL_VAL%:0x0:align(%ALIGN_GRANULARITY%)
若你的MCU ROM有固定起始地址(例如STM32为0x08000000),请将上述命令中的
0x0替换为实际ROM起始地址,避免填充到不属于ROM的地址区间。
- 步骤2:打开IAR工程的
Options配置界面,进入Build Actions选项卡 - 步骤3:在
Post-build command line输入框中填入如下命令,每次构建完成后自动执行对齐脚本:
$PROJ_DIR$\align_hex.bat $TARGET_PATH$\$PROJ_FNAME$.out $TARGET_PATH$\$PROJ_FNAME$_aligned.hex
验证方式
构建完成后,查看生成的带_aligned后缀的hex文件,计算最后一个有效数据段的结束地址,确认可以被4整除即可。
内容的提问来源于stack exchange,提问作者Rex
相关产品推荐
相关产品推荐

