(57)【特許請求の範囲】
【請求項１】
内部の基本クロックを停止する基本クロック停止命令が実行されたことを示すフラグを備え、
基本クロック停止命令が実行されると、前記フラグをセットし、その後基本クロック停止命令を実行中にプログラムデバッグ専用の割り込み処理が受け付けられると、その時点のプログラムカウンタのカウンタ値を所定の退避領域へ記憶してからプログラムデバッグ専用の割り込み処理を実行する第１の手段と、
プログラムデバッグ専用の割り込み処理が終了すると、前記フラグを判定し、前記フラグが前記基本クロック停止命令が実行されたことを示している場合には、前記退避領域に記憶したプログラムカウンタのカウンタ値の減算処理を行い、その減算結果をプログラムカウンタに書き込む第２の手段と、
を備え、プログラムデバッグ専用の割り込み処理の終了時に復帰する復帰先のアドレスを、前記基本クロック停止命令のアドレスとしたことを特徴とするマイクロコンピュータ。
【請求項２】
前記第２の手段は、前記プログラムデバッグ専用の割り込み処理が終了すると、前記フラグを判定し、前記フラグが前記基本クロック停止命令が実行されたことを示している場合には、前記退避領域に記憶したプログラムカウンタのカウンタ値の減算処理を行い、その減算結果を前記退避領域に書き込んだ後、割り込み復帰命令を実行することで、退避領域に書き込まれた前記減算結果をプログラムカウンタに書き込むことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記第２の手段は、前記プログラムデバッグ専用の割り込み処理が終了すると、割り込み復帰命令を実行して前記退避領域に書き込んだカウンタ値をプログラムカウンタヘ格納する際に前記フラグを判定し、前記フラグが前記基本クロック停止命令が実行されたことを示している場合には、前記退避領域に書き込んだカウンタ値の減算処理を行い、その減算結果をプログラムカウンタに書き込むことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項４】
フラグが基本クロック停止命令が実行されたことを示している場合のプログラムカウンタ値の減算処理を、
前記プログラムカウンタ値より所定値を減算する減算器と、
前記フラグの状態に応じてオン／オフされ、当該フラグが基本クロック停止命令が実行されたことを示している場合に、前記減算器をプログラムカウンタに接続して、前記プログラムカウンタ値より所定数の減算を行わせるスイッチとを用いて実行することを特徴とする請求項１または３に記載のマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、内部の基本クロックを停止する基本クロック停止命令（以下、ＳＴＰ命令という）を備え、プログラムデバッグ専用の割り込み（以下、デバッグ割り込みという）処理を実行して、開発中のプログラム（以下、ユーザプログラムという）の誤りの発見・修正を行うマイクロコンピュータに関するものである。
【０００２】
【従来の技術】
従来、マイクロコンピータのプログラム開発では、開発中のユーザプログラムの誤りを発見し、発見した誤りを修正するため、マイクロコンピュータの割り込み回路にデバッグ専用の割り込み要求発生回路を設けていた。このデバッグ割り込み要求は、外部のプログラムデバッグ装置（以下、外部デバッグ装置という）からの割り込み要求などにより、ユーザプログラムの実行を一時的に中断してデバッグ用の割り込み処理を行うものである。
【０００３】
図７はそのような従来のマイクロコンピュータと外部デバッグ装置の接続を示すブロック図である。図において、１はマイクロコンピュータであり、２は外部デバッグ装置である。また、マイクロコンピュータ１内において、１０は中央演算処理装置（以下、ＣＰＵという）、１１はアドレスバス、１２はデータバス、１３は制御信号線、１４はランダムアクセスメモリ（以下、ＲＡＭという）、１５はプログラムメモリであり、１６は割り込み制御回路、１７はデバッグ補助回路である。なお、１８は割り込み要求信号が伝送される割り込み要求信号線であり、１９はデバッグバスである。
【０００４】
図８はマイクロコンピュータ１内のデバッグ補助回路１７の内部構成を示すブロック図である。図において、２０はＣＰＵ１０の実行状態、すなわちアドレスバス１１、データバス１２、制御信号線１３の状態をデバッグバス１９に出力するトレース回路であり、２１は外部デバッグ装置２、およびマイクロコンピュータ１のＣＰＵ１０より読み出し／書き込みが可能なレジスタである。
【０００５】
次に動作について説明する。
今、マイクロコンピュータ１はプログラムメモリ１５に格納されているユーザプログラムを実行しているものとする。このとき、外部デバッグ装置２はマイクロコンピュータ１のデバッグ補助回路１７よりデバッグバス１９を介してトレースデータを取り込むことによって、マイクロコンピュータ１のＣＰＵ１０の動作をモニタすることができる。そして、例えば前述のトレースデータのＣＰＵ１０の実行アドレスが、あらかじめ設定されているアドレス値となったとき、外部デバッグ装置２は割り込み要求信号線１８に割り込み要求信号を出力する。この割り込み要求信号を受けたマイクロコンピュータ１は実行中のユーザプログラムの処理を一時中断してデバッグ割り込み処理に入る。すなわち、デバッグ割り込みがかかると、ＣＰＵ１０はプログラムメモリ１５に格納されているデバッグ処理用のプログラムを実行し、デバッグ補助回路１７のレジスタ２１を介して、外部デバッグ装置２と相互に通信を行う。
【０００６】
例えば、外部デバッグ装置２はデバッグ割込み要求後、デバッグ補助回路１７のレジスタ２１を介してＣＰＵ１０と通信を行い、マイクロコンピュータ１のレジスタの内容やＲＡＭ１４などのメモリの内容を知ることができる。このデバッグ割り込み要求の処理は通常の割り込みと同様で、ＣＰＵ１０が割り込み要求を受け付けると、次に実行されるプログラムカウンタ値（プログラムカウンタの内容）を、スタックポインタで指示されるメモリ領域（このメモリとしては通常ＲＡＭ１４が使用される）へ待避した後、割り込み処理に入る。一方、割り込み処理終了時には、終了時に実行される割り込み復帰命令（以下、ＲＴＩ命令という）において、割り込み受け付け時のプログラムカウンタ値をスタックポインタの示すメモリ領域から読み出し、それをプログラムカウンタヘ転送する。以上の動作により、デバッグ割り込みによってユーザプログラムを中断し、デバッグ処理を行った後、中断していたユーザプログラムの処理を、中断した命令の次の命令より再開する。
【０００７】
このような外部デバッグ装置２から割り込み要求信号線１８に送出される割り込み要求信号によるデバッグ割り込みは、ユーザプログラムを一時的に中断してデバッグ処理に入るので、通常、１回あたりのデバッグ割り込み処理時間が、ユーザプログラムの実行に支障を与えないように短時間で終了するような工夫が施されている。例えば、マイクロコンピュータ１のメモリ内容を外部デバッグ装置２が取り込むような場合においては、そのメモリのアドレス範囲をいくつかに分割してデバッグ割り込み処理を行うことにより、１回のデバッグ割り込み処理では数アドレス分だけのメモリ内容の取り込みを行って、短時間でデバッグ割り込み処理を終了する。
【０００８】
ここで、ユーザプログラム上でマイクロコンピュータ１内部の基本クロックを停止させるＳＴＰ命令を実行した場合でも、デバッグ割り込みが発生すると上記ＳＴＰ命令を解除してデバッグ割り込み処理が行われるため、ＲＴＩ命令を実行してユーザプログラムに復帰すると、スタックポインタで示されるメモリ領域から読み出した、割り込み受け付け時に退避したプログラムカウンタの内容にしたがって、ＳＴＰ命令の次の命令から処理が再開されていた。
【０００９】
なお、このような従来のマイクロコンピュータに関連した技術に関する記載のある文献としては、例えば特開昭５８−２０５２２６号公報、特開平５−７３３４９号公報、特開昭６２−９５６４４号公報、特開平１−２５０１４３号公報などがある。
【００１０】
【発明が解決しようとする課題】
従来のマイクロコンピュータは以上のように構成されているので、プログラムをデバッグするとき、ユーザが本来意図しない要因、すなわちデバッグ割り込みによってＳＴＰ命令が解除されてしまうという問題点があった。このような問題点を外部デバッグ装置２により解決するためには、
１．デバッグ割り込み受け付け時のプログラム実行アドレス部分の逆アセンブルを行いＳＴＰ命令を探す。
２．トレースデータの解析と上記逆アセンブル結果を照合し、ＳＴＰ命令が実行されたかどうかを判定する。
３．ＳＴＰ命令が実行されていると判定した場合は、デバッグ割り込み受け付け時にスタックポインタで示されるメモリ領域に退避されているプログラムカウンタの内容を減算し、デバッグ割り込み終了後ＳＴＰ命令を実行するア
ドレスに変更する。
といった処理を必要とするため、１回当たりのデバッグ割り込み処理時間が長くなるという課題があった。
【００１１】
この発明は上記のような課題を解決するためになされたもので、１回当たりのデバッグ割り込み処理時間を長くすることなく、ＳＴＰ命令がデバッグ割り込みによって解除されてしまうのを防止することができるマイクロコンピュータを得ることを目的とする。
【００１２】
【課題を解決するための手段】
この発明に係るマイクロコンピュータは、ＳＴＰ命令が実行されたことを示すフラグを用いて、プログラムカウンタ値の減算処理を行うか否かの判定を行い、このフラグがＳＴＰ命令が実行されたことを示している場合には、上記プログラムカウンタ値の減算処理を行って、デバッグ割り込み処理の終了時における復帰先のアドレスを、ＳＴＰ命令のアドレスに変更するようにしたものである。
【００１３】
この発明に係るマイクロコンピュータは、デバッグ割り込み処理の終了時に、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を行い、このフラグがＳＴＰ命令が実行されたことを示している場合にはソフトウェア処理によって、プログラムカウンタ値の減算処理を行うようにしたものである。
【００１４】
この発明に係るマイクロコンピュータは、デバッグ割り込み処理の要求発生時に、スタックポインタの示すメモリ領域にプログラムカウンタの内容を退避する際、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を行い、このフラグがＳＴＰ命令が実行されたことを示していれば、ハードウェアを用いてプログラムカウンタ値の減算処理を行うようにしたものである。
【００１５】
この発明に係るマイクロコンピュータは、デバッグ割り込み処理の終了時に、スタックポインタの示すメモリ領域から復帰先のアドレスを読み出してプログラムカウンタヘ格納する際、このフラグがＳＴＰ命令が実行されたことを示していれば、ハードウェアを用いてプログラムカウンタ値の減算処理を行うようにしたものである。
【００１６】
この発明に係るマイクロコンピュータは、プログラムカウンタ値の減算処理を、減算器と、フラグによってオン／オフされるスイッチとを用い、当該フラグがセットされた場合に減算器をプログラムカウンタに接続して、プログラムカウンタ値より所定数の減算を行わせるようにしたものである。
【００１７】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるマイクロコンピュータの構成を示すブロック図であり、図において、１は当該マイクロコンピュータである。マイクロコンピュータ１内において、１０はこのマイクロコンピュータ１全体の処理を制御するＣＰＵであり、１１はＣＰＵ１０より出力されるアドレスが伝送されるアドレスバス、１２はＣＰＵ１０に入出力されるデータが伝送されるデータバス、１３はＣＰＵ１０より出力される制御信号が伝送される制御信号線である。１４はこれらアドレスバス１１、データバス１２および制御信号線１３に接続されて、ワーキングメモリとして使用されるメモリとしてのＲＡＭであり、１５は同じくアドレスバス１１、データバス１２および制御信号線１３に接続されて、ＣＰＵ１０の処理で用いられるプログラムが格納されたプログラムメモリである。
【００１８】
１６は外部に接続された外部デバッグ装置（図示省略）からのデバッグ割り込み要求を受け付けてＣＰＵ１０に転送する割り込み制御回路であり、１７はアドレスバス１１、データバス１２および制御信号線１３に接続され、外部デバッグ装置との間でトレースデータなどのやり取りをするデバッグ補助回路である。また、１８は外部デバッグ装置から割り込み制御回路１６への割り込み要求信号が伝送される割り込み要求信号線であり、１９は外部デバッグ装置とデバッグ補助回路１７とを接続するデバッグバスである。なお、これらは図７に同一符号を付して示した従来のそれらに相当する部分である。
【００１９】
また、３０はＣＰＵ１０より出力される、当該マイクロコンピュータ１の内部基本クロックを停止させるＳＴＰ命令を実行したか否かを示すフラグが格納されるフラグ回路である。３１はＣＰＵ１０がＳＴＰ命令を実行した時に出力するＳＴＰ実行信号を、このフラグ回路３０に入力するためのＳＴＰ実行信号線、３２はＣＰＵがこのフラグ回路３０に格納されたフラグを読み出した後、このフラグをリセットするために出力するフラグリセット信号を、フラグ回路３０に入力するためのフラグリセット信号線であり、３３はＣＰＵ１０がフラグ回路３０に格納されたフラグを読み出すときに出力するフラグ読み出し信号をフラグ回路３０に入力するためのフラグ読み出し信号線である。
【００２０】
図２は上記フラグ回路３０の構成を示すブロック図である。図において、３１はＳＴＰ実行信号線、３２はフラグリセット信号線、３３はフラグ読み出し信号線であり、これらは図１に同一符号を付した部分と同一部分である。３４はＳＴＰ実行信号線３１よりＳＴＰ実行信号が入力された場合にセットされ、フラグリセット信号線３２よりフラグリセット信号入力された場合にリセットされて、当該マイクロコンピュータ１の内部基本クロックを停止させるＳＴＰ命令が実行されたか否かを示すフラグを保持するラッチ回路であり、３５はこのラッチ回路３４の保持しているフラグが出力されるフラグ出力線である。３６はＣＰＵ１０がフラグ読み出し信号線３３に出力するフラグ読み出し信号によって制御される、フラグ出力線３５からのフラグをデータバス１２に出力するためのトライステートバッファである。
【００２１】
次に動作について説明する。
このように構成されたフラグ回路３０に、ＳＴＰ実行信号線３１よりＳＴＰ実行信号が与えられるとラッチ回路３４の保持するフラグがセットされる。ＣＰＵ１０ではフラグ読み出し信号線３３にフラグ読み出し信号を与えることにより、このラッチ回路３４に保持されたフラグの状態をデータバス１２を介して読み出すことができる。ＣＰＵ１０はフラグ読み出し後にフラグリセット信号線３２にフラグリセット信号を送出して、ラッチ回路３４に保持されているフラグをリセットする。なお、フラグ読み出し信号線３３に別のラッチ回路を接続し、フラグ読み出し後にそのラッチ回路の出力をフラグリセット信号としてフラグリセット信号線３２に送出するようにしてもよい。
【００２２】
この実施の形態１では、デバッグ割り込み処理のプログラム上で、デバッグ割り込みよりユーザプログラムヘ復帰するときに、上記フラグ回路３０に格納されたフラグを用いて、ＳＴＰ命令に復帰するか否かを判定する。図３はこのデバッグ割り込み処理とユーザプログラムの処理手順を示すフローチャートである。以下、この図３を参照しながらデバッグ割り込みの処理からユーザプログラムヘの復帰について説明する。
【００２３】
ユーザプログラム実行中にＳＴＰ命令が実行されると（ステップＳＴ１）、ＣＰＵ１０からのＳＴＰ実行信号によって、フラグ回路３０のラッチ回路３４に保持されているフラグがセットされる。その後、ユーザプログラムの実行時に割り込み要求信号線１８を介して外部デバッグ装置からのデバッグ割り込みが受け付けられると、その時のプログラムカウンタの内容がスタックポインタで示されるメモリ領域ヘ待避されてデバッグ割り込みの処理に入る（ステップＳＴ２）。デバッグ割り込みの処理が終了すると、ユーザプログラムがＳＴＰ命令を実行したか否かを知るために、ＣＰＵ１０はフラグ読み出し信号をフラグ回路３０のトライステートバッファ３６に送出し、ラッチ回路３４に保持されているフラグを読み出して（ステップＳＴ３）、デバッグ処理用のプログラム内でソフトウェア処理によってそのフラグのチェックを行う（ステップＳＴ４）。
【００２４】
この場合、ＳＴＰ命令が実行されてフラグがセットされているため、デバッグ割り込み発生時にスタックポインタの示すメモリ領域に退避しておいたプログラムカウンタの内容を読み出して（ステップＳＴ５）、その読み出されたプログラムカウンタ値に対して減算処理を施し（ステップＳＴ６）、その減算処理された値をスタックポインタで指示されるメモリ領域にあらためて書き込む（ステップＳＴ７）。なお、このステップＳＴ６における減算処理では、ＳＴＰ命令が２ワード構成であれば“２”が、１ワード構成であれば“１”が、それぞれ読み出されたプログラムカウンタ値より減算される。
【００２５】
次に、ＲＴＩ命令の実行した後（ステップＳＴ８）、このスタックポインタで示されるメモリ領域にあらためて書き込まれた値をプログラムカウンタに書き込んでユーザプログラムに復帰し、ＳＴＰ命令を実行する（ステップＳＴ９）。一方、フラグがセットされていない場合には、ステップＳＴ４より直接ステップＳＴ８に進んでＲＴＩ命令を実行した後、デバッグ割り込み発生時にスタックポインタで指示されたメモリ領域に退避しておいたプログラムカウンタ値にしたがって、ユーザプログラムヘ復帰する。これにより、ユーザが本来意図しない要因であるデバッグ割り込みなどによって、ＳＴＰ命令が解除されてしまうというようなことはなくなる。
【００２６】
以上のように、この実施の形態１によれば、ＳＴＰ命令が実行されたことを示すフラグの状態によって、デバッグ割り込み処理からユーザプログラムヘの復帰アドレスをＳＴＰ命令に復帰させるかどうかの処理を、デバッグ割り込み中のプログラム内でソフトウェアによって行うことが可能となり、１回当たりのデバッグ割り込み処理時間を長くすることなく、デバッグ割り込みによってＳＴＰ命令が解除されてしまうのを防止することが可能なマイクロコンピュータが得られる効果がある。
【００２７】
実施の形態２．
上記実施の形態１においては、フラグの状態をデバッグ割り込み処理終了時に判定し、このフラグがセットされている場合にはソフトウェア処理によってプログラムカウンタ値の減算処理を行うようにしたものを示したが、デバッグ割り込み処理要求発生時に、スタックポインタの示すメモリ領域にプログラムカウンタの内容を退避する際、フラグの状態を判定して、このフラグがセットされている場合には、プログラムカウンタ値の減算処理をハードウェアを用いて処理するようにしてもよい。なお、そのようなこの発明の実施の形態２によるマイクロコンピュータの構成、およびそのフラグ回路の構成は、図１および図２に示した実施の形態１の場合と同様である。
【００２８】
図４はこの実施の形態２によるマイクロコンピュータにおけるアドレス発生回路の構成を示すブロック図である。図において、４０は次にＣＰＵ１０によって実行される命令のプログラムメモリ１５上のアドレスが格納されるプログラムカウンタである。４１はこのプログラムカウンタ４０の内容（プログラムカウンタ値）に“１”を加算する加算器であり、４２はプログラムカウンタ４０の内容より、例えば“２”などの所定値を減算する減算器である。４３はＣＰＵ１０にて命令が実行される度にオン／オフされる、プログラムカウンタ４０の内容をインクリメントするためのスイッチであり、４４は例えばフラグ回路３０のラッチ回路３４より、フラグ出力線３５に出力されるフラグによってオン／オフされ、フラグがセットされている場合にはプログラムカウンタ４０の内容より所定数の減算を行うためのスイッチである。なお、このアドレス発生回路としては、マイクロコンピュータ１が通常備えているハードウェアを兼用することができる。
【００２９】
次に動作について説明する。
ここで、図５はこの実施の形態２におけるデバッグ割り込み時の処理手順を示すフローチャートである。デバッグ割り込みが受け付けられると（ステップＳＴ１０）、フラグ回路３０のラッチ回路３４に保持されているフラグの判定を行う（ステップＳＴ１１）。その結果、フラグがセットされていればプログラムカウンタ４０の内容から所定値を減算し（ステップＳＴ１２）、スタックポインタで指示されるメモリ領域にその減算した値を退避する（ステップＳＴ１３）。具体的には、図４に示すアドレス発生回路のスイッチ４４を、フラグ回路３０のラッチ回路３４よりフラグ出力線３５に出力されたフラグの状態によって制御し、当該フラグがセットされている場合には、割り込み要求中のスタックポインタの示すメモリ領域ヘのプログラムカウンタ値の退避動作の前にオンさせることにより、プログラムカウンタ４０の内容から所定値を減算した結果を、スタックポインタで示されるメモリ領域ヘ退避させる。
【００３０】
また、フラグ回路３０のラッチ回路３４に保持されているフラグがリセットされていれば、アドレス発生回路のスイッチ４４はオフしたままであり、プログラムカウンタ４０に格納されたプログラムカウンタ値の減算処理は行われない。したがって、プログラムカウンタ４０の内容がそのまま、スタックポインタで示されるメモリ領域ヘ退避される。このスタックポインタで示されるメモリ領域ヘのプログラムカウンタ値の退避が済むと、デバッグ割り込み処理の分岐アドレスを読み出し（ステップＳＴ１４）、読み出したアドレスに分岐して（ステップＳＴ１５）、デバッグ割り込み処理を実行する。
【００３１】
なお、上記説明では、マイクロコンピュータ１が通常備えているプログラムカウンタ４０、加算器４１、減算器４２、およびスイッチ４３，４４で構成されるアドレス発生回路を用いたものを示したが、このプログラムカウンタ値の減算処理のための回路を専用の回路として別途設けるようにしてもよい。また、上記減算処理は割り込みシーケンスを制御するマイクロコードなどで比較的簡単に実現することができ、フラグのリセットも同様に、割り込み要求後にフラグリセット信号線３２のフラグリセット信号をオンさせることができる。
【００３２】
以上のように、この実施の形態２によれば、デバッグ割り込み処理要求発生時に、スタックポインタで示されるメモリ領域にプログラムカウンタの内容を退避する際にフラグの状態判定を行って、このフラグがセットされていればプログラムカウンタ値の減算処理をハードウェアによって処理しているので、ソフトウェアを介することなくプログラムカウンタ値の減算処理が可能となり、上記実施の形態１よりも、デッバグ割り込み処理終了後にＳＴＰ命令に復帰するかどうかの処理を迅速に行うことができる効果があり、また、プログラムカウンタ値の減算処理をハードウェアとして、減算器と、フラグセット時にその減算回路をプログラムカウンタに接続するスイッチを用いているので、マイクロコンピュータが通常備えているものを利用することが可能となり、格別なハードウェアの増加なしに実現できる効果もある。
【００３３】
実施の形態３．
上記実施の形態２においては、デバッグ割り込み処理要求発生時に、スタックポインタの示すメモリ領域にプログラムカウンタの内容を退避する際に、フラグの状態を判定し、このフラグがセットされている場合にはハードウェアを用いてプログラムカウンタ値の減算処理を行う場合について説明したが、当該フラグの状態判定を、デバッグ割り込み処理終了時に、復帰先のアドレスをスタックポインタの示すメモリ領域から読み出してプログラムカウンタヘ格納する際に行い、このフラグがセットされている場合に、プログラムカウンタ値の減算処理をハードウェアを用いて処理するようにしてもよい。
【００３４】
なお、そのようなこの発明の実施の形態３によるマイクロコンピュータの構成、およびそのフラグ回路とアドレス発生回路の構成は、図１、図２および図４に示した実施の形態１および実施の形態２の場合と同様である。また、この実施の形態３によるフラグのセット／リセットおよび読み出しも、実施の形態１と同様に行われるので、ここではこの実施の形態３に特徴的な動作について以下に説明する。
【００３５】
図６は当該実施の形態３における、デバッグ割り込み処理からユーザプログラムに復帰するときに実行するＲＴＩ命令の動作手順について示すフローチャートである。デバッグ割り込み処理が終了すると、スタックポインタにて指示されたメモリ領域に退避しておいた復帰先アデレスがプログラムカウンタ４０に格納される（ステップＳＴ２０）。その後、ＳＴＰ命令フラグの判定を行い（ステップＳＴ２１）、その結果、フラグがセットされていれば、アドレス発生回路のスイッチ４４をオンさせてプログラムカウンタ４０に減算器４２を接続して、アドレスカウンタ値の減算処理を行い（ステップＳＴ２２）、プログラムカウンタ４０の内容を上記ステップＳＴ２０で格納された復帰先アドレスから所定値だけ減少させる。一方、フラグがセットされていなければ、このステップＳＴ２２は実行されず、プログラムカウンタ４０には、ステップＳＴ２０で格納された、スタックポインタの示すメモリ領域に退避されていた復帰先アデレスがそのまま残される。
【００３６】
このプログラムカウンタ４０の内容を復帰先のアドレスとしてユーザプログラムに復帰し、当該アドレスより命令を実行する（ステップＳＴ２３）。したがって、ＳＴＰ命令が実行されていてフラグがセット状態となっている場合には、ユーザプログラムのＳＴＰ命令に復帰し、ＳＴＰ命令が実行されておらずフラグがセット状態となっていない場合には、デバッグ割り込み処理の要求発生時に、スタックポインタの示すメモリ領域に退避しておいた復帰先アデレスの命令に復帰する。
【００３７】
このように、この実施の形態３によれば、デバッグ割り込み処理終了時に、復帰先のアドレスを、スタックポインタにて指示されるメモリ領域から読み出してプログラムカウンタヘ格納する際にフラグの状態判定を行って、このフラグがセットされている場合に、プログラムカウンタ値の減算処理をハードウェアによって処理しているので、ソフトウェアを介することなくプログラムカウンタの減算処理が可能となり、上記実施の形態２の場合と同様に、デッバグ割り込み処理終了後にＳＴＰ命令に復帰するかどうかの処理を迅速に行うことができるという効果がある。
【００３８】
【発明の効果】
以上のように、この発明によれば、プログラムカウンタ値の減算処理を行うか否かの判定を、ＳＴＰ命令が実行されたことを示すフラグを用いて行い、このフラグがＳＴＰ命令が実行されたことを示している場合には、上記プログラムカウンタ値の減算処理を行って、デバッグ割り込み処理の終了時における復帰先のアドレスを、ＳＴＰ命令のアドレスに変更するようにしているので、１回当たりのデバッグ割り込み処理時間を長くすることなく、デバッグ割り込みによってＳＴＰ命令が解除されてしまうのを防止できるマイクロコンピュータが得られるという効果がある。
【００３９】
また、この発明によれば、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を、デバッグ割り込み処理の終了時に行い、このフラグがＳＴＰ命令が実行されたことを示している場合に、プログラムカウンタ値の減算処理をソフトウェア処理するようにしたので、デバッグ割り込み処理からユーザプログラムヘの復帰アドレスをＳＴＰ命令とするか否かを、デバッグ割り込み中のソフトウェアによって行うことが可能となり、デバッグ割り込みによるＳＴＰ命令の解除を、１回当たりのデバッグ割り込み処理時間を長くすることなく防止することができる効果がある。
【００４０】
また、この発明によれば、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を、デバッグ割り込み処理要求発生時に、スタックポインタの示すメモリ領域にプログラムカウンタの内容を退避する際に行い、このフラグがＳＴＰ命令が実行されたことを示している場合には、プログラムカウンタ値の減算処理にハードウェアを用いるようにしたので、ソフトウェアを介することなくプログラムカウンタの減算処理を行うことが可能となり、デバッグ割り込み処理後にＳＴＰ命令に復帰するかどうかの処理をより迅速に行うことができるという効果がある。
【００４１】
また、この発明によれば、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を、デバッグ割り込み処理終了時に、スタックポインタの示すメモリ領域から復帰先のアドレスを読み出してプログラムカウンタヘ格納する際に行い、このフラグがＳＴＰ命令が実行されたことを示している場合には、プログラムカウンタ値の減算処理にハードウェアを用いるようにしたので、ソフトウェアを介することなくプログラムカウンタの減算処理を行うことが可能となり、デバッグ割り込み処理後にＳＴＰ命令に復帰するかどうかの処理をより迅速に行うことができるという効果がある。
【００４２】
また、この発明によれば、プログラムカウンタ値の減算処理を、減算器と、フラグによってオン／オフされるスイッチとを用いて行い、当該フラグがセットされた場合に減算器をプログラムカウンタに接続して、プログラムカウンタ値より所定数の減算を行わせるようにしたので、マイクロコンピュータが通常備えているハードウェアを利用することが可能となるため、格別なハードウェアの増加なしに実現できる効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１によるマイクロコンピュータの構成を示すブロック図である。
【図２】  実施の形態１におけるフラグ回路の構成を示すブロック図である。
【図３】  実施の形態１におけるデバッグ割り込み処理とユーザプログラムの処理手順を示すフローチャートである。
【図４】  この発明の実施の形態２によるマイクロコンピュータにおけるアドレス発生回路の構成を示すブロック図である。
【図５】  実施の形態２におけるデバッグ割り込み時の処理手順を示すフローチャートである。
【図６】  この発明の実施の形態３によるマイクロコンピュータにおけるＲＴＩ命令の処理手順を示すフローチャートである。
【図７】  従来のマイクロコンピュータの構成と、外部デバッグ装置との接続を示すブロック図である。
【図８】  従来のマイクロコンピュータのデバッグ補助回路の内部構成を示すブロック図である。
【符号の説明】
１  マイクロコンピュータ、４０  プログラムカウンタ、４２  減算器、４４
スイッチ。
【図１】
0003872196.tif 000002
【図２】
0003872196.tif 000003
【図３】
0003872196.tif 000004
【図４】
0003872196.tif 000005
【図５】
0003872196.tif 000006
【図６】
0003872196.tif 000007
【図７】
0003872196.tif 000008
【図８】
0003872196.tif 000009