|
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(ハード構成による)以上のソフトタイマを入れることを推奨します。
CPU設定にてリセット遅延防止タイマを不要設定にしますと、リセット解除から20us後にモニタ(NMI)を起動させます。(ユーザモード時のみ) |
・ |
NMIエッジは、立下りエッジ(初期値)とします。 |
・ |
使用端子は、リセット・NMI・ブートモード時に使用する通信線を占有使用します。
P87 P86 P85 NMI RESET(共有) |
・ |
ターゲットとの接続は、推奨接続参考図をもとに設計して下さい。 |
・ |
デバイス制限としてフラッシュメモリの書き換え回数に制限があります。 |
|
3.機能制限事項 |
・ |
レジスタのSP(スタックポインタ)は、リードオンリです。 |
・ |
スタックポインタが適正値でない場合は、モニタは正常動作しません。(例 0xFF7E値が適正値) |
・ |
モニタが使用しているエリアにデバッガ操作でメモリライト操作があった場合、無視します。 |
|
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.モニタ遷移時のCPUに対する設定 |
・ |
NMI立下りエッジ指定(IEGR1) |
・ |
モニタ使用ポート(SCI)を初期設定 |
・ |
(SYSCR2)設定値を退避後、アクティブモード(高速)に切り替え、モニタ終了時に退避設定値の状態に戻します。 |
・ |
(TCSRWD)設定値を退避後、ウォッチドッグタイマを停止させ、モニタ終了時に退避設定値の状態に戻します。(ユーザモード時) |
|
6.H8/36077,36078,36079,36109,36902,36912特有の注意事項 |
・ |
内蔵フラッシュROMに書込む時は、内蔵オシレータを使用しています。(周波数は上記表を参照して下さい。) |
|
7.低消費電力モード状態の注意事項 |
・ |
低消費電力状態でブレークモード(ファーム起動)にさせますと低消費電力状態は解除されます。 |
|
8.ウォッチドッグタイマの注意事項 |
・ |
ブレークモード(モニタ遷移)時は、ウォッチドッグタイマは停止します。 |
・ |
ユーザプログラム実行中に周期サンプリングしますとウォッチドッグタイマは停止します。 |
・ |
ユーザモードでのデバッグ指定において、本体と送受信が確立した時点でウォッチドッグタイマを停止させています。よって、タイムUP周期を10ms以上にして下さい。(エミュレーションモードで使用されている場合は制限がありません。) |
・ |
ユーザモードでのデバッグ指定において、ウォッチドッグタイマUPによるリセットになりますと、PBC(PCブレーク)もリセットされます。(エミュレーションモードで使用されている場合は保持しています。) |
・ |
リセット解除直後から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モードから選択できます。その2モードの特徴を記述します。
(1)エミューレーションモード |
|
CPU内蔵のオンチップデバッグ機能を利用するモードです。 |
(2)ユーザモード |
|
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 |
○ |
○ |
|
|
10.リセット遅延に関する注意事項 |
・ |
H8/Tinyシリーズのデバッグ方式を「ユーザモード」で指定し、ハード的にリセット遅延があるに関わらず「CPU設定」で「リセット遅延回路」を使用しない側の設定で、DEFの「Start」を起動しますと、内蔵RAM先頭部分「約16バイト」が書き換わります。
理由としては、遅延の為、リセットLOW状態でNMIがLOWになる為、エミュレーション回路の一部が起動してしまうことにより書き換わります。
|
|
11.バッテリバックアップシステムの場合の注意事項 |
・ |
H8/Tinyシリーズの場合、FROMに書く時の手順として高速ブートモード(エミュレーションモード)に遷移させてからFROM書き込みシーケンスに移行させています。高速ブートモード中は外部からのRESET信号が無効になってしまいますので、書き込み終了後H-debuggeを外した状態で、かつ、モニタ(ファーム)が起動出来ない状態の場合、VCCをOV(ゼロ)に落とし、必ず高速ブートモードから抜けさせて下さい。
|
|
12.オンザフライ時のCPU停止時間の計測値 |
コマンド |
停止時間 単位(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毎にターゲットの状態を調べるため送受信によってモニタを起動させています。ターゲット側の実動作に影響を与える場合は、「割り込みを使用しない」側に設定して下さい。 |
・ |
低消費電力モードとウォッチドッグタイマアップの動作確認をする場合は、「割り込みを使用しない」の設定で確認して下さい。 |
|