(57)【要約】【課題】種々のタイミングで割り込みを発生させ、かつ割り込み処理ソフトウエアが実際に動作する環境と同じ環境における割り込み処理時の動作状態の情報を収集することができるソフトウエアデバッグ支援装置を提供する。【解決手段】ソフトウエアデバッグ支援装置１は、中央処理装置(CPU)において実行される割り込み処理プログラムのデバッグを支援する。ソフトウエアデバッグ支援装置１は、CPUの内部状態を保持する１以上のレジスタのデータに基づいて、所定の割り込み信号を発生させる割り込み発生条件が設定されるRAM２３と、１以上のレジスタのデータを監視し、その監視するデータが、割り込み発生条件を満たすときに、所定の割り込み信号をCPUに出力する割り込み発生部１１と、を有する。【選択図】図２
2008197927.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置において実行される割り込み処理プログラムのデバッグを支援するソフトウエアデバッグ支援装置であって、
前記中央処理装置の内部状態を保持する１以上のレジスタのデータに基づいて、所定の割り込み信号を発生させる割り込み発生条件が設定される条件設定部と、
前記１以上のレジスタのデータを監視し、その監視するデータが、前記割り込み発生条件を満たすときに、前記所定の割り込み信号を前記中央処理装置に出力する割り込み出力部と、
を有することを特徴とするソフトウエアデバッグ支援装置。
【請求項２】
設定された前記割り込み発生条件に対応して、所定の外部状態信号を設定する外部状態信号設定部を有し、
前記割り込み出力部は、前記所定の割り込み信号に対応する前記所定の外部状態信号を前記中央処理装置に出力することを特徴とする請求項１に記載のソフトウエアデバッグ支援装置。
【請求項３】
さらに、外部機器からの割り込み信号と、前記割り込み出力部からの前記所定の割り込み信号とを切り替えて、前記中央処理装置へ出力する切替部とを有することを特徴とする請求項１又は２に記載のソフトウエアデバッグ支援装置。
【請求項４】
さらに、第１のデータ記憶部を有し、
前記割り込み出力部は、前記所定の割り込み信号が発生すると、前記１以上のレジスタの中の少なくとも１つのレジスタのデータを、前記第１のデータ記憶部に記憶させるように、前記第１のデータ記憶部に所定のコマンド信号を出力し、
前記第１のデータ記憶部は、前記所定のコマンド信号に応じて、前記所定の割り込み信号の発生後における前記少なくとも一部のデータを記憶することを特徴とする請求項１から３のいずれか１つに記載のソフトウエアデバッグ支援装置。
【請求項５】
さらに、第２のデータ記憶部を有し、
前記第２のデータ記憶部は、前記少なくとも一部のデータの最新の所定期間のデータを記憶し、
前記第１のデータ記憶部は、前記所定の割り込み信号が発生すると、前記所定の割り込み信号の発生後における前記少なくとも一部のデータを記憶することに加えて、前記第２のデータ記憶部に記憶されている前記最新の所定期間のデータを、記憶することを特徴とする請求項４に記載のソフトウエアデバッグ支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエアデバッグ支援装置に関し、特に、割り込み処理のデバッグに用いられるソフトウエアデバッグ支援装置に関する。
【背景技術】
【０００２】
従来より、ソフトウエアデバッグ作業の中には、キー入力等の外部要因により発生する割り込み処理用ソフトウエアのデバッグがある。外部要因による割り込みは、割り込み要因の発生の制御は不可能であるという性質を有する。加えて、リアルタイム処理が行われるような場合における割り込みについては、デバッグ時に、その割り込み処理を実行する中央処理装置（以下、CPUという）の内部状態を確認することができない。
【０００３】
また、ICE（In-Circuit Emulator）、リモートデバッガ等を用いて割り込み処理内にブレークポイントを設け、ブレークポイントにおいてCPUを停止させてデバッグを行うことができるようにする技術がある。しかし、上述したように、外部要因の発生はそもそも制御不能であり、ICE等を用いても、割り込み処理用ソフトウエアのデバッグの効率は非常に悪いものであった。
【０００４】
さらに、リモートデバッガ等を用いる場合には、ソフトウエアプログラム中にブレークポイントを含ませるため、本来のリアルタイムで実行されたときよりも遅いスピードで、CPUは動作することになる。さらにまた、ブレークを発生させるため、デバッグ時に得られるタイミングは、実際の処理のタイミングとはずれたタイミングとなる。よって、ブレークポイントを用いる方法では、割り込み処理ソフトウエアを実行させても、実際のCPUの動作状態における動作の確認をすることが出来ない。
【０００５】
擬似的に割り込みを発生させる従来技術も提案されている（例えば、特許文献１参照）。しかし、その提案に係る装置は、割り込みの発生トリガーをクロック信号に基づいて発生させているので、様々な状況下で、種々のタイミングにおける割り込み処理のデバッグを実現することができない。
【特許文献１】特許第3001526号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本発明は、種々のタイミングで割り込みを発生させ、かつ割り込み処理ソフトウエアが実際に動作する環境と同じ環境における割り込み処理時の動作状態の情報を収集することができるソフトウエアデバッグ支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、中央処理装置において実行される割り込み処理プログラムのデバッグを支援するソフトウエアデバッグ支援装置であって、前記中央処理装置の内部状態を保持する１以上のレジスタのデータに基づいて、所定の割り込み信号を発生させる割り込み発生条件が設定される条件設定部と、前記１以上のレジスタのデータを監視し、その監視するデータが、前記割り込み発生条件を満たすときに、前記所定の割り込み信号を前記中央処理装置に出力する割り込み出力部と、を有することを特徴とするソフトウエアデバッグ支援装置を提供することができる。
【発明の効果】
【０００８】
本発明によれば、種々のタイミングで割り込みを発生させ、かつ割り込み処理ソフトウエアが実際に動作する環境と同じ環境における割り込み処理時の動作状態の情報を収集することができるソフトウエアデバッグ支援装置を実現することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施の形態を説明する。  
（システム構成）
まず図１に基づき、本実施の形態に係わるソフトウエアデバッグ支援システムの構成を説明する。図１は、本実施の形態に係わるソフトウエアデバッグ支援システムの構成を示す構成図である。
【００１０】
ソフトウエアデバッグ支援システム（以下、支援システムと略す）１００は、ソフトウエアデバッグ支援装置１と、半導体チップ２を搭載するためのコネクタ（あるいはソケット）３と、デバッグを行うユーザとのマンマシンインターフェース（MMI）４とを含んで構成されている。MMI４は、表示画面を有する液晶表示装置（LCD）等の表示部と、種々の指示を与えるためのキーボード等の入力部を含む。さらに、ソフトウエアデバッグ支援装置１は、外部機器５とも接続されている。
【００１１】
半導体チップ２は、アプリケーションソフトウエア等と共に、デバッグ対象の割り込み処理用ソフトウエアプログラム（以下、割り込みソフトウエアという）が搭載された半導体装置である。外部機器５は、実際の製品において半導体チップ２が接続されて使用される装置であり、割り込み信号と外部状態信号とを出力する。その実際に接続される外部機器５とCPU２ａとを接続させてデバッグすることもできるように、支援装置１は、外部機器５とも接続可能となっている。
【００１２】
半導体チップ２は、CPU２ａを含む。さらに、CPU２ａは、制御レジスタ等を含む複数のレジスタからなるレジスタ群２ｂを有している。半導体チップ２は、例えば、汎用のマイクロコンピュータ、あるいは特定用途向けの処理装置であり、オペレーティングシステム（以下、OSという）、アプリケーションソフトウエア等のソフトウエアプログラムが実行可能な装置である。これらのソフトウエアには割り込みソフトウエアが含まれる。本実施の形態に係るソフトウエアデバッグ支援装置（以下、支援装置ともいう）１は、その割り込みソフトウエアのデバッグ処理の支援を行う装置である。
【００１３】
CPU２ａにおいてソフトウエアプログラムが実行されると、半導体チップ２中の制御レジスタ等のレジスタには、種々のデータが書き込まれる。レジスタ群２ｂのレジスタは、例えば、通信により受信したデータを格納するためのレジスタ、CPU２ａの処理の状態を示すデータを格納するレジスタ等である。言い換えると、レジスタ群２ｂの各レジスタのデータは、ソフトウエア実行中における、CPU２ａの内部状態を示すものである。CPU２ａがアプリケーションプログラムの実行中に割り込みソフトウエアを実行した場合にも、各レジスタには、種々のデータがストアされる。割り込みソフトウエアのデバッグを行うユーザは、そのレジスタ群２ｂ中の種々のレジスタのデータの値そのもの、値の変化等を見ることによって、割り込みソフトウエアのデバッグを行うことができる。
【００１４】
半導体チップ２中の割り込みソフトウエアのデバッグを行う場合、ユーザは、半導体チップ２をコネクタ３に搭載して、コネクタ３を介して、支援装置１と半導体チップ２とを接続する。そして、ユーザは、MMI４における液晶表示装置（LCD）、キーボード等を利用して、支援装置１を動作させることができる。デバッグに必要なレジスタ群２ｂの情報は、MMI４の画面等に表示される。  
なお、支援装置１は、割り込みソフトウエアのデバッグ機能に加えて、他の通常のソフトウエアのデバッグ機能を有していても良い。
【００１５】
（支援装置の構成）
図２は、本実施の形態に係わる支援装置１の構成を説明するためのブロック図である。支援装置１は、割り込み発生部１１と、割り込み要因切替部１２と、ログ保持部１３とを含む。支援装置１は、上述したように、半導体チップ２及びMMI４に接続されている。上述したように、割り込みソフトウエアのデバッグを行うユーザは、MMI４を用いて、デバッグのために、割り込みソフトウエアを実行させたり、実行結果のレジスタ群２ｂのデータを表示させたりすることができる。また、後述するように、ユーザは、MMI４を用いて、割り込み発生の条件を設定したり、擬似的な外部状態信号を設定したりすることができる。
【００１６】
支援装置１では、ユーザからの指示に応じて、割り込み発生部１１、割り込み要因切替部１２及びログ保持部１３の動作が制御される。特に、割り込み発生部１１は、ソフトウエアプログラムを記憶するROM、そのROMのソフトウエアプログラムを実行するCPU、割り込み発生条件、擬似の外部状態信号のデータを記憶するRAM等を、さらに含む（図３）。
【００１７】
割り込み発生部１１は、半導体チップ２のレジスタ群２ｂと接続され、レジスタ群２ｂ中の、所定の１又は２以上のレジスタからのデータRdaを受信する。ログ保持部１３は、レジスタ群２ｂと接続され、レジスタ群２ｂ中の、所定の複数のレジスタからのデータRdbを受信する。割り込み発生部１１は、ログ保持部１３に接続されており、ログ保持部１３に対して、レジスタ群２ｂの所定の複数のレジスタのデータRdbを収集して記憶するように保存コマンド信号Csを出力することができる。
【００１８】
また、割り込み発生部１１は、割り込み要因切替部１２にも接続され、擬似的な複数の割り込み信号Ip、擬似的な複数の外部状態信号Op及び切替信号Swを、割り込み要因切替部１２を介してCPU２ａへ出力する割り込み出力部を構成する。  
具体的には、割り込み発生部１１は、それぞれが割り込み発生の各種要因に対応する、複数の割り込み信号Ipを生成して出力できるように構成されている。そして、割り込み発生部１１は、生成した割り込み信号に応じて、複数の外部状態信号Opを生成して出力できるように構成されている。CPU２ａにとっては、割り込み発生部１１からの割り込み信号は、外部機器５からの割り込み信号として受信され、割り込み発生部１１からの外部状態信号は、外部機器５からの外部状態信号として受信される。よって、割り込み発生部１１からの割り込み信号と外部状態信号は、それぞれ擬似的な割り込み信号と擬似的な外部状態信号である。
【００１９】
すなわち、割り込み発生部１１は、レジスタ群２ｂ中の任意の１以上のレジスタのデータすなわち状態に応じて、任意の割り込み信号を出力し、かつ任意の外部状態信号を出力することができるように構成されている。さらに、割り込み発生部１１は、多重割り込みを発生させ、その多重割り込み信号に対応して、外部状態信号を出力するようにすることもできる。多重割り込みとは、少なくとも２つのレジスタの所定の状態が互いに所定時間だけずれて発生する割り込みである。多重割り込み発生の条件も、設定することができる。
【００２０】
複数の割り込み信号Ipは、ここでは、ｎ個の出力信号であり、後述する外部機器５の複数の割り込み信号Itの、ｎ個の出力信号に対応する。割り込み発生部１１は、複数の割り込み信号IpのそれぞれがCPU２ａの複数の割り込み入力ポートの対応するポートに供給されるように、割り込み要因切替部１２を介してCPU２ａと接続されている。
【００２１】
同様に、複数の外部状態信号Opは、ここでは、ｍ個の出力信号であり、後述する外機器５の複数の外部状態信号Otの、ｍ個の出力信号に対応している。割り込み発生部１１は、複数の外部状態信号OtのそれぞれがCPU２ａの複数の外部状態信号の入力ポートの対応するポートに供給されるように、割り込み要因切替部１２を介してCPU２ａと接続されている。なお、ｎとｍは、それぞれ整数である。
【００２２】
ユーザは、レジスタ群２ｂ中の、監視したい任意の１以上のレジスタを指定し、その１以上のレジスタがどのような状態あるいはデータになったら、割り込み信号を出力するかを、割り込み発生条件として、割り込み発生部１１のRAM中に記述することによって、割り込み発生の条件を設定することができる。すなわち、ユーザは、MMI４を用いて、支援装置１に、割り込み発生条件を記述して、プログラミングできる。なお、その割り込み発生条件のプログラムは、上述したRAM（図３）に書き込まれているが、不揮発性のメモリであるフラッシュメモリ等のメモリに記憶して書き換え可能にしてもよい。そのRAM等のメモリが、割り込み発生条件が設定される条件設定部を構成する。さらに、後述するように、RAM等のメモリは、外部状態信号が設定される外部状態信号設定部も構成する。
【００２３】
なお、上述したように、支援装置１と半導体チップ２は、コネクタ３で接続されているので、レジスタ群２ｂの各レジスタの出力と割り込み発生部１１の入力とは一対一に対応し、割り込み発生部１１の各割り込み信号の出力とCPU２ａのハードウエアの割り込みを受け付けるチャネルとも、一対一に対応付けられている。従って、ユーザは、レジスタ群２ｂ中の任意のレジスタの状態に応じて、任意の割り込みチャネルに割り込み信号を出力するように、割り込み発生条件のプログラムを記述することができる。すなわち、割り込みチャネルは、割り込み要因と対応しているので、ユーザは、任意のレジスタの任意の条件に応じた任意の割り込み要因のデバッグを行うことができる。
【００２４】
なお、本実施の形態では、割り込み発生部１１は、複数の割り込み信号Ipと、複数の外部状態信号Opを出力できるようになっているが、割り込み発生部１１は、１つの割り込み信号Ipと１つの外部状態信号Opを出力するものであってもよい。
【００２５】
また、割り込み要因切替部１２は、上述したように、外部機器５にも接続され、外部機器５からの、複数の割り込み信号It及び複数の外部状態信号Otを受信できるように構成されている。外部機器５は、例えば、実際に半導体チップ２が、ある製品に搭載されたときに、接続されて一緒に使用される機器、基板等の装置である。割り込み要因切替部１２は、割り込み発生部１２からの割り込み信号Ip及び外部状態信号Op、あるいは外部機器５からの割り込み信号It及び外部状態信号Otを、割り込み発生部１１からの切替信号Swに基づいて、CPU２ａに出力する切替部である。
【００２６】
従って、ユーザは、外部機器５を使用してデバッグを行いたいときは、MMI４を操作して、CPU２ａが外部機器５からの割り込み信号Itと外部状態信号Otを受信するように、割り込み要因切替部１２を切り替えることができる。
【００２７】
図３は、支援装置１の回路構成を示すブロック図であり、特に、割り込み発生部１１の回路構成を示すブロック図である。割り込み発生部１１は、CPU２１と、ROM２２とを含む。さらに、割り込み発生部１１は、RAM２３と、複数の割り込み信号Ipを出力するためのインターフェース（以下、I/Fという）２４と、複数の外部状態信号Opを出力するためのI/F２５と、上述した切替信号Swを出力するためのI/F２６と、レジスタ群２ｂからの１以上のレジスタのデータRdaを受信するためのI/F２７と、ログ保持部１３への保存コマンド信号Csを出力するためのI/F２８とを含んで構成されている。
【００２８】
ROM２２には、後述する処理を実行するソフトウエアプログラムが格納されており、CPU２１が、割り込み発生条件のデータが設定され、記憶されたRAM２３を用いて、そのソフトウエアプログラムを実行する。
【００２９】
次に、ログ保持部１３の構成について説明する。図４は、ログ保持部１３中のメモリの構成を示すブロック図である。  
図４に示すように、ログ保持部１３は、２つのメモリを含む。ログ保持部１３は、保存コマンド信号Csの受信に応じて、各レジスタのデータを保存する処理を行うように、２つのメモリを制御するための制御回路（図示せず）を、さらに含む。２つのメモリのうち一方は、FIFO形式のFIFOメモリ１３ａのデータ記憶部であり、他方は、ログ保存用の保存用メモリ１３ｂのデータ記憶部である。  
ログ保持部１３には、レジスタ群２ｂからの１以上のレジスタデータRdbが入力されており、そのデータRdbは、常に、CPU２ａの所定のレジスタのデータをFIFOメモリ１３ａに書き込まれている。FIFOメモリ１３ａには、レジスタ群２ｂ中の、ユーザが指定する任意レジスタのデータでも、全てのレジスタのデータでもよい。図４に示すように、ログ保持部１３は、ポインタptを移動させながら、レジスタデータRdbの最新のデータを順次FIFOメモリ１３ａに記憶していき、ポインタの指すメモリアドレスが最後までくると、ポインタは、先頭アドレスに移動して、データを記憶していく。
【００３０】
従って、ポインタは、先頭アドレスから最後のアドレスの間で、図４の矢印A1で示すように、ローテイトしていくので、データもそのポインタptに合わせてFIFOメモリ１３ａに上書きされていく。言い換えると、FIFOメモリ１３ａには、最新の所定期間のデータだけが記憶されるように、次々とデータが上書きされていく。
【００３１】
また、ログ保持部１３の制御回路は、割り込み発生部１１から保存コマンドCsを受信すると、上述した最新の所定期間のデータをFIFOメモリ１３ａから保存用メモリ１３ｂにコピーし、その後は受信した最新のデータを、FIFOメモリ１３ａに保存すると共に、保存用メモリ１３ｂにも記憶する。
【００３２】
保存用メモリ１３ｂは、記憶容量が比較的大きなメモリであり、デバッグに必要なデータ量を記憶できる記憶容量を有する。なお、保存用メモリ１３ｂへのデータの保存は、所定のデータ量あるいは所定の時間だけ行われる。その所定のデータ量あるいは所定の時間は、ユーザによって設定される。  
上述したように、FIFOメモリ１３ａへの書き込み及び保存用メモリ１３ｂへのコピー及び書き込みの制御は、図示しない制御回路が行う。
【００３３】
なお、割り込み発生部１１がレジスタ群２ｂから受信するデータRda中、割り込み発生条件と比較されるデータは、ユーザによって、後述するソフトウエアが実行するときに、予め指定される。同様に、ログ保持部１３がレジスタ群２ｂから受信するデータRdb中、ログ保持部１３において記憶されるデータも、ユーザによって、後述するソフトウエアが実行するときに、予め指定される。  
さらになお、FIFOメモリ１３ａと保存用メモリ１３ｂは、２つのメモリとして説明したが、それぞれを１つの記憶装置の別々な記憶領域において実現するようにしてもよい。
【００３４】
次に、割り込み要因切替部１２の構成について、図５を用いて説明する。図５は、割り込み要因切替部１２の構成を示す回路図である。  
割り込み要因切替部１２は、割り込み発生部１１からの割り込み信号Ipと外部機器５からの割り込み信号Itが入力され、２つの入力のうち一方を、割り込み信号ＩとしてCPU２ａへ出力する割り込み信号切替部１２ａを有する。さらに、割り込み要因切替部１２は、割り込み発生部１１からの外部状態信号Opと外部機器５からの外部状態信号Otが入力され、２つの入力のうち一方を、外部状態信号OとしてCPU２ａへ出力する外部状態信号切替部１２ｂを有する。
【００３５】
CPU２ａに入力される複数の割り込み信号Iのそれぞれに対応する割り込み信号IpとItのいずれか一方が選択されてCPU２ａに出力されるように、割り込み信号切替部１２ａは、複数のスイッチ回路１２ａｓを含む。同様に、CPU２ａに入力される複数の外部状態信号Oのそれぞれに対応する外部状態信号OpとOtのいずれか一方が選択されてCPU２ａに出力されるように、外部状態信号切替部１２ｂは、複数のスイッチ回路１２ｂｓを含む。複数のスイッチ回路１２ａｓ、１２ｂｓのそれぞれには、割り込み信号発生部１１からの切替信号Ｓｗが入力される。上述したように、切替信号Ｓｗは、ユーザがMMI４を操作して、出力させることができる。なお、この切替信号Ｓｗは、ジャンパ等のハードウエアのスイッチにより発生させるようにしてもよい。
【００３６】
すなわち、割り込み信号切替部１２ａは、割り込み発生部１１からの割り込み信号Ipと外部機器５からの割り込み信号Itを入力して、切替信号Swに応じて、これら２つの入力のうち一方を選択して、CPU２ａへの割り込み信号Iとして出力する。同様に、外部状態信号切替部１２は、割り込み発生部１１からの外部状態信号Opと外部機器５からの外部状態信号Otを入力して、切替信号Swに応じて、これら２つの入力のうち一方を選択して、CPU２ａへの外部状態信号Oを出力する。
【００３７】
なお、図２及び図５では、割り込み信号Ip,It及び外部状態信号Op,Otは、それぞれ複数あってパラレル出力として割り込み要因切替部１に２供給されているが、各割り込み信号と各外部状態信号に識別データを付加することによって、各信号をシリアル信号で供給するようにしてもよい。
【００３８】
（作用）
次に、支援装置１の作用について説明する。割り込み発生部１１は、レジスタ群２ｂ中の所定の１以上のレジスタのデータRdaを監視する。割り込み発生部１１は、その監視しているデータRdaが所定の条件に合致したか否かを判定し、そのデータが所定の条件に合致した場合は、対応する所定のハードウエアの割り込み信号Ipと、対応する所定の外部状態を示す外部状態信号Opを生成して、I/F１４及び１５を介して、割り込み要因切替部１２へ出力する。
【００３９】
例えば、その監視しているレジスタ群２ｂ中のある一つのレジスタが、所定の値になると、所定の対応する割り込み信号Ipと、その予め用意された外部状態信号Opを生成して、割り込み要因切替部１２へ供給する。あるいは、監視している複数のレジスタの中の１以上の所定のレジスタのそれぞれが、所定の条件に合致した状態あるいは値になると、所定の対応する割り込み信号Ipと、その予め用意された擬似外部状態信号Opを生成して、割り込み要因切替部１２へ供給する。所定の条件に合致するか否かが判定される対象のレジスタは、ユーザによってRAM２３中に設定される。
【００４０】
すなわち、割り込み発生部１１は、所定の１以上のレジスタの状態に応じて、割り込み要因切替部１２へ出力するハードウエアの割り込み信号Ipを発生させる機能を有し、さらに、割り込み発生部１１は、所定のレジスタ状態あるいは割り込み信号Ipに応じて、擬似的な外部状態信号Opを生成する機能を有する。
【００４１】
割り込み信号Ipを発生する条件は、ユーザによって、MMI４を用いてプログラミング可能である。単純に、１以上の所定のレジスタのデータが所定の条件に合致したら、割り込み発生部１１が、所定の割り込み信号を出力するようにすることもできるし、複数のレジスタの各データが、所定の時間的にずれたタイミングで発生した場合に、割り込み発生部１１が、所定の複数の割り込み信号を出力するようにすることもできる。その場合にも、後述するように、ログ保持部１３には、所定のレジスタのデータが保持すなわち記憶される。
【００４２】
また、割り込み発生部１１は、ログ保持部１３に所定の複数のレジスタのデータのログの収集の指示を出す機能を有する。具体的には、割り込み発生部１１は、割り込み信号Ipを出力したときに、保存コマンド信号Csを、ログ保持部１３に出力する機能を有する。
【００４３】
なお、CPU２ａ内のタイマー出力のレジスタを監視して、そのレジスタの値に応じて、割り込み信号を出力するようにすれば、所定の割り込み信号を周期的に出力することもできる。
【００４４】
ログ保持部１３は、保存コマンド信号Csを受信すると、FIFOメモリ１３ａのポインタptの位置よりも所定量だけ前のアドレスに記憶されている、最新の所定期間のデータDD（図４では斜線で示す）を、保存用メモリ１３ｂにコピーする。そして、その後は、ログ保持部１３は、レジスタ群２ｂの複数のレジスタのデータを受信すると、FIFOメモリ１３ａに最新のデータとして受信データを記憶すると共に、保存用メモリ１３ｂにも、図４の矢印A2で示すように、記憶する。
【００４５】
従って、ログ保持部１３は、割り込み信号Ipが発生すると、その保存コマンド信号Csを受信し、その保存コマンド信号Csを受信した時よりも前に所定の時間だけ遡った時から記憶されていた、FIFOメモリ１３ａのデータ（DD）も含めて、割り込み信号発生時のデータを保存用メモリ１３ｂに記憶するように構成される。言い換えれば、割り込み信号Ipが発生する（すなわち、ログ保存の指示コマンドである保存コマンド信号Csが発生する）と、ログ保持部１３は、割り込み信号の発生時より所定期間前からのレジスタ群２ｂのデータも含めて、レジスタ群２ｂのデータを保存用メモリ１３ｂに記憶する。よって、割り込み発生前のレジスタの状態も含めて、デバッグのためのデータを取得できるので、ユーザは、CPU２ａあるいは割り込みソフトウエアの挙動を把握することができる。
【００４６】
なお、ここでは、割り込み信号の発生時より所定期間前のデータ（DD）は、図４に示すように、FIFOメモリ１３ａのデータの一部であるが、FIFOメモリ１３ａに記憶されている全データでもよい。
【００４７】
また、割り込み発生部１１は、割り込み要因切替部１２に外部状態信号Opを出力するが、外部状態信号Opは、外部機器５から入ってくるデータを擬似的に想定したデータである。言い換えると、割り込み発生部１１が割り込み信号Ipを出力したときに、外部状態信号Opは、外部機器５からの信号として、予めデータとして用意されている擬似的なデータである。
【００４８】
これは、割り込み処理が実行されるときに、あるデータが外部から入力あるいは受信したときに、CPU２ａにおいて、どのように、割り込み処理が実行されていくかを、試験することができるようにするためである。
【００４９】
具体的に説明すれば、ある特定のレジスタ値が所定の値になったときに、割り込み信号Ipを発生させ、かつそのときに、ある特定の外部状態信号をCPU２ａへ与えると、CPU２ａにおいて、どのように処理がされていくかを、保存されたレジスタ群２ｂのデータをみることによって、ユーザは、確認することができる。
【００５０】
以上のように、ユーザは、MMI４を用いて、RAM２３に、レジスタ群２ｂの任意のレジスタについての任意の割り込み発生条件を記述することによって、任意の割り込み発生条件を設定及び変更できる、すなわちプログラミングすることができる。その割り込み信号も、任意のCPU２ａの割り込みチャネルに出力させることができる。同様に、ユーザは、MMI４を用いて、割り込み発生条件に従って出力される割り込み信号に対応して、任意の外部状態信号も、RAM２３に記述することによって、設定及び変更できる、すなわちプログラミングすることができる。よって、上述したように、RAM２３のメモリは、外部状態信号が設定される外部状態信号設定部を構成する。さらに、ユーザは、多重割り込みとして、任意の複数の割り込み信号を時系列的に出力できるように、プログラミングすることができ、同時に、その複数の割り込み信号のそれぞれに対応した任意の外部状態信号も出力するように、プログラミングすることもできる。よって、ユーザは、時系列的に意図したタイミングで、割り込み信号等を発生させることができる。
【００５１】
次に、以上の作用に係るCPU２１の処理について説明する。図６は、割り込み発生部１１のCPU２１の処理の流れの例を示すフローチャートである。まず、ユーザはMMI４を操作して、切替信号Swによって、割り込み発生部１１からの割り込み信号と外部状態信号がCPU２ａに供給されるように設定される。  
CPU２１は、レジスタ群２ｂからのレジスタデータを監視する（ステップS1）。そして、CPU２１は、監視しているレジスタ群２ｂのレジスタデータが、所定の条件を満たすか否かを判定する（ステップS2）。  
そして、監視しているレジスタデータが、所定の条件を満たす場合は、ステップS2でYESとなり、CPU２１は、保存コマンド信号Csをログ保持部１３に出力する（ステップS3）。その結果、ログ保持部１３は、所定のレジスタのデータのログの記憶を開始する。  
さらに、CPU２１は、割り込み信号Ipと外部状態信号Opを、割り込み要因切替部１２へ出力する（ステップS4）。その結果、CPU２ａは、受信した割り込み信号Ipに対応する割り込み処理を実行し、その実行中のレジスタ群２ｂのレジスタデータが、ログ保持部１３に記憶されていく。
【００５２】
従って、ユーザは、１以上のレジスタデータが所定の条件を満たすときに、所定の割り込み信号Ipを出力して、上述したようなレジスタデータを保存するようにすることができるので、デバッグを行うときに、種々のタイミングで割り込みを発生させ、かつ割り込み処理ソフトウエアが実際に動作する環境と同じ環境における割り込み処理時の動作状態の情報を収集することができる。
【００５３】
以上のように、上述した実施の形態に係る支援装置によれば、外部機器からの割り込み信号を、CPUの任意のレジスタの状態に応じて、任意のタイミングで発生させることができる。よって、ユーザは、意図したタイミングで割り込み信号等を発生させて、割り込みソフトウエアを実行させることができるので、割り込みソフトウエアのデバッグが容易となる。例えば、特に問題のありそうな状況について、ユーザは、集中的に調べることも可能となる。  
なお、上述した支援装置は、割り込みソフトウエアの負荷テストにも利用することができる。
【００５４】
また、本実施の形態に係る支援装置１によれば、従来のICE等のようなクロックの周波数を低下させて動作させるようなデバッグモードでCPU２ａを動作させたりすることなく、あるいは、割り込みソフトウエア自体をデバッグ用に改変したりすることなく、割り込みソフトウエアのデバッグを行うことができる。よって、CPUの実運用と同様の環境でデバッグを行うので、従来のようなデバッグ時に予期しなかった問題が、運用時に発生するというような場合が少なくなることが期待できる。
【００５５】
さらにまた、本実施の形態に係る支援装置１によれば、常に対象の（すなわちターゲットとなる）CPUの制御レジスタ等の最新のデータを保持し、擬似的な割り込み信号を発生した際に、割り込み発生時から所定時間だけ遡った期間のターゲットCPUの制御レジスタ等のデータもログとして保存する。これにより、ターゲットのCPUをブレーク等で停止させることなく、割り込み処理時の情報収集が可能となり、ユーザにとって、割り込み処理内のソフトウエアデバッグが容易となる。また、ユーザにとって、割り込みソフトウエアが意図しない動作をした場合の原因追及が容易となるというメリットもある。
【００５６】
加えて、上述した実施の形態に係る支援装置には、外部機器と接続可能となっており、デバッグするソフトウエアが搭載されている対象のCPUに対して、擬似的な割り込み信号等と外部機器からの割り込み信号等のいずれかを選択して、出力させることができるので、デバッグ作業の効率がよい。
【００５７】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施の形態に係わるソフトウエアデバッグ支援システムの構成を示す構成図である。
【図２】本発明の実施の形態に係わる支援装置の構成を説明するためのブロック図である。
【図３】本発明の実施の形態に係わる支援装置の回路構成を示すブロック図であり、特に、割り込み発生部の回路構成を示すブロック図である。
【図４】本発明の実施の形態に係わるログ保持部中のメモリの構成を示すブロック図である。
【図５】本発明の実施の形態に係わる割り込み要因切替部の構成を示す回路図である。
【図６】本発明の実施の形態に係わる、割り込み発生部のCPUの処理の流れの例を示すフローチャートである。
【符号の説明】
【００５９】
１  ソフトウエアデバッグ支援システム、２  半導体チップ、２ａ  ＣＰＵ、２ｂ  レジスタ群、４  ＭＭＩ、５  外部機器
【図１】
2008197927.tif 000003
【図２】
2008197927.tif 000004
【図３】
2008197927.tif 000005
【図４】
2008197927.tif 000006
【図５】
2008197927.tif 000007
【図６】
2008197927.tif 000008