Renesas Synergy™

FAQ 104333 : デバッグ作業中に「Communication Timeout Error」が表示され、デバッグが中断してしまいます。

Q: 質問

デバッグ作業中に「Communication Timeout Error」が表示され、デバッグが中断してしまいます。


A: 回答

E8a/E8/E7エミュレータはデバッグ機能の実現のために、一部のMCU資源(RAM/ROM /通信ポートなど)を使用します。ユーザプログラムが、これらの資源を使用 すると、E8a/E8/E7エミュレータ用のファームウェアが正常に動作できなくなり、 このエラーが表示されます。
(一部の品種については、RAM/ROMの占有がない場合もあります。)

以下に過去の事例を掲載します。
これ以外にもデバイス固有の注意事項がありますので、以下のデバイス別のマニュアルも参照してください。

マイコン共通の注意事項:

  • エミュレータが占有するRAMのアドレスをユーザプログラムが使用している。
    MAPファイルを参考にリンカのオプションを見直し、占有領域をユーザプログラムが使用しないようにしてください。
    ユーザプログラムでRAMを初期化する場合などに注意してください。
    なお、マイコンによってはRAM領域を使用しないものもあります。
  • ユーザプログラムの暴走によりエミュレータ用のRAM領域が上書きされた。
    お手数ですがデバッグメニュー -> 初期化を選択して『初期化』操作(もしくは再接続操作)を行ってください。
  • 起動時のMCUの製品名の選択で実際に使用しているマイコンと異なる製品名を選択している。
    製品名またはグループ名が異なっていてもエミュレータが起動しユーザプログラムを実行できる場合があります。
    ただし、ブレーク時にこのエラーが発生する場合があります。
    選択しているマイコンのグループ名と製品名が使用しているマイコンと合っているか確認してください。
  • 外付けの発振器、発振子が発振していない。
    マイコンによっては初期状態で内蔵のオンチップオシレータで動作するものがあります。
    このようなマイコンは外付けの発振器、発振子が発振していなくてもエミュレータは起動しますが、ユーザプログラムで外部発振動作に切り替えたときにマイコンが動作せずこのエラーが発生します。
    外付けの発振器、発振子が発振しているか確認してください。
    また、帰還抵抗の有無も確認してください。

ワークスペース名に関する注意事項:

High-performance Embedded Workshopのワークスペース名やソースプログラムのファイル名およびディレクトリ名に全角文字などが使われていると、OFSレジスタの設定が正常にできない場合があります。 ディレクトリ名、ファイル名、ワークスペース名には、ASCII文字のみを使用してください。詳細についてはFAQ 104698をご参照ください。

マイコン個別の注意事項:

R8Cファミリ、M16Cファミリ固有の注意事項

R8C1xシリーズ(R8C/14~17を除く)、R8C/2xシリーズ、およびM16Cファミリ(M16C/50シリーズ,M16C/63, /64A, /65, /6Cグループを除く)は、エミュレータとマイコンは デバッグ中、UART1の機能を使用して通信しています。 そのため、プログラム中でUART1を操作すると、Communication Timeout Errorが発生します。 エミュレータの制限事項になりますので、UART1は操作しないでください。 また、MCUによっては、ポートを使用して制御を行っている場合もありますので、同様にユーザプログラムで操作しないよう注意してください。

例)M16C/62P用のE8エミュレータでは、以下のポートを使用します。
ポート6レジスタのビット7~4
ポート6方向レジスタのビット7~4

なお、CコンパイラM3T-NC30WAのサンプルスタートアッププログラム(ncrt0.a30)では、 標準入出力関数(init関数)を使用する設定になっています。 これが設定されている場合、UART1が初期化されます。

以下の方法で、標準関数入出力初期化処理を無効にしてください。

(1)   スタートアップncrt0.a30中のinit関数呼び出し部をコメントアウトする。
; .glb _init
; jsr _init
(2)  

init関数呼び出し部を有効にしない。

  • (a) High-performance Embedded Workshopを使用する場合 新規プロジェクト作成時のウィザード "New Project-3/6-Setting the contents of Files to be Generated"で表示される、 [Use Standard I/O Library]チェックボックスにチェックしない。
  • (b) High-performance Embedded Workshopを使用する場合(プロジェクト作成後) 以下の手順でアセンブラオプション-D__STANDARD_IO__=1 のチェックをはずす。
  • メニュー[オプション]→[Renesas M16C Standard Toolchain]をクリックする。
  • Renesas M16C Standard Toolchainダイアログボックスが表示される。
  • Assemblyタブをクリックする。
  • Category:Source、Show entries for:Definesを選択する。
  • [-D__STANDARD_IO__=1] Enable initialization for standard &I/O library.のチェックをはずす。
  • OKボタンをクリックする。
  • (c) DOS窓上でコンパイル(High-performance Embedded Workshopを使用しない) アセンブラオプション-D__STANDARD_IO__=1 を指定しない。

なお、init関数の有効/無効の設定については注意事項がありますので、 ツールニュースをご確認ください。

また、R8Cファミリ(R8C/10およびR8C/11を除く)では、FFFF番地にOFSレジスタが配置されており、OFSレジスタのビット0の値が0の場合、リセット後ウォッチドッグタイマが自動的に起動します。
ウォッチドッグタイマを使用しない場合は、ビット0が1になるようプログラムを作成してください。

OFSレジスタの設定については FAQ 105277もご参照ください。

ウォッチドッグタイマを使用していないにもかかわらず、OFSレジスタがウォッチドッグタイマを自動的に起動する設定になっている場合、ウォッチドッグタイマ割り込みまたはリセットが発生してプログラムが正しく動作せず、結果的にcommunication timeout error が発生する場合があります。

M16Cファミリ固有の注意事項:

  • メモリ拡張モードで使用される場合、RDY端子やHOLD端子がウェイトやホールドがかかる方向に固定されてしまっている。
    →マイコンの仕様に合わせてウェイトやホールドがかからない様に端子を処理してください。
  • SFRの予約ビットの設定が間違っている。
    →予約ビットの値はハードウェアマニュアルで指定されている値をライトしてください。

R8C/3x(3xD以外)、R8C/Lx、R8C/Mxシリーズ固有の注意事項:

  • 高速オンチップオシレータの周波数変更後、E8aとターゲットの通信が安定する前にストップモード(*)に移行すると、通信エラーが発生する場合があります。

    1. デバッグ操作で回避する方法
      高速オンチップオシレータの周波数を変更した後、ストップモードに移行する前に一旦ユーザプログラムをブレークさせて再実行してください。
      実行後ブレークを使用する場合は、ストップモードに移行する命令が実行されないようにブレークポイントを設定してください。
    2. プログラムで回避する方法
      高速オンチップオシレータの周波数を変更した後、ストップモードに移行するまでに2秒以上間を置いてください。
    *注) R8C/3xシリーズ(R8C/3xD以外)はウェイトモードにも該当します。R8C/Lxシリーズはウェイトモード、パワーオフ2モードにも該当します。

H8/300H Super Low Powerシリーズ、H8/300L Super Low Powerシリーズ固有の注意事項

  • SCI4をモジュールスタンバイ状態にしている。
    →SCI4のモジュールスタンバイを解除してください。
    SCI4はエミュレータとマイコンの通信に使用しているシリアルです。
  • 内蔵フラッシュメモリをモジュールスタンバイ状態にしている。
    →内蔵フラッシュメモリのモジュールスタンバイを解除してください。

 

FAQ検索結果 No. 104333 | ルネサス エレクトロニクス

適用製品
E8a
E8
E7

 

他にご質問がございましたら、リクエストを送信してください