使用Keil-MDK生成*.bin格式可执行文件

使用Keil-MDK生成*.bin格式可执行文件



前言

在使用Keil MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然文件可以直接使用仿真器的下载和调试,但是出于用户需求或使用IAP升级, ∗ * .bin格式的文件更简约也更有优势,所以在Keil下将*.axf格式文件或*.hex格式文件转换成*.bin格式的文件的方法是必须掌握的,本文所述就是这种转换方法。


一、fromelf.exe工具

转换之前,先了解一下ARM公司的RVCT开发套件中的fromelf.exe转换工具,在MDK-Keil中生成*.bin格式文件的工具正是它。

fromelf.exe转换工具的语法格式如下:fromelf [options] input_file
其中[options]包括的选项及详细描述见下表:

选项描述
–bin生产Plain Binary格式文件(所说的bin文件)
–help显示帮助信息
–vsn显示版本信息
–output file输出文件,默认输出文件为文本文件
–nodebug生成的镜像不包含调试信息
–nolinkview生成的镜像不包含段信息
–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打印代码和数据大小的信息

二、使用方法

1.配置输出

打开Keil工程,点击Opitons for Target…,然后点击output设置如图:
在这里插入图片描述
Led_V3_00为生成的可执行文件名,(即编译后会生成一个Led_V3_00.axf的文件)生成的bin文件就是从这个文件生成的,注意不要带有.hex后缀,否则可能出现不能正常调试等问题

2.输出格式

然后点击user设置如图,在Run #1后输入以下内容:

D:\keil\ARM\ARMCC\bin\fromelf.exe --bin -o . . .. ../Output/Led_V3_00.bin . . .. ../Output/Led_V3_00.axf

在这里插入图片描述

D:\keil\ARM\ARMCC\bin\fromelf.exe --bin -o :命令表示从fromelf.exe所在路径执行fromelf工具程序,按照–bin选项执行生成bin文件
. . .. ../Output/Led_V3_00.bin :生产的bin文件的路径和文件名,
. . .. ../Output/Led_V3_00.axf :可执行文件的路径和文件名,

. . .. ../表示相对路径,相对的的工程文件所在目录,此处表示工程文件所在目录上一级目录下的Output目录下,也可改为绝对路径

最终得到:
在这里插入图片描述

可以看出hex文件大小是bin文件大小的两倍多,
关于hex文件和bin文件区别可以参见:https://blog.csdn.net/Yin_w/article/details/131606027?spm=1001.2014.3001.5502


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值