软件 [Arm Elf_to_hex_tools] ELF格式文件转换为HEX格式文件

Arm Elf_to_hex_tools 并不是一个特定的软件名称,而是一类工具集的统称 ,用于将ARM平台编译生成的ELF格式文件转换为HEX格式文件。

ELF 文件是编译链接后生成的包含调试信息、符号表等多种信息的可执行文件,主要用于调试阶段。HEX 文件是一种标准的文本格式,被绝大多数烧录器、编程器所支持,用于将程序固化到芯片的Flash中。

转换的核心逻辑是:在调试时使用信息完整的ELF文件,在量产或固件发布时,将其转换为HEX文件用于烧录

主要包含以下两类工具:

1. fromelf (ARM官方工具)

这是ARM公司官方提供的映像转换工具,集成在Keil MDK-ARM、DS-5、RVDS等ARM开发工具链中。

  • 基本用法

bash

fromelf --i32combined --output=output.hex input.elf

或指定输出为hex文件:

bash

fromelf.exe --i32 --output=output.hex input.elf

  • 支持的输出格式
    • --bin :纯二进制格式
    • --i32 :Intel Hex-32格式
    • --m32 :Motorola 32位S-record格式
    • --vhx :Verilog内存模型十六进制格式
  • 注意fromelf.exe 依赖于Keil安装目录下的其他文件,不能单独拿出来运行。

2. arm-none-eabi-objcopy (GNU工具)

这是GNU Binutils工具集的一部分,配合ARM GCC编译器使用,更加灵活轻量。

  • 基本用法

bash

arm-none-eabi-objcopy -O ihex input.elf output.hex

  • 命令解释
    • -O ihex :指定输出格式为Intel HEX(大写O)
    • input.elf :输入的ELF文件
    • output.hex :输出的HEX文件
  • 优势arm-none-eabi-objcopy 可以单独拿出来运行,不依赖完整的IDE环境。

在IDE中的操作方式

如果你使用Keil µVision这类IDE,不需要手动执行命令:

  1. 打开 Options for TargetOutput 选项卡
  2. 勾选 Create HEX File
  3. 重新编译工程,IDE会自动调用fromelf 生成HEX文件

文件下载:ArmElf_to_hex_tools.zip (1009.4 KB)

未使用验证:ELF.zip (435.7 KB)