下記サイトに従いToppers/JSP動作させようと思っております。
http://www.yumi-chan.com/mitron/jsp-sh7262.html
最終的にできたファイルは、
*.bin、*.exe、*.syms、そして*.bin
となります。
*.elfがほしいのですが、その手順をご教授ください。
・Makefileを書き換える必要があるのでしょうか?
・もしくは、何かしらのファイル変換ツールが必要なのでしょうか?
また、これらファイル群(*.bin、*.exe、*.syms、そして*.bin、他)の
意味、使用ケースを紹介したサイトがあれば、合わせて教えてください。
よろしくお願いします。
・もしくは、何かしらのファイル変換ツールが必要なのでしょうか?
一応、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.exeはToppers/JSPエミュレータのような気がします。
TOPPERS/JSPは標準でELF形式のファイルを出力するようになっていますので,Makefileを変更せずにビルドを走らせて生成したjspがELF形式のファイルになります.
bin,exe,symsのファイル形式についてはTransFreeBSDさんが説明されている通りです.
他にもsrec(Sレコード)形式にする場合などもあります.
コメント(2件)
Makefileの
OBJEXT = exe
の箇所を
OBJEXT = elf
とするだけでした。
上記の方法では、
拡張子が変わっただけで中身は*.exeと同じでした。
(つまり、解決していません。)