4

現在(要件ごとに)多数のsrecファイルを作成し、それらをマージするクラスプロジェクトの埋め込みコードに取り組んでいます。このコードをQEMUにロードできるようにしたいのですが、通常はELFファイルでしか満足できません。srecの代わりに元のELFファイルをマージする最も簡単な方法は何ですか。また、srecをELFに変換し直して、結果のファイルをロード可能にする方法も受け入れられます(objcopyは、これを行うとかなり壊れたファイルを生成するようです(他のアーキテクチャはありません)。ツールはm68kバイナリで動作できる必要がありますが、ホストシステムはプレーンx86です。

4

4 に答える 4

2

ELFIO ライブラリを参照してください。WriteObj と Writer の例が含まれています。このライブラリを使用すると、さまざまなホスト プラットフォームで ELF バイナリ ファイルを作成できます。

于 2011-06-10T00:41:39.877 に答える
2

簡単...仮定しましょう:acとbc

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

co には、ao と bo の両方が再配置可能な ELF ファイルとして含まれるようになりました。

--イヴァン

于 2017-12-04T14:01:11.987 に答える
0

おそらくリンカーを使用しますか?

srec ファイルには、リンクされた/配置されたロード可能なバイナリのみが含まれます。elf ファイルには、バイナリの生成時に失われる追加のメタデータが含まれるため、特に elf を再配置可能にする必要がある場合は、elf に戻すことができない場合があります。

于 2011-06-02T19:40:29.840 に答える
-1

元の問題に対する最も簡単な解決策は、実際には SREC の読み込みを qemu に追加することであることがわかりました。ボードのサポートを追加するために既にソースを変更しているので、SREC のサポートはそれほど追加の作業ではありません。私はすでにそうしている誰かから github でいくつかのコードを見つけ、それを私の仕事の基礎として使用しました。

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

于 2011-06-30T18:15:44.480 に答える