Renesas Synergy™

FAQ 107452 : HEWを使用してH8S/Tinyシリーズのシステムデバッグする時のWDTリセット発生

Q: 質問

High-performance Embedded Workshop を使用してH8S/TinyシリーズMCU搭載のシステムをデバッグするとき、WDT(ウォッチドッグタイマ)を停止しているにも関わらずWDTリセットが発生します。

 


A: 回答

プログラムでWDTを停止させるコードを実行する前にWDTリセットが発生している可能性があります。

High-performance Embedded Workshopを使用してワークスペースを作成した場合、以下のようなコード( resetprg.c)を生成します。

__entry(vect=0) void PowerON_Reset(void) {

set_imask_ccr((_UBYTE)1);
_INITSCT();

HardwareSetup();
set_imask_ccr((_UBYTE)0);

main();

sleep();
}

例えば、HardwareSetup関数内でWDTを停止させるコードを記述した場合、その前のINITSCT関数を実行中にWDTリセットが発生する場合があります。

H8S/Tinyシリーズは初期状態で低速OCO(125KHz)で動作します。
また、INITSCT関数は下記の処理を行うものです 。

  •  初期値が設定されていない静的変数領域 (未初期化データ領域)をゼロで初期化
  •  初期化データ領域の初期値をROM上からRAM上にコピーする

よって、INITSCT関数内のコードが増えるにつれ実行時間が長くなるので、WDTを停止させるコードを実行する前にWDTリセットが発生する可能性は高くなります。

下記方法でWDTリセットが発生しないようにしてください。

  •  INITSCT関数の前にWDTを停止するコードを記述する。
  •  動作クロックを変更するコードを記述する。

 

適用製品

H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ
E8a
E100
H8S/Tiny
他にご質問がございましたら、リクエストを送信してください