H8/36xxx制限事項および準備項目
1.ユーザ側での準備項目
デバックモニタが常駐するためのエリア(0x200〜0x7FF)番地をあけてください。
ユーザスタックエリアをモニタワークの方式に応じて、スタックエリアの確保に考慮してください。
メモリマップ

  内蔵ROM
終了アドレス
スタック方式(内蔵RAM) 固定番地方式(内蔵RAM) リセット解除時
オンチップオシレータ
動作
使用可能開始番地
(ソースブレ-クを使用した場合)
使用可能開始番地 モニタ使用番地
H8/36012 0x3FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36014 0x7FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36024 0x7FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36034 0x7FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36037 0xDFFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36049 0x17FFF 0xFFF780 (*0xFFF7C0) 0xFFF7C0 *0xFFF780 なし
H8/36054 0x7FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36057 0xDFFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36064 0x7FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36077 0xDFFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 10MHz
H8/36078 0x17FFF 0xFFF780 (*0xFFF7C0) 0xFFF7C0 *0xFFF780 10MHz
H8/36079 0x1FFFF 0xFFF780 (*0xFFF7C0) 0xFFF7C0 *0xFFF780 10MHz
H8/36087 0xDFFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36109 0x1FFFF 0xFFF780 (*0xFFF7C0) 0xFFF7C0 *0xFFF780 10MHz
H8/3664(N) 0x7FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/3670 0x1FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/3672 0x4FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/3687(N) 0xDFFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/3694(N) 0x7FFF 0xF780 (*0xF7C0) 0xF7C0 *0xF780 なし
H8/36902 0x2FFF 0xF980 (*0xF9C0) 0xF9C0 *0xF980 8MHz
H8/36912 0x2FFF 0xF980 (*0xF9C0) 0xF9C0 *0xF980 8MHz
モニタが内蔵RAM先頭より0x40バイト使用する。
2.使用制限事項
H8/36xxNデバイスをデバッグする場合は、CPU設定をH8/36xxにして下さい。
NMIは、デバッガが占有します。
モニタ使用の割り込みベクタは、NMI・アドレスブレーク・トラップ2・トラップ3です。(ダウンロード時に自動セット)
リセットベクタ値は0x800以上とし、その番地にはスタックポインタ設定の命令を配置して下さい。
デバッグ中は、スタックポイントの設定後に約1〜200ms(ハード構成による)以上のソフトタイマを入れることを推奨します。
NMIエッジは、立下りエッジ(初期値)とします。
使用端子は、リセット・NMI・ブートモード時に使用する通信線を占有使用します。
P87 P86 P85 NMI RESET(共有)
ターゲットとの接続は、推奨接続参考図をもとに設計して下さい。
H-debuggerのステータスランプが緑で点滅している場合は、モニタ不在です。
必ず<ファイル>−<ブートロード>−<モニタプログラム>を実行してモニタを組み入れて下さい。
デバイス制限としてフラッシュメモリの書き換え回数に制限があります。
3.機能制限事項
レジスタのSP(スタックポインタ)は、リードオンリです。
スタックポインタが適正値でない場合は、モニタは正常動作しません。(例0xFF7E値が適正値)
モニタが使用しているエリアにデバッガ操作でメモリライト操作があった場合、無視します。
オンザフラ機能で「割り込み使用する」の設定をした場合、ターゲット実行中に約10msec毎にターゲット状態を調べるため送受信によってモニタを起動させています。ターゲット側の実動作に影響を与える場合は「割り込みを使用しない」側に設定して下さい。
4.ブレークに対する注意事項
実行後ブレーク固定です。
このモニタは、CPUに内蔵したアドレスブレークコントローラ(PBC)を利用しています。ブレークにおける制限事項は、PBC仕様に準拠しますので注意が必要です。(CPU別ハードウェアマニュアル必読)特に、このPBCは実行後ブレークですので、ステップ実行時にサブルーチンコールだった場合、次行のニモニックにブレークポイントを置きますので、その行の実行後にブレークする事になります。つまり、サブルーチンコールのステップ実行は、次行で一行飛びになります。
分岐命令の飛び先でのブレークの注意
分岐命令[bcc label:8]の場合のブレーク設定には、注意が必要です。
true時の次行にブレークを置きますとブレークしません。

例1)C言語
if(条件 == true){
第一行目<――――――― ここ
第ニ行目
}

例2)ASM
bne label:8
mov r1,r2<―――――― ここ
mov r2,r3
label:

ブレーク設定をしたい場合は、ダミー文、もしくはnop文で行を空けてブレーク設定してください。
ただし、上記症状は、[bcc label:16]しますと発生しません。

又、false先にブレークを置きますとtrue発生時でもブレーク発生します。

例1)C言語
if(条件 == true){
第一行目<――――――― ブレーク発生
}
else{
第一行目<――――――― ここ
第ニ行目
}

例2)ASM
bne label:8
mov r1,r2<―――――― ブレーク発生
mov r2,r3
bra label2
label:
mov r1,r2<―――――― ここ
label2:

ブレーク設定をしたい場合は、ダミー文、もしくはnop文で行を空けてブレーク設定してください。
ただし、上記症状は、[bcc label:16]しますと発生しません。

5.各MCUの特記事項
【H8/36077】
【H8/36078】
【H8/36079】
【H8/36109】
【H8/36902】
【H8/36912】
内蔵フラッシュROMに書込む時は、内蔵オシレータを使用しています。(周波数は上記表を参照して下さい)
6.ファーム起動時のMCUに対する設定
NMI立下りエッジ指定(IEGR1)
モニタ使用ポート(SCI)を初期設定
(SYSCR2)の内容を退避後、アクティブモード(高速)に切り換え、モニタ終了時に退避データに戻します。
(TCSRWD)の内容を退避後、ウォッチドッグタイマを停止させ、モニタ終了時に退避データに戻します。(ユーザモード時)
7.低消費電力モード状態の注意事項
低消費電力状態でブレークモード(モニタ実行)させますと低消費電力モードは解除されます。(エミュレーションモード
8.ウォッチドッグタイマの注意事項
ブレークモード時(モニタ実行時)はウォッチドッグタイマを停止させ、復帰時(モニタ終了時)に開始時の状態に戻しています。
ユーザプログラムの実行中に周期サンプリングをしますとウォッチドッグタイマは停止します。
ユーザモードでのデバッグ指定において、H-debuggerと送受信の通信が確立した時点でウォッチドッグタイマを停止させています。よって、タイムUP周期を10ms以上に設定にして下さい。なお、エミュレーションモードで使用している場合は、制限がありません。
ユーザモードでのデバッグ指定において、ウォッチドッグタイマのタイムUPリセットになりますとPBC(PCブレーク)もリセットされます。なお、エミュレーションモードで使用している場合は、保持しています。
リセット解除直後から、WDT動作開始になるグループをお使いになる場合は、初期化が済むまではWDTを停止させることを推奨します。
1) H8/36064グループ
2) H8/36077グループ
3) H8/36079グループ
4) H8/36109グループ
5) H8/36902グループ
6) H8/36912グループ
上記グループはリセット解除直後からWDTが動作しています。
ウォッチドッグタイマのタイムUP−RESET動作を確認する場合は、エミュレーションモードで確認して下さい。
ウォッチドッグタイマ用内部レジスタをデバッガ操作で書き換えても無視します。
9.その他の注意事項
【デバッグモードについて】
H8/Tinyシリーズのデバッグ方式は2モードから選択できます。
【エミュレーションモード】H8/Tiny内部にあるオンチップデバッグ機能を使用するモードです。
【ユーザモード】     PBC(PCブレークコントローラ)を利用してユーザモードでデバッグ可能にしたモードです。 
モード別の機能の相違表
項目 エミュレーションモード ユーザモード
モード遷移時の内蔵RAM状態(電源ONスタート時のみ)  書き変る 書き変らない
ハードブレークの使用 可能 可能
デバッグ時のウォッチドッグタイマ使用 可能 可能(10ms以上)
デバッグ時のウォッチドッグタイマリセット時のI/O状態 保持 リセット
デバッグ時の低消費電力モードへの対応 可能 不可
分岐トレースの使用 可能 不可
デバッグ時のリセット遅延防止ソフトタイマ 不要 推奨
ソースブレークの使用 不可 可能
PUTCHの使用 不可 不可
CPU別モード選択の可否表
CPU名 エミュレーションモード ユーザモード
H8/36012
H8/36014
H8/36024
H8/36034
H8/36037
H8/36049
H8/36054
H8/36057
H8/36064
H8/36077
H8/36078
H8/36079
H8/36087
H8/36109
H8/3664(N)
H8/3670
H8/3672
H8/3687(N)
H8/3694(N)
H8/36902
H8/36912
【リセット遅延に関する注意事項】
H8/Tinyシリーズのデバッグ方式を[ユーザモード]で指定し、ハード的にリセット遅延があるにも関わらず[CPU設定]で[リセット遅延回路]を使用しない側の設定で、DEF8Kの[Start]を掛けますと内蔵RAMの先頭部分が書き換わります。理由としては、遅延の為、リセットLOW状態でNMIがHIGHになる為、エミュレーション回路が有効になってしまうからです。
【バッテリバックアップシステムの場合の注意事項】
H8/Tinyシリーズの場合、FROMに書く時の手順として高速ブートモード(エミュレーションモード)に遷移させてからFROM書き込みシーケンスに移行させています。高速ブートモード中は外部からのRESET信号が無効になってしまいますので、書き込み終了後H-debuggeを外した状態で、かつ、モニタ(ファーム)が起動出来ない状態の場合、VCCをOV(ゼロ)に落とし、必ず高速ブートモードから抜けさせて下さい。
10.オンザフライ時のMCU停止時間の計測値
コマンド 停止時間 単位(msec)
CPU設定  割込みを使用しない 割込みを使用する  
デバッグI/F クロック同期 クロック同期
割込み方式 受信割込み
割込みが使用できる条件 ワークエリア固定番地方式
ユーザ側が割込み許可状態
[PUTCH]を使用しない
1バイトのメモリアクセス 1.50
1バイト増毎に+0.2ms
(MAX 128byte 27.1ms)
0.04
バイト数に影響されない
全レジスタ 12.0 0.04
個別レジスタ(ERレジスタ) 1.20 0.04
個別レジスタ(CCRレジスタ) 1.20 0.04
個別レジスタ(PCレジスタ) 1.20 0.04
1行の逆アセンブラ 4.00 0.04
DI,EI.IntFlg(割込み系) 5.00 5.00
ブレークポイントの設定 10.0 10.0
ブレークポイントの解除 10.0 10.0
停止時間の計測方法 [NMI]のLow巾 計測方法なし
*H8/3664 クロックが16.0MHz時の実測値

<オンザフライ機能使用時の注意事項 割込み方式が「ブレーク割込み」の場合>
「受信割り込み」の場合、ターゲット実行中に約10ms毎にターゲットの状態を調べるため送受信によってモニタを起動させています。ターゲット側の実動作に影響を与える場合は、「割り込みを使用しない」側に設定して下さい。
低消費電力モードとウォッチドッグタイマアップの動作確認をする場合は、「割り込みを使用しない」の設定で確認して下さい。