设为首页收藏本站
查看: 29755|回复: 2

[MDK-ARM] ELF 转 HEX、BIN 文件

[复制链接]

231

主题

64

回帖

2145

积分

管理员

积分
2145
玉米糊 发表于 2014-1-20 14:43:57 | 显示全部楼层 |阅读模式
这里我们要用到 arm 编译器的 fromelf 这个命令,可以用DS-5、RVDS、ADS或者KEIL MDK-ARM都可以。

下面是 fromelf 的说明:

使用 ARM 映像转换实用程序 fromelf 可以处理 ARM 编译器、ARM 汇编器和 ARM 链接器生成的 ARM 可执行和链接格式 (ELF) 对象文件和映像文件。
fromelf 可以将 ELF 映像转换为其他格式,以供 ROM 工具使用并直接加载到内存中。 可用格式有:
  • 纯二进制
  • Motorola 32 位 S-record
  • Intel Hex-32
  • 面向字节(Verilog 内存模型)的十六进制格式
  • ELF。 可以重新保存为 ELF,例如,用于从 ELF 映像删除调试信息


使用 fromelf 可以保护映像中的知识产权 (IP) 和传递到第三方的对象。
使用 fromelf 可以指定包含某些信息(如用于特定配置的命令行选项)的项目模板。 随 DS-5/RVDS/MDK 提供了适用于 ARM 处理器和各种 ARM 开发板的项目模板。 然而,您可以使用这些模板创建自己的特定于项目的配置。
fromelf 还可以将输入文件的信息(例如,反汇编输出或符号列表)输出到 stdout 或文本文件。
fromelf 具有以下执行模式:
  • ELF 模式 (--elf),用于将文件重新保存为 ELF
  • 文本模式(--text 以及其他),用于输出有关对象或映像文件的信息
  • 格式转换模式(--bin、--m32、--i32、--vhx


Note
如果生成的映像没有调试信息,则 fromelf 无法:
  • 将映像转换为其他文件格式
  • 生成有意义的反汇编列表


有以下几点需要注意:
  • 如果使用 fromelf 通过 --bin、--m32、--i32 或 --vhx 选项之一将包含多个加载区的 ELF 映像转换为二进制格式,则 fromelf 会创建一个名为 destination 的输出目录,并且为输入映像中的每个加载区都生成一个二进制输出文件。fromelf 将这些输出文件放置在destination 目录中。
    Note
    对于多个加载区,将对应加载区中的第一个非空执行区的名称用作文件名。

    如果使用 --m32combined 或 --i32combined 选项转换包含多个加载区的 ELF 映像,则 fromelf 会创建一个名为 destination 的输出目录,并为输入映像中的所有加载区生成一个二进制输出文件,然后将该输出文件放置在 destination 目录中。
    例如,如果用定义多个加载区的分散加载描述文件生成 ELF 映像,则这些映像会包含多个加载区。
  • 使用 fromelf 时,不能进行以下操作:

    • 除了可以使用 --base 选项改变 Motorola S-record 或 Intel Hex 输出的基址之外,不能更改映像结构或地址。
    • 不能将分散加载的 ELF 映像更改为另一格式的非分散加载映像。 链接时必须向链接器提供所有结构或寻址信息。



下面是一个例程,在windows下面将ELF文件转换为HEX文件,
"D:/Keil/ARM/ARMCC/bin/fromelf.exe" --i32combined --output="D:/ELF/MainPhytec.hex" "D:/ELF/MainPhytec.elf"

  • 最前面蓝色是命令的路径,在windows下最好用双引号""括住;
  • 红色则是选项,说明要生成hex文件,而不是包含加载区的目录。
  • 绿色是输出文件路径;
  • 最后黑色是 elf 文件。

回复

使用道具 举报

2

主题

2

回帖

25

积分

新手上路

积分
25
jarrah1129 发表于 2015-1-22 21:03:34 | 显示全部楼层
能否细说一下fromelf 这个命令在DS-5中咋么用
回复 支持 反对

使用道具 举报

2

主题

2

回帖

25

积分

新手上路

积分
25
jarrah1129 发表于 2015-1-22 21:04:54 | 显示全部楼层
能否细说一下fromelf 这个命令在DS-5中怎么用?????
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-11-24 13:41 , Processed in 0.045585 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表