【发布时间】:2012-03-19 15:36:35
【问题描述】:
我需要从eclipse c++ 编译器获取.hex 文件。我只收到.elf 文件。
最终,我应该将二进制代码写入只能采用二进制代码的控制器。
我使用实用程序将.elf 文件转换为二进制文件,但不是这样。
哦,我忘了说我用的是atollic truestudio。
【问题讨论】:
我需要从eclipse c++ 编译器获取.hex 文件。我只收到.elf 文件。
最终,我应该将二进制代码写入只能采用二进制代码的控制器。
我使用实用程序将.elf 文件转换为二进制文件,但不是这样。
哦,我忘了说我用的是atollic truestudio。
【问题讨论】:
首先,Elf 是“二进制”文件(您可能是指编译后的可执行文件)。您可以使用 jtag/debugger 将其加载到控制器。使用 GNU 工具链,您可以使用 objcopy 将 .elf 转换为原始二进制文件。 Objcopy 可以作为 Eclipse/cdt 中的另一个编译步骤添加,但可能您的 IDE 提供者应该这样做(检查是否已经存在启用此选项的选项)。
【讨论】:
对于英特尔 32 位十六进制: fromelf -i32 Main.axf > Main.i32
对于摩托罗拉 32 位十六进制: fromelf -m32 Main.axf > Main.m32
对于 Verilog 面向字节的十六进制格式: fromelf -vhx Main.axf > Main.vhx
对于纯二进制: fromelf -bin Main.axf > Main.bin
【讨论】:
对于 Eclipse(基于)C/C++ IDE,您可以在 C/C++ Build > SettingsProject -> Properies 窗口下设置“输出格式”
[x] Convert build output
您可以在哪里选择“Inter hex”或“bin”
类似设置的图片见mcuoneclipse blog。
【讨论】: