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

简介: 这周工作终于不太忙了,可以写点笔记总结一下了。之前的文章如何在Keil-MDK开发环境生成Bin格式文件,介绍了如何在Keil开发环境使用fromelf软件,将生成的axf文件转换为bin文件,这次我们再来介绍一下如何将elf文件转换为hex文件。

这周工作终于不太忙了,可以写点笔记总结一下了。

img_6288de32b154d660dfd29228231f0e4c.jpe

之前的文章如何在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工具。

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

测试文件路径

D:\ELF  
    |-- arm-none-eabi-objcopy.exe
    |-- arm_file.hex
    |-- formelf_file.hex
    |-- output.elf

fromelf文件路径

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

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

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

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

"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文件

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

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

img_6288de32b154d660dfd29228231f0e4c.jpe

注意

  • 从两种方法生成的hex文件来看,还是有一些区别的,但程序运行都是一样的。
  • fromelf.exe不能拿出来单独运行,它还依赖于Keil安装目录下的其他文件
  • arm-none-eabi-objcopy可以拿出来单独运行

arm-none-eabi-objcopy及测试文件下载地址:ELF.rar


历史精选文章:


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

或微信扫码关注我的公众号

img_954cd7422a2def047d3f713ee25a28c1.jpe

目录
相关文章
|
7月前
|
安全 Linux iOS开发
IDA Pro 9.3sp2 发布 - 强大的反汇编程序、反编译器和多功能调试器
IDA Pro 9.3sp2 (macOS, Linux, Windows) - 强大的反汇编程序、反编译器和多功能调试器
1389 1
|
Linux 编译器 测试技术
探索Linux中的objcopy命令:数据处理与分析的得力助手
`objcopy`是GNU工具集中的实用程序,用于复制和转换二进制目标文件,如ELF到S-record。它支持格式转换、内容提取和修改,如移除调试信息。命令参数包括指定输入/输出格式和复制特定段。示例用途有:`objcopy -O binary input.elf output.bin`(ELF转二进制)和`objcopy -j .text input.elf output.o`(复制.text段)。使用时注意文件格式、备份原始文件并查阅文档。对于处理和分析二进制数据,`objcopy`是不可或缺的工具。
新版本ARM交叉编译器官网下载地址(arm-none-eabi、arm-none-linux-gnueabihf、aarch64-none-elf、aarch64-none-linux-gnu)
新版本ARM交叉编译器官网下载地址(arm-none-eabi、arm-none-linux-gnueabihf、aarch64-none-elf、aarch64-none-linux-gnu)
7184 0
新版本ARM交叉编译器官网下载地址(arm-none-eabi、arm-none-linux-gnueabihf、aarch64-none-elf、aarch64-none-linux-gnu)
|
Ubuntu Windows
Ubuntu22.04制作镜像
如何在Ubuntu 22.04操作系统上制作系统镜像。
1180 0
|
存储 Docker 容器
docker save命令和load命令
docker save命令和load命令
|
JSON 测试技术 数据安全/隐私保护
【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF
【7月更文挑战第7天】Docker部署PDF多功能工具Stirling-PDF
1970 2
|
安全 数据安全/隐私保护 Windows
Windows 允许空密码远程桌面
Windows 允许空密码远程桌面
561 2
|
存储 SQL 开发框架
文件上传漏洞 原理利用防御实战
文件上传漏洞 原理利用防御实战
|
NoSQL 编译器 vr&ar
GNU objcopy命令的探索:(转换二进制文件)
GNU objcopy命令的探索:(转换二进制文件)
1306 1
|
芯片 Windows
一文带你认识 CP210x 并安装驱动
一文带你认识 CP210x 并安装驱动
5673 0