|
1.ユーザ側での準備項目 |
・ |
デバッグモニタが常駐するためのエリア(0x200〜0x7FF)番地をあけてください。 |
・ |
ユーザスタックエリアをモニタワーク方式に応じたスタックエリアの確保に考慮してください。 |
・ |
メモリマップ
|
内蔵ROM
終了アドレス |
スタック方式(内蔵RAM) |
固定番地方式(内蔵RAM) |
リセット解除時
オンチップオシレータ
動作 |
使用可能開始番地
(ソースブレ-クを使用した場合) |
使用可能開始番地 |
モニタ使用番地 |
H8/36012 |
3FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36014 |
7FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36024 |
7FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36034 |
7FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36037 |
0DFFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36049 |
17FFFH |
0FFF780H (*FFF7C0H) |
0FFF7C0H |
*0FFF780H |
なし |
H8/36054 |
7FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36057 |
0DFFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36064 |
7FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36077 |
0DFFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
10MHz |
H8/36087 |
0DFFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36109 |
1FFFFH |
0FFF780H (*FFF7C0H) |
0FFF7C0H |
*0FFF780H |
10MHz |
H8/3664(N) |
7FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/3670 |
1FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/3672 |
4FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/3687(N) |
0DFFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/3694(N) |
7FFFH |
0F780H (*F7C0H) |
0F7C0H |
*0F780H |
なし |
H8/36902 |
2FFFH |
0F980H (*F9C0H) |
0F9C0H |
*0F980H |
8MHz |
H8/36912 |
2FFFH |
0F980H (*F9C0H) |
0F9C0H |
*0F980H |
8MHz |
*モニタが内蔵RAM先頭より0x40バイト使用する。 |
|
2.使用制限事項 |
・ |
H8/36xxNデバイスをデバッグする場合は、CPU設定をH8/36xxにして下さい。 |
・ |
NMIは、デバッガが占有します。 |
・ |
モニタ使用の割り込みベクタは、NMI・アドレスブレーク・トラップ2・トラップ3です。(ダウンロード時に自動セット) |
・ |
リセットベクタ値は0x800とし、0x800番地にはスタックポインタ設定の命令を配置して下さい。
|
・ |
デバッグ中は、スタックポイントの設定後に約1〜200ms(ハード構成による)以上のソフトタイマを入れることを推奨します。
CPU設定にてリセット遅延防止タイマを不要設定にしますと、リセット解除から20us後にモニタ(NMI)を起動させます。(ユーザモード時のみ) |
・ |
NMIエッジは、立下りエッジ(初期値)とします。 |
・ |
使用端子は、リセット・NMI・ブートモード時に使用する通信線を占有使用します。
P87/E10T_2 P86/E10T_1 P85/E10T_0 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,36109,36902,36912特有の注意事項 |
・ |
内蔵フラッシュROMに書込む時は、内蔵オシレータを使用しています。(周波数は上記表を参照して下さい。) |
|
7.低消費電力モード状態の注意事項 |
・ |
低消費電力状態でブレークモード(ファーム起動)にさせますと低消費電力状態は解除されます。 |
|
8.ウォッチドッグタイマの注意事項 |
・ |
ブレークモード(モニタ遷移)時は、ウォッチドッグタイマは停止します。 |
・ |
ユーザプログラム実行中に周期サンプリングしますとウォッチドッグタイマは停止します。 |
・ |
ユーザモードでのデバッグ指定において、本体と送受信が確立した時点でウォッチドッグタイマを停止させています。よって、タイムUP周期を10ms以上にして下さい。(エミュレーションモードで使用されている場合は制限がありません。) |
・ |
ユーザモードでのデバッグ指定において、ウォッチドッグタイマUPによるリセットになりますと、PBC(PCブレーク)もリセットされます。(エミュレーションモードで使用されている場合は保持しています。) |
・ |
リセット解除直後からWDT動作開始になるグループをお使いになる場合は、初期化が済むまで停止させることを推奨します。
1) H8/36064グループ
2) H8/36077グループ
3) H8/36109グループ
4) H8/36902グループ
5) 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/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(ゼロ)に落とし、必ず高速ブートモードから抜けさせて下さい。
|