工程编译成功后,输出目录里常会先看到一个.out文件。若烧录工具要求BIN,不能直接把它改名为.bin:IAR需要先完成链接,再通过输出转换器生成指定格式。动手前最好看一眼烧录工具要求的是BIN还是HEX,以及它是否要求单独填写写入地址。下面以IAR Embedded Workbench for Arm为例说明。
一、IAR怎么导出二进制文件
.out文件可用于调试,交付给烧录工具的文件则要按其要求转换。IAR的输出转换器提供原始二进制、Intel HEX等格式选项;转换设置分别保存在工程的构建配置中,因此也要留意当前选择的是Debug还是Release。
1、确认本次构建的工程
①在顶部配置列表选择【Debug】或【Release】。
②右键点击目标工程,选择【Set as Active】。
③点击【Project】→【Rebuild All】,确认编译和链接均已完成。
2、设置二进制输出
①选中工程名称,依次点击【Project】→【Options】→【Output Converter】。
②勾选【Generate additional output】。
③在【Output format】中选择【Raw binary】。
④需要自定名称时,勾选【Override default output file】,填写【Output file】。
⑤点击【OK】,再次执行【Project】→【Rebuild All】。
3、找到并核对文件
①进入【Project】→【Options】→【General】→【Output】,查看输出目录。
②打开该目录,核对BIN文件的名称和修改时间。
③在【View】→【Messages】→【Build】中查看转换步骤有无报错。
④保留本次生成的.out文件,便于之后核对链接结果。
二、IAR生成二进制文件格式异常如何调整
先看具体异常:文件类型不被识别、BIN突然变大、烧录位置不对,查的设置各不相同。原始BIN只保存连续的字节,不携带写入地址;转换范围内若存在没有内容的地址空档,IAR会在文件中用零字节补齐。
1、文件后缀与内容对不上
①返回【Output Converter】,确认【Generate additional output】已勾选。
②烧录工具要求BIN时,将【Output format】选为【Raw binary】。
③烧录工具要求HEX时,将【Output format】选为【Intel Extended hex】。
④检查【Output file】的扩展名是否与所选格式一致,重新构建。
2、BIN文件明显偏大
①进入【Project】→【Options】→【Linker】→【List】,勾选【Generate linker map file】。
②重新构建,打开映射文件,查看有效数据所在的地址范围。
③若地址段相距很远,进入【Linker】→【Config】核对链接配置文件。
④需要按地址段分别输出时,使用ielftool的范围转换选项生成文件。
⑤保留原BIN,不要手工删除其中的零字节后直接用于烧录。
3、烧录后内容或位置不对
①在映射文件中找到目标程序的加载地址。
②核对烧录工具中填写的BIN起始地址。
③若烧录工具需要从文件读取地址,返回【Output format】选择【Intel Extended hex】。
④工程含引导程序和应用程序时,核对本次选用的文件及对应地址范围。
4、拿到的仍是旧文件
①在顶部配置列表核对当前【Debug】或【Release】。
②检查【Output file】是否设置了另一文件名。
③点击【Project】→【Clean】,再点击【Project】→【Rebuild All】。
④返回输出目录,核对文件修改时间和【Build】窗口中的转换结果。
三、二进制文件导出后怎样核对
文件能生成,还要确认它符合接收工具的要求。尤其是同一工程会输出多份固件时,文件名相近,单看扩展名很容易拿错。核对内容时应以本次链接结果和目标板的内存布局为依据。
1、核对格式与文件大小
①将文件扩展名与【Output format】中的设置对照。
②用十六进制查看工具打开BIN,检查开头的数据。
③对照映射文件的有效地址跨度,查看BIN体积是否合理。
④体积突然增加时,重点检查两段有效数据之间的地址空档。
2、核对烧录参数
①在烧录工具中选择本次生成的文件。
②使用BIN时,填写与目标程序对应的写入起始地址。
③使用HEX时,检查烧录工具是否按文件内地址记录加载。
3、留下可复核的版本信息
①记录工程配置、输出格式、文件名和写入地址。
②将映射文件与对应固件保存在同一版本记录中。
③下次构建前,对照上次记录检查【Linker】和【Output Converter】设置。
总结
生成BIN后,不能只凭后缀判断它能否直接烧录。文件中的字节、覆盖的地址范围,以及烧录工具采用的写入地址需要对得上。把转换设置和映射文件随固件一起留存,之后比较版本或排查文件体积变化时,也能找到明确依据。希望这篇关于“IAR怎么导出二进制文件IAR生成二进制文件格式异常如何调整”的内容对大家有所帮助;如有IAR相关需求,欢迎联系我们咨询。