(57)【要約】【課題】搭載されている書き換え可能なＲＯＭの容量が少ないＣＰＵを制御用ＣＰＵに用いても、エミュレーション対象の評価用ＣＰＵの複雑なデバッグの実行の制御が可能なインサーキットエミュレータ装置を提供する。【解決手段】デバッグＩ／Ｏレジスタ群２２への入出力データ３４のＷＲＩＴＥ／ＲＥＡＤはファームウェア３１Ａが制御し、その他の評価用ＣＰＵ２の制御はホストコンピュータ４が直接行うことにより、ファームウェア３１Ａのプログラム量を少なくし、メモリ容量の少ないフラッシュメモリ３１であっても、その格納が可能となるようにする。【選択図】  図１
2004341802.tif 000002
【特許請求の範囲】
【請求項１】
エミュレーションの対象となる評価用ＣＰＵと、
前記エミュレーションの実行を制御する制御用ＣＰＵとを具備し、
前記エミュレーションにおける前記評価用ＣＰＵのデバッグの実行が、前記制御用ＣＰＵに搭載された書き換え可能なＲＯＭに格納されたファームウェアと、外部に接続されたホストコンピュータのエミュレータ制御用ソフトウェアにより制御されることを特徴とするインサーキットエミュレータ装置。
【請求項２】
前記ファームウェアによる制御の対象が、前記評価用ＣＰＵのデバッグに関するデータを格納するレジスタへの前記ホストコンピュータからのデータの書き込みおよび読み出しであることを特徴とする請求項１に記載のインサーキットエミュレータ装置。
【請求項３】
前記レジスタへ書き込まれるデータが、前記評価用ＣＰＵへの入力データであることを特徴とする請求項２に記載のインサーキットエミュレータ装置。
【請求項４】
前記レジスタから読み出されるデータが、前記評価用ＣＰＵからの出力データであることを特徴とする請求項２に記載のインサーキットエミュレータ装置。
【請求項５】
前記書き換え可能なＲＯＭがフラッシュメモリであることを特徴とする請求項１乃至４のいずれか１項に記載のインサーキットエミュレータ装置。
【請求項６】
エミュレーションの対象となる評価用ＣＰＵと、
前記エミュレーションの実行を制御する制御用ＣＰＵと、
随時書き換え可能なメモリとを具備し、
前記エミュレーションにおける前記評価用ＣＰＵの動作が、前記制御用ＣＰＵに搭載された書き換え可能なＲＯＭに格納された第１のファームウェアおよび前記随時書き換え可能なメモリに格納された第２のファームウェアと、外部に接続されたホストコンピュータのエミュレータ制御用ソフトウェアにより制御されることを特徴とするインサーキットエミュレータ装置。
【請求項７】
前記第１のファームウェアが前記エミュレーションの実行前に前記書き換え可能なＲＯＭに書き込まれたものであり、前記第２のファームウェアが前記エミュレーションの実行途中で前記書き換え可能なメモリに随時書き込みあるいは書き換えが行われたものであることを特徴とする請求項６に記載のインサーキットエミュレータ装置。
【請求項８】
前記第１のファームウェアによる制御の対象が、前記評価用ＣＰＵのデバッグに関するデータを格納する複数のレジスタへの前記ホストコンピュータからのデータの書き込みおよび読み出しであることを特徴とする請求項６または７に記載のインサーキットエミュレータ装置。
【請求項９】
前記第２のファームウェアに、前記第１のファームウェアから呼び出されて実行されるプログラムが含まれていることを特徴とする請求項６乃至８のいずれか１項に記載のインサーキットエミュレータ装置。
【請求項１０】
前記第２のファームウェアに、前記第１のファームウェアを呼び出して実行するプログラムが含まれていることを特徴とする請求項６乃至８のいずれか１項に記載のインサーキットエミュレータ装置。
【請求項１１】
前記複数のレジスタへ書き込まれるデータが、前記評価用ＣＰＵへの入力データであることを特徴とする請求項８に記載のインサーキットエミュレータ装置。
【請求項１２】
前記複数のレジスタから読み出されるデータが、前記評価用ＣＰＵからの出力データであることを特徴とする請求項８に記載のインサーキットエミュレータ装置。
【請求項１３】
前記書き換え可能なＲＯＭがフラッシュメモリであることを特徴とする請求項６乃至１２のいずれか１項に記載のインサーキットエミュレータ装置。
【請求項１４】
前記随時書き換え可能なメモリがＳＲＡＭであることを特徴とする請求項６乃至１３のいずれか１項に記載のインサーキットエミュレータ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータシステムの開発におけるデバッグに使用されるインサーキットエミュレータ装置に関する。
【０００２】
【従来の技術】
マイクロコンピュータシステムの開発の際、ハードウェアあるいはソフトウェアのデバッグのためにインサーキットエミュレータ装置が使用される。
【０００３】
図８は、従来のインサーキットエミュレータ装置の基本構成の例を示す図である。従来のインサーキットエミュレータ装置１００には、システムの開発対象のマイクロコンピュータに搭載されるＣＰＵと同一機能を有する評価用ＣＰＵ２とエミュレーションの実行を制御する制御用ＣＰＵ３００が搭載されている。
【０００４】
評価用ＣＰＵ２には、ＣＰＵ本体の機能を構成する内部回路２１と、デバッグ時に内部回路２１に入力する入力データ２３あるいは内部回路２１から出力される出力データ２４をそれぞれ格納する複数のデバッグＩ／ＯレジスタであるデバッグＩ／Ｏレジスタ群２２が含まれている。
【０００５】
また、制御用ＣＰＵ３００には、書き換え可能なＲＯＭであるフラッシュメモリ３１０と制御回路３２０が含まれている。この内、フラッシュメモリ３１０には、予め、エミュレーションの実行に必要な処理プログラムを総て組み込んだファームウェア３１０Ａが書き込まれている。このファームウェア３１０Ａから出力される命令に従って、制御回路３２０は、評価用ＣＰＵ２の制御を含むインサーキットエミュレータ装置１００の制御に必要な制御信号を生成する。
【０００６】
デバッグの実行にあたっては、このインサーキットエミュレータ装置１００は、外部のパーソナルコンピュータなどのホストコンピュータ４に接続され、ホストコンピュータ４搭載されたエミュレータ制御用ソフトウェアから発行されるデバッグ用コマンド４１０を受けて動作する。
【０００７】
ホストコンピュータ４からデバッグ用コマンド４１０が発行されると、制御用ＣＰＵ３００に搭載されたファームウェア３１０Ａがこのコマンドを解釈し、制御回路３２０へデバッグ用命令３３０を出力する。制御回路３２０は、このデバッグ用命令３３０に従い、評価用ＣＰＵ２の内部回路２１の動作の制御を行い、デバッグＩ／Ｏレジスタ群２２へデータの書き込みあるいは読み出しを行う。
【０００８】
従来、このようにインサーキットエミュレータ装置における評価用ＣＰＵのデバッグ動作の制御は、総て制御用ＣＰＵに搭載されたファームウェアに基づいて行われていた（例えば、特許文献１参照。）。
【０００９】
【特許文献１】
特開平１１−３２２１号公報（第３−５頁、図１）
【００１０】
【発明が解決しようとする課題】
上述したようなインサーキットエミュレータ装置に用いられる制御用ＣＰＵには、通常、商用の汎用ＣＰＵが用いられる。インサーキットエミュレータ装置の制御自体にはそれほど複雑な機能を必要としないため、制御用ＣＰＵとしては、それほど処理能力の高いＣＰＵは必要とされない。
【００１１】
一方、評価用ＣＰＵには、開発対象のマイクロコンピュータシステムによっては高機能の大規模ＣＰＵが用いられることもあり、そのデバッグの実行を制御するファームウェアは複雑化し、大規模となることがある。そのため、このファームウェアを格納するフラッシュメモリなどの書き換え可能なＲＯＭのメモリにも大容量のものが必要となることがある。
【００１２】
ところが、一般に、商用の汎用ＣＰＵに搭載されるフラッシュメモリの容量はＣＰＵの処理能力に応じて決定される傾向があり、インサーキットエミュレータ装置の制御用ＣＰＵに用いるような処理能力の高くないＣＰＵでは、そのフラッシュメモリの容量もさほど大きなものではないことが通例である。
【００１３】
したがって、このような処理能力の高くないＣＰＵをインサーキットエミュレータ装置の制御用ＣＰＵに用いようとすると、ファームウェアを搭載するフラッシュメモリの容量不足という問題を引き起こすことがある。
【００１４】
そこで、本発明の目的は、搭載されている書き換え可能なＲＯＭの容量が少ないＣＰＵを制御用ＣＰＵに用いても、エミュレーション対象の評価用ＣＰＵの複雑なデバッグの実行の制御が可能なインサーキットエミュレータ装置を提供することにある。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、本発明の一態様によれば、エミュレーションの対象となる評価用ＣＰＵと、前記エミュレーションの実行を制御する制御用ＣＰＵとを具備し、前記エミュレーションにおける前記評価用ＣＰＵのデバッグの実行が、前記制御用ＣＰＵに搭載された書き換え可能なＲＯＭに格納されたファームウェアと、外部に接続されたホストコンピュータのエミュレータ制御用ソフトウェアにより制御されることを特徴とするインサーキットエミュレータ装置が提供される。
【００１６】
また、上記目的を達成するために、本発明の別の態様によれば、エミュレーションの対象となる評価用ＣＰＵと、前記エミュレーションの実行を制御する制御用ＣＰＵと、随時書き換え可能なメモリとを具備し、前記エミュレーションにおける前記評価用ＣＰＵの動作が、前記制御用ＣＰＵに搭載された書き換え可能なＲＯＭに格納された第１のファームウェアおよび前記随時書き換え可能なメモリに格納された第２のファームウェアと、外部に接続されたホストコンピュータのエミュレータ制御用ソフトウェアにより制御されることを特徴とするインサーキットエミュレータ装置が提供される。
【００１７】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００１８】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係るインサーキットエミュレータ装置の基本構成を示す図である。
【００１９】
本実施の形態のインサーキットエミュレータ装置１には、システムの開発対象のマイクロコンピュータに搭載されるＣＰＵと同一機能を有し、エミュレーションの対象となる評価用ＣＰＵ２とエミュレーションの実行を制御する制御用ＣＰＵ３が搭載されている。
【００２０】
評価用ＣＰＵ２には、ＣＰＵ本体の機能を構成する内部回路２１と、デバッグ時に内部回路２１に入力する入力データ２３あるいは内部回路２１から出力される出力データ２４をそれぞれ格納する複数のデバッグＩ／ＯレジスタであるデバッグＩ／Ｏレジスタ群２２が含まれている。
【００２１】
また、制御用ＣＰＵ３には、書き換え可能なＲＯＭであるフラッシュメモリ３１と制御回路３２が含まれている。この内、フラッシュメモリ３１には、予め、エミュレーションの実行に必要な処理プログラムであるファームウェア３１Ａが書き込まれている。
【００２２】
デバッグの実行にあたっては、このインサーキットエミュレータ装置１は、外部のホストコンピュータ４に接続され、ホストコンピュータ４に搭載されたエミュレータ制御用ソフトウェアが使用される。このホストコンピュータ４が制御用ＣＰＵ３に制御コマンドを与えることによって、制御用ＣＰＵ３のファームウェア３１Ａが動作する。また、ホストコンピュータ４は、制御用ＣＰＵ３からの送信データ４２を受け取る。通常、このホストコンピュータ４には、パーソナルコンピュータが使用されている。
【００２３】
ところで、近年、このホストコンピュータ４として使用されるパーソナルコンピュータの性能が著しく向上し、複雑で高度な処理も高速で処理できるようになった。そこで、このようなパーソナルコンピュータの性能の向上に鑑み、本発明においては、インサーキットエミュレータ装置１におけるデバッグ実行の制御をホストコンピュータ４から行えるようにし、ホストコンピュータ４がデバッグの制御を実行するようにしたものである。
【００２４】
本実施の形態においては、処理の負荷が重い評価用ＣＰＵ２の制御をホストコンピュータ４が行い、インサーキットエミュレータ装置１全体の制御および評価用ＣＰＵ２への入出力データの通信を制御用ＣＰＵ３が制御するよう、制御の主体を分割している。
【００２５】
このように制御の主体を分割すると、制御用ＣＰＵ３に格納されているファームウェア３１Ａに、処理が重くなる評価用ＣＰＵ２の制御プログラムを収容する必要がなくなる。
【００２６】
この場合、デバッグの実行にあたっては、制御用ＣＰＵは次のように動作する。すなわち、ホストコンピュータ４から制御コマンド４１を受け取ると、ファームウェア３１Ａは、このコマンドから入出力データ３４を抽出し、制御回路３２へＷＲＩＴＥ／ＲＥＡＤモード３３を命令する。このＷＲＩＴＥ／ＲＥＡＤモード３３が命令されると、制御回路３２は、デバッグＩ／Ｏレジスタ２２群へ入出力データ３４の書き込みあるいは読み出しを行う。
【００２７】
以下、デバッグの制御が上述のように分割されたときのデバッグ動作の進行の様子を、デバッグＩ／Ｏレジスタ群２２へデータの書き込み動作および読み出し動作を中心に、図２および図３の動作フロー図を用いて説明する。
【００２８】
図２は、図１に示す本実施の形態に係るインサーキットエミュレータ装置１において、ホストコンピュータ４から送信された入力データがデバッグＩ／Ｏレジスタ２２群を通し、評価用ＣＰＵ２の内部回路２１に受け取られるまでの動作を説明するためのフロー図である。
【００２９】
なお、図２のフローでは、説明の便宜上、ＷＲＩＴＥ／ＲＥＡＤモード３３はＷＲＩＴＥモード３３、入出力データ３４は入力データ３４、制御コマンド４１はＷＲＩＴＥコマンド４１と表記するものとする。
【００３０】
図２において、インサーキットエミュレータ装置１とホストコンピュータ４が接続されてデバッグ動作が開始される（ステップＳ１１）。
【００３１】
まず、ホストコンピュータ４からファームウェア３１ＡへＷＲＩＴＥコマンド４１が送出される（ステップＳ１２）。すると、ファームウェア３１ＡはこのコマンドからＷＲＩＴＥアドレスと入力データ３４を抽出し、制御回路３２へＷＲＩＴＥモード３３を命令する（ステップＳ１３）。ＷＲＩＴＥモード３３が命令されると、制御回路３２はデバッグＩ／Ｏレジスタ２２群の中のＷＲＩＴＥアドレスで指定されたレジスタへ入力データ３４を書き込む（ステップＳ１４）。
【００３２】
デバッグＩ／Ｏレジスタ群２２への入力データ３４の書き込みが終了すると、評価用ＣＰＵ２の内部回路２１が、この書き込まれたデータを入力データ２３としてデバッグＩ／Ｏレジスタ群２２から受け取り（ステップＳ１５）、一連の動作が終了する（ステップＳ１６）。
【００３３】
次に、デバッグＩ／Ｏレジスタ群２２からデータを読み出す動作について説明する。
【００３４】
図３は、本発明の第１の実施の形態に係るインサーキットエミュレータ装置において、評価用ＣＰＵ２の内部回路２１のデバッグ中の動作状況を示す出力データ２４をデバッグＩ／Ｏレジスタ２２群から読み出し、ホストコンピュータ４がそのデータを受け取るまでの動作を説明するためのフロー図である。
【００３５】
なお、図３のフローでは、ＷＲＩＴＥ／ＲＥＡＤモード３３はＲＥＡＤモード３３、入出力データ３４は出力データ３４、制御コマンド４１はＲＥＡＤコマンド４１と表記するものとする。
【００３６】
図３において、インサーキットエミュレータ装置１とホストコンピュータ４が接続されてデバッグ動作が開始され（ステップＳ５１）、デバッグ途中の評価用ＣＰＵ２の内部回路２１の動作状況の確認が必要になると、ホストコンピュータ４からファームウェア３１ＡへＲＥＡＤコマンド４１が送出される（ステップＳ５２）。すると、ファームウェア３１ＡはこのコマンドからＲＥＡＤアドレスを抽出し、ＲＥＡＤモード３３を命令する（ステップＳ５３）。ＲＥＡＤモード３３が命令されると、制御回路３２は、内部回路２１からの出力データ２４が書き込まれているデバッグＩ／Ｏ群レジスタ２２の中からＲＥＡＤアドレスで指定されたレジスタのデータを出力データ３４として読み出す（ステップＳ５４）。
【００３７】
デバッグＩ／Ｏレジスタ群２２に読み出された出力データ３４は、制御用ＣＰＵからホストコンピュータ４へ送信データ４２として送信され、ホストコンピュータ４が送信データ４２を受け取ると（ステップＳ５５）、一連の動作が終了する（ステップＳ５６）。
【００３８】
以上説明したように、本実施の形態においては、ファームウェア３１Ａとホストコンピュータ４が連携して共働でデバッグを実行するが、その中で、ファームウェア３１Ａが評価用ＣＰＵ２と通信を行い、ホストコンピュータ４が評価用ＣＰＵ２を制御することで、デバッグの制御を分割して担当する。そのため、従来に比べてファームウェア３１Ａに収容するプログラムの量が少なくなる。したがって、フラッシュメモリ３１の容量が少なくてもファームウェア３１Ａを格納することができる。
【００３９】
（第２の実施の形態）
本実施の形態のインサーキットエミュレータ装置は、第１の実施の形態のインサーキットエミュレータ装置にさらに随時書き換え可能なメモリを加えたものである。この随時書き換え可能なメモリにマクロ処理のサブルーチンを格納し、より高速なエミュレーションの実行を可能とするものである。
【００４０】
図４に、本発明の第２の実施の形態に係るインサーキットエミュレータ装置の基本構成を示す。以下、本実施の形態のインサーキットエミュレータ装置の構成を説明するが、図１に示す第１の実施の形態のインサーキットエミュレータ装置と同一構成の部分には図１と同一の符号を付し、ここではその詳細な説明を省略する。
【００４１】
本実施の形態のインサーキットエミュレータ装置１１には、評価用ＣＰＵ２と制御用ＣＰＵ３および随時書き換え可能なメモリであるＳＲＡＭ１５１が搭載されている。
【００４２】
このうち、本実施の形態で追加されたＳＲＡＭ１５１には、後述する動的ファームウェア１５１Ａが格納される。
【００４３】
制御用ＣＰＵ３には、書き換え可能なＲＯＭであるフラッシュメモリ３１と制御回路３２が含まれている。この内、フラッシュメモリ３１には、第１の実施の形態と同様にファームウェアが格納されるが、本実施の形態においては、ＳＲＡＭ１５１に格納される動的ファームウェア１５１Ａと区別するために、フラッシュメモリ３１に格納されるファームウェアを静的ファームウェア１３１Ａと呼ぶ。また、制御回路３２は、この静的ファームウェア１３１ＡからのＷＲＩＴＥ／ＲＥＡＤモード３３を命令されて、評価用ＣＰＵ２のデバッグＩ／Ｏレジスタ群２２に対して、データの書き込みあるいはデータの読み出しを行う。
【００４４】
このように、本実施の形態においては、静的ファームウェア１３１Ａおよび動的ファームウェア１５１Ａがホストコンピュータ４と連携して、エミュレーションの実行を処理する。
【００４５】
デバッグの実行にあたっては、本実施の形態においても、インサーキットエミュレータ装置１１は、パーソナルコンピュータなどの外部のホストコンピュータ４に接続されて使用される。
【００４６】
本実施の形態においても、制御用ＣＰＵ３がインサーキットエミュレータ装置１１全体の制御および評価用ＣＰＵ２への入出力データの通信を行い、ホストコンピュータ４が評価用ＣＰＵ２を制御するよう、制御の主体を分割している。
【００４７】
ここで、静的ファームウェア１３１Ａと動的ファームウェア１５１Ａについて、図５を用いて説明するが、その前に、比較のため、第１の実施の形態のインサーキットエミュレータ装置１で用いるファームウェア３１Ａについて説明する。
【００４８】
図５（ａ）は、図１に示すファームウェア３１Ａのデータ形式を模式的に示した図である。この図に示すように、このファームウェア３１Ａは、評価用ＣＰＵ２をホストコンピュータ４に制御させるために動作するソフトウェアである。
【００４９】
このファームウェア３１Ａの中に、デバッグＩ／Ｏレジスタ群２２に対するＷＲＩＴＥコマンド処理およびＲＥＡＤコマンド処理のプログラムが記述されている。
【００５０】
このようなファームウェア３１Ａを用いる場合、出力データの内容によって入力データを決めなければならない処理を行うときには、ＲＥＡＤ処理とＷＲＩＴＥ処理を行うごとに、ホストコンピュータ４と評価用ＣＰＵ２との間で通信が行われる。
【００５１】
一方、図５（ｂ）は、本実施の形態で用いる静的ファームウェア１３１Ａと動的ファームウェア１５１Ａのデータ形式を模式的に示した図である。
【００５２】
この内、静的ファームウェア１３１Ａには、ファームウェア３１Ａと同様に、デバッグＩ／Ｏレジスタ群２２に対するＷＲＩＴＥコマンド処理およびＲＥＡＤコマンド処理のプログラムが記述されているが、その他に、後述の動的ファームウェア１５１Ａによるマクロ処理をサブルーチンとして呼び出すためのマクロ移行処理のプログラムが追加されている。また、それぞれの処理の開始アドレスが記述されている領域がある。
【００５３】
動的ファームウェア１５１Ａには、静的ファームウェア１３１Ａのサブルーチンとして使用されるマクロ処理のプログラムが記述されている。なお、このマクロ処理のプログラムの中で、静的ファームウェア１３１Ａのコマンドを使用する場合には、そのコマンドの開始アドレスを間接アドレス指定で参照することにより、逆に、静的ファームウェア１３１Ａがサブルーチンとして呼び出される。
【００５４】
また、動的ファームウェア１５１Ａには、引数データを格納する領域もある。
【００５５】
この動的ファームウェア１５１Ａを用いることにより、出力データの内容によって入力データを決めなければならない処理を行う場合にも、ホストコンピュータ４と通信を行うことなく処理を進めることができる。
【００５６】
このように、静的ファームウェア１３１Ａと動的ファームウェア１５１Ａとは、ファームウェアの処理内容を、基本的なコマンド処理部分とエミュレーションの実行内容に応じて変化する部分の二つに分けたものである。この内、エミュレーション実行前にその内容が決定される前者を静的ファームウェアと呼び、エミュレーションの実行途中で随時変化する後者を動的ファームウェアと呼ぶものである。
【００５７】
そして、この静的ファームウェア１３１Ａは、制御用ＣＰＵ３に搭載されているフラッシュメモリ３１にエミュレーションの実行前に書き込まれたものであり、動的ファームウェア１５１Ａは、ＳＲＡＭ１５１にエミュレーションの実行途中にホストコンピュータ４により必要に応じて書き込まれるものであって、その内容はエミュレーション中に随時書き換えられるものである。
【００５８】
図４に戻って、この静的ファームウェア１３１Ａと動的ファームウェア１５１Ａの動作の関係について説明する。ホストコンピュータ４から制御コマンド４１としてマクロ移行コマンドを受け取ると、静的ファームウェア１３１Ａは動的ファームウェア１５１Ａのマクロ処理プログラムをサブルーチンとして呼び出す（動的ファームウェアマクロサブルーチンコール１３５）。
【００５９】
すると、動的ファームウェア１５１Ａは、マクロ処理プログラムに基づき、静的ファームウェア１３１Ａのコマンドをサブルーチンとして呼び出す（静的ファームウェアマクロサブルーチンコール１５３）。これを受けて、静的ファームウェア１３１Ａは、制御回路３２に対してＷＲＩＴＥ／ＲＥＡＤモード３３を命令する。
【００６０】
以下、本実施の形態におけるデバッグ動作の進行の様子を、動的ファームウェア１５１Ａのマクロ処理動作、および汎用マクロ処理動作を中心に、図６および図７の動作フロー図を用いて説明する。
【００６１】
図６は、図４に示す本実施の形態に係るインサーキットエミュレータ装置１１において、ホストコンピュータ４から送信された動的ファームウェア１５１ＡがＳＲＡＭ１５１に書き込まれ、この動的ファームウェア１５１Ａが静的ファームウェア１３１Ａのコマンドを呼び出し、この静的ファームウェア１３１Ａが評価用ＣＰＵ２を制御する動作を説明するためのフロー図である。
【００６２】
図６において、インサーキットエミュレータ装置１１とホストコンピュータ４が接続されてデバッグ動作が開始されると（ステップＳ１１１）、まず、動的ファームウェア１５１Ａが、ホストコンピュータ４から送出され（ステップＳ１１２）、ＳＲＡＭ１５１に書き込まれる（ステップＳ１１３）。
【００６３】
次いで、ホストコンピュータ４から制御コマンド４１としてマクロ移行コマンドが送出される（ステップＳ１１４）。このマクロ移行コマンドを受けて、静的ファームウェア１３１Ａは、動的ファームウェアマクロサブルーチンコール１３５を行い、動的ファームウェア１５１Ａのマクロ処理プログラムを呼び出す（ステップＳ１１５）。
【００６４】
この要求を受けて、動的ファームウェア１５１Ａは、マクロ処理を開始する（ステップＳ１１６）。マクロ処理の途中で、デバッグＩ／Ｏレジスタ群２２へＷＲＩＴＥ／ＲＥＡＤが必要になると、動的ファームウェア１５１Ａは、静的ファームウェアマクロサブルーチンコール１５３を行って、静的ファームウェア１３１Ａの該当コマンドを呼び出す（ステップＳ１１７）。
【００６５】
この要求を受けて、静的ファームウェア１３１Ａは、制御回路３２へＷＲＩＴＥ／ＲＥＡＤモード３３を命令する（ステップＳ１１８）。ＷＲＩＴＥ／ＲＥＡＤモード３３が命令されると、制御回路３２はデバッグＩ／Ｏレジスタ群２２へ入出力データ（この場合は、入力データ）３４を書き込む、またはデバッグＩ／Ｏレジスタ群２２から入出力データ（この場合は、出力データ）３４を読み出す（ステップＳ１１９）。
【００６６】
この処理が済むと、次の命令が、サブルーチンから元のプログラムへ復帰するためのＲＥＴ命令であるかどうかをチェックし（ステップＳ１２０）、ＲＥＴ命令でなかった場合（ＮＯ）、さらにマクロ処理が継続される（ステップＳ１２０）。以降、ステップＳ１１７からステップＳ１２０までの動作を繰り返す。そして、ステップＳ１２０で次の命令がＲＥＴ命令であった（ＹＥＳ）ときに、一連のマクロ処理が終了する（ステップＳ１２２）。
【００６７】
次に、引数データを用いて実行する汎用マクロ処理動作について説明する。
【００６８】
図７は、本実施の形態に係るインサーキットエミュレータ装置１１において、ホストコンピュータ４から送信された引数データおよび動的ファームウェア１５１ＡがＳＲＡＭ１５１に書き込まれ、この引数データをＳＲＡＭ１５１から取得しながら動的ファームウェア１５１Ａがマクロ処理を実行する動作を説明するためのフロー図である。
【００６９】
図７において、インサーキットエミュレータ装置１１とホストコンピュータ４が接続されてデバッグ動作が開始されると（ステップＳ１５１）、まず、動的ファームウェア１５１Ａが、ホストコンピュータ４から送出され（ステップＳ１５２）、ＳＲＡＭ１５１に書き込まれる（ステップＳ１５３）。
【００７０】
次に、引数データが、ホストコンピュータ４から送出され（ステップＳ１５４）、ＳＲＡＭ１５１に書き込まれる。このとき、以前に書き込まれた引数データがある場合には、上書きされてデータの内容が書き換わる（ステップＳ１５５）。
【００７１】
次いで、ホストコンピュータ４から制御コマンド４１としてマクロ移行コマンドが送出される（ステップＳ１５６）。このマクロ移行コマンドを受けて、静的ファームウェア１３１Ａは、動的ファームウェアマクロサブルーチンコール１３５を行い、動的ファームウェア１５１Ａのマクロ処理プログラムを呼び出す（ステップＳ１５７）。
【００７２】
この要求を受けて、動的ファームウェア１５１Ａは、マクロ処理を開始し（ステップＳ１５８）、ＳＲＡＭ１５１に書き込まれた引数データから変数を取得して（ステップＳ１５９）、マクロ処理を実行する（ステップＳ１６０）。
【００７３】
一つのマクロ処理の実行が終了すると、さらにマクロ処理の実行が継続されるのかどうかをチェックする（ステップＳ１６１）。
【００７４】
マクロ処理が継続される場合（ＹＥＳ）、ステップＳ１５４に戻り、以降、ステップＳ１６１までの処理が繰り返される。
【００７５】
マクロ処理の継続がない場合（ＮＯ）、一連のマクロ処理の実行が終了する（ステップＳ１６２）。
【００７６】
以上説明したように、本実施の形態においては、ファームウェア１３１Ａおよび動的ファームウェア１５１Ａとホストコンピュータ４が連携して共働でデバッグを実行するが、その中で、静的ファームウェア１３１Ａおよび動的ファームウェア１５１Ａとホストコンピュータ４が、デバッグ実行の制御を分割して担当する。この内、静的ファームウェア１３１Ａには、エミュレーション実行用命令の本体部分のみ搭載するので、複数のデバッグＩ／Ｏレジスタの連続書き込み／読み出しなどの複雑なまくろ処理であっても、静的ファームウェア１３１Ａのプログラム量が増えない。したがって、フラッシュメモリ３１の容量が少なくても静的ファームウェア１３１Ａを格納することができる。
【００７７】
また、本実施の形態においては、デバッグＩ／Ｏレジスタ群へのＲＥＡＤ処理あるいはＷＲＩＴＥ処理は、動的ファームウェア１５１Ａが静的ファームウェア１３１Ａをサブルーチンとして呼び出すことで行われるため、出力データの内容によって入力データを決めなければならない処理を行うときに、ＲＥＡＤ／ＷＲＩＴＥごとにホストコンピュータ４と通信を行う必要がなく、ホストコンピュータ４と評価用ＣＰＵ２との間の通信の回数を減らすことができる。
【００７８】
【発明の効果】
このような本発明のインサーキットエミュレータ装置によれば、搭載されている書き換え可能なＲＯＭ容量の少ないＣＰＵを制御用ＣＰＵに用いても、エミュレーション対象の評価用ＣＰＵの複雑なデバッグの処理の制御を行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るインサーキットエミュレータ装置の基本構成を示す図。
【図２】本発明の第１の実施の形態に係るインサーキットエミュレータ装置の書き込み動作を説明するためのフロー図。
【図３】本発明の第１の実施の形態に係るインサーキットエミュレータ装置の読み出し動作を説明するためのフロー図。
【図４】本発明の第２の実施の形態に係るインサーキットエミュレータ装置の基本構成を示す図。
【図５】本発明の第１および第２の実施の形態に係るインサーキットエミュレータ装置のファームウェアの説明図。
【図６】本発明の第２の実施の形態に係るインサーキットエミュレータ装置の書き込み、読み出し動作を説明するためのフロー図。
【図７】本発明の第２の実施の形態に係るインサーキットエミュレータ装置のマクロ処理動作を説明するためのフロー図。
【図８】従来のインサーキットエミュレータ装置の基本構成の例を示す図。
【符号の説明】
１、１１、１００  インサーキットエミュレータ装置
２  評価用ＣＰＵ
２１  内部回路
２２  デバッグＩ／Ｏレジスタ群
２３  入力データ
２４  出力データ
３、３００  制御用ＣＰＵ
３１、３１０  フラッシュメモリ
３１Ａ、３１０Ａ  ファームウェア
３２、３２０  制御回路
３３、３３０  ＷＲＩＴＥ／ＲＥＡＤモード
３４、３４０  入出力データ
４  ホストコンピュータ
４１、４１０  制御コマンド
４２  送信データ
１３１Ａ  静的ファームウェア
１３５  動的ファームウェアマクロサブルーチンコール
１５１  ＳＲＡＭ
１５１Ａ  動的ファームウェア
１５３  静的ファームウェアマクロサブルーチンコール
【図１】
2004341802.tif 000003
【図２】
2004341802.tif 000004
【図３】
2004341802.tif 000005
【図４】
2004341802.tif 000006
【図５】
2004341802.tif 000007
【図６】
2004341802.tif 000008
【図７】
2004341802.tif 000009
【図８】
2004341802.tif 000010