• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HEWのtoolchainの設定の確認方法。)

HEWのtoolchainの設定の確認方法

このQ&Aのポイント
  • HEWのtoolchainの設定を比較するためにはどこかのファイルでオプションなどを確認する必要があります。
  • 現在のHEWのtoolchainで設定されているオプションなどのテキストは一括で確認する方法はありませんか?
  • HEWのtoolchainの設定を比較するためにはhwpファイルなどのファイルパスの違い以外にもオプションなどを確認する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

繰り返しますが……。 拡張子が、bin のファイルは、単なるアセンブラファイルでも、単なる機械語のファイルでもありません。 H8系だと、最終的なオブジェクトファイルは、拡張子がhexのファイルじゃないかなと思いますが、hex ファイルが違っていたら、「生成されたマシン語が違う」ということです。 bin ファイルには、主にデバッグのための、いろいろな情報が詰まっています。 その中には、ソースファイルの所在(つまり、フォルダ名を含む)があるかもしれません。 単純なバイナリ比較をして、「違う」と騒ぐ前に、普通のエディタで良いから,中をのぞいてみましょう。エディタで読める形で、フォルダが見えたりする可能性はかなりあります。 せめて、hex ファイルを生成して、それを比較してみましょう。 hex ファイルが同じなら、「マシン語として同じ」ということです。

その他の回答 (2)

回答No.2

だから、「お礼」の欄に書かれたのが、「PCのHEWのtoolchainの設定」です。 tookchain の個々の設定は、HEW ではなくて、ワークスペース毎にありますから。 で、それが同じなら、あなたのいう、「バイナリ」が同一になるかどうかは、わかりません。 そもそも、その、「バイナリの中に、マシン固有の情報をかかえていませんか? 設定が違うかどうかより、バイナリファイルの具体的な『違い』をまず調べましょう」というのが、当方の主張です。

techhouse
質問者

お礼

回答頂きありがとうございます。お世話になっております。以前使用していたPCで出力したバイナリのbinファイルと、自分のPCで出力したbinファイルを比較ソフトのDFでバイナリ比較機能で違いを調べてみたところ、ファイルのデータ中、16バイト中1つでもデータの違いのある番地は約410kbyte中1/3程度ありました。 コンパイラのtoolchainの設定の違いでここまでバイナリのデータの結果に違いが出るものでしょうか。 また、バイナリファイルの具体的な違いがここまである場合、たとえば、このC言語のプログラムはこのようにアセンブラに変換している等のファイルなどはHEWの場合ありますでしょうか? AtmelのAVR Studioなどだと拡張子lssファイルなどでアセンブラ変換をどのようにしたかというのが解説されるファイルがあったと思うのですが、HEWにはありませんでしょうか? どうぞ、よろしくお願い致します。

回答No.1

あの……。 出力されたバイナリファイルの「何が・どう」違うのか確認しましたか? H8 だとすると、.hex が違っていたら、ちょっと問題ですが、それ以外のファイルが違うことは、普通にあります。 適切なツールがなければ、テキストエディタで強引に開いて、その、「バイナリファイル」の中に、パスの情報が入っていたりしないか、眺めてみましょう。 あと、Hew でワークシートを開いた「後」で、「ビルド」メニューの、一番先頭にある、toolchains メニューで、それぞれのコマンドのオプションを確認するのは、やってみましたか?

techhouse
質問者

お礼

回答頂きありがとうございます。助かります。 HEWのメニュー”ビルド”---->”H8S,H8/300 Standard Toolchain”のところのコンパイラやアセンブラや最適化リンカ等のコンパイラオプションが、今までビルドを行っていたPCのHEWの設定と同一かどうかをこれから調べようと思っています。 コンパイラのカテゴリとか、のソース、オブジェクト、リストなど、項目がかなりたくさんあるようですが、 (コンパイラオプション) -cpu=2000A:24 -stack=large -include="$(PROJDIR)\include","$(PROJDIR)\rtos" -object="$(PROJDIR)\obj\$(FILELEAF).obj" -debug -show=nostatistics,allocation,nosource,tab=4 -optimize=0 -speed=register,switch,shift,struct,expression -global_alloc=1 -const_var_propagate=1 -chgincpath -nologo (アセンブラオプション) -cpu=2000A:24 -debug -object="$(CONFIGDIR)\$(FILELEAF).obj" -list="$(CONFIGDIR)\$(FILELEAF).lis" -nologo -chgincpath -errorpath (最適化リンカオプション) -noprelink -rom=D=R -nomessage -list="$(CONFIGDIR)\$(PROJECTNAME).map" -show=symbol,reference,xreference,total_size -nooptimize -start=PResetPRG,PIntPRG/0400,P,C,C$DSEC,C$BSEC,D/0800,BHEAPMEM/0600000,BJURNEL/0670000,BPROGERASE/0FF4000,B,R/0FF4400,S/0FFBE00 -nologo -output="$(CONFIGDIR)\$(PROJECTNAME).abs" -end -input="$(CONFIGDIR)\$(PROJECTNAME).abs" -form=binary -output="$(PROJDIR)\bin\$(PROJECTNAME).bin" -exit (ライブラリオプション) -cpu=2000A:24 -stack=large -output="$(PROJDIR)\obj\$(PROJECTNAME).lib" -reent -head=runtime,new,math,stdarg,stdio,stdlib,string これらの内容が書かれていました。 このオプションの内容が、今までのPCのHEWのものと同一であれば、同一のバイナリ実行ファイルが出力できるようになるのでしょうか?

関連するQ&A