合并2个或更多ELF文件的最简单方法

时间:2011-06-02 02:38:59

标签: linker embedded elf 68000 coldfire

我正在为类项目编写一些嵌入式代码,这些代码项目当前(按要求)创建了许多srec文件并将它们合并。我希望能够将此代码加载到QEMU中,但它通常只对ELF文件感到满意。合并原始ELF文件而不是srecs的最简单方法是什么。 也可以接受,一种将srec转换回ELF并使得结果文件可加载的方法(objcopy似乎会产生相当破碎的文件(没有其他架构)。 这些工具必须能够使用m68k二进制文件,但主机系统是纯x86。

4 个答案:

答案 0 :(得分:2)

请查看ELFIO library。它包含WriteObj和Writer示例。通过使用该库,您将能够在不同的主机平台上创建ELF二进制文件。

答案 1 :(得分:0)

也许使用你的链接器?

srec文件只包含链接/定位的可加载二进制文件,elf文件包含在生成二进制文件时丢失的其他元数据,因此可能无法反转回elf,特别是如果精灵需要重定位的。

答案 2 :(得分:0)

我发现最原始问题的最简单解决方案实际上是将SREC加载添加到qemu。我已经在修改源代码以添加板支持,因此SREC支持并没有太多额外的工作。我在github上找到了一些代码,这些代码来自已经这样做的人并将其作为我工作的基础。

https://github.com/MegabytePhreak/qemu-mcf5307/commit/d3bceb911893b37b2524d6e804bac96691d4d33c

答案 3 :(得分:0)

...易 让我们假设:a.c和b.c

gcc a.c -c -o a.o
gcc b.c -c -o b.o
ld -r a.o b.oc -o c.o

c.o现在将a.o和b.o都包含为可重定位的ELF文件。

- 伊凡