(57)【要約】【課題】  以前のブレークポイントに戻ってターゲットプログラムのデバッグ作業を再開することができるエミュレータ装置およびその制御方法を実現する。【解決手段】  本発明のエミュレータ装置およびその制御方法は、ブレークポイント（ＢＰ）が設定されたターゲットプログラム１８のデバッグ時に、デバッグの対象となる評価用ＭＣＵ１２により使用されるワークエリア１９を有するエミュレーションメモリ１３と、ＢＰでの実行中断ごとにＢＰ情報１５としてワークエリア１９の状態が格納される保存用メモリ１６を備え、以前に実行中断されたＢＰからの実行再開時に、当該実行中断時に保存用メモリ１６に格納されたＢＰ情報１５をワークエリア１９に書き戻し、ワークエリア１９を以前の実行中断時の状態に復帰させる。【選択図】  図１
2006139440.tif 000002
【特許請求の範囲】
【請求項１】
ブレークポイントが設定されたターゲットプログラムのデバッグ時に、デバッグの対象となるマイクロコンピュータにより使用されるワークエリアを有する第１の記憶手段と、
前記ブレークポイントでの実行中断ごとにブレークポイント情報として前記ワークエリアの状態が格納される第２の記憶手段を備え、
以前に実行中断された前記ブレークポイントからの実行再開時に、当該実行中断時に前記第２の記憶手段に格納された前記ブレークポイント情報を前記ワークエリアに書き戻し、前記ワークエリアを前記以前の実行中断時の状態に復帰させることを特徴とするエミュレータ装置。
【請求項２】
前記ブレークポイント情報は、さらに、前記ブレークポイントでの前記マイクロプロセッサにおける内部レジスタの状態を有し、
前記実行中断時に前記第２の記憶手段に格納された前記ブレークポイント情報を前記実行再開時に書き戻し、前記内部レジスタを前記以前の実行中断時の状態に復帰させることを特徴とする請求項１に記載のエミュレータ装置。
【請求項３】
前記第１の記憶手段にさらに前記ターゲットプログラムが格納されることを特徴とする請求項１に記載のエミュレータ装置。
【請求項４】
前記第２の記憶手段および前記マイクロコンピュータに接続され、ホストコンピュータからの指示を受けて前記第２の記憶手段にアクセスする制御手段をさらに有し、
前記制御手段は、前記ブレークポイント情報の前記第２の記憶手段への格納、および前記ブレークポイント情報の前記ワークエリアへの書き戻しを制御することを特徴とする請求項１に記載のエミュレータ装置。
【請求項５】
ブレークポイントが設定されたターゲットプログラムのデバッグを行うエミュレータ装置の制御方法であって、
前記ブレークポイントでの実行中断ごとに、ブレークポイント情報として、デバッグの対象となるマイクロコンピュータにより使用されるワークエリアの状態を記憶手段へ格納する保存ステップと、
以前に実行中断された前記ブレークポイントからの実行再開時に、当該実行中断時に前記記憶手段に格納された前記ブレークポイント情報を前記ワークエリアに書き戻し、前記ワークエリアを前記以前の実行中断時の状態に復帰させる復帰ステップを有することを特徴とするエミュレータ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータのプログラムデバッグにおけるエミュレータ装置およびその制御方法に関し、特に、インサーキットエミュレータに使用される。
【背景技術】
【０００２】
マイクロコンピュータを用いたシステムの開発では、マイクロコンピュータのプログラム（以下、「ターゲットプログラム」という。）をデバッグするためにエミュレータ装置が広く使用されている。エミュレータ装置を使用したデバッグでは、ターゲットプログラムに設定されたブレークポイント（以下、「ＢＰ」という。）まではリアルタイムで実行し、ＢＰでマイクロコンピュータの制御をターゲットプログラムからエミュレータ装置の制御プログラムへ移してデバッグ作業を行う方法（例えば、特許文献１を参照。）がよく利用される。特に、繰り返し部分が頻繁に出現するターゲットプログラムの場合には、任意のアドレスにＢＰを設定してデバッグする手法は、開発効率の観点から必須の技術となっている。
【０００３】
しかしながら、従来のエミュレータ装置およびその制御方法では、ターゲットプログラム上ですでに実行された以前のＢＰへ戻ってデバッグを再開することができないという問題があった。例えば、あるＢＰまでは正常で、それ以降にバグが潜んでいることが判っている場合でも、再度ターゲットプログラムをリセットし、先頭から実行し直す必要があった。短いプログラムであれば短時間でそのＢＰまで到達するが、プログラムの内容によってはそのＢＰまで到達するのに膨大な時間を必要とし、システム開発の障害となる場合も少なくなかった。
【特許文献１】特開平１０−６９４０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、以前のブレークポイントに戻ってターゲットプログラムのデバッグ作業を再開することができるエミュレータ装置およびその制御方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、ブレークポイントが設定されたターゲットプログラムのデバッグ時に、デバッグの対象となるマイクロコンピュータにより使用されるワークエリアを有する第１の記憶手段と、前記ブレークポイントでの実行中断ごとにブレークポイント情報として前記ワークエリアの状態が格納される第２の記憶手段を備え、以前に実行中断された前記ブレークポイントからの実行再開時に、当該実行中断時に前記第２の記憶手段に格納された前記ブレークポイント情報を前記ワークエリアに書き戻し、前記ワークエリアを前記以前の実行中断時の状態に復帰させることを特徴とするエミュレータ装置が提供される。
【０００６】
本発明の別の一態様によれば、ブレークポイントが設定されたターゲットプログラムのデバッグを行うエミュレータ装置の制御方法であって、前記ブレークポイントでの実行中断ごとに、ブレークポイント情報として、デバッグの対象となるマイクロコンピュータにより使用されるワークエリアの状態を記憶手段へ格納する保存ステップと、以前に実行中断された前記ブレークポイントからの実行再開時に、当該実行中断時に前記記憶手段に格納された前記ブレークポイント情報を前記ワークエリアに書き戻し、前記ワークエリアを前記以前の実行中断時の状態に復帰させる復帰ステップを有することを特徴とするエミュレータ装置の制御方法が提供される。
【発明の効果】
【０００７】
本発明によれば、任意のブレークポイントに戻ってデバッグを再開できるので、マイクロコンピュータを用いたシステムの開発効率を大幅に向上させることができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照しながら、本発明の実施例を説明する。
【実施例】
【０００９】
図１は、本発明の実施例に係わるエミュレータ装置を示すシステムブロック図である。ここでは、主に、対象となるマイクロコンピュータ１２（以下、「評価用ＭＣＵ１２」という。）のデバッグ作業にかかわる部分を示した。
【００１０】
本発明の実施例に係わるエミュレータ装置１１は、デバッグ作業の対象である評価用ＭＣＵ１２、評価用ＭＣＵ１２がワークエリア１９として使用するエミュレーションメモリ１３、ブレークポイント（以下、「ＢＰ」という。）での実行中断時に使用されるスチルメモリ１４、ＢＰでの実行中断ごとにブレークポイント情報１５（以下、「ＢＰ情報１５」という。）が格納される保存用メモリ１６、および、ＢＰ情報１５の保存や書き戻しを制御する制御用ＭＣＵ１７を備えている。
【００１１】
評価用ＭＣＵ１２は、例えば、ユーザが開発するシステムで制御などに使用される８ビットマイクロコンピュータである。ユーザは開発システムに合わせて評価用ＭＣＵ１２のプログラムを作成し、エミュレータ装置１１を用いてそれをデバッグする。
【００１２】
このデバッグされるユーザプログラム１８（以下、「ターゲットプログラム１８」という。）は、デバッグ作業中は、エミュレーションメモリ１３に格納されている。また、ターゲットプログラム１８には、デバッグのために少なくとも１つのＢＰが設定されている。
【００１３】
エミュレーションメモリ１３は、評価用ＭＣＵ１２に接続されたＤＲＡＭで構成され、その容量は、少なくともユーザの開発システムで使用されるターゲットメモリ（ユーザシステムでのメインメモリ）より大きく設定されている。
【００１４】
エミュレーションメモリ１３は、また、ターゲットプログラム１８の変数領域やスタック領域など、評価用ＭＣＵ１２のワークエリア１９として使用される。さらに、ワークエリア１９には、開発システムで使用されるＩ／Ｏ機器とのデータやコマンドの授受を行うＩ／Ｏ領域が割り付けられている。
【００１５】
スチルメモリ１４は、評価用ＭＣＵ１２に接続されたＥＥＰＲＯＭである。スチルメモリ１４には、ＢＰで評価用ＭＣＵ１２の制御が実行モードからデバッグモードに移った時に、評価用ＭＣＵ１２がデバッグ処理を行うエミュレータ用プログラム２０（以下、「スチルプログラム２０」という。）が格納されている。
【００１６】
スチルメモリ１４は、エミュレーションメモリ１３と一部のアドレスが重複しており、評価用ＭＣＵ１２は、デバッグモードでもワークエリア１９にアクセスできるようになっている。
【００１７】
保存用メモリ１６は、制御用ＭＣＵ１７に接続されたＤＲＡＭで構成され、その容量は、評価用ＭＣＵ１２が使用するワークエリア１９の数十倍になるよう設定されている。保存用メモリ１６には、ＢＰでの実行中断ごとに、評価用ＭＣＵ１２の内部レジスタおよびエミュレーションメモリ１３のワークエリア１９がＢＰ情報１５として格納される。
【００１８】
ターゲットプログラム１８に複数のＢＰが設定されている場合には、図１に示したように、それぞれのＢＰ情報（以下、個別のＢＰ情報は「ＢＰ情報−１、ＢＰ情報−２、…、ＢＰ情報−ｎ」のように表す。）は別々のアドレスに格納される。
【００１９】
制御用ＭＣＵ１７は、外部のホストコンピュータ２１（以下、「パソコン２１」という。）に接続され、パソコン２１からのコマンドに基づいてエミュレータ装置１１の各ブロックを制御する３２ビットマイクロコンピュータである。
【００２０】
また、制御用ＭＣＵ１７は、ターゲットプログラム１８のエミュレーションメモリ１３への格納、ＢＰ情報１５の保存用メモリ１６への格納、および評価用ＭＣＵ１２やワークエリア１９へのＢＰ情報１５の書き戻しなどを制御する。
【００２１】
パソコン２１は、ターゲットプログラム１８の修正、評価用ＭＣＵ１２の内部レジスタやワークエリア１９の変数などの表示、修正指示、あるいは、デバッグ作業の再開位置変更指示などを行うインターフェースである。
【００２２】
パソコン２１からのコマンドやデータは制御用ＭＣＵ１７が受信し、必要な制御を行う。
【００２３】
次に、上述した構成を持つエミュレータ装置１１の動作について説明する。図２は、本発明の実施例に係わるエミュレータ装置１１の制御方法を示すフロー図である。ここでは、主に、ブレークポイント（ＢＰ）が設定されたターゲットプログラム１８をデバッグする場合を示した。
【００２４】
本発明の実施例に係わるエミュレータ装置１１の制御方法は、ターゲットプログラム１８をエミュレーションメモリ１３へ格納する転送ステップ３１、ＢＰまでをリアルタイムで実行する実行ステップ３２、ターゲットプログラム１８の終了を判定する終了判定ステップ３４、ＢＰで実行中断しデバッグモードに制御を移す停止ステップ３３、ＢＰでの実行中断ごとにＢＰ情報１５を保存用メモリ１６へ格納する保存ステップ３５、実行再開位置の変更を判定する指示判定ステップ３６、およびＢＰ情報１５を評価用ＭＣＵ１２とワークエリア１９へ書き戻す復帰ステップ３７を備えている。
【００２５】
転送ステップ３１では、制御用ＭＣＵ１７は、パソコン２１から受信したターゲットプログラム１８を評価用ＭＣＵ１２がエミュレーションメモリ１３へ格納するよう制御する。
【００２６】
ターゲットプログラム１８の転送が終了すると、実行ステップ３２で、制御用ＭＣＵ１７は、パソコン２１からのデバッグ開始の指示を受けて、評価用ＭＣＵ１２が次のＢＰまでターゲットプログラム１８をリアルタイムで実行するよう制御する。そして、評価用ＭＣＵ１２は、ワークエリア１９を使用してターゲットプログラム１８を実行する。
【００２７】
ターゲットプログラム１８の実行中に、ＢＰ、ターゲットプログラム１８の終了、あるいは、不正コマンドの実行などの致命的エラーに遭遇すると、評価用ＭＣＵ１２は、停止ステップ３３で、ブレーク信号を制御用ＭＣＵ１７へ送信して実行モードからデバッグモードに移行する。
【００２８】
このデバッグモードでは、評価用ＭＣＵ１２は、制御用ＭＣＵ１７の制御に従って、ターゲットプログラム１８の代わりにスチルメモリ１４に格納されているスチルプログラム２０を実行する。
【００２９】
終了判定ステップ３４で、制御用ＭＣＵ１７は、評価用ＭＣＵ１２からのブレーク信号を判定する。そのブレーク信号がターゲットプログラム１８の終了または致命的なエラーであれば（“Ｙｅｓ”）、制御用ＭＣＵ１７は、その旨をパソコン２１に通知してエミュレーションを終了する。
【００３０】
また、それがＢＰに起因するブレーク信号であれば（“Ｎｏ”）、制御用ＭＣＵ１７は、ＢＰの処理を行うために次の保存ステップ３５へ移行する。
【００３１】
保存ステップ３５で、制御用ＭＣＵ１７は、ＢＰでの実行中断ごとに、そのＢＰでの評価用ＭＣＵ１２の内部レジスタおよびワークエリア１９の内容をＢＰ情報１５として保存用メモリ１６へ格納するよう動作する。
【００３２】
ＢＰ情報１５の保存用メモリ１６への格納が終了すると、制御用ＭＣＵ１７は、指示判定ステップ３６で、パソコン２１からの指示に基づいて実行再開位置の判定を行う。パソコン２１からの実行再開位置が現在のＢＰであれば（“続行”）、制御用ＭＣＵ１７は、評価用ＭＣＵ１２でのリアルタイム実行を再開するために、実行ステップ３２へ制御を移行する。
【００３３】
また、パソコン２１からの実行再開位置が以前のＢＰであれば（“変更”）、制御用ＭＣＵ１７は、ＢＰ情報１５を書き戻すために、復帰ステップ３７へ制御を移行する。
【００３４】
復帰ステップ３７で、制御用ＭＣＵ１７は、パソコン２１から指示された実行再開位置のＢＰ情報１５を保存用メモリ１６から読み出し、これを評価用ＭＣＵ１２の内部レジスタおよびワークエリア１９に書き戻すよう評価用ＭＣＵ１２を制御する。この時、実際にエミュレーションメモリ１３にワークエリア１９を書き戻すのはスチルプログラム２０に制御された評価用ＭＣＵ１２である。
【００３５】
ＢＰ情報１５の書き戻しが終了すると、制御用ＭＣＵ１７は、パソコン２１からの指示に基づいて、評価用ＭＣＵ１２の内部レジスタおよびエミュレーションメモリ１３に必要な修正を加え、実行ステップ３２へ移行するよう動作する。
【００３６】
図３は、本発明の実施例に係わるエミュレータ装置１１の制御方法の一例を示すイメージ図である。ここでは、デバッグ作業の具体例として、プログラムの実行開始直後に膨大な繰り返し処理が実行されるターゲットプログラム１８に３つのＢＰ（以下、「ＢＰ−１〜ＢＰ−３」という。）を設定してデバッグする場合を示した。
【００３７】
本発明の実施例に係わるエミュレータ装置１１の制御方法によりデバッグされるターゲットプログラム１８は、図３に示したように、ＢＰ−１〜ＢＰ−３で分割された４つの領域（以下、「実行１〜実行４」という。）で構成されている。
【００３８】
実行１は、先頭の命令１からＢＰ−１の直前にある命令ｉからなるｉ個のコマンド列によって構成され、命令ｉから命令２へ戻る繰り返しが設定されている。この繰り返しは非常に回数が多く、リアルタイムで実行したとしても膨大な実行時間を必要とする。また、実行１は、ＢＰ−１によってその実行が中断される。
【００３９】
実行２は、ＢＰ−１の直後にある命令ｎからＢＰ−２の直前にある命令ｎ＋ｊからなるｊ個のコマンド列によって構成され、ＢＰ−２によってその実行が中断される。
【００４０】
実行３は、ＢＰ−２の直後にある命令ｔからＢＰ−３の直前にある命令ｔ＋ｋからなるｋ個のコマンド列によって構成され、ＢＰ−３によってその実行が中断される。
【００４１】
そして、実行４は、ＢＰ−３の直後にある命令ｅから最後にある終了命令までによって構成され、終了命令によってターゲットプログラム１８の実行が終了する。
【００４２】
ここで、例えば、ＢＰ−１までの実行１は正常に動作することが判っており、ＢＰ−１以降に問題があるとする。その場合、実行１の繰り返しには膨大な実行時間がかかるため、図３に示したように、ＢＰ−２またはＢＰ−３でパソコン２１から“変更指示”を与え、ＢＰ−１に戻って実行を再開するデバッグ作業が必要となる。
【００４３】
次に、上述した構成を持つターゲットプログラム１８におけるデバッグ作業に伴うエミュレータ装置１１の動作の一例を具体的に説明する。
【００４４】
まず、ターゲットプログラム１８が評価用ＭＣＵ１２によって先頭の命令１からリアルタイムで実行（実行ステップ３２）され、ＢＰ−１で評価用ＭＣＵ１２の実行が停止（停止ステップ３３）する。この時、評価用ＭＣＵ１２は、制御用ＭＣＵ１７へＢＰ−１での停止を通知するブレーク信号を送信する。
【００４５】
このブレーク信号を受け取ると、制御用ＭＣＵ１７は、評価用ＭＣＵ１２がＢＰ情報−１を保存するよう動作（保存ステップ３５）する。すなわち、評価用ＭＣＵ１２は、スチルプログラム２０によって、ワークエリア１９にある内部レジスタの内容、変数領域、スタック領域、およびＩ／Ｏ領域の内容を読み出し、制御用ＭＣＵ１７へ送信する。
【００４６】
そして、制御用ＭＣＵ１７は、これらのデータを保存用メモリ１６へＢＰ情報−１として格納する。
【００４７】
次に、パソコン２１からの指示により実行が再開されると、評価用ＭＣＵ１２は、実行２をリアルタイムで実行（実行ステップ３２）し、ＢＰ−２で停止（停止ステップ３３）する。そして、制御用ＭＣＵ１７は、ＢＰ−１と同様に、ＢＰ情報−２を保存用メモリ１６へ格納（保存ステップ３５）する。
【００４８】
ここで、もし、実行２で問題が生じていることが判明したら、エミュレータ装置１１をＢＰ−１の状態に戻す必要がある。その場合は、パソコン２１からユーザが“変更指示”を入力（指示判定ステップ３６）すると、制御用ＭＣＵ１７は、保存用メモリ１６からＢＰ情報−１を読み出し、これを評価用ＭＣＵ１２へ送信する。評価用ＭＣＵ１２は、スチルプログラム２０の制御のもとで、ＢＰ情報−１を内部レジスタおよびワークエリア１９に書き戻し、さらに、必要であれば、パソコン２１および制御用ＭＣＵ１７の指示に基づいてデータを修正（復帰ステップ３７）する。
【００４９】
そして、制御用ＭＣＵ１７は、評価用ＭＣＵ１２のプログラムカウンタ（以下、「ＰＣ」という。）にＢＰ−１の次のアドレスを設定し、デバッグモードから実行モードへ移行させてリアルタイム実行を再開させるよう評価用ＭＣＵ１２を制御（実行ステップ３２）する。
【００５０】
このようにして、再度ＢＰ−１の状態からターゲットプログラム１８を実行することが可能となる。同様にして、ＢＰ−３での実行中断時にＢＰ−１の状態に戻ってデバッグすることも可能である。
【００５１】
以上述べたように、本発明の実施例に係わるエミュレータ装置１１によるデバッグは、例えば、ＢＰ−２またはＢＰ−３での中断時に、パソコン２１の“変更指示”に基づいて、評価用ＭＣＵ１２の内部レジスタおよびエミュレーションメモリ１３のワークエリア１９をＢＰ−１の状態に戻し、必要な修正を行うことにより実行される。
【００５２】
図４は、本発明の実施例に係わるエミュレータ装置１１の制御方法における評価用ＭＣＵ１２およびワークエリア１９の状態変化を示すイメージ図である。ここでは、図３に示した実行２によるＢＰ−１からＢＰ−２への変化、および“変更指示”に基づいてＢＰ−２からＢＰ−１へ復帰した場合の変化を示した。
【００５３】
図４に示したように、本発明の実施例に係わるエミュレータ装置１１における評価用ＭＣＵ１２は、内部レジスタとしてＰＣ、フラグレジスタ（以下、「ＦＬ」という。）、データレジスタ（以下、「ＤＲ」という。）、およびＩ／Ｏレジスタ（以下、「ＩＯ」という。）を備え、ワークエリア１９は、変数領域、スタック領域、およびＩ／Ｏ領域を備えている。
【００５４】
ＢＰ−１では、評価用ＭＣＵ１２は、図４に示したように、ＰＣの値が“ｐｃ−１”であり、ＦＬの値が“ｆｌａｇ−１”であり、ＤＲの値が“ｄａｔａ−１”であり、ＩＯの値が“ｉｏ−１”である。また、ワークエリア１９は、変数領域の内容が“変数領域−１”であり、スタック領域の内容が“スタック領域−１”であり、Ｉ／Ｏ領域の内容が“Ｉ／Ｏ領域−１”である。
【００５５】
したがって、ＢＰ−１で実行中断すると、制御用ＭＣＵ１７は、保存ステップ３５でこれらの値をＢＰ情報−１として保存用メモリ１６へ格納する。
【００５６】
ＢＰ−２では、評価用ＭＣＵ１２は、図４に示したように、ＰＣの値が“ｐｃ−２”に変化し、ＦＬの値が“ｆｌａｇ−２”に変化し、ＤＲの値が“ｄａｔａ−２”に変化し、ＩＯの値が“ｉｏ−２”に変化している。また、ワークエリア１９は、変数領域の内容が“変数領域−２”に変化し、スタック領域の内容が“スタック領域−２”に変化し、Ｉ／Ｏ領域の内容が“Ｉ／Ｏ領域−２”に変化している。
【００５７】
したがって、ＢＰ−２で実行中断すると、制御用ＭＣＵ１７は、保存ステップ３５でこれらの値をＢＰ情報−２として保存用メモリ１６のＢＰ情報−１とは異なるアドレスへ格納する。
【００５８】
ここで、復帰ステップ３７により、ＢＰ情報−１が書き戻されると、図４に示したように、ＰＣの値は“ｐｃ−１”になり、ＦＬの値は“ｆｌａｇ−１”になり、ＤＲの値は“ｄａｔａ−１”になり、ＩＯの値は“ｉｏ−１”になる。また、ワークエリア１９の変数領域の内容は“変数領域−１”になり、スタック領域の内容は“スタック領域−１”になり、Ｉ／Ｏ領域の内容は“Ｉ／Ｏ領域−１”になる。
【００５９】
これにより、評価用ＭＣＵ１２およびワークエリア１９の状態はＢＰ−１のそれと同じになり、ＢＰ−１からの実行再開が可能となる。
【００６０】
上述したように、本発明の実施例に係わるエミュレータ装置１１の制御方法は、ＢＰで制御がスチルプログラム２０に切り替わるたびに、そのＢＰでの評価用ＭＣＵ１２およびワークエリア１９の状態を保存用メモリ１６に記憶しておくことで、エミュレータ装置１１の状態を以前に実行された任意のＢＰへ復帰させることができる。
【００６１】
次に、上述したエミュレータ装置１１およびその制御方法の具体的な適用例を説明する。
【００６２】
図５は、本発明の実施例に係わるエミュレータ装置１１およびその制御方法の適用例を示すイメージ図である。ここでは、エミュレータ装置１１およびパソコン２１からなるエミュレータ環境を２セット用い、ＢＰ情報１５を共有することで、１つのターゲットプログラム１８を効率よくデバッグする例を示した。
【００６３】
図５に示したように、エミュレータ環境１は、パソコン５２およびエミュレータ装置５３を備え、エミュレータ環境２は、パソコン６２およびエミュレータ装置６３を備えている。
【００６４】
パソコン５２およびパソコン６２は、図１のパソコン２１と同様のものであり、エミュレータ装置５３およびエミュレータ装置６３は図１のエミュレータ装置１１と同様のものである。
【００６５】
まず、エミュレータ環境１において、ターゲットプログラム１８がリアルタイムで実行され、ＢＰ−１で停止する。そして、エミュレータ環境１で保存ステップ３５が実行される。
【００６６】
ここで、エミュレータ装置５３の制御用ＭＣＵ１７は、その保存用メモリ１６に格納されたＢＰ情報−１を読み出し、パソコン５２へ転送する。
【００６７】
次に、エミュレータ環境１のターゲットプログラム１８およびＢＰ情報−１がエミュレータ環境２のパソコン６２へコピーされる。そして、そのターゲットプログラム１８およびＢＰ情報−１は、エミュレータ環境２のエミュレータ装置６３へ転送される。
【００６８】
ターゲットプログラム１８は、エミュレータ装置６３のエミュレーションメモリ１３へコピーされ、ＢＰ情報−１は、エミュレータ装置６３の保存用メモリ１６に格納される。
【００６９】
次に、エミュレータ装置６３で、復帰ステップ３７が実行され、エミュレータ環境２でのデバッグ作業が可能となる。すなわち、エミュレータ環境２においても、ＢＰ−１の状態からターゲットプログラム１８を実行再開することが可能となる。
【００７０】
上記実施例によれば、ＢＰごとにワークエリア１９の状態をＢＰ情報１５として保存しているので、以前に実行された任意のＢＰにデバッグ作業を戻すことができるエミュレータ装置およびその制御方法を実現することができる。
【００７１】
また、上記実施例によれば、保存されたＢＰ情報１５を複数のエミュレータ環境で共有することができ、１つのターゲットプログラム１８を複数のエミュレータ装置で平行してデバッグできるので、マイクロコンピュータを用いたシステムの開発効率を大幅に向上させることができる。
【００７２】
上述の実施例では、評価用ＭＣＵ１２は８ビットマイクロコンピュータであり、制御用ＭＣＵ１７は３２ビットマイクロコンピュータであるとしたが、本発明はこれに限られるものではない。
【００７３】
また、上述の実施例では、評価用ＭＣＵ１２は、内部レジスタとして、ＰＣ、ＦＬ、ＤＲ、およびＩＯを備え、ワークエリア１９は、変数領域、スタック領域、およびＩ／Ｏ領域を備えているとしたが、本発明はこれに限られるものではなく、原理的にはどのような構成の評価用ＭＣＵ１２およびワークエリア１９に対しても適用可能である。
【００７４】
さらに、上述の実施例では、エミュレータ装置１１は評価用ＭＣＵ１２とは別に制御用ＭＣＵ１７を備えているとしたが、本発明はこれに限られるものではなく、例えば、評価用ＭＣＵ１２が十分な能力を持っている場合には、制御用ＭＣＵ１７の代わりに評価用ＭＣＵ１２を用いるように構成することもできる。
【００７５】
さらに、上述の実施例では、スチルメモリ１４はＥＥＰＲＯＭであるとしてが、本発明はこれに限られるものではなく、例えば、ＤＲＡＭを用いて、エミュレーション開始前にスチルプログラム２０をスチルメモリ１４へ転送するように構成することもできる。
【００７６】
さらに、上述の実施例では、スチルメモリ１４はエミュレーションメモリ１３と一部アドレスを重複させるとしたが、本発明はこれに限られるものではなく、例えば、評価用ＭＣＵ１２にユーザ用のアドレス空間とは別にシステム用のアドレス空間が存在する場合には、これを利用してエミュレータ装置１１を構成することもできる。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施例に係わるエミュレータ装置を示すシステムブロック図。
【図２】本発明の実施例に係わるエミュレータ装置の制御方法を示すフロー図。
【図３】本発明の実施例に係わるエミュレータ装置の制御方法の一例を示すイメージ図。
【図４】本発明の実施例に係わるエミュレータ装置の制御方法における評価用ＭＣＵおよびワークエリアの状態変化を示すイメージ図。
【図５】本発明の実施例に係わるエミュレータ装置およびその制御方法の適用例を示すイメージ図。
【符号の説明】
【００７８】
１１  エミュレータ装置
１２  評価用ＭＣＵ
１３  エミュレーションメモリ
１４  スチルメモリ
１５  ブレークポイント情報
１６  保存用メモリ
１７  制御用ＭＣＵ
１８  ターゲットプログラム
１９  ワークエリア
２０  スチルプログラム
２１  パソコン
【図１】
2006139440.tif 000003
【図２】
2006139440.tif 000004
【図３】
2006139440.tif 000005
【図４】
2006139440.tif 000006
【図５】
2006139440.tif 000007