打印
[技术问答]

MDK中hex转BIN文件生成

[复制链接]
975|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sdlls|  楼主 | 2025-5-27 22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MDK开发的技巧:
1.使用fromelf.exe程序,将.hex或者.axf转化为.bin文件。
2.利用.bat批处理文件,将.bin和.hex拷贝到需要的文件夹下。

例如:E685工装中
Run#1 D:\Keil_v5\ARM\ARMCC\bin\fromelf.exe –bin -o ./Debug/AppT081E685.bin ./Debug/AppT081E685.axf

Run#2 MDKAfBulid.bat

而.bat中为 copy /y .\Debug*.hex OutPutDir
copy /y .\Debug*.bin OutPutDir\

实现编译生成的.axf和.hex文件后,先转化为.bin
在将.hex和.bin拷贝到OutPutDir文件夹下,方便下载使用

keil MDK中如何生成*.bin格式的文件【K:\Keil_arm_for_tkstudio\ARM\BIN40>fromelf –bin -o aa.bin LPC1700.axf–>简单例子】
在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview MDK集成开发环境的优势,将*.axf格式文件或*.hex格式文件转换成*.bin格式的文件是十分自然的想法。本文将详细的探讨这种转换方法。
在Realview MDK中,生成*.bin格式文件的工具是ARM公司的RVCT开发套件中的fromelf.exe。默认安装下,它位于C\:Keil\ARM\BIN40文件夹下。
下面将介绍它在Keil MDK中的使用方法:
1. 新建一个工程,例如test.uvproj;
2. 打开Options for Target ‘target 1’对话框,选择User标签页;
3. 构选Run User Programs After Build/Rebuild框中的Run #1多选框,在后边的文本框中输入C:\Keil\ARM\BIN31\fromelf.exe –bin -o ./bin/test.bin ./test.axf命令行;步骤2、3可见下图所示。
4. 重新编译文件,在./bin/文件夹下生成了test.bin文件。
经过上述4步的操作以后,将得到我们希望的test.bin格式的文件。
ps:步骤3中的”C:\Keil\ARM\BIN31\fromelf.exe ”也可以通过点击下图红色标注出进入keil安装目录下选择。

fromelf.exe转换工具的语法格式如下:
fromelf [options] input_file

在掌握了fromelf转换工具的语法格式以后,下面将介绍它在Realview MDK中的使用方法:


新建一个工程,例如Axf_To_Bin.uv2;

打开Options for Target ‘Axf_To_Bin’对话框,选择User标签页;

构选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命令行;

重新编译文件,在./output/文件夹下生成了Axf_To_Bin.bin文件。
经过上述4步的操作以后,将得到我们希望的Axf_To_Bin.bin格式的文件。

使用特权

评论回复
沙发
爱相随| | 2025-6-7 11:33 | 只看该作者
使用MDK内置工具(fromelf.exe)

使用特权

评论回复
板凳
Carmen7| | 2025-6-7 12:42 | 只看该作者
打开MDK工程,点击顶部菜单栏的 Options for Target(魔术棒图标)。切换到 Output 选项卡:勾选 Create HEX File(生成HEX文件)

使用特权

评论回复
地板
Estelle1999| | 2025-6-7 14:07 | 只看该作者
记录输出路径(默认在工程目录的Objects文件夹下)。添加Post-Build脚本(自动转换)切换到 User 选项卡。

使用特权

评论回复
5
HeimdallHoney| | 2025-6-7 15:13 | 只看该作者
fromelf.exe --bin --output=.\Objects\app.bin !L .\Objects\app.bin:指定输出的BIN文件名(路径需与HEX文件一致)。!L:MDK内置变量,表示生成的HEX文件路径(通常为.\Objects\app.hex)。

使用特权

评论回复
6
Betty1299| | 2025-6-7 16:18 | 只看该作者
手动使用fromelf命令行,如果未配置自动转换,可在编译后通过命令行手动转换

使用特权

评论回复
7
Whosheart| | 2025-6-7 17:26 | 只看该作者
找到MDK安装目录下的fromelf.exe(通常位于C:\Keil_v5\ARM\ARMCC\bin\)

使用特权

评论回复
8
ranmuy| | 2025-6-7 18:52 | 只看该作者
使用第三方工具,若需更灵活的转换(如调整起始地址)

使用特权

评论回复
9
Belle1257| | 2025-6-8 09:07 | 只看该作者
HEX2BIN(开源工具)这个非常好用的,或者用jlink的jflash也行

使用特权

评论回复
10
alkaidnext| | 2025-6-8 10:15 | 只看该作者
需要注意的是BIN文件是纯二进制数据,需确保HEX文件的起始地址(在MDK的Target选项卡中配置IROM1起始地址)与硬件匹配。

使用特权

评论回复
11
Augenstern星星| | 2025-6-8 12:50 | 只看该作者
若手动转换,确保HEX和BIN文件路径无空格或特殊字符。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

5097

帖子

1

粉丝