您的位置:首页 > 其它

如何在MDK中编译生成bin文件

2018-03-12 15:44 363 查看
使用过Keil的同鞋都知道,现在Keil中默认可以输出.axf的调试文件和可以通过钩选输出的.hex可执行文件,没有bin(二进制)文件的输出选项。可是偏偏某些时候需要或者习惯性的使用.bin文件来进行烧写,下面各举一例:1. 一直使用ADS的用户习惯性的使用.bin文件;2. 某些烧写器带的应用软件只支持.bin文件;3. 正如笔者遇到的情况,我在使用STM32公司提供的网络更新固件程序的例程时,需要用到.bin文件(.hex文件通过网络更新后遇到某些问题,而且用Hex2Bin软件转换后的也不行)。其实Keil也自带了工具软件,只要进行适当配置便可以输出bin文件了,不过在介绍具体方法前,请仔细阅读下面这一段关于Keil中自带的fromelf.exe工具说明:该工具的语法为:fromelf [options] input_file其中options中的选项及说明如下: 命令选项格式 
命令说明
--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  打印表达式表-f  打印消除虚函数的信息-g  打印调试表-r  打印重定位信息-s  打印字符表-t  打印字符串表-y  打印动态段的内容-z  打印代码和数据大小信息
 
讲完了工具的语法,下面就讲如何在Keil中运用该自带的工具,以使在工程编译后能生成.bin格式的文件:1. 打开一个建好的工程文件,就不举例说明了。2. 打开OptionsforTarget ‘工程名称’对话框,可直接点图标,如下图:



3. 选择User标签页,并进行如下图一样的配置:

例:C:\Keil\ARM\ARMCC\bin\fromelf.exe  --bin -output ./bin/test.bin ./obj/test.axf 其中 -output 也可以写作 -o 效果是一样的具体格式:fromelf.exe绝对路径+空格+--bin(注意是两个短横的)+空格+--output(两短横)+空格+../输出目录相对路径+空格+名字.bin+空格+../输出目录相对路径+空格+名字.axf
fromelf.exe的路径,具体根据你所按照的keil软件的路径
如果是MDK4 的话,一般就是%ARM\BIN40\fromelf.exe,如果是MDK3的话,一般就是%ARM\BIN\fromelf.exe
4. 根据User页的配置还要配置Output页面,具体如下:

注:这个文件存放最好在工程一创建就修改,不修改的话,默认与工程同文件夹,建议修改,免得工程文件夹文件太繁多5. 点击OK确定,然后再重新编译则会按照上图中的配置路径生成.bin格式的文件了:



OK,打完收工…………希望对大家有点帮助!文章非原创,主要由网络中整理,如有侵权,请联系作者删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息