H8/3048F−ONE・3029F準備項目および制限事項(DEF Ver4.20Aから)
1.ユーザ側での準備項目
<H8/3048F−ONE>
MCU動作モードは、(5,6,7)をサポートします。
ファームが使用するためのエリア(0xF4〜0xFF)番地をあけてください。
<H8/3029F>
MCU動作モードは、(5,7)をサポートします。
<共通>
ユーザスタックエリアを4バイト使用しますので、スタックエリアの確保に考慮してください。
メモリマッップ


  内蔵ROM終了アドレス 内蔵RAM
ファーム使用アドレス
H8/3048F-ONE 0x1FFFF 0xFFEF10(全開放)
0xFF7000(2KB)
H8/3029F(EMC:1) 0x7FFFF 0xFFBF20(全開放) 0xFF7000(2KB)
H8/3029F(EMC:0) 0x7FFFF 0xFFBEE0(全開放) 0xFF7000(2KB)
2.使用制限事項
デバッグをするためには、CPUをエミュレーションモードにする必要があります。
エミュレーション−モード遷移の操作でエミュレーションモードにして下さい。
リフレッシュコントローラ、DMAコントローラを動作させているプログラムの場合、バス解放されるまでデバッグ操作できません。
デバッグ中は、ベクタエリアの0x0〜0xf番地はシャドーRAMになっています。書き換えないで下さい。
なお、実際の0x0〜0xf番地のベクタ情報は、シャドウRAM対策の為、0xc0〜0xcf番地(ベクタ48〜ベクタ51)に退避させています。
この処置により、アップロード時に0x0〜0xf番地の内容と0xc0〜0xcf番地の内容を交換しますので動作可能なHEXファイルになります。
ファーム使用の割り込みベクタは下記の通りでダウンロード時に自動セットされます。
(ベクタ22・ベクタ23       H8/3048F-ONE)
(ベクタ22・ベクタ27・ベクタ31 H8/3029F)
(ベクタ48・ベクタ49・ベクタ50・ベクタ11 共通 シャドウRAM対策)
リセットベクタ値は0x100以上とし、その番地にはスタックポインタ設定の命令を配置することを推奨します。
ただし、CAT専用モードでCAT303を使用される場合は、リセットベクタ値を0x1000以上にして下さい。
「trapa #3」の命令は、ユーザ側で使用しないで下さい。
上記表のファーム使用アドレスは、デバッガが使用しています。ユーザはアクセスしないで下さい。
使用端子は、リセット・ブートモード時に使用する通信線を占有・共有使用します。(E10T-USBに準拠)
P91 P93 P95 FWE  (MD2 MD1 MD0 RESET)共有
CPU動作モード設定回路および設定は、ユーザ(ターゲット)側で準備・設定して下さい。
ターゲットとの接続は、推奨接続参考図をもとに設計して下さい。
デバイス制限としてフラッシュメモリの書き換え回数に制限があります。
3.機能制限事項
レジスタのSP(スタックポインタ)は、リードオンリです。
ソフトウェアパーツの「PUTCH」は、使用する事が出来ません。
ソフトウェアパーツの「ソースブレーク」を有効にした場合は、分岐トレース機能を使用する事が出来ません。
4.ブレークに対する注意事項
実行後ブレーク固定です。
このファームは、CPUに内蔵したアドレスブレークコントローラ(PBC)を利用しています。
ブレークにおける制限事項は、PBC仕様に準拠しますので注意が必要です。 機能および制限は、H8/300H Tinyと同等です。
(H8/300H Tinyのハードウェアマニュアル必読)
5.ファーム起動毎時のCPUに対する設定
内蔵RAM有効(SYSCR)
ファーム使用ポート(SCI)を初期設定
(DIVCR)設定値を退避後、アクティブモード(高速)に切り替え、ファーム終了時に退避設定値の状態に戻します。
6.H8/3029Fの特記事項
BCRレジスタのEMCビットにより内部I/Oレジスタ及びRAMのアドレスが変わります。
EMCビットの設定後に内部I/Oレジスタをアクセスして下さい。
7.低消費電力モード状態の注意事項
低消費電力状態でブレークモード(ファーム起動)にさせますと低消費電力状態は解除されます。
8.ウォッチドッグタイマの注意事項
ブレークモード(ファーム起動)時は、ウォッチドッグタイマは停止します。
ユーザプログラム実行中に周期サンプリングしますとウォッチドッグタイマは停止します。
ウォッチドッグタイマ用内部レジスタをデバッガ操作で書き換えても無視します。
9.オンザフライ時のCPU停止時間の計測値
コマンド 停止時間 単位(msec)
CPU設定  割込みを使用しない 割込みを使用する  
デバッグI/F クロック同期 クロック同期
割込み方式 受信割込み
割込みが使用できる条件 ユーザ側が割込み許可状態
1バイトのメモリアクセス 0.80
1バイト増毎に+0.1ms
(MAX 128byte 13.6ms)
0.04
バイト数に影響されない
全レジスタ 5.00 0.04
個別レジスタ(ERレジスタ) 0.50 0.04
個別レジスタ(CCRレジスタ) 0.50 0.04
個別レジスタ(PCレジスタ) 0.50 0.04
1行の逆アセンブラ 1.50 0.04
DI,EI.IntFlg(割込み系) 5.00 5.00
ブレークポイントの設定 10.0 10.0
ブレークポイントの解除 10.0 10.0
停止時間の計測方法 [FWE]のLow巾 計測方法なし
*H8/3048F-ONE クロックが24.576MHz時の実測値
<オンザフライ機能使用時の注意事項 割込み方式が「受信割込み」の場合>
「受信割り込み」の場合、ターゲット実行中に約10ms毎にターゲットの状態を調べるため送受信によってモニタを起動させています。ターゲット側の実動作に影響を与える場合は、「割り込みを使用しない」側に設定して下さい。
低消費電力モードとウォッチドッグタイマアップの動作確認をする場合は、「割り込みを使用しない」の設定で確認して下さい。
H8/3048F-ONE準備項目および制限事項(DEF Ver4.10まで)

1.ユーザ側での準備項目
 
MCU動作モードは、(5,6,7)及び(ブート,ユーザプログラムモード)をサポートします。
 
デバッグモニタが常駐するためのエリア(0x200〜0x7FF)番地をあけてください。
 ・ユーザスタックエリアを46バイト使用しますので、スタックエリアの確保に考慮してください。
 ・メモリマッップ


2.使用制限事項
 デバッグをするためには、CPUをエミュレーションモードにする必要があります。ブートロードの操作でエミュレーションモードになります。
 デバッグ中は、ウォッチドックを使用しないで下さい。
 リフレッシュコントローラ、DMAコントローラを使用するユーザプログラムのデバッグはできません。
 デバッグ中は、ベクタエリアの0x0〜0xf番地はシャドーRAMになっています。書き換えないで下さい。
 モニタ使用の割り込みベクタは、トラップ2・トラップ3です。(ダウンロード時に自動セット)
 リセットベクタ値は0x800とし、0x800番地にはスタックポインタ設定の命令を配置して下さい。
  DEFの「Start」時に、スタックポインタ値のアドレス場所がRAMであるかの調査をしますので、必ずRAM場所を示して下さい。
 デバッグ中は、スタックポイントの設定後に約400msのソフトタイマを入れることを推奨します。
 使用端子は、リセット・ブートモード時に使用する通信線を占有・共有使用します。
 RESETの遅延時間は、200msec以下のハード設計をして下さい。
 H−debuggerのステータスランプが緑で点滅している場合は、モニタ不在です。
 デバイス側の制限としてフラッシュメモリの書き換え回数に制限があります。

3.機能制限事項
 
レジスタのSP(スタックポインタ)は、リードオンリです。
 スタックポインタが適正値でない場合は、モニタは正常動作しません。(例 0xFFFF0E値が適正値)
 モニタが使用しているスタックエリアにデバッガ操作でメモリライト操作があった場合、無視します。
 メモリアクセスは、全てバイトアクセスになっています。(例 「short」の場合2バイトアクセス)

4.ブレークに対する注意事項
 このモニタは、CPUに内臓したアドレスブレークコントローラ(PBC)を利用しています。
 ブレークにおける制限事項は、PBC仕様に準拠しますので注意が必要です。 機能および制限は、H8/300H Tinyと同等です。

5.モニタ起動毎時のCPUに対する設定
 
 モニタ起動(ブレーク・強制ブレーク)時に、下記設定内容を毎時実行します。
 内蔵RAM有効(SYSCR)
 モニタ使用ポート(SCI1)を初期設定