デバッグ中に変数の中身を変更するような機能がありますか

stlと申します。

e2 studioのデバッグの機能で、デバッグ中に変数の中身を変更するようなことは出来るのでしょうか?

例えば、LEDの動作確認のため、PWMの値を少しずつ変化させていきたいのですが、そのようなことが出来る機能がありますか?

Parents
  • プログラム無改造でそういうことは多分できないです。


    止めずにデバッグできる機能があっても例えばPWM値をセットする大元の変数を計算してセットする処理が周期的に変数を書き込むだろう作りの場合、デバッガで書き換えられてもすぐにそれは内部処理の変数変更により上書きされるからです。今書いた話はデバッガで書き換えができる場合でもそもそも無改造ではできないという話であって、RAマイコンでそういうデバッグができるできないの話ではないです。

    なお、RAはARMマイコンなのでETMというユニットを搭載しているのでリアルタイムトレースはできると思います。でも、e2studio+E2などでできるかは別の話です。ARMマイコン向けはいろんな会社がデバッグツールを出しているのでルネサス以外でも便利なのがあるかもです。

    https://www.renesas.com/jp/ja/document/mat/chip-debuggers-performance-property

    https://www.computex.co.jp/lp/p4_unstop.htm

  • お答えいただきありがとうございます。

    デバッガの機能としては出来なさそうですね。

    ARMセミホスティングという機能で、scanfを使用して、値の変更を出来るようにしようかと考えています。

  • GCCの場合、_isatty, _write, _read, _close, _lseek, _fstatを実装してやるとprintfとscanfが使えるようになります(他社マイコンですがインフィニオンのXMC4800ではUSBのVCOMをこれでprintfを有効にしてデバッグに使ってます。RAはGCCなので先に書いた関数を定義してやればできるはず。RXマイコンでCC-RXだとまた別のやり方)。これくらいの内容だとセミホスティングじゃなくてもいいんじゃなかろうか?

Reply
  • GCCの場合、_isatty, _write, _read, _close, _lseek, _fstatを実装してやるとprintfとscanfが使えるようになります(他社マイコンですがインフィニオンのXMC4800ではUSBのVCOMをこれでprintfを有効にしてデバッグに使ってます。RAはGCCなので先に書いた関数を定義してやればできるはず。RXマイコンでCC-RXだとまた別のやり方)。これくらいの内容だとセミホスティングじゃなくてもいいんじゃなかろうか?

Children
No Data