在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview MDK集成开发环境的优势,将*.axf格式文件或*.hex格式文件转换成*.bin格式的文件是十分自然的想法。本文将详细的探讨这种转换方法。
在详细的介绍这种方法之前,先了解一下ARM公司的RVCT开发套件中的fromelf.exe转换工具是十分必要的,因为在Realview MDK中生成*.bin格式文件的工具正是它。
fromelf.exe转换工具的语法格式如下:
fromelf [options] input_file
其中[options]包括的选项及详细描述见表一。
表一 fromelf工具的选项及描述表格
选项 | 描述 | 选项 | 描述 |
--help | 显示帮助信息 | --vsn | 显示版本信息 |
--output file | 输出文件(默认的输出为文本格式) | --nodebug | 在生成的映象中不包含调试信息 |
--nolinkview | 在生成的映象中不包含段的信息 | --bin | 生成Plain Binary格式的文件 |
--m32 | 生成Motorola 32位十六进制格式的文件 | --i32 | 生成Intel 32位十六进制格式的文件 |
--vhx | 面向字节的位十六进制格式的文件 | --base addr | 设置m32,i32格式文件的基地址 |
--text | 显示文本信息 | -v | 打印详细信息 |
-a | 打印数据地址(针对带调试信息的映象) | -d | 打印数据段的内容 |
-e | 打印表达式表print exception tables | -f | 打印消除虚函数的信 |
-g | 打印调试表print debug tables | -r | 打印重定位信息 |
-t | 打印字符串表 | -y | 打印动态段的内容 |
-z | 打印代码和数据大小的信息 |
|
|
在掌握了fromelf转换工具的语法格式以后,下面将介绍它在Realview MDK中的使用方法:
1. 新建一个工程,例如Axf_To_Bin.uv2;
2. 打开Options for Target ‘Axf_To_Bin’对话框,选择User标签页;
3. 构选Run User Programs After Build/Rebuild框中的Run #1多选框,在后边的文本框中输入C:/Keil/ARM/BIN31/fromelf.exe --bin -o ./output/Axf_To_Bin.bin ./output/Axf_To_Bin.axf命令行;
4. 重新编译文件,在./output/文件夹下生成了Axf_To_Bin.bin文件。
经过上述4步的操作以后,将得到我们希望的Axf_To_Bin.bin格式的文件。