• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:モニタプログラムとの通信ソフトHtermのソースレベルデバッグについて)

モニタプログラムとの通信ソフトHtermのソースレベルデバッグについて

このQ&Aのポイント
  • モニタプログラムとの通信ソフトHtermのソースレベルデバッグについて質問があります。
  • ソースレベルデバッグを行うにはコンパイルしたプログラムの出力形式がデバッグ情報をつけたELF/DWALF2形式ではいけないみたいです。
  • Htermを使ってマイコンのRAMに書き込んだ後、「CPUないし動作モードが正しくありません」と表示されてしまいます。どうすればソースレベルのデバッグを行えるでしょうか?

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

  • ベストアンサー
  • R32C
  • ベストアンサー率39% (115/290)
回答No.2

貴殿の望む方法でどうやればいいかは、環境が違うのでどうすればいいかは わかりませんが、とりあえず、私のやった内容を書いときますので参考まで 開発環境は、cygwin で gccは、2.95 だったと思う。(すごい古いもの) TOPPERSのサイトにある H8用GDB stub を H8/3069LAN用 SCI1に改造しました。 やっていたのは環境的にはELF ではなく COFFフォーマットです。 gdb コマンドラインで、buildして普通に作りました。 insight ではなく、cygwinにX Windowもインストールして、DDDをインストールしました。 DDDそのものは、gdbをGUIで動かすもののようです。 ご質問の件は 1)SRAM増設の対応、たぶんそうだと思います。モード設定なども関係すると思います。 2)insightのバージョン  insightは、gdbの機能を内蔵しているもののようです。  stubとのバージョンは合わせたほうがいいと思いますが、使ったことがないので  よくわかりません。   一方 DDDは、gdbにguiで被せただけなので、所望のバージョンのgdbを操作できるかと  思います。サイトにはマイコンに対応不十分と書かれていますが、特に不自由した記憶  はありませんでしたが。

utaibito33
質問者

お礼

ありがとうございます。 本日やってみましたが、参考ホームページのとおりやってみたらgdbのmakeの点でエラーが発生してしましました。どうやら、先人の人と同じ環境であってもそれを行うための大元となるcygwinのバージョンが違うためという可能性があるみたいです。 よって、別の組み合わせの環境で現在行っています. DDDはLinuxの環境ではないですか?勘違いだったらすいません。windowsでも使用可能であるなら、DDDも視野に入れてやってみたいとおもいますが。

その他の回答 (2)

  • R32C
  • ベストアンサー率39% (115/290)
回答No.3

DDDは、X Window (UNIXベース)ですが、Windowsマシン上cygwinのインストールでXWindow関係もチェックすれば、MS Windows上で XWindowが動作しますよ。

  • R32C
  • ベストアンサー率39% (115/290)
回答No.1

だいぶ前ですが、Htermでソースレベルデバッグができないか調査したこと がありますが、gccではダメで断念しました。 だめだった理由が、gcc で期待するelf/dwarf2 になっていないのが原因のようです。できるかもしれませんが、少なくとも私は知りません。 結局そのときはgdbを使いました。 参考までに http://www.exp.org/h8/ml/archive/cgi/view.cgi?thread=3882 のML(3886)に詳しく書かれていますが、gdbを使う方法などあります。 ML(3882)では、ルネサス純正コンパイラでHTERMで可能ということを言ってますね。 結構gccは面倒なので、コードサイズが64kbまでだったらルネサス純正コンパイラの評価版を使えば済むように思いますが。。。 gdbを使う方法は、 1)gdb stub を rom(ターゲット)に書き込んで実施する方法 2)H8モニタ(ターゲット)のまま ホスト側のgdbにパッチを入れる方法(新しいものはパッチが組み入れられていたと記憶していますが) の2通り、 ホスト側は、GUIでDDDやinsightといったGUIのフロントエンドをかぶせる方法があります。

utaibito33
質問者

お礼

いつも回答ありがとうございます。 やはり、それが原因だったのですか。そのELF形式がHtermで使えるものとしてターゲットに書き込むプログラムに盛り込まれているか自分なりに調べましたが、どうやらだめのようでした。 現在はR32Cさんがおっしゃるように、gdbを使う方向に向かっております。自分は1の方法のgdbstubを書き込んで実施する方法で行こうと考えています。 ここでもう少し質問させてもらってもよろしいでしょうか? ・gdbstubを作成する場合、現在はweb上のtoppersのサイトで配布されている3067用のstubを3052用に改良したものがあるページで紹介されていたので、それを3048用に変更して作っています。そこで、容量の問題からSRAMを増設しましたが、その領域を有効にするプログラムを追加すれば使えるようになりますよね?ということです。 ・コマンドラインでgdbを使ってデバッグを行うと思うのですが、windows上で使いたいので、デバッグの環境が整ったらinsightを使いたいと考えています。その場合、gdbとの互換性からinsightのバージョンとかをあわせたほうがいいのでしょうか? 現在gdb5.2.1を使おうと考えているとそのバージョンのinsightが見つかりません。

utaibito33
質問者

補足

いつも回答ありがとうございます。 やはり、それが原因だったのですか。そのELF形式がHtermで使えるものとしてターゲットに書き込むプログラムに盛り込まれているか自分なりに調べましたが、どうやらだめのようでした。 現在はR32Cさんがおっしゃるように、gdbを使う方向に向かっております。自分は1の方法のgdbstubを書き込んで実施する方法で行こうと考えています。 ここでもう少し質問させてもらってもよろしいでしょうか? ・gdbstubを作成する場合、現在はweb上のtoppersのサイトで配布されている3067用のstubを3052用に改良したものがあるページで紹介されていたので、それを3048用に変更して作っています。そこで、容量の問題からSRAMを増設しましたが、その領域を有効にするプログラムを追加すれば使えるようになりますよね?ということです。 ・コマンドラインでgdbを使ってデバッグを行うと思うのですが、windows上で使いたいので、デバッグの環境が整ったらinsightを使いたいと考えています。その場合、gdbとの互換性からinsightのバージョンとかをあわせたほうがいいのでしょうか? 現在gdb5.2.1を使おうと考えているとそのバージョンのinsightが見つかりません。

関連するQ&A