※ ChatGPTを利用し、要約された質問です(原文:マイコンのエミュレータについて)
マイコンのエミュレータでブレークポイントが固まる問題
このQ&Aのポイント
現在E8エミュレータを使用してマイコンのデバッグを行っています。
しかし、2つ目のブレークポイントまでプログラムを実行すると固まってしまいます。
他の製品では問題なくプログラムが停止するため、エミュレータとの通信に問題がある可能性があります。
現在E8エミュレータを使ってマイコン(H8tyni 3687)のデバッグを行おうとしております。
しかしプログラム上にブレークポイントをいくつか置いてデバッグをする際に、1つ目のブレークポイントまでは正常にプログラムが停止するのですが、2つ目のブレークポイントまでプログラムを実行させると、プログラムが停止することなく、固まってしまいます。
1つ目のブレークポイントから2つ目のブレークポイントまでのプログラムで無限ループに入っているのかと思い、1つ目のブレークポイントを削除し、リセットから直接2つ目のブレークポイントまでプログラムを実行させると、正常にプログラムが停止します。しかし次のブレークポイントまで実行させるとまた固まってしまいます。
他の製品にも同じマイコンを使用しているものがあるため、そちらに今回のプログラムをダウンロードしE8エミュレータをつないだところ、特に問題なく1つ目のブレークポイント、2つ目のブレークポイントでプログラムが停止します。
今回問題が発生している基板でエミュレータとマイコン間の波形をオシロで確認したところ、1つ目のブレークポイントから2つ目のブレークポイントまで実行するときに、マイコンのP86(42ピン)が途中まで信号を出力して、突然Lowになってしまいます。(正常なときは信号を出力し終えた後はHighになります。)
ちなみにP86(42ピン)はマイコンからエミュレータに対して信号を出力するポートです。
このような現象をご経験された事がある方や、何かお気づきになられた方がいらっしゃいましたら、どのような事でもかまいませんので、ご教授ください。
よろしくお願いいたします。
お礼
お返事が遅くなってしまい、申し訳ございませんでした。 (自分では解決済みのアイコンをクリックしたつもりでしたが、まだ受付の状態になっていました。) 今回の原因は、NMI端子にノイズ除去の目的で付けておいたコンデンサーが影響していました。 NMI端子はLowアクティブなので、マイコンから出力された単発的なLow信号がなまってしまい、エミュレータ側でLowと認識できていなかったようです。 コンデンサーを取外したら、問題なく動作しました。 monova様から頂きましたアドバイスは、今後の教訓としてとてもありがたく思います。