組み込み型ノン・リアルタイム・モニター&デバッガー


【概要】


 このモニタは、「ROM化したプログラムをステップ実行したい!」 という目的のためだけに作成したものです。デバッグしたいプログラム と一緒にROM化して、RS-232Cを介してデバッグします。

【目次】


1.必要資源 2.ホスト端末との接続 3.動作モード  3-1.非起動状態  3-2.割り込み駆動モード  3-3.デバッグモード 4.各種機能  4- 1. メモリ内容ダンプ  4- 2. 逆アセンブル表示  4- 3. ステップ/トレース実行  4- 4. プログラムカウンタブレークポイント設定  4- 5. ユーザープログラムからターミナルへの出力  4- 6. メモリ初期化  4- 7. メモリ内容変更  4- 8. レジスタ内容変更  4- 9. ユーザープログラムのターミナルからの入力  4-10. メモリ内容ウォッチ  4-11. コマンドヘルプ  4-12. リセット 4-13. ユーザー定義ファンクション(定義・実行) 4-14. 逆アセンブルリスト表示ステップ/トレース実行 5.組み込み手順  5-1.組み込み例  5-2. 外部シンボル定義一覧 6.注意事項 7.その他


1.必要資源

 ROM13238バイト  RAM256+αバイト  シリアル1チャンネル

2.ホスト端末との接続

 ターミナル通信ソフトは、下記の設定でご使用ください。  転送レート38400bps  データ長8ビット  パリティ制御なし  ストップビット1ビット  フロー制御なし

3.動作モード

 組み込み型ノン・リアルタイム・モニター&デバッガーは、動作状態 として、

 3-1. 非起動状態  3-2. 割り込み駆動モード  3-3. デバッグモード

があります。

3-1. 非起動状態

 組み込み型ノン・リアルタイム・モニター&デバッガーが実質的に、 動作していない状態です。  割り込み駆動モードから終了コマンド "@" によって抜けたときには、 次のメッセージを表示します。 *** Exit ***  この状態からは、  a)ホスト端末より起動コマンド "@" を送信する。   →割り込み駆動モード  b)プログラムから指定のアドレスをコールする。   →デバックモード によって、それぞれの動作状態へ移行します。

3-2. 割り込み駆動モード

 非起動状態より起動コマンド "@" で起動すると次のメッセージを 表示し、コマンド入力待ちになります。 *** DEBUGER for H8/300H Ver.0.62b Copyright (C) 1998-2000 by AKIYA *** *  デバッグモードを終了した場合は、次のメッセージを表示して、 コマンド入力待ちになります。 === debugging mode out === *  割り込み駆動モードでは、ユーザープログラムは停止していません。 メモリ内容ダンプおよび逆アセンブル表示中もユーザープログラムは 動作しています。よって、メモリ内容ダンプ時等は、ダンプ内容の初 めと終わりでは、時間的ずれが発生しています。 ※ご注意   各処理は送信割り込みの中で実行している為、割り込み禁止状態  が長くなり、デバッグ対象によってはプログラムが正常に動作しな  い恐れがあります。  このモードからは、  a)ホスト端末よりデバッグモードコマンド "DI"[CR] を送信する。   →デバッグモード  b)ホスト端末より終了コマンド "@" を送信する。   →非起動状態 によって、それぞれの状態へ移行します。

3-3. デバッグモード

 割り込み駆動モードから、デバッグモードコマンド "DI"[CR] を入力 すると、次のメッセージを表示して、コマンド入力待ちになります。 (CPUステータスの内容は、デバッグモードに入った時点によって異 なります。) === debugging mode in === PC=0001FC CCR=08:....N... ER0=0000FFFF ER1=00FFEF00 ER2=00FFEF28 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF0C 0001FC 6A00EF11 MOV.B @H'FFEF11:16,R0H >  ユーザープログラムから、jsr @dbg_mode_in で非起動状態の場合に 限り、デバッグモードが起動します。 *** DEBUGER for H8/300H Ver.0.62b Copyright (C) 1998-2000 by AKIYA *** === debugging mode in === PC=000110 CCR=00:........ ER0=00002470 ER1=5A0020D8 ER2=00000000 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF0C 000110 F800 MOV.B #H'00:8,R0L >  デバッグモードでは、割り込み禁止でホスト端末からのコマンドを 待っている状態で、ユーザープログラムは停止状態です。但し、NMI 割り込みを除きます。(このモニタでは、NMI には対応していません。)  このモードからは、  a)ホスト端末よりデバッグモード終了コマンド "DO"[CR] を送信する。   →割り込み駆動モード によって、移行します。

4.各種機能

 動作モードによって機能するコマンドが異なります。  アドレス、ステップ数等は、16進で指定します。 ・非起動状態  割り込み駆動モードを起動 (@)  ユーザープログラムからターミナルへの出力  ユーザープログラムのターミナルからの入力 ・割り込み駆動モード(プロンプトは"*"です。)  非起動状態へ移行 (@)  デバッグモードへ移行 (DI)  メモリ内容ダンプ (DM,DS)  逆アセンブル表示 (DA)  メモリ初期化 (IM)  メモリ内容変更 (CM,CS)  メモリ内容ウォッチ (DW,WS)  コマンドヘルプ (?)  リセット (Reset)  ユーザー処理実行 (U)  ユーザー処理設定 (SU)  ユーザー処理解除 (_SU)  ユーザー処理表示 (?SU) ・デバッグモード(プロンプトは">"です。)  割り込み駆動モードへ移行 (DO)  メモリ内容ダンプ (DM,DS)  逆アセンブル表示 (DA)  メモリ初期化 (IM)  メモリ内容変更 (CM,CS)  レジスタ内容変更 (CR)  ダンプレジスタ&インストラクション (DI)  ダンプレジスタ (DR)  ステップ非表示連続実行 (G)  シングルステップ実行 (S)  シングルトレース実行 (T)  ステップ実行 (ST)  トレース実行 (TR)  プログラムカウンタブレークポイント設定 (PB)  プログラムカウンタブレークポイント解除 (_PB)  プログラムカウンタブレークポイント表示 (?PB)  コマンドヘルプ (?)  リセット (Reset)  ユーザー処理実行 (U)  ユーザー処理設定 (SU)  ユーザー処理解除 (_SU)  ユーザー処理表示 (?SU)  逆アセンブルリスト表示 (VL)  逆アセンブルリスト表示ステップ実行 (VS)  逆アセンブルリスト表示トレース実行 (VT)

4-1. メモリ内容ダンプ

・コマンドフォーマット1 DM-SSSSSS,EEEEEE[CR] (SSSSSS:start address, EEEEEE:end address) ※ダンプ中にターミナルから入力をセンスした場合に、ダンプを中止します。 ・動作サンプル(半角カタカナを含む部分は削除してあります。) *DM-FFEF10,FFEFFF FFEF10 FF FF 20 41 4B 49 2D 48 38 20 CF BB DE B0 CE DE FFEF20 B0 C4 DE 31 31 31 31 20 31 31 31 31 31 31 31 31 FFEF30 20 20 20 57 00 A0 BE 34 A0 00 5E C6 9C E0 DB F7 FFEF40 12 48 22 F2 3E A5 22 87 82 AB 61 28 B8 62 9F 3B FFEF50 00 02 AF DD 22 82 FB AF 44 01 2E FD 30 51 FE 39 FFEF60 88 81 A8 07 22 40 9C 2A 6F 41 11 64 66 9C 22 44 FFEF70 44 00 3F 3B 34 28 ED 33 03 80 85 DF B8 82 FF 57 FFEF80 58 02 2A 15 BB D4 AA 50 C8 31 8C 18 CA CE 2B 16 FFEF90 80 08 AF F6 88 95 B4 EF 10 C4 A9 FB 41 08 EC 65 FFEFA0 19 45 92 96 2E D5 CD 81 8F A4 24 00 65 A4 30 1F FFEFB0 00 00 E1 5B 00 84 D3 6F 00 00 D8 1C 41 08 EB A7 FFEFC0 6A 08 15 15 28 90 58 3C 92 73 29 24 92 A8 AC 95 FFEFD0 24 21 AB FF 20 10 37 97 12 22 15 6F 61 00 75 95 FFEFE0 A8 28 60 7B 3C EA C0 63 FE 73 4C F5 DE 29 36 81 FFEFF0 0A 41 F7 A9 88 00 6A F0 42 00 6C 15 A4 12 3B 7C * ・コマンドフォーマット2 DS-SSSSSS,LLLL,WW[CR] (SSSSSS:start address, LLLL:length, WW:wide) ※ダンプ中にターミナルから入力をセンスした場合に、ダンプを中止します。 ・動作サンプル *DS-ffef13,20,10 FFEF13 414B492D483820CF BBDEB0CEDEB0C4DE FFEF23 3131313120313131 3131313131202020 *

4-2. 逆アセンブル表示

・コマンドフォーマット DA-SSSSSS,NN[CR] (SSSSSS:start address, NN:step count) ・動作サンプル *DA-100,10 000100 7A07000FFF10 MOV.L #H'000FFF10:32,ER7 000106 5E002000 JSR @H'002000:24 00010A 063F ANDC #H'3F:8,CCR 00010C F800 MOV.B #H'00:8,R0L 00010E 38C1 MOV.B R0L,@H'FFFFC1:8 000110 F8FF MOV.B #H'FF:8,R0L 000112 38D8 MOV.B R0L,@H'FFFFD8:8 000114 F8FF MOV.B #H'FF:8,R0L 000116 38C4 MOV.B R0L,@H'FFFFC4:8 000118 F800 MOV.B #H'00:8,R0L 00011A 38C5 MOV.B R0L,@H'FFFFC5:8 00011C F8FF MOV.B #H'FF:8,R0L 00011E 38DA MOV.B R0L,@H'FFFFDA:8 000120 F8FF MOV.B #H'FF:8,R0L 000122 38C8 MOV.B R0L,@H'FFFFC8:8 000124 5E000356 JSR @H'000356:24 *

4-3. ステップ/トレース実行

・コマンドフォーマット G[CR] S[CR] T[CR] ST-NN[CR] TR-NN[CR] (NN:step count) ※ ステップ非表示連続実行中は、ホスト端末より任意の  キャラクター送信で停止します。   また、プログラムカウンタブレークポイントでも停止  します。 ・動作サンプル >ST-5 PC=0001EC CCR=08:....N... ER0=0000FFFF ER1=00FFEF00 ER2=00FFEF28 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF0C 0001EC 6A00EF10 MOV.B @H'FFEF10:16,R0H PC=0001F0 CCR=08:....N... ER0=0000FFFF ER1=00FFEF00 ER2=00FFEF28 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF0C 0001F0 1C08 CMP.B R0H,R0L PC=0001F2 CCR=04:.....Z.. ER0=0000FFFF ER1=00FFEF00 ER2=00FFEF28 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF0C 0001F2 58700004 BEQ H'0001FA:16 PC=0001FA CCR=04:.....Z.. ER0=0000FFFF ER1=00FFEF00 ER2=00FFEF28 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF0C 0001FA 28C3 MOV.B @H'FFFFC3:8,R0L PC=0001FC CCR=08:....N... ER0=0000FFFF ER1=00FFEF00 ER2=00FFEF28 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF0C 0001FC 6A00EF11 MOV.B @H'FFEF11:16,R0H >

4-4. プログラムカウンタブレークポイント設定

・コマンドフォーマット PB-BBBBBB[CR] (BBBBBB:break address) _PB[CR] ?PB[CR] ※ プログラムカウンタブレークポイントに 0 は指定でき  ません。未指定として解釈されます。 ・動作サンプル >PB-2E8 Set PB=0002E8 >G program counter break ! PC=0002E8 CCR=09:....N..C ER0=0000FFDF ER1=00FFEF00 ER2=00FFEF28 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF08 0002E8 6A88EF10 MOV.B R0L,@H'FFEF10:16 >?PB PB=0002E8 >_PB PB clear >?PB PB=000000 >

4-5. ユーザープログラムからターミナルへの出力

 非起動状態の場合に、レジスタ r0l のデータをターミナルへ送信する ことができます。 entry dbg_putc data r0l return zero:cary = 0:1 send data 0:0 send buffer full 1:0 monitor running break none.

4-6. メモリ初期化

・コマンドフォーマット IM-SSSSSS,EEEEEE,II[CR] (SSSSSS:start address, EEEEEE:end address, II:initial data) ・動作サンプル *IM-FF100,FF1FF,00

4-7. メモリ内容変更

・コマンドフォーマット1 CM-SSSSSS[CR] (SSSSSS:start address) を入力すると、以下の形式でメモリ内容を変更できます。 AAAAAA ??-DD[CR] (DD:change data) 終了は、ハイフンでの入力待ち状態で、[CR]または、"."を入力します。 また、スペースの入力で、次のアドレスにスキップします。 ・動作サンプル *CM-FEF80 0FEF80 59-00 0FEF81 02-01 0FEF82 2A-02 0FEF83 15-03 0FEF84 BB-04 0FEF85 DC-05 0FEF86 8A-06 0FEF87 50-07 0FEF88 C8-08 0FEF89 31-09 0FEF8A 8C-0A 0FEF8B 18-0B 0FEF8C CA-0C 0FEF8D CE-0D 0FEF8E 2B-0E 0FEF8F 16-0F 0FEF90 80-. * ・コマンドフォーマット2 CS-SSSSSS,W[CR] (SSSSSS:start address, W:wide[1|2|3|4|5|6|7|8]) を入力すると、以下の形式でメモリ内容を変更できます。(W=2) AAAAAA ????-DDDD[CR] (DDDD:change data) 終了は、ハイフンでの入力待ち状態で、[CR]または、"."を入力します。 また、スペースの入力で、次のアドレスにスキップします。 桁数に満たない入力時([CR]で確定)は、MSB側(下位アドレス側) に0拡張されます。 アドレス指定がワードアライメントで W=2 または W=6 の時は、メモリ アクセスをワード転送、W=4 または W=8 の時は、ロングワード転送で 行います。 ・動作サンプル *CS-FEF80,3 0FEF80 58020A-000000 0FEF83 15BBDC-000001 0FEF86 AA50CC-000002 0FEF89 318C18-000003 0FEF8C CACF2B-000004 0FEF8F 062008-000005 0FEF92 2FF600-000006 0FEF95 002464-000007 0FEF98 0001EA-. *

4-8. レジスタ内容変更

・コマンドフォーマット CR-RRR[CR] (RRR:register name) を入力すると、以下の形式でレジスタ内容を変更できます。 RRR ??-VVVV[CR] (VVVV:change value) 終了は、ハイフンでの入力待ち状態で、[CR]または、"."を入力します。 また、スペースの入力で、次のレジスタにスキップします。 ・動作サンプル >DR PC=000110 CCR=00:........ ER0=00002470 ER1=5A0020D8 ER2=00000000 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF0C >CR-ER0 ER0=00002470-00000000 ER1=5A0020D8-00000001 ER2=00000000-00000002 ER3=00000000-00000003 ER4=00000000-00000004 ER5=00000000-00000005 ER6=00000000-00000006 ER7=000FFF0C-. >DR PC=000110 CCR=00:........ ER0=00000000 ER1=00000001 ER2=00000002 ER3=00000003 ER4=00000004 ER5=00000005 ER6=00000006 ER7=000FFF0C >

4-9. ユーザープログラムのターミナルからの入力

 非起動状態の場合に、ターミナルからのデータをレジスタ r0l にて受信する ことができます。 (割り込み駆動モードの起動のために "@" を受信することは出来ません。) entry dbg_getc data none. return zero:cary = 0:1 r0l:get data 0:0 buffer empty 1:0 monitor running break r0l

4-10. メモリ内容ウォッチ

 メモリ内容ダンプを繰り返し実行します。画面制御には、エスケープシーケンス を使用していますので、次のコードに対応したターミナルをご使用ください。 カーソルアップ: ESC[nnA (nn=移動行数) なお、本モニタの出力のうち、H'0d,H'0a で改行、H'0d で復帰のみを想定して動作 しています。 ・コマンドフォーマット1 DW-SSSSSS,EEEEEE[CR] (SSSSSS:start address, EEEEEE:end address) ※表示中にターミナルから入力をセンスすると、ダンプを終了します。 ※ダンプ範囲が24行を超える場合は、繰り返し表示は行いません。 ・動作サンプル(半角カタカナの部分はドットに変更してあります。) *DW-ffef10,ffef31 FFEF10 FF FF 20 41 4B 49 2D 48 38 20 CF BB DE B0 CE DE .. AKI-H8 ...... FFEF20 B0 C4 DE 31 31 31 31 20 31 31 31 31 31 31 31 31 ...1111 11111111 FFEF30 20 20 ・コマンドフォーマット2 WS-SSSSSS,LLLL,WW[CR] (SSSSSS:start address, LLLL:length, WW:wide) ※表示中にターミナルから入力をセンスすると、ダンプを終了します。 ※ダンプ範囲が24行を超える場合は、繰り返し表示は行いません。 ・動作サンプル *WS-ffef13,20,10 FFEF13 414B492D483820CF BBDEB0CEDEB0C4DE FFEF23 3131313120313131 3131313131202020

4-11. コマンドヘルプ

 使用可能なコマンド一覧を表示します。 ・コマンドフォーマット ?[CR] ・動作サンプル *? *** DEBUGER for H8/300H Ver.0.62b Copyright (C) 1998-2000 by AKIYA *** SS=start, EE=end, LL=length, WW=wide, NN=line, II=initial, RR=reg., BB=addr. *@[CR] exit monitor *DI[CR] debug mode in *DM-SS,EE[CR] dump memory *DS-SS,LL,WW[CR] dump memory size *DA-SS,NN[CR] dis assemble *IM-SS,EE,II[CR] initial memory *CM-SS[CR] change memory *CS-SS,WW[CR] change memory size *DW-SS,EE[CR] dump memory watch *WS-SS,LL,WW[CR] watch memory size *Reset[CR] system reset *U user function call *SU-BB[CR] set user function *_SU[CR] clear user function *?SU[CR] disp user function *?[CR] this help message * >? *** DEBUGER for H8/300H Ver.0.62b Copyright (C) 1998-2000 by AKIYA *** SS=start, EE=end, LL=length, WW=wide, NN=line, II=initial, RR=reg., BB=addr. >DO[CR] debug mode out >DM-SS,EE[CR] dump memory >DS-SS,LL,WW[CR] dump memory size >DA-SS,NN[CR] dis assemble >IM-SS,EE,II[CR] initial memory >CM-SS[CR] change memory >CS-SS,WW[CR] change memory size >CR-RR[CR] change register >DI[CR] dump reg. and inst. >DR[CR] dump register >G[CR] go >S[CR] single step >T[CR] single trace >ST-NN[CR] step >TR-NN[CR] trace >PB-BB[CR] program break set >_PB[CR] program break clear >?PB[CR] program break disp >Reset[CR] system reset >U user function call >SU-BB[CR] set user function >_SU[CR] clear user function >?SU[CR] disp user function >VL view list >VT view trace >VS view step >?[CR] this help message >

4-12. リセット

 ウォッチドッグタイマを利用して、リセットを発生させます。 ・コマンドフォーマット Reset[CR] ・動作サンプル *Reset ::: RESET :::

4-13. ユーザー定義ファンクション(定義・実行)

 任意の処理を定義、実行します。実行は、モニタ側のスタックを 使用します。ユーザー定義ファンクションは、割込み禁止状態で呼 び出されます。割り込み駆動モードの時のコンテキスト切替えは、 _uputc, _ugetc の呼び出しおよび終了リターンで行われます。 (リエントラントで無いコードを呼び出すと、通常動作側の動作に 影響しますので、Cのライブラリコードの実行にはご注意ください。) ・コマンドフォーマット SU-BBBBBB[CR] (BBBBBB:user function address) _SU[CR] ?SU[CR] U ※ ユーザー定義ファンクションに 0 は指定でき  ません。未指定として解釈されます。 ※ "U"の入力時点で、割り込み駆動モードのとき 0、デバッグ  モードのとき 1 を r0 レジスタにセットしてユーザー定義処  理を呼び出します。返り値として、0 の時正常終了、 0 以外  の時は、"?"を表示します。 ※ ユーザー定義ファンクションのスタック消費量に合わせて、  モニタの使用するスタック量を増量してください。  増量方法は、スタートアップ等のアセンブラ記述ファイル内で  次のように記述します。(+80バイトの場合) .section DEBUG_RAM, DATA, ALIGN=2 .res.w 80/2 ; 必ずワード境界としてください。 ※ ユーザー定義ファンクションは、プログラム実行上で定義  することができます。ユーザー定義ファンクションの実行先  頭アドレスを er0 にセットして、_def_usr をコールします。 ※ ユーザー定義ファンクションでのターミナル送受信は、  _uputc, _ugetc を使用します。受け渡しレジスタは、r0l  です。また、_putc の繰り返し実行中のターミナルからの  受信確認は、_ugetchk で行います。返り値 r0==0 以外の  とき受信有りを示します。 ・動作サンプル(usrdbg.cのサンプルを実行) *U not defined *SU-643c Set SU=00643C *U? *UI[CR] user mode in *U?[CR] this help message *UI +++ user function in (interrupt mode) +++ U*? U*UO[CR] user mode out U*?[CR] this help message U*UO +++ user function out +++ *?SU SU=00643C *_SU SU clear *

4-14. 逆アセンブルリスト表示ステップ/トレース実行

 プログラムカウンタの前後を含めて逆アセンブルリストとレジスタ内容を表示ま たは表示して、ステップ/トレース実行します。画面制御には、エスケープシーケ ンスを使用していますので、次のコードに対応したターミナルをご使用ください。 カーソルアップ: ESC[24A (24=移動行数) カーソル位置から行末までをクリア: ESC[K なお、本モニタの出力のうち、H'0d,H'0a で改行、H'0d で復帰のみを想定して動作 しています。  ステップ実行は、1命令または1逆アセンブル行を実行します。サブルーチン 呼び出しは、停止することなく実行(ステップ非表示連続実行)されます。 ・コマンドフォーマット VL VS VT ※ ステップ表示実行中は、ホスト端末より任意のキャラクター送信で  停止します。また、プログラムカウンタブレークポイントでも停止します。   尚、逆アセンブルリスト表示の '>' がプログラムカウンタ位置です。 ・動作サンプル >VL 0000F8 NOP 0000FA NOP 0000FC NOP 0000FE NOP 000100 MOV.L #H'000FFF10:32,ER7 000106 JSR @H'002000:24 00010A ANDC #H'3F:8,CCR 00010C JSR @H'003E02:24 >000110 MOV.B #H'00:8,R0L 000112 MOV.B R0L,@H'FFFFC1:8 000114 MOV.B #H'FF:8,R0L 000116 MOV.B R0L,@H'FFFFD8:8 000118 MOV.B #H'FF:8,R0L 00011A MOV.B R0L,@H'FFFFC4:8 00011C MOV.B #H'00:8,R0L 00011E MOV.B R0L,@H'FFFFC5:8 000120 MOV.B #H'FF:8,R0L 000122 MOV.B R0L,@H'FFFFDA:8 000124 MOV.B #H'FF:8,R0L PC=000110 CCR=00:........ ER0=00002470 ER1=5A0020D8 ER2=00000000 ER3=00000000 ER4=00000000 ER5=00000000 ER6=00000000 ER7=000FFF0C >

5.組み込み手順

5-1. 組み込み例

 AKI-H8 のマザーボードテストプログラムを例にしています。  使用するシリアルチャンネルにあわせて割り込みベクトルを記述し ます。(MBTEST.MAR) .DATA.L INIT ;リセットベクトル .import dbg_sci_err, dbg_sci_rxd, dbg_sci_txd, dbg_init .org 56*4 ;SCIチャンネル1 .data.l dbg_sci_err .data.l dbg_sci_rxd .data.l dbg_sci_txd  初期化部分で、モニタの初期化サブルーチンをコールしたのちに、 割り込み禁止を解除します。(MBTEST.MAR) INIT: MOV.L #H'FFF10,ER7 ;スタックポインタ設定 jsr @dbg_init andc #B'00111111,ccr  リンク時の指定ファイル.(MBTEST.SUB) OUTPUT mbtest INPUT mather\mbtest.obj INPUT debuger\debuger.obj START DEBUG_ROM(2000),DEBUG_RAM(0FFF000),DEBUG_SCI(0FFFFB8) PRINT mbtest EXIT  DEBUG_ROM : モニタプログラムのセクション名  DEBUG_RAM : モニタプログラムの作業用RAMのセクション名  DEBUG_SCI : モニタプログラムで使用するシリアルのセクション名

5-2. 外部シンボル定義一覧

 dbg_init 初期化  dbg_sci_err SCIエラー割り込みエントリー  dbg_sci_rxd SCI受信割り込みエントリー  dbg_sci_txd SCI送信割り込みエントリー  dbg_mode_in デバッグモード起動エントリー  dbg_putc ターミナル1文字出力  dbg_getc ターミナル1文字入力  _def_usr ユーザー定義ファンクション設定  _uputc ユーザー定義ファンクション用1文字出力  _ugetc ユーザー定義ファンクション用1文字入力  _ugetchk ユーザー定義ファンクション用入力チェック

6.注意事項

 デバッグモニタモードでのユーザープログラムの実行は、1ス テップずつデコード実行している為、実質的な動作速度は数百分 の1程度に落ちています。よって、リアルタイムな実速度でのデ バッグはできません。また、実際のCPUの動作と異なる部分が バグを含めて多々あると思います。十分なデバックは行っていま せんので、ご使用に当たっては十分ご注意願います。このソフト ウエアを使用したことによるすべての損害について、作者は一切 その責任を負わないものとします。

7.その他

 このプログラムは、著作権を放棄していない「フリーソフトウ エア」です。注意事項を十分ご確認の上、自由に使用していただ いてかまいません。

7-1 連絡先

 このプログラムに対する、ご意見、ご要望、ご質問、ご感想、 バグ情報などございましたら下記の宛先までメールをお願い致し ます。尚、頂いた、ご意見、ご要望、ご質問は、ホームページ上 で、公開することもありますので、予めご了承ください。 AKIYA e-mail:aki_chi@live.jp

7-2 履歴

ver.0.62b 2000/9/28 ・DEBUG_SCI のセクション属性を COMMON に変更しました。 ver.0.62a 2000/6/21 ・ver.0.61以降、 dbg_getc, dbg_putc が機能しない不具合を修正。 ver.0.62 2000/5/28 ・逆アセンブルリスト表示ステップ/トレース実行コマンドを追加。 ver.0.61 1999/10/17 ・ユーザー処理コマンドを追加。 ・デバッグメモリのスタックを拡張できるように変更。 ver.0.60 1998/12/12 ・メモリ内容変更コマンド(サイズ指定付き)を追加。 ver.0.59 1998/11/15 ・リセットコマンドを追加。 ver.0.58a 1998/9/27 ・メモリ内容ウォッチのワイド指定の不具合を修正。 ver.0.58 1998/9/19 ・コマンドヘルプを追加。 ・メモリ内容ダンプ、メモリ内容ウォッチにてワイド指定が32バイト  を超える場合の表示形式を変更。 ver.0.57 1998/9/13 ・メモリ内容ダンプ、メモリ内容ウォッチのサイズ指定コマンドを追加。 ver.0.56 1998/8/30 ・メモリ内容ウォッチコマンドを追加。 ver.0.55 1998/8/15 ・非起動状態でのユーザープログラムのターミナル入力サービスを追加。 ver.0.54 1998/7/13 ・レジスタ内容変更コマンドを追加。 ver.0.53 1998/7/6 ・メモリ内容変更コマンドを追加。 ver.0.52 1998/6/28 ・ステップ実行時、 TRAPA 命令に対応。 ・旧シンボル名を削除。 ・メモリ初期化コマンドを追加。 ver.0.51 1998/6/9 ・外部シンボル名を変更。(旧シンボル名は、今回限り定義) ・ユーザープログラムからのデバッグモード起動のエントリー追加。 ・非起動状態でのユーザープログラムからのターミナル出力サービスを追加。 ・非表示連続実行でターミナルからのブレーク不能条件を回避。 ver.0.50 1998/6/3 公開