(57)【要約】【課題】  デバッグ作業の効率が向上したデバッグシステム及びターゲット装置を提供すること。【解決手段】  互いに関係する複数のソフトウェアを実行するターゲット装置と、各ソフトウェアに対応した複数のＩＣＥと、各ＩＣＥに対応した複数のデバッグ装置と、を備えるデバッグシステムである。デバッグシステムが有するターゲット装置は、各ソフトウェアの実行状態を管理するマルチタスクＯＳ上で複数のソフトウェアを実行する処理部と、各ソフトウェアに対応し、処理部を複数のＩＣＥのそれぞれと個別に接続する複数の接続部と、マルチタスクＯＳから得られた各ソフトウェアの実行状態に関する情報に基づいて、接続部による処理部とＩＣＥとの接続を切り替える接続切替部と、を有し、接続切り替え部は、処理部で実行されているソフトウェアに対応する接続部を制御して、処理部と実行中のソフトウェアに対応するＩＣＥとを接続する。【選択図】  図１
2008027041.tif 000002
【特許請求の範囲】
【請求項１】
互いに関係する複数のソフトウェアを実行するターゲット装置と、
各ソフトウェアに対応した複数のＩＣＥと、
各ＩＣＥに対応した複数のデバッグ装置と、を備えるデバッグシステムであって、
前記ターゲット装置は、
各ソフトウェアの実行状態を管理するマルチタスクＯＳ上で前記複数のソフトウェアを実行する処理部と、
各ソフトウェアに対応し、前記処理部を前記複数のＩＣＥのそれぞれと個別に接続する複数の接続部と、
前記マルチタスクＯＳから得られた各ソフトウェアの実行状態に関する情報に基づいて、前記接続部による前記処理部と前記ＩＣＥとの接続を切り替える接続切替部と、を有し、
前記接続切り替え部は、前記処理部で実行されているソフトウェアに対応する接続部を制御して、前記処理部と前記実行中のソフトウェアに対応するＩＣＥとを接続することを特徴とするデバッグシステム。
【請求項２】
請求項１に記載のデバッグシステムであって、
前記複数のソフトウェアは、マスタとスレーブの関係を有する少なくとも２つのソフトウェアを含むことを特徴とするデバッグシステム。
【請求項３】
互いに関係する複数のソフトウェアを、各ソフトウェアの実行状態を管理するマルチタスクＯＳ上で実行する処理部と、
各ソフトウェアに対応し、各ソフトウェアに対応した複数のＩＣＥのそれぞれと前記処理部を個別に接続する複数の接続部と、
前記マルチタスクＯＳから得られた各ソフトウェアの実行状態に関する情報に基づいて、前記接続部による前記処理部と前記ＩＣＥとの接続を切り替える接続切替部と、を備え、
前記接続切り替え部は、前記処理部で実行されているソフトウェアに対応する接続部を制御して、前記処理部と前記実行中のソフトウェアに対応するＩＣＥとを接続することを特徴とするターゲット装置。
【請求項４】
請求項２に記載のターゲット装置であって、
前記複数のソフトウェアは、マスタとスレーブの関係を有する少なくとも２つのソフトウェアを含むことを特徴とするターゲット装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発におけるデバッグを支援するデバッグシステム及びターゲット装置に関する。
【背景技術】
【０００２】
ホストＣＰＵに接続され、当該ホストＣＰＵによって制御されるコンパニオンチップ上で動作するソフトウェアは、コンパニオンチップ単体で実行されることは想定されていない。通常は、ソフトウェアがホストＣＰＵからコンパニオンチップ上のメモリに展開され、ホストＣＰＵと通信を行いながらソフトウェアが実行される。このようなソフトウェアをコンパニオンチップ単体でデバッグすることは困難である。
【０００３】
しかし、上記説明したコンパニオンチップ上で動作するソフトウェアの中には、ホストＣＰＵとの通信を必要とせず、コンパニオンチップ単体で動作するソフトウェアも存在する。そのようなソフトウェアはホストＣＰＵを規定せずに開発されるが、デバッグ時にはホストＣＰＵとの通信部分を含めてデバッグされる必要がある。そのため、コンパニオンチップ単体で動作するソフトウェアのデバッグを行う際には、ホストＣＰＵと、ホストＣＰＵ上で動作するソフトウェアと、コンパニオンチップ上で動作しホストＣＰＵとの通信処理を行うソフトウェアとが用意されている必要がある。このように、コンパニオンチップ単体で動作するソフトウェアであってもデバッグ作業は煩雑であった。
【０００４】
特開平６−１９５２３１号公報は、コンパニオンチップ上で動作するソフトウェアのデバッグを行う方法を開示している。当該デバッグ方法では、マルチタスクＯＳのデバッグ支援装置を利用して、マスタターゲット装置ソフトウェア及びスレーブターゲット装置ソフトウェアをそれぞれタスクとして割り当て、デバッグ装置３で各タスクのＯＳ管理情報を解析し、解析結果を入出力装置４で表示する。
【０００５】
図９は、特開平６−１９５２３１号公報に開示されたプログラムデバッグ装置を示すブロック図である。プログラムデバッグ装置が有するターゲット装置１は、デバッグ用にホストＣＰＵ１３上で動作するソフトウェア（擬似マスタターゲットソフトウェア）をタスク１（１１ａ）に割り当て、デバッグ対象であるスレーブターゲットソフトウェアをタスク２（１１ｂ）に割り当てる。マルチタスクＯＳ（１１ｄ）から得られるＯＳ管理情報１２を解析する機能を持つデバッグ装置３をＩＣＥ（In-Circuit Emulator）２に接続し、入出力装置４に対して擬似マスタターゲットソフトウェア及びスレーブターゲットソフトウェアの各管理情報を入出力装置４に渡すことで、それぞれの通信を含めたデバッグが可能となる。
【０００６】
【特許文献１】特開平６−１９５２３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
図９に示したプログラムデバッグ装置によるデバッグ方法では、デバッグ装置３がＯＳ管理情報の解析機能や解析結果に基づく入出力装置４への表示機能を有する必要があり、ＣＰＵコア毎に提供される汎用ＩＣＥ及びデバッグ装置を使用することは困難であるため、デバッグ装置３を別途開発する必要がある。また、ＯＳ管理情報１２はＯＳ毎に異なるため、ＯＳが変更された場合は新たなデバッグ装置を開発する必要がある。
【０００８】
本発明の目的は、デバッグ作業の効率が向上したデバッグシステム及びターゲット装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、互いに関係する複数のソフトウェアを実行するターゲット装置と、各ソフトウェアに対応した複数のＩＣＥと、各ＩＣＥに対応した複数のデバッグ装置と、を備えるデバッグシステムであって、前記ターゲット装置は、各ソフトウェアの実行状態を管理するマルチタスクＯＳ上で前記複数のソフトウェアを実行する処理部と、各ソフトウェアに対応し、前記処理部を前記複数のＩＣＥのそれぞれと個別に接続する複数の接続部と、前記マルチタスクＯＳから得られた各ソフトウェアの実行状態に関する情報に基づいて、前記接続部による前記処理部と前記ＩＣＥとの接続を切り替える接続切替部と、を有し、前記接続切り替え部は、前記処理部で実行されているソフトウェアに対応する接続部を制御して、前記処理部と前記実行中のソフトウェアに対応するＩＣＥとを接続するデバッグシステムを提供する。
【００１０】
上記デバッグシステムでは、前記複数のソフトウェアは、マスタとスレーブの関係を有する少なくとも２つのソフトウェアを含む。
【００１１】
本発明は、互いに関係する複数のソフトウェアを、各ソフトウェアの実行状態を管理するマルチタスクＯＳ上で実行する処理部と、各ソフトウェアに対応し、各ソフトウェアに対応した複数のＩＣＥのそれぞれと前記処理部を個別に接続する複数の接続部と、前記マルチタスクＯＳから得られた各ソフトウェアの実行状態に関する情報に基づいて、前記接続部による前記処理部と前記ＩＣＥとの接続を切り替える接続切替部と、を備え、前記接続切り替え部は、前記処理部で実行されているソフトウェアに対応する接続部を制御して、前記処理部と前記実行中のソフトウェアに対応するＩＣＥとを接続するターゲット装置を提供する。
【００１２】
上記ターゲット装置では、前記複数のソフトウェアは、マスタとスレーブの関係を有する少なくとも２つのソフトウェアを含む。
【発明の効果】
【００１３】
本発明に係るデバッグシステム及びターゲット装置によれば、デバッグ作業の効率が向上する。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態について、図面を参照して説明する。
【００１５】
（第１の実施形態）
図１は、第１の実施形態のデバッグシステムを示すブロック図である。図１に示すように、第１の実施形態のデバッグシステムは、スレーブターゲット装置２００と、ＩＣＥ２０７Ａ，２０７Ｂと、マスタ側の汎用デバッグ装置２０８Ａと、スレーブ側の汎用デバッグ装置２０８Ｂとを備える。
【００１６】
スレーブターゲット装置２００は、マルチタスクＯＳ２０３に基づいて動作するＣＰＵ２０４と、ＩＣＥ接続切替回路２０５と、ＩＣＥ接続回路２０６Ａ，２０６Ｂとを有する。ＣＰＵ２０４は、開発中のスレーブターゲットソフトウェア２０２、及びスレーブターゲットソフトウェア２０２の処理を指示する擬似的なマスタターゲットソフトウェア２０１をマルチタスクＯＳ２０３上で実行する。
【００１７】
スレーブターゲット装置２００が有するＩＣＥ接続切替回路２０５は、マルチタスクＯＳ２０３から得られた情報に応じて、ＩＣＥ接続回路２０６Ａを介してＩＣＥ２０７Ａに、又はＩＣＥ接続回路２０６Ｂを介してＩＣＥ２０７Ｂに接続する。ＩＣＥ２０７Ａはマスタ側の汎用デバッグ装置２０８Ａに、ＩＣＥ２０７Ｂはスレーブ側の汎用デバッグ装置２０８Ｂに接続されている。なお、ＩＣＥ２０７Ａ，２０７Ｂは汎用のＩＣＥである。
【００１８】
図２は、本実施形態のデバッグシステムが備えるスレーブターゲット装置２００の動作を示すシーケンスチャートである。ＩＣＥ接続切替回路２０５で実行されるＩＣＥ接続切替モジュール３００は、マルチタスクＯＳ２０３から得られるＯＳ管理情報３０１に応じて、ＩＣＥを介した汎用デバッグ装置との接続を切り替える。なお、ＯＳ管理情報３０１は、開発中のスレーブターゲットソフトウェア２０２に含まれるスレーブターゲットモジュール３０３の実行状態、及び擬似的なマスタターゲットソフトウェア２０１に含まれるマスタターゲットモジュール３０２の実行状態を示す管理情報を含む。
【００１９】
ＣＰＵ２０４がマスタターゲットソフトウェア２０１又はスレーブターゲットソフトウェア２０２を実行しているとき、ＩＣＥ接続切替回路２０５で実行されているＩＣＥ接続切替モジュール３００は、マルチタスクＯＳ２０３に対してＯＳ管理情報３０１の取得要求３０６を定期的に行う。ＯＳ管理情報３０１には、ＣＰＵ２０４で実行されているソフトウェアがマスタターゲットソフトウェア２０１とスレーブターゲットソフトウェア２０２の内どちらかを示す情報が含まれている。また、ＯＳ管理情報３０１には、マスタターゲットモジュール３０２の実行状態を示す情報と、スレーブターゲットモジュール３０３の実行状態を示す情報とが含まれている。
【００２０】
マスタとスレーブとの通常の関係では、マスタからの指示に従いスレーブが動作する。本実施形態でも、マスタターゲットモジュール３０２が実行中に（３０７）、マスタターゲットモジュール３０２はスレーブターゲットモジュール３０３に処理要求３０９を行う。スレーブターゲットモジュール３０３は処理要求３０９に応じて処理を行い（３０８）、当該処理が完了すると、スレーブターゲットモジュール３０３はマスタターゲットモジュール３０２に処理完了通知３１０を行う。これらの処理３０７〜３１０が繰り返し行われる。なお、これらの処理が行われている間、マスタターゲットモジュール３０２の実行状態及びスレーブターゲットモジュール３０３の実行状態はマルチタスクＯＳ２０３によって常に監視されており、各実行状態を示す情報がＯＳ管理情報３０１に含まれているため、ＩＣＥ接続切替モジュール３００は任意のタイミングで各モジュールの実行状態を取得することができる。
【００２１】
ＩＣＥ接続切替モジュール３００は、ＯＳ管理情報３０１及びＣＰＵ２０４から取得したプログラムカウンタの情報に基づいて、マスタターゲットモジュール３０２及びスレーブターゲットモジュール３０３のどちらが実行されているかを判定する。ＩＣＥ接続切替モジュール３００を実行しているＩＣＥ接続切替回路２０５は、ＩＣＥ接続切替モジュール３００による判定結果に応じて、実行中のモジュールに対応するＩＣＥを介して当該実行中のモジュールに対応する汎用デバッグ装置に接続する。例えば、スレーブターゲットモジュール３０３が実行されていると判定された場合、ＩＣＥ接続切替回路２０５は、ＩＣＥ２０７Ｂを介してスレーブ側の汎用デバッグ装置２０８Ｂに接続する。
【００２２】
図３は、本実施形態のデバッグシステムが備えるスレーブターゲット装置２００の動作を示すフローチャートである。ＩＣＥ接続切替回路２０５は、ＯＳ管理情報３０１を取得する（Ｓ４００）。次に、ＩＣＥ接続切替回路２０５は、ステップＳ４００で取得したＯＳ管理情報３０１に基づいて、「スレーブターゲットソフトウェア２０２がアクティブか？」を判定する（Ｓ４０１）。スレーブターゲットソフトウェア２０２がアクティブの場合は、ＩＣＥ接続切替回路２０５はスレーブ側のＩＣＥ２０７Ｂを介してスレーブ側の汎用デバッグ装置２０８Ｂに接続する（Ｓ４０２）。一方、スレーブターゲットソフトウェア２０２がアクティブでない場合は、ＩＣＥ接続切替回路２０５はマスタ側のＩＣＥ２０７Ａを介してマスタ側の汎用デバッグ装置２０８Ａに接続する（Ｓ４０３）。
【００２３】
以上説明したように、本実施形態のデバッグシステムによれば、ＩＣＥ接続回路２０６が接続するＩＣＥ及びデバッグ装置としては、ＣＰＵコア毎に提供される汎用ＩＣＥ及び汎用デバッグ装置をそのまま利用することができる。このため、新たにデバッグ装置を開発する必要がない。また、ＩＣＥ接続切替回路２０５の制御部分をＯＳ外部に実装することで、ＯＳが変更になってもそのままＩＣＥ２０７および汎用デバッグ装置２０８を使用することができる。この結果、デバッグ作業の効率が向上して開発費用及び開発工数が削減される。
【００２４】
（第２の実施形態）
図４は、第２の実施形態のデバッグシステムを示すブロック図である。図４に示すように、第２の実施形態のデバッグシステムは、スレーブターゲット装置５００と、ＩＣＥ２０７Ａ，２０７Ｂと、マスタ側の汎用デバッグ装置２０８Ａと、スレーブ側の汎用デバッグ装置２０８Ｂとを備える。第２の実施形態のデバッグシステムが備えるスレーブターゲット装置５００は、第１の実施形態のデバッグシステムが備えるスレーブターゲット装置２００と異なる。ＩＣＥ２０７Ａ，２０７Ｂ及び汎用デバッグ装置２０８Ａ，２０８Ｂは第１の実施形態と同様である。
【００２５】
本実施形態のスレーブターゲット装置５００では、開発中のスレーブターゲットモジュール５０２、及びスレーブターゲットモジュール５０２の処理を指示する擬似的なマスタターゲットモジュール５０１がマルチタスクＯＳ又は通信モジュール５０３上で動作する。マルチタスクＯＳ又は通信モジュール５０３は、ＩＣＥ接続回路５０４Ａ，５０４Ｂを制御して、ＩＣＥ接続回路５０４Ａを介してＩＣＥ２０７Ａに、又はＩＣＥ接続回路５０４Ｂを介してＩＣＥ２０７Ｂに接続する。
【００２６】
図５は、マスタターゲットモジュール５０１の動作フローを示すフローチャートである。マスタターゲットモジュール５０１は、スレーブターゲットモジュール５０２に検証を行う項目に関するメッセージを送る機能を有する。そのため、図５に示すように、マスタターゲットモジュール５０１は、スレーブターゲットモジュール５０２にメッセージ送信を行い（Ｓ６００）、スレーブターゲットモジュール５０２からの完了メッセージの受信待ちを行う（Ｓ６０１）といった動作を繰り返す。
【００２７】
図６は、スレーブターゲットモジュール５０２の動作フローを示すフローチャートである。図６に示すように、スレーブターゲットモジュール５０２は、マスタターゲットモジュール５０１からのメッセージの受信待ちを行い（Ｓ７００）、受信したメッセージに対応した動作を行い（Ｓ７０１）、処理結果に関するメッセージをマスタターゲットモジュール５０１に送信する（Ｓ７０２）といった動作を繰り返す。
【００２８】
図７は、マルチタスクＯＳ又は通信モジュール５０３の動作フローを示すフローチャートである。マルチタスクＯＳ又は通信モジュール５０３は、モジュールの切り替えタイミングかを判定し（Ｓ８００）、切り替えタイミングである場合はモジュールのディスパッチを行い（Ｓ８０１）、接続しているＩＣＥの切り替えを行う（Ｓ８０２）。
【００２９】
図８は、本実施形態のデバッグシステムが備えるスレーブターゲット装置５００の動作を示すシーケンスチャートである。図８に示すように、スレーブターゲットモジュール５０２は、マルチタスクＯＳ又は通信モジュール５０３を使用し、マスタターゲットモジュール５０１からのメッセージの受信待ちを行う（９０３）。マルチタスクＯＳ又は通信モジュール５０３はモジュールの切り替えタイミング判定を行い、切り替えタイミング時にはマスタターゲットモジュール５０１にタスクを切り替える（９０４）。マスタターゲットモジュール５０１は、マルチタスクＯＳ又は通信モジュール５０３を使用し、スレーブターゲットモジュール５０２に音楽再生開始指示メッセージ等のメッセージを送信する（９０５）。
【００３０】
このとき、マルチタスクＯＳ又は通信モジュール５０３はモジュールの切り替えタイミングの判定を行い、切り替えタイミングではないため、図８に示す処理９０６の段階ではタスクを切り替えない。マスタターゲットモジュール５０１は、マルチタスクＯＳ又は通信モジュール５０３を使用し、スレーブターゲットモジュール５０２からのメッセージの受信待ちを行う（９０７）。再び、マルチタスクＯＳ又は通信モジュール５０３はモジュールの切り替えタイミング判定を行い、切り替えタイミング時にはスレーブターゲットモジュール５０２にタスクを切り替えて（９０８）、スレーブターゲットモジュール５０２にメッセージ受信待ちの解除を行う（９０９）。
【００３１】
スレーブターゲットモジュール５０２は、受信したメッセージの解析を行って、音楽の再生を開始するといった前記メッセージに応じた処理を行う（９１０）。スレーブターゲットモジュール５０２は、音楽の再生の開始を完了した等の処理結果を示すメッセージをマルチタスクＯＳ又は通信モジュール５０３を介してマスタターゲットモジュール５０１に送信する（９１１）。
【００３２】
このとき、マルチタスクＯＳ又は通信モジュール５０３はモジュールの切り替えタイミングの判定を行い、切り替えタイミングではないため、図８に示す処理９１２の段階ではタスクを切り替えない。スレーブターゲットモジュール５０２は、マルチタスクＯＳ又は通信モジュール５０３を使用し、マスタターゲットモジュール５０１からのメッセージの受信待ちを行う（９１３）。再び、マルチタスクＯＳ又は通信モジュール５０３はモジュールの切り替えタイミング判定を行い、切り替えタイミング時にはマスタターゲットモジュール５０１にタスクを切り替えて（９１４）、マスタターゲットモジュール５０１にメッセージ受信待ちの解除を行う（９１５）。以上説明した処理９０５〜９１５の動作が繰り返される。
【産業上の利用可能性】
【００３３】
本発明に係るデバッグシステム及びターゲット装置は、ソフトウェア開発におけるデバッグを支援するデバッグ支援装置等として有用である。
【図面の簡単な説明】
【００３４】
【図１】第１の実施形態のデバッグシステムを示すブロック図
【図２】第１の実施形態のデバッグシステムが備えるスレーブターゲット装置の動作を示すシーケンスチャート
【図３】第１の実施形態のデバッグシステムが備えるスレーブターゲット装置の動作を示すフローチャート
【図４】第２の実施形態のデバッグシステムを示すブロック図
【図５】第２の実施形態のマスタターゲットモジュールの動作フローを示すフローチャート
【図６】第２の実施形態のスレーブターゲットモジュールの動作フローを示すフローチャート
【図７】第２の実施形態のマルチタスクＯＳ又は通信モジュールの動作フローを示すフローチャート
【図８】第２の実施形態のデバッグシステムが備えるスレーブターゲット装置の動作を示すシーケンスチャート
【図９】特開平６−１９５２３１号公報に開示されたプログラムデバッグ装置を示すブロック図
【符号の説明】
【００３５】
２００，５００  スレーブターゲット装置
２０４  ＣＰＵ
２０５  ＩＣＥ接続切替回路
２０６Ａ，２０６Ｂ  ＩＣＥ接続回路
２０７Ａ  マスタ側の汎用ＩＣＥ
２０７Ｂ  スレーブ側の汎用ＩＣＥ
２０８Ａ  マスタ側の汎用デバッグ装置
２０８Ｂ  スレーブ側の汎用デバッグ装置
【図１】
2008027041.tif 000003
【図２】
2008027041.tif 000004
【図３】
2008027041.tif 000005
【図４】
2008027041.tif 000006
【図５】
2008027041.tif 000007
【図６】
2008027041.tif 000008
【図７】
2008027041.tif 000009
【図８】
2008027041.tif 000010
【図９】
2008027041.tif 000011