查看原文
其他

elf格式转换为hex格式文件的两种方法

王超 电子电路开发学习 2021-01-31


这周工作终于不太忙了,可以写点笔记总结一下了。今天看了一下后台,增加了好多关注者,真是受宠若惊啊!当然也有了更大的动力和压力,这么多天不更新,现在还关注的都是真粉丝啊!感谢!

以前的文章如何在Keil-MDK开发环境生成Bin格式文件,介绍了如何在Keil开发环境使用fromelf软件,将生成的axf文件转换为bin文件,这次我们再来介绍一下如何将elf文件转换为hex文件。

如何将elf文件转换为hex文件

elf(Executable and Linkable Format)文件一般是由gcc编译器生成的,在Linux开发环境使用较多,但Windows一般情况下需要使用hex文件来进行烧录,那么如何将elf格式转换为hex格式呢?elf转hex有两种方式,一个是使用Keil环境自带的fromelf.exe工具,第二个是使用arm-gcc编译器下的arm-none-eabi-objcopy.exe工具。

先看一下我电脑上的文件路径

测试文件路径

  1. D:\ELF  

  2.    |-- arm-none-eabi-objcopy.exe

  3.    |-- arm_file.hex

  4.    |-- formelf_file.hex

  5.    |-- output.elf

fromelf文件路径

  1. E:\Keil_v5\ARM\ARMCC_505u2\bin\fromelf.exe

arm-none-eabi-objcopy.exe文件路径

  1. D:\ELF\arm-none-eabi-objcopy.exe

使用formelf工具将elf文件转换为hex文件

  1. "E:/Keil_v5/ARM/ARMCC_505u2/bin/fromelf.exe" --i32combined --output="D:/ELF/formelf_file.hex" "D:/ELF/output.elf"

命令说明:

--i32combined表示生成hex文件

--output=指定输出hex文件的存储路径和文件名

"D:/ELF/output.elf"指定输入elf文件的路径

使用arm-none-eabi-objcopy工具将elf文件转换为hex文件

  1. "D:/ELF/arm-none-eabi-objcopy.exe" -O ihex "D:/ELF/output.elf" "D:/ELF/arm_file.hex"

  2. -O ihex表示生成hex文件,这里要注意是大写的O。



注意

  • 从两种方法生成的hex文件内容来看,还是有一些区别的,但程序运行都是一样的。

  • fromelf.exe不能拿出来单独运行,它还依赖于Keil安装目录下的其他文件

  • arm-none-eabi-objcopy可以拿出来单独运行

arm-none-eabi-objcopy及测试文件下载地址:https://wcc-blog.oss-cn-beijing.aliyuncs.com/BlogFile/ELF.rar

历史精选文章:

两个HC-05蓝牙模块互相绑定构成无线串口模块

Jlink使用技巧之J-Scope虚拟示波器功能

BIN、HEX、AXF、ELF文件格式有什么区别

如何在Keil-MDK开发环境生成Bin格式文件


欢迎大家关注我的个人博客:

http://www.wangchaochao.top/

微信扫码关注我的公众号

不定期更新个人学习笔记和技术总结,欢迎大家互相学习交流!


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存