(57)【特許請求の範囲】
【請求項１】
ＣＰＵコアと、
割り込みコントローラとを備え、
前記割り込みコントローラは、割り込みマスク部を備え、
前記割り込みマスク部は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかの属性を設定する属性設定レジスタを備え、前記ＣＰＵコアがステップ実行状態時及びブレーク状態時には、プログラム非同期型の割り込み要求信号をマスクし、
前記割り込みコントローラは、前記割り込みマスク部による前記プログラム非同期型の割り込み要求信号に対するマスクを一時停止させるマスク一時停止ステップ実行数を設定するマスク一時停止ステップ実行数設定レジスタを備え、
前記割り込みマスク部は、前記ＣＰＵコアによるステップ実行数が前記マスク一時停止ステップ実行数になる度に、それまでに発生した前記プログラム非同期型の割り込み要求信号に対して１個の割り込み要求信号を出力すること
を特徴とするデバッグ支援装置。
【請求項２】
ＣＰＵコアと、
割り込みコントローラとを備え、
前記割り込みコントローラは、割り込みマスク部を備え、
前記割り込みマスク部は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかの属性を設定する属性設定レジスタを備え、前記ＣＰＵコアがステップ実行状態時及びブレーク状態時には、プログラム非同期型の割り込み要求信号をマスクし、
前記割り込みコントローラは、前記割り込みマスク部による前記プログラム非同期型の割り込み要求信号に対するマスクを解除させるマスク解除プログラムカウンタ値を設定するマスク解除プログラムカウンタ値設定レジスタを備え、
前記割り込みマスク部は、前記ＣＰＵコア内のプログラムカウンタの値が前記マスク解除プログラムカウンタ値になったときは、前記プログラム非同期型の割り込み要求信号に対するマスクを解除すること
を特徴とするデバッグ支援装置。
【請求項３】
前記割り込みコントローラは、前記割り込みマスク部のマスク機能を無効にするマスク機能無効化手段を備えること
を特徴とする請求項１又は２に記載のデバッグ支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのデバッグを支援するデバッグ支援装置に関する。
【背景技術】
【０００２】
図８は従来のデバッグ支援装置の一例を示すブロック回路図である。図８中、１はプロセッサ、２はグラフィック表示装置である。また、プロセッサ１において、３はＣＰＵ（central processing unit）コア、４はＣＰＵコア３が依存する処理を行うＣＰＵコア、５はタイマ、６はＣＰＵコア３とグラフィック表示装置２、ＣＰＵコア４及びタイマ５との間に接続された割り込みコントローラである。
【０００３】
グラフィック表示装置２は、ＣＰＵコア３で実行されるプログラムとは非同期に、例えば、１／３０秒毎に割り込み要求信号を出力するものである。ＣＰＵコア４はＣＰＵコア３が実行するプログラムに同期した割り込み要求信号を出力するものである。タイマ５は、ＣＰＵコア３が実行するプログラムとは非同期に、例えば、１／１００秒毎に割り込み要求信号を出力するものである。
【０００４】
図８に示すデバッグ支援装置のように、デバッグ支援装置には、プログラムに同期したプログラム同期型の割り込み要求と、プログラムとは非同期の実時間に基づいたプログラム非同期型の割り込み要求とが発生するものがある。
【０００５】
図９は１／３０秒毎にプログラム非同期型の割り込み要求が発生する従来のデバッグ支援装置の通常動作を示す図である。図９中、７（ｎ）〜７（ｎ＋３）はターゲットプログラムによる非割り込み処理工程を示しており、それぞれ百万ステップのオーダーである。８（ｎ）〜８（ｎ＋３）は１／３０秒毎の割り込み要求を示している。９（ｎ−１）〜９（ｎ＋２）はターゲットプログラムによる割り込み処理工程を示しており、それぞれ数千ステップのオーダーである。
【０００６】
なお、図１０はプログラム非同期型の割り込み要求が発生しない従来のデバッグ支援装置におけるデバッグ動作を示す図である。図１０中、１０（ｎ）、１０（ｎ＋１）、１０（ｐ）はデバッグ目的のために操作者が行うステップ実行指示を示している。１１（ｎ−１）〜１１（ｎ＋１）、１１（ｐ）はターゲットプログラムによる非割り込み処理工程を示しており、それぞれ１ステップである。なお、ターゲットプログラムのブレーク（実行停止）時間は数秒のオーダーである。
【０００７】
図１１はプログラム同期型の割り込み要求とプログラム非同期型の割り込み要求とが発生する従来のデバッグ支援装置を使用したターゲットプログラムのデバッグ手法の第１例を示すフローチャートである。このデバッグ手法は、まず、操作者によるステップ実行指示によりステップ実行を行わせ（ステップＳ１１−１）、次に、ステップ実行毎に発生する割り込み要求に対する割り込みハンドラ処理を手作業で進め（ステップＳ１１−２）、次に、割り込み処理からの復帰を手作業で行う（ステップＳ１１−３）という手順を繰り返すというものである。
【０００８】
図１２はプログラム同期型の割り込み要求とプログラム非同期型の割り込み要求とが発生する従来のデバッグ支援装置を使用したターゲットプログラムのデバッグ手法の第２例を示すフローチャートである。このデバッグ手法は、デバッグ前に予め、割り込みを禁止する処理を行い（ステップＳ１２−１）、次に、デバッグ目的のステップ実行を繰り返し（ステップＳ１２−２）、その後、ターゲットプログラムの実行上必要な割り込み待ちになったときは、割り込み許可処理を行い（ステップＳ１２−３）、割り込み処理を実行させるという手順を繰り返すというものである。
【０００９】
前述の図１１に示すデバッグ手法では、ステップ実行毎に発生する割り込み要求に対する割り込みハンドラ処理を手作業で進める必要や、割り込み処理から復帰させるための手作業が必要である。また、図１２に示すデバッグ手法では、ターゲットプログラムの実行上必要な割り込み待ちになったときは、割り込み許可処理を手作業で行う必要がある。したがって、これらのデバッグ手法では、煩雑な手作業が発生し、ターゲットプログラムのデバッグ効率が非常に悪いという問題点があった。
【００１０】
このような問題点を解決するデバッグ手法として、特許文献１に記載のデバッグ手法がある。このデバッグ手法は、ブレーク中に発生した一連の割り込み要求に対応する割り込み処理をターゲットプログラムのステップ実行時に一括的に行うというものである。
【００１１】
図１３は１／３０秒毎にプログラム非同期型の割り込み要求が発生する従来のデバッグ支援装置に特許文献１に記載のデバッグ手法を適用した場合のデバッグ動作を示す図である。図１３中、１２（ｎ）−１〜１２（ｎ）−５、１２（ｎ＋１）−１〜１２（ｎ＋１）−５、１２（ｎ＋２）−１〜１２（ｎ＋２）−５はブレーク中に発生した割り込み要求を示している。１３（ｎ）〜１３（ｎ＋２）は操作者によるステップ実行指示を示している。１４（ｎ）〜１４（ｎ＋２）はターゲットプログラムによる割り込み処理工程を示しており、それぞれ数千ステップのオーダーである。１５（ｎ−１）〜１５（ｎ＋２）はターゲットプログラムによる非割り込み処理工程を示しており、それぞれ１ステップである。
【００１２】
このように、特許文献１に記載のデバッグ手法は、ブレーク中に発生した一連の割り込み要求による割り込み処理をステップ実行指示に合わせて行うことで、操作者にはターゲットプログラムによる非割り込み処理のステップ実行のみを見せるというものであるが、このデバッグ手法には、ステップ実行指示後に最初に行う割り込み処理部分のプログラムが完成していないと、割り込み処理後に行う非割り込み処理部分のデバッグを行うことができないという問題点がある。
【特許文献１】特開昭５４−１２７２４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、かかる点に鑑み、ターゲットプログラムのデバッグ効率を向上させることができるようにしたデバッグ支援装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
ここで開示するデバッグ支援装置は、ＣＰＵコアと、割り込みコントローラとを備えるデバッグ支援装置において、前記割り込みコントローラは、割り込みマスク部を備え、前記割り込みマスク部は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかの属性を設定する属性設定レジスタを備え、前記ＣＰＵコアがステップ実行状態時及びブレーク状態時には、プログラム非同期型の割り込み要求信号をマスクするものである。
【発明の効果】
【００１５】
開示したデバッグ支援装置においては、割り込みコントローラは、割り込みマスク部を備え、前記割り込みマスク部は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかの属性を設定する属性設定レジスタを備え、ＣＰＵコアがステップ実行状態時及びブレーク状態時には、プログラム非同期型の割り込み要求信号をマスクするので、ターゲットプログラムをステップ実行する際に、プログラム非同期型の割り込み要求信号を前記ＣＰＵコアに与えないようにすることができる。
【００１６】
したがって、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求に対する割り込みハンドラ処理を手作業で進めることや、プログラム非同期型の割り込み要求に対する割り込み許可／禁止を手作業で切り替えることが必要なくなるので、ターゲットプログラムのデバッグ効率を向上させることができる。
【発明を実施するための最良の形態】
【００１７】
（第１実施形態）
図１は本発明の第１実施形態を示すブロック回路図である。図１中、２１はターゲットプログラムの実行を行うＣＰＵコア、２２はインサーキット・エミュレータとの間のインタフェースをなすデバッグ補助装置、２３は割り込み要求信号ＩＲＱ１〜ＩＲＱ５を出力するデバイスとＣＰＵコア２１との間に接続された割り込みコントローラである。
【００１８】
また、割り込みコントローラ２３において、２４は割り込みマスク部、２５は割り込みコントローラ機能部である。割り込みマスク部２４は、ＣＰＵコア２１がステップ実行状態時及びブレーク状態時には、割り込み要求信号ＩＲＱ１〜ＩＲＱ５のうち、プログラム非同期型の割り込み要求信号についてはマスクし、プログラム同期型の割り込み要求信号については通過させて割り込みコントローラ機能部２５に与えるものである。
【００１９】
割り込みマスク部２４は属性設定レジスタ２６−１〜２６−５を備えている。属性設定レジスタ２６−ｉ（但し、ｉは１、２、３、４又は５であり、以下、同様である。）は、割り込み要求信号ＩＲＱｉに対応して設けられたものであり、割り込み要求信号ＩＲＱｉがプログラム同期型であるかプログラム非同期型であるかの属性を設定するものである。属性設定レジスタ２６−ｉに対する割り込み要求信号ＩＲＱｉの属性設定は、操作者による判断を元に、ＣＰＵコア２１によりレジスタ設定経路２７を通して行われる。
【００２０】
割り込みコントローラ機能部２５は、割り込み要求信号ＩＲＱ１〜ＩＲＱ５のうち、割り込みマスク部２４を通過してきた割り込み要求信号の優先度や、割り込み処理中に同じ割り込みレベルの割り込みが発生しないようにするマスク状態を判断してＣＰＵコア２１に対して割り込み要求信号を発生するという一般的な割り込みコントローラ機能を有するものである。
【００２１】
本発明の第１実施形態では、割り込みマスク部２４は、ＣＰＵコア２１又はデバッグ補助装置２２から与えられるＣＰＵコア２１の状態情報（デバッグステート情報）、即ち、ＣＰＵコア２１が連続実行状態にあるか、ステップ実行状態にあるか、ブレーク状態にあるかの情報を入力し、ＣＰＵコア２１の状態と、属性設定レジスタ２６−１〜２６−５に設定された割り込み要求信号ＩＲＱ１〜ＩＲＱ５の属性情報とに基づいて、割り込み要求信号ＩＲＱ１〜ＩＲＱ５のそれぞれについて、割り込みコントローラ機能部２５に対して通過させるか、マスクするかを決定する。
【００２２】
表１は割り込みマスク部２４の機能表であり、ＣＰＵコア２１の状態と、割り込み要求信号ＩＲＱｉの属性と、割り込み要求信号ＩＲＱｉに対する割り込みマスク部２４の動作との関係を示している。
【００２３】
【表１】
0005130962.tif 000002
【００２４】
即ち、割り込みマスク部２４は、ＣＰＵコア２１が連続実行状態時に割り込み要求信号ＩＲＱｉが与えられたときは、割り込み要求信号ＩＲＱｉがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号ＩＲＱｉを通過させ、また、ＣＰＵコア２１がステップ実行状態時及びブレーク状態時に割り込み要求信号ＩＲＱｉが与えられたときは、割り込み要求信号ＩＲＱｉがプログラム同期型である場合には、割り込み要求信号ＩＲＱｉを通過させ、割り込み要求信号ＩＲＱｉがプログラム非同期型である場合には、割り込み要求信号ＩＲＱｉをマスクする。
【００２５】
図２は本発明の第１実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。即ち、本発明の第１実施形態を使用したターゲットプログラムのデバッグが実行される場合には、まず、ＣＰＵコア２１による属性設定レジスタ２６−１〜２６−５に対する割り込み要求信号ＩＲＱ１〜ＩＲＱ５の属性設定が行われ（ステップＳ２−１）、その後、操作者からのステップ実行指示によるステップ実行が繰り返して行われる（ステップＳ２−２）。
【００２６】
以上のように、本発明の第１実施形態においては、割り込みコントローラ２３は、割り込みマスク部２４を備え、割り込みマスク部２４は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかの属性を設定する属性設定レジスタ２６−１〜２６−５を備え、ＣＰＵコア２１がステップ実行状態時及びブレーク状態時には、プログラム非同期型の割り込み要求信号をマスクするので、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求信号をＣＰＵコア２１に与えないようにすることができる。
【００２７】
したがって、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求に対する割り込みハンドラ処理を手作業で進めることや、プログラム非同期型の割り込み要求に対する割り込み許可／禁止を手作業で切り替えることが必要なくなるので、ターゲットプログラムのデバッグ効率を向上させることができる。
【００２８】
なお、割り込みコントローラ２３に、割り込みマスク部２４のマスク機能を無効にするマスク機能無効化手段をなすマスク機能ＯＮ／ＯＦＦスイッチを設け、マスク機能ＯＮ／ＯＦＦスイッチのＯＮ、ＯＦＦの設定をＣＰＵコア２１により行い、マスク機能ＯＮ／ＯＦＦスイッチをＯＮとするときは、割り込みマスク部２４のマスク機能が有効となり、マスク機能ＯＮ／ＯＦＦスイッチをＯＦＦとするときは、割り込みマスク部２４のマスク機能が無効になるように構成しても良い。
【００２９】
（第２実施形態）
図３は本発明の第２実施形態を示すブロック回路図である。図３中、３１はターゲットプログラムの実行を行うＣＰＵコア、３２はインサーキット・エミュレータとの間のインタフェースをなすデバッグ補助装置、３３は割り込み要求信号ＩＲＱ１〜ＩＲＱ５を出力するデバイスとＣＰＵコア３１との間に接続された割り込みコントローラである。
【００３０】
また、割り込みコントローラ３３において、３４は割り込みマスク部、３５は割り込みコントローラ機能部、３６はマスク一時停止指示部、３７はマスク機能ＯＮ／ＯＦＦスイッチである。割り込みマスク部３４は、ＣＰＵコア３１がステップ実行状態時及びブレーク状態時には、割り込み要求信号ＩＲＱ１〜ＩＲＱ５のうち、プログラム非同期型の割り込み要求信号については後述する一定の条件の下においてマスクし、プログラム同期型の割り込み要求信号については通過させて割り込みコントローラ機能部３５に与えるものである。
【００３１】
割り込みマスク部３４は、属性設定レジスタ３８−１〜３８−５を備えている。属性設定レジスタ３８−ｉは、割り込み要求信号ＩＲＱｉに対応して設けられたものであり、割り込み要求信号ＩＲＱｉがプログラム同期型であるかプログラム非同期型であるかの属性を設定するものである。属性設定レジスタ３８−ｉに対する割り込み要求信号ＩＲＱｉの属性設定は、操作者の判断を元に、ＣＰＵコア３１によりレジスタ設定経路３９を通して行われる。
【００３２】
割り込みコントローラ機能部３５は、割り込み要求信号ＩＲＱ１〜ＩＲＱ５のうち、割り込みマスク部３４を通過してきた割り込み要求信号の優先度や、割り込み処理中に同じ割り込みレベルの割り込みが発生しないようにするマスク状態を判断してＣＰＵコア３１に対して割り込み要求信号を発生するという一般的な割り込みコントローラ機能を有するものである。
【００３３】
マスク一時停止指示部３６はマスク一時停止ステップ実行数設定レジスタ４０−１〜４０−５を備えている。マスク一時停止ステップ実行数設定レジスタ４０−ｉは、割り込み要求信号ＩＲＱｉに対応して設けられたものであり、割り込み要求信号ＩＲＱｉがプログラム非同期型である場合に、割り込みマスク部３４による割り込み要求信号ＩＲＱｉに対するマスクを一時停止するターゲットプログラムのステップ実行数を設定するものである。マスク一時停止ステップ実行数設定レジスタ４０−１〜４０−５に対するマスク一時停止ステップ実行数の初期値の設定は、操作者の判断を元に、ＣＰＵコア３１によりレジスタ設定経路３９を通して行われる。
【００３４】
マスク一時停止指示部３６は、ＣＰＵコア３１からＣＰＵコア３１が命令を実行している期間を示す命令実行パルスを入力し、この命令実行パルスに従って、マスク一時停止ステップ実行数設定レジスタ４０−１〜４０−５のうち、プログラム非同期型の割り込み要求信号に対応するマスク一時停止ステップ実行数設定レジスタの格納値を減算し、プログラム非同期型の割り込み要求信号に対応するマスク一時停止ステップ実行数設定レジスタのいずれかの格納値が０になると、格納値が０になったマスク一時停止ステップ実行数設定レジスタに対応する割り込み要求信号のマスク一時停止指示を割り込みマスク部３４に通知するものである。なお、プログラム非同期型の割り込み要求信号に対応するマスク一時停止ステップ実行数設定レジスタには、その格納値が０になる度に、ＣＰＵコア３１による初期値の設定が行われる。
【００３５】
マスク機能ＯＮ／ＯＦＦスイッチ３７は、割り込みマスク部３４のマスク機能を無効化するマスク機能無効化手段をなすものであり、マスク機能ＯＮ／ＯＦＦスイッチ３７がＯＮの場合には、割り込みマスク部３４のマスク機能は有効とされ、マスク機能ＯＮ／ＯＦＦスイッチ３７がＯＦＦの場合には、割り込みマスク部３４のマスク機能は無効とされる。マスク機能ＯＮ／ＯＦＦスイッチ３７のＯＮ、ＯＦＦの設定は、操作者の判断を元に、ＣＰＵコア３１によりレジスタ設定経路３９を通して行われる。
【００３６】
本発明の第２実施形態においては、割り込みマスク部３４は、マスク機能ＯＮ／ＯＦＦスイッチ３７の状態と、ＣＰＵコア３１あるいはデバッグ補助装置３２から与えられるＣＰＵコア３１の状態情報（デバッグステート情報）、即ち、ＣＰＵコア３１が連続実行状態にあるか、ステップ実行状態にあるか、ブレーク状態にあるかの情報と、属性設定レジスタ３８−１〜３８−５に設定された割り込み要求信号ＩＲＱ１〜ＩＲＱ５の属性情報と、マスク一時停止指示部３６からのマスク一時停止指示とに基づいて、割り込み要求信号ＩＲＱ１〜ＩＲＱ５を通過させるか、マスクするかを決定する。
【００３７】
表２は割り込みマスク部３４の機能表であり、マスク機能ＯＮ／ＯＦＦスイッチ３７の状態と、ＣＰＵコア３１の状態と、割り込み要求信号ＩＲＱｉの属性情報と、割り込み要求信号ＩＲＱｉに対する割り込みマスク部３４の動作との関係を示している。
【００３８】
【表２】
0005130962.tif 000003
【００３９】
即ち、割り込みマスク部３４は、マスク機能ＯＮ／ＯＦＦスイッチ３７がＯＦＦとされている場合には、割り込みマスク部３４のマスク機能は無効とされ、ＣＰＵコア３１が連続実行状態であっても、ステップ実行状態であっても、ブレーク状態であっても、割り込み要求信号ＩＲＱｉが与えられたときは、割り込み要求信号ＩＲＱｉがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号ＩＲＱｉを通過させる。
【００４０】
また、割り込みマスク部３４は、マスク機能ＯＮ／ＯＦＦスイッチ３７がＯＮとされている場合には、割り込みマスク部３４のマスク機能は有効とされ、ＣＰＵコア３１が連続実行状態時に割り込み要求信号ＩＲＱｉが与えられたときは、割り込み要求信号ＩＲＱｉがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号ＩＲＱｉを通過させ、また、ＣＰＵコア３１がステップ実行状態時及びブレーク状態時に割り込み要求信号ＩＲＱｉが与えられたときは、割り込み要求信号ＩＲＱｉがプログラム同期型である場合には、割り込み要求信号ＩＲＱｉを通過させ、割り込み要求信号ＩＲＱｉがプログラム非同期型である場合には、マスク一時停止指示部３６からのマスク一時停止指示を受けた場合を除き、割り込み要求信号ＩＲＱｉをマスクする。
【００４１】
また、割り込みマスク部３４は、割り込み要求信号ＩＲＱｉがプログラム非同期型の場合において、マスク一時停止指示部３６から割り込み要求信号ＩＲＱｉのマスク一時停止指示を受けると、割り込み要求信号ＩＲＱｉのマスクを一時停止し、それまでに発生した割り込み要求信号ＩＲＱｉに対して１個の割り込み要求信号を割り込みコントローラ機能部３５に出力するように構成される。
【００４２】
図４は本発明の第２実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。即ち、本発明の第２実施形態を使用したターゲットプログラムのデバッグが実行される場合には、まず、ＣＰＵコア３１による属性設定レジスタ３８−１〜３８−５に対する割り込み要求信号ＩＲＱ１〜ＩＲＱ５の属性設定が行われ（ステップＳ４−１）、次に、ＣＰＵコア３１によるマスク一時停止ステップ実行数設定レジスタ４０−１〜４０−５に対するマスク一時停止ステップ実行数の設定が行われ（ステップＳ４−２）、次に、ＣＰＵコア３１によるマスク機能ＯＮ／ＯＦＦスイッチ３７のＯＮ、ＯＦＦの設定が行われ（ステップＳ４−３）、その後、操作者からのステップ実行指示によるステップ実行が繰り返して行われる（ステップＳ４−４）。
【００４３】
ここで、割り込みマスク部３４は、割り込み要求信号ＩＲＱｉがプログラム非同期型の場合において、マスク一時停止指示部３６から割り込み要求信号ＩＲＱｉのマスク一時停止指示を受けると、割り込み要求信号ＩＲＱｉのマスクを一時停止し、それまでに発生した割り込み要求信号ＩＲＱｉに対して１個の割り込み要求信号を発生する。この場合、割り込み要求信号ＩＲＱｉに対応する割り込み処理が操作者からのステップ実行指示により実行可能となる。
【００４４】
図５は本発明の第２実施形態を使用したターゲットプログラムのデバッグ動作を示す図であり、割り込み要求信号ＩＲＱ１の属性がプログラム非同期型である場合を例にしている。図５中、４１（ｎ）〜４１（ｎ＋２）、４１（ｐ）〜４１（ｐ＋２）、４１（ｑ）は操作者によるステップ実行指示、４２（ｍ）〜４２（ｍ＋２）、４２（ｗ）は割り込み要求信号ＩＲＱ１による割り込み要求を示している。４３（ｎ）〜４３（ｎ＋２）、４３（ｐ）、４３（ｑ）はターゲットプログラムによる非割り込み処理工程を示しており、それぞれ１ステップである。４３（ｐ＋１）、４３（ｐ＋２）はターゲットプログラムによる割り込み要求４２（ｗ）に対応する割り込み処理工程を示しており、それぞれ１ステップである。
【００４５】
即ち、この例では、マスク一時停止指示部３６が割り込み要求信号ＩＲＱ１のマスク一時停止指示を割り込みマスク部３４に通知すると、割り込みマスク部３４は、割り込み要求信号ＩＲＱ１に対するマスクを一時停止し、それまでに発生した割り込み要求信号に対して１個の割り込み要求信号を通過させ、その後、マスク一時停止ステップ実行数設定レジスタ４０−１に対するマスク一時停止ステップ実行数が設定され、マスク一時停止ステップ実行数設定レジスタ４０−１の値が０になる度に、割り込み要求信号ＩＲＱ１のマスクが一時停止される。
【００４６】
この例の場合に、マスク一時停止ステップ実行数設定レジスタ４０−１に設定する値については、例えば、実動作時（連続実行時）に、ＣＰＵコア３１が１００ＭＨｚで動作し、割り込み要求信号ＩＲＱ１が１／３０秒毎に発生する場合には、１０6〜１０8ステップに１回、割り込み要求が発生する計算になるため、マスク一時停止ステップ実行数設定レジスタ４０−１に１０6程度の値を書き込んでおくと、ステップ実行を行なった場合においても、ＣＰＵコア３１への割り込み入力頻度は、実動作時の場合と同等になる。実際には、マスク一時停止ステップ実行数設定レジスタ４０−１に１０3程度を設定しても、デバッグ効率に支障がないことが経験上確認されている。
【００４７】
なお、図５に示す例においては、割り込み要求４２（ｗ）の後のステップ実行指示４１（ｐ）によりターゲットプログラムによる非割り込み処理工程４３（ｐ）を行うようにしているが、この代わりに、割り込み要求４２（ｗ）の後のステップ実行指示４１（ｐ）により、ターゲットプログラムの割り込み処理を開始するように設定しても良い。
【００４８】
以上のように、本発明の第２実施形態においては、割り込みコントローラ３３は、割り込みマスク部３４を備え、割り込みマスク部３４は、割り込み要求信号毎にプログラム同期型であるか、プログラム非同期型であるかの属性を設定する属性設定レジスタ３８−１〜３８−５を備え、ＣＰＵコア３１がステップ実行状態時及びブレーク状態時には、マスク一時停止指示部３６からのマスク一時停止指示を受けた場合を除き、プログラム非同期型の割り込み要求信号をマスクするので、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求信号をＣＰＵコア３１に与えないようにすることができる。
【００４９】
したがって、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求に対する割り込みハンドラ処理を手作業で進めることや、プログラム非同期型の割り込み要求に対する割り込み許可／禁止を手作業で切り替えることが必要なくなるので、ターゲットプログラムのデバッグ効率を向上させることができる。
【００５０】
また、本発明の第２実施形態によれば、マスク一時停止ステップ実行数設定レジスタ４０−１〜４０−５のうち、プログラム非同期型の割り込み要求信号に対応させるマスク一時停止ステップ実行数設定レジスタに設定する値を、ステップ実行を行う場合に、ＣＰＵコア３１への割り込み入力頻度が実動作時（連続実行時）と同等となるような値に設定することで、デバッグをより高精度に行うことができる。
【００５１】
なお、本発明の第２実施形態においては、５個の割り込み要求信号ＩＲＱ１〜ＩＲＱ５に対応して５個のマスク一時停止ステップ実行数設定レジスタ４０−１〜４０−５を設けた場合について説明したが、この代わりに、５個の割り込み要求信号ＩＲＱ１〜ＩＲＱ５に対応して１個のマスク一時停止ステップ実行数設定レジスタを設け、５個の割り込み要求信号ＩＲＱ１〜ＩＲＱ５のマスク一時停止を一括して行うようにしても良い。
【００５２】
（第３実施形態）
図６は本発明の第３実施形態を示すブロック回路図である。図６中、５１はターゲットプログラムの実行を行うＣＰＵコア、５２はインサーキット・エミュレータとの間のインタフェースをなすデバッグ補助装置、５３は割り込み要求信号ＩＲＱ１〜ＩＲＱ５を出力するデバイスとＣＰＵコア５１との間に接続された割り込みコントローラである。
【００５３】
また、割り込みコントローラ５３において、５４は割り込みマスク部、５５は割り込みコントローラ機能部、５６はマスク解除ＰＣ（プログラムカウンタ）値格納部、５７はマスク機能ＯＮ／ＯＦＦスイッチである。
【００５４】
割り込みマスク部５４は、ＣＰＵコア５１がステップ実行状態時及びブレーク状態時には、割り込み要求信号ＩＲＱ１〜ＩＲＱ５のうち、プログラム非同期型の割り込み要求信号については後述する一定の条件の下においてマスクし、プログラム同期型の割り込み要求信号については通過させて割り込みコントローラ機能部５５に与えるものである。
【００５５】
割り込みマスク部５４は属性設定レジスタ５８−１〜５８−５を備えている。属性設定レジスタ５８−ｉは、割り込み要求信号ＩＲＱｉに対応して設けられたものであり、割り込み要求信号ＩＲＱｉがプログラム同期型であるかプログラム非同期型であるかの属性を設定するものである。属性設定レジスタ５８−１〜５８−５に対する割り込み要求信号ＩＲＱ１〜ＩＲＱ５の属性設定は、操作者の判断を元に、ＣＰＵコア５１によりレジスタ設定経路５９を通して行われる。
【００５６】
割り込みコントローラ機能部５５は、割り込み要求信号ＩＲＱ１〜ＩＲＱ５のうち、割り込みマスク部５４を通過してきた割り込み要求信号の優先度や、割り込み処理中に同じ割り込みレベルの割り込みが発生しないようにするマスク状態を判断してＣＰＵコア５１に対して割り込み要求信号を発生するという一般的な割り込みコントローラ機能を有するものである。
【００５７】
マスク解除ＰＣ値格納部５６は、割り込みマスク部５４によるプログラム非同期型の割り込み要求信号に対するマスクの解除を指定するプログラムカウンタ値を設定するマスク解除ＰＣ値設定レジスタ６０を備えており、マスク解除ＰＣ値設定レジスタ６０の値を割り込みマスク部５４に与えるものである。マスク解除ＰＣ値設定レジスタ６０に対するＰＣ値の設定は、操作者の判断を元に、ＣＰＵコア５１によりレジスタ設定経路５９を通して行われる。
【００５８】
マスク機能ＯＮ／ＯＦＦスイッチ５７は、割り込みマスク部５４のマスク機能を無効化するマスク機能無効化手段をなすものであり、マスク機能ＯＮ／ＯＦＦスイッチ５７がＯＮの場合には、割り込みマスク部５４のマスク機能は有効とされ、マスク機能ＯＮ／ＯＦＦスイッチ５７がＯＦＦの場合には、割り込みマスク部５４のマスク機能は無効とされる。マスク機能ＯＮ／ＯＦＦスイッチ５７のＯＮ、ＯＦＦの設定は、操作者の判断を元に、ＣＰＵコア５１によりレジスタ設定経路５９を通して行われる。
【００５９】
本発明の第３実施形態においては、割り込みマスク部５４は、マスク機能ＯＮ／ＯＦＦスイッチ５７の状態と、ＣＰＵコア５１あるいはデバッグ補助装置５２から与えられるＣＰＵコア５１の状態情報（デバッグステート情報）、即ち、ＣＰＵコア５１が連続実行状態にあるか、ステップ実行状態にあるか、ブレーク状態にあるかの情報と、属性設定レジスタ５８−１〜５８−５に設定された割り込み要求信号ＩＲＱ１〜ＩＲＱ５の属性情報と、マスク解除ＰＣ値格納部５６から与えられるＰＣ値と、ＣＰＵコア５１から与えられるプログラムカウンタの値（ＰＣ値）とに基づいて、割り込み要求信号ＩＲＱ１〜ＩＲＱ５を通過させるか、マスクするかを決定する。
【００６０】
表３は割り込みマスク部５４の機能表であり、マスク機能ＯＮ／ＯＦＦスイッチ５７の状態と、ＣＰＵコア５１の状態と、割り込み要求信号ＩＲＱｉの属性情報と、割り込み要求信号ＩＲＱｉに対する割り込みマスク部５４の動作との関係を示している。
【００６１】
【表３】
0005130962.tif 000004
【００６２】
即ち、割り込みマスク部５４は、マスク機能ＯＮ／ＯＦＦスイッチ５７がＯＦＦとされている場合には、割り込みマスク部５４のマスク機能は無効とされ、ＣＰＵコア５１が連続実行状態であっても、ステップ実行状態であっても、ブレーク状態であっても、割り込み要求信号ＩＲＱｉが与えられたときは、割り込み要求信号ＩＲＱｉがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号ＩＲＱｉを通過させる。
【００６３】
また、割り込みマスク部５４は、マスク機能ＯＮ／ＯＦＦスイッチ５７がＯＮとされている場合には、割り込みマスク部５４のマスク機能は有効とされ、ＣＰＵコア５１が連続実行状態時に割り込み要求信号ＩＲＱｉが与えられたときは、割り込み要求信号ＩＲＱｉがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号ＩＲＱｉを通過させ、また、ＣＰＵコア５１がステップ実行状態時及びブレーク状態時に割り込み要求信号ＩＲＱｉが与えられたときは、割り込み要求信号ＩＲＱｉがプログラム同期型である場合には、割り込み要求信号ＩＲＱｉを通過させ、割り込み要求信号ＩＲＱｉがプログラム非同期型である場合には、ＣＰＵコア５１内のプログラムカウンタの値がマスク解除ＰＣ値設定レジスタ６０に設定されたマスク解除ＰＣ値になるまで、割り込み要求信号ＩＲＱｉをマスクする。
【００６４】
図７は本発明の第３実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。即ち、本発明の第３実施形態を使用したターゲットプログラムのデバッグが実行される場合には、まず、ＣＰＵコア５１による属性設定レジスタ５８−１〜５８−５に対する割り込み要求信号ＩＲＱ１〜ＩＲＱ５の属性設定が行われ（ステップＳ７−１）、次に、ＣＰＵコア５１によるマスク解除ＰＣ値設定レジスタ６０に対するマスク解除ＰＣ値の設定が行われ（ステップＳ７−２）、次に、ＣＰＵコア５１によるマスク機能ＯＮ／ＯＦＦスイッチ５７のＯＮ、ＯＦＦの設定が行われ（ステップＳ７−３）、その後、操作者からのステップ実行指示によるステップ実行が繰り返して行われる（ステップＳ７−４）。
【００６５】
以上のように、本発明の第３実施形態においては、割り込みコントローラ５３は、割り込みマスク部５４を備え、割り込みマスク部５４は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかを設定する属性設定レジスタ５８−１〜５８−５を備え、ＣＰＵコア５１がステップ実行状態時及びブレーク状態時には、ＣＰＵコア５１内のプログラムカウンタの値がマスク解除ＰＣ値設定レジスタ６０に設定されたマスク解除ＰＣ値になるまで、プログラム非同期型の割り込み要求信号をマスクするので、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求信号をＣＰＵコア５１に与えないようにすることができる。
【００６６】
したがって、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求に対する割り込みハンドラ処理を手作業で進めることや、プログラム非同期型の割り込み要求に対する割り込み許可／禁止を手作業で切り替えることが必要なくなるので、ターゲットプログラムのデバッグ効率を向上させることができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の第１実施形態を示すブロック回路図である。
【図２】本発明の第１実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。
【図３】本発明の第２実施形態を示すブロック回路図である。
【図４】本発明の第２実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。
【図５】本発明の第２実施形態を使用したターゲットプログラムのデバッグ動作を示す図である。
【図６】本発明の第３実施形態を示すブロック回路図である。
【図７】本発明の第３実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。
【図８】従来のデバッグ支援装置の一例を示すブロック回路図である。
【図９】１／３０秒毎にプログラム非同期型の割り込み要求が発生する従来のデバッグ支援装置の通常動作を示す図である。
【図１０】プログラム非同期型の割り込み要求が発生しない従来のデバッグ支援装置におけるデバッグ動作を示す図である。
【図１１】プログラム同期型の割り込み要求とプログラム非同期型の割り込み要求とが発生する従来のデバッグ支援装置を使用したターゲットプログラムのデバッグ手法の第１例を示すフローチャートである。
【図１２】プログラム同期型の割り込み要求とプログラム非同期型の割り込み要求とが発生する従来のデバッグ支援装置を使用したターゲットプログラムのデバッグ手法の第２例を示すフローチャートである。
【図１３】１／３０秒毎にプログラム非同期型の割り込み要求が発生する従来のデバッグ支援装置に特許文献１に記載のデバッグ手法を適用した場合のデバッグ動作を示す図である。
【符号の説明】
【００６８】
１…プロセッサ
２…グラフィック表示装置
３、４…ＣＰＵコア
５…タイマ
６…割り込みコントローラ
７（ｎ）〜７（ｎ＋３）…ターゲットプログラムによる非割り込み処理工程
８（ｎ）〜８（ｎ＋３）…割り込み要求
９（ｎ−１）〜９（ｎ＋２）…ターゲットプログラムによる割り込み処理工程
１０（ｎ）、１０（ｎ＋１）、１０（ｐ）…ステップ実行指示
１１（ｎ−１）〜１１（ｎ＋１）、１１（ｐ）…ターゲットプログラムによる非割り込み処理工程
１２（ｎ）−１〜１２（ｎ）−５、１２（ｎ＋１）−１〜１２（ｎ＋１）−５、１２（ｎ＋２）−１〜１２（ｎ＋２）−５…割り込み要求
１３（ｎ）〜１３（ｎ＋２）…ステップ実行指示
１４（ｎ）〜１４（ｎ＋２）…ターゲットプログラムによる割り込み処理工程
１５（ｎ−１）〜１５（ｎ＋２）…ターゲットプログラムによる非割り込み処理工程
２１…ＣＰＵコア
２２…デバッグ補助装置
２３…割り込みコントローラ
２４…割り込みマスク部
２５…割り込みコントローラ機能部
２６−１〜２６−５…属性設定レジスタ
２７…レジスタ設定経路
３１…ＣＰＵコア
３２…デバッグ補助装置
３３…割り込みコントローラ
３４…割り込みマスク部
３５…割り込みコントローラ機能部
３６…マスク一時停止指示部
３７…マスク機能ＯＮ／ＯＦＦスイッチ
３８−１〜３８−５…属性設定レジスタ
３９…レジスタ設定経路
４０−１〜４０−５…マスク一時停止ステップ実行数設定レジスタ
５１…ＣＰＵコア
５２…デバッグ補助装置
５３…割り込みコントローラ
５４…割り込みマスク部
５５…割り込みコントローラ機能部
５６…マスク解除ＰＣ値格納部
５７…マスク機能ＯＮ／ＯＦＦスイッチ
５８−１〜５８−５…属性設定レジスタ
５９…レジスタ設定経路
６０…マスク解除ＰＣ値設定レジスタ
【図１】
0005130962.tif 000005
【図２】
0005130962.tif 000006
【図３】
0005130962.tif 000007
【図４】
0005130962.tif 000008
【図５】
0005130962.tif 000009
【図６】
0005130962.tif 000010
【図７】
0005130962.tif 000011
【図８】
0005130962.tif 000012
【図９】
0005130962.tif 000013
【図１０】
0005130962.tif 000014
【図１１】
0005130962.tif 000015
【図１２】
0005130962.tif 000016
【図１３】
0005130962.tif 000017