ファイル変換(ELFファイル)


下記サイトに従いToppers/JSP動作させようと思っております。

http://www.yumi-chan.com/mitron/jsp-sh7262.html


最終的にできたファイルは、
*.bin、*.exe、*.syms、そして*.bin
となります。

*.elfがほしいのですが、その手順をご教授ください。
・Makefileを書き換える必要があるのでしょうか?
・もしくは、何かしらのファイル変換ツールが必要なのでしょうか?


また、これらファイル群(*.bin、*.exe、*.syms、そして*.bin、他)の
意味、使用ケースを紹介したサイトがあれば、合わせて教えてください。

よろしくお願いします。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2011/09/13 22:24:48
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:TransFreeBSD No.1

回答回数668ベストアンサー獲得回数268

ポイント80pt

・もしくは、何かしらのファイル変換ツールが必要なのでしょうか?

一応、objcopyと言うのがあって、変換できるようです。

objcopy -O sh-hitachi-elf hoge.bin hoge.elf

*.elfがほしいのですが、その手順をご教授ください。

Makefileが*.elfを作れるようになっているなら、

make hoge.elf

などで、hoge.elfが作られるはずです。

ただ、質問にあるリンク先のページを読むと、sh-hitachi-elfってあるので、そのままでelf形式になってる気がするんだけど。

出来ているファイルをreadelfやobjdumpで見てみたらどうでしょうか?

readelf -h hoge.bin
objdump -f hoge.bin

参考

・Makefileを書き換える必要があるのでしょうか?

前記の方法で出来ないなら、たとえばgccのオプションに「-b sh-hitachi-elf」を付けるなど、書き換える必要があるのかもしれません。

しかし、クロスコンパイル環境なわけですし、configureでつけてくれる気がするのだけど、もしかしたらconfigureにオプションがあるのかもしれません。

あと、リンカがelfを出力するように「-Wl,--oformat,elf32-hoge」と付ける手もあるかもしれませんが、それでまともに動くのかはしりません。

「elf32-hoge」というのは実際にはobjdump --helpに出てくる一覧の内の一つで、一口にelfと言っても色々あるらしいです。

参考

また、これらファイル群(*.bin、*.exe、*.syms、そして*.bin、他)の

意味、使用ケースを紹介したサイトがあれば、合わせて教えてください。

*.binは一般にバイナリファイルを表します。ここではflashROMに書き込むファイルとなるようです。

*.exeは一般にDOS/Windowsの実行ファイルを表します。しかし、今回のがWindowsで実行できるかは知りません。たんにPE形式のファイルと言うだけかもしれません。

*.symsはおそらくデバッグ用のシンボルファイルだと思われます。


[追記]

ふと気が付いたのですが「最終的にできたファイル」というのは

  • jsp.bin
  • jsp.exe
  • jsp.syms

ですか?だとしたら、jsp.exeはToppers/JSPエミュレータのような気がします。

id:mitsu48 No.2

回答回数1ベストアンサー獲得回数0

ポイント20pt

TOPPERS/JSPは標準でELF形式のファイルを出力するようになっていますので,Makefileを変更せずにビルドを走らせて生成したjspがELF形式のファイルになります.

bin,exe,symsのファイル形式についてはTransFreeBSDさんが説明されている通りです.

他にもsrec(Sレコード)形式にする場合などもあります.

http://kuwa.s256.xrea.com/h8-toppers/index.html

  • id:futurista
    自己フォローです。

    Makefileの

    OBJEXT = exe

    の箇所を

    OBJEXT = elf

    とするだけでした。
  • id:futurista
    自己フォローです。

    上記の方法では、

    拡張子が変わっただけで中身は*.exeと同じでした。
    (つまり、解決していません。)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません