(57)【要約】  【課題】  実マイコンと仮想マイコンとを用いてプログラムのデバッグおよび検証を効率よく行えるハイブリッドプログラム検証システムを提供する。  【解決手段】  シングルチップマイコンのデバッグ対象プログラムを動作させる単独実行可能な実マイコン２００と、プログラムの実行動作をシミュレーションする単独実行可能な仮想マイコン１００と、実マイコンおよび仮想マイコンを動作させるために必要なデータ入力を行う周辺入力デバイスと、周辺入力デバイスと実マイコンおよび仮想マイコンとの間に設けられ、前記周辺入力デバイスから前記実マイコンおよび仮想マイコンへのデータ転送制御と、前記実マイコンおよび仮想マイコンの作動／停止制御とを行うマイコン制御部とを備え、前記マイコン制御部が、前記実マイコンおよび仮想マイコンの一方または両方を選択して前記周辺入力デバイスからの入力データを転送すると共に、転送先のマイコンを作動させる。【選択図】  図３
2005166010.tif 000002
【特許請求の範囲】
【請求項１】
シングルチップマイコンのデバッグ対象プログラムを動作させる、単独実行可能な実マイコンと、
前記実マイコンによる前記プログラムの実行動作をシミュレーションする、単独実行可能な仮想マイコンと、
前記実マイコンおよび前記仮想マイコンを動作させるために必要なデータ入力を行う周辺入力デバイスと、
前記周辺入力デバイスと前記実マイコンおよび仮想マイコンとの間に設けられ、前記周辺入力デバイスから前記実マイコンおよび仮想マイコンへのデータ転送制御と、前記実マイコンおよび仮想マイコンの作動／停止制御とを行うマイコン制御部とを備え、
前記マイコン制御部が、前記実マイコンおよび仮想マイコンの一方または両方を選択して前記周辺入力デバイスからの入力データを転送すると共に、転送先のマイコンを作動させることを特徴とするプログラム検証システム。
【請求項２】
前記周辺入力デバイスを複数備え、
前記マイコン制御部が、データ入力を行うべき周辺入力デバイスを前記複数の周辺入力デバイスから選択する、請求項１に記載のプログラム検証システム。
【請求項３】
前記実マイコンまたは仮想マイコンの実行結果を出力する周辺出力デバイスをさらに備え、
前記マイコン制御部が、前記実マイコンまたは仮想マイコンからの出力データを前記周辺出力デバイスへ転送する、請求項１に記載のプログラム検証システム。
【請求項４】
前記周辺出力デバイスを複数備え、
前記マイコン制御部が、出力データを転送すべき周辺出力デバイスを前記複数の周辺出力デバイス部から選択する、請求項３に記載のプログラム検証システム。
【請求項５】
前記仮想マイコンが、前記仮想マイコンの作成時にコンパイラが出力するシンボル情報に基づいて生成されたシンボル定義を扱うことが可能な疑似デバッガをさらに備えた、請求項１に記載のプログラム検証システム。
【請求項６】
前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、
前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、
前記自動検証部は、前記シナリオファイルに従って、各検証手順において実行すべきマイコンを選択し、選択結果を前記マイコン制御部へ渡すデバイス選択部を備え、
前記マイコン制御部は、前記デバイス選択部の指示に従って、前記仮想マイコンおよび前記実マイコンの一方または両方を選択し作動させるマイコン実行部を備えた、請求項１に記載のプログラム検証システム。
【請求項７】
前記マイコン制御部が、
前記周辺入力デバイスから前記仮想マイコンと前記実マイコンに同じ入力データを送る並列実行部と、
前記仮想マイコンと前記実マイコンから実行結果をそれぞれ取得し、取得したデータを周辺出力デバイスに転送する出力分配部とを備え、
前記周辺出力デバイスが、前記仮想マイコンの実行結果と前記実マイコンの実行結果とを対比可能な状態に表示する、請求項３または４に記載のプログラム検証システム。
【請求項８】
前記マイコン制御部が、
前記周辺入力デバイスから前記仮想マイコンと前記実マイコンに同じ入力データを送る並列実行部と、
前記仮想マイコンと前記実マイコンから実行結果をそれぞれ取得し、取得したデータの差異を求めて前記周辺出力デバイスへ出力する比較分析部とを備えた、請求項３または４に記載のプログラム検証システム。
【請求項９】
前記仮想マイコンおよびマイコン制御部のそれぞれが単独実行可能なアプリケーションとして実装され、
前記仮想マイコンと前記マイコン制御部とが仮想配線を介して接続され、
前記マイコン制御部の指示により前記仮想マイコンの実行を終了させ、再起動を行うリスタート指示部と、
前記リスタート指示部から仮想配線を経由して前記仮想マイコンのプロセスを終了および再起動するリスタート実行部とを備えた、請求項１に記載のプログラム検証システム。
【請求項１０】
前記リスタート指示部が、前記仮想配線に接続された全ての単独実行可能なアプリケーション内に組み込まれ、
前記リスタート実行部は、仮想配線に接続された単独実行可能な全てのアプリケーションデバイスに対して、終了および再起動を行う、請求項９に記載のプログラム検証システム。
【請求項１１】
前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、
前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、
前記自動検証部は、前記シナリオファイルに従って、各検証手順において実行すべきマイコンを選択し、前記仮想マイコンおよび前記実マイコンが用いるＲＡＭの読み書きおよび前記仮想マイコンおよび前記実マイコンの作動／停止を行うマイコン選択実行部を備えた、請求項１に記載のプログラム検証システム。
【請求項１２】
前記仮想マイコンおよび実マイコンがそれぞれ複数設けられ、前記マイコン選択実行部が、前記複数の仮想マイコンまたは複数の実マイコンから、実行すべきマイコンを選択し、選択された仮想マイコンおよび実マイコンが用いるＲＡＭの読み書きおよび前記仮想マイコンおよび前記実マイコンの作動／停止を行う、請求項１１に記載のプログラム検証システム。
【請求項１３】
前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、
前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、
前記シナリオファイルで定義した１または複数の出力データを記録する手順に従って、前記周辺出力デバイスにおけるデータの変化を検出し前記自動検証部に返信するデータ比較検出部と、
前記データ比較検出部の検出結果に基づいて、前記データおよび前記データに基づく出力画像の少なくとも一方を検証結果ファイルへ記録する画像データ記録部とを備えた、請求項３に記載のプログラム検証システム。
【請求項１４】
前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、
前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、
前記シナリオファイルで定義した１または複数の出力データを記録する手順に従って、前記周辺出力デバイスにおける信号の変化を検出し前記自動検証部に返信する信号比較検出部と、
前記信号比較検出部の検出結果に基づいて、前記データおよび前記データに基づく出力画像の少なくとも一方を検証結果ファイルへ記録する画像データ記録部とを備えた、請求項３に記載のプログラム検証システム。
【請求項１５】
前記データおよび前記データに基づく出力画像の少なくとも一方について、記録回数を制限する回数制限部をさらに備えた、請求項１３または１４に記載のプログラム検証システム。
【請求項１６】
前記データおよび前記データに基づく出力画像の少なくとも一方について、記録時間を制限する時間制限部をさらに備えた、請求項１３または１４に記載のプログラム検証システム。
【請求項１７】
画像記録を開始する最初の画像と、実行経過で変化する２枚目以降の画像とを比較する比較部をさらに備え、
前記比較部による比較結果が同じであれば、前記自動検証部による画像記録を終了する、請求項１３または１４に記載のプログラム検証システム。
【請求項１８】
前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、
前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、
前記シナリオファイルで定義した１または複数の出力データを記録する手順に従って、前記周辺出力デバイスにおけるＲＡＭデータの変化を検出し前記自動検証部に返信するデータ比較検出部と、
前記データに基づく画像データを前記自動検証部へ返信する画像データ転送部と、
前記自動検証部で画像データを表示し検証結果ファイルへ記憶する表示記憶部とを備えた、請求項３に記載のプログラム検証システム。
【請求項１９】
前記検証結果ファイルに、画像記録の終了条件を記録する画像条件記録部をさらに備えた、請求項１３，１４，１８のいずれか一項に記載のプログラム検証システム。
【請求項２０】
複数のデータまたは画像を記録する際の時間間隔に関する情報を記録する画像時間記録部を備えた、請求項１３，１４，１８のいずれか一項に記載のプログラム検証システム。
【請求項２１】
シングルチップマイコンのデバッグ対象プログラムを動作させる単独実行可能な実マイコンと、前記実マイコンによる前記プログラムの実行動作をシミュレーションする単独実行可能な仮想マイコンと、前記実マイコンおよび前記仮想マイコンを動作させるために必要なデータ入力を行う周辺入力デバイスとを有するプログラム検証システムにおいて、前記周辺入力デバイスと前記実マイコンおよび仮想マイコンとの間に設けられるコンピュータ、あるいは、前記仮想マイコンを具現化するコンピュータに読み込まれて実行されるプログラム検証システム制御用コンピュータプログラムであって、
前記コンピュータに、前記周辺入力デバイスから前記実マイコンおよび仮想マイコンの一方または両方を選択して前記周辺入力デバイスからの入力データを転送する処理と、前記実マイコンおよび仮想マイコンの作動／停止を制御する処理とを行わせる命令を含むことを特徴とするプログラム検証システム制御用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実マイコンおよび仮想マイコンを混載し、テスト内容により実マイコンおよび仮想マイコンを切換えてデバッグ対象プログラムの動作検証を行うシステムおよびこのシステムに用いられる制御用プログラムに関する。
【背景技術】
【０００２】
従来、シングルチップマイコン制御用アプリケーションプログラムのデバッグは、図１８に示すように、ターゲットとなるシングルチップマイコンの代わりに、当該シングルチップマイコンの全機能をエミュレートできるインサーキットエミュレータ（以下ＩＣＥと称する）５７をデバッグボード５４に組み込んだものを、ハードウエアで構成された実機デバッグセット（周辺デバイス４９）に接続して行われていた。
【０００３】
しかし、このようなデバッグセットを用いる場合、プログラムのテストを行うためには、システムを動作させるハードウエアが先行完成していることが必須条件である。このため、ソフトウエア開発の工程がハードウエア開発の進捗状況に大きく左右されるという問題があった。
【０００４】
この問題を解決するために、ターゲットとなるシングルチップマイコンのシミュレーションおよび周辺デバイスのシミュレーションを行うことで、実機を使わずにプログラムを評価する方法が提案されている。
【０００５】
このようなシミュレーションによる従来のプログラム検証システムの一例として、テスト／デバッグの対象となるプログラムと、マイクロプロセッサユニット（ＭＰＵ）およびメモリを模擬する擬似エミュレータと、入出力を模擬する入出力装置模擬部と、ＭＰＵと１つ以上の入出力装置を接続する信号線を模擬する入出力装置実行制御機構と、シミュレータの起動順序を記述した起動定義ファイルと、Ｉ／ＯモニタとＩ／Ｏモデルのプロセスを起動／終了する手段と、ユーザが全てのＩ／Ｏモデルのリソース情報を参照・変更できる手段とＩ／ＯモデルとＩ／Ｏモニタの接続関係を表示する手段を持つ入出力模擬部操作環境とで構成されたシステムがある（例えば特許文献１参照）。それぞれの構成要素は、複数のプロセスで構成され、仮想配線にて接続されている。この従来のシミュレーション方法では、図３０に示す通り、擬似マイコン７３にてプログラムを評価する仮想ＩＣＥ７０と、マイコンの実機周辺入出力デバイスを模擬する仮想デバイス６３を、擬似配線８４にて接続して実現する。
【０００６】
また、実機デバッグ方法とシミュレータデバッグ方法の両方の良いところを合わせた実機・シミュレータ混載システムも提案されている。その一例を図３１に示す。図３１に示すシステムでは、テスト／デバッグの対象となるプログラムｂと実エミュレータ２１０を組込んだ実マイコン２００を利用した実機デバッグセットと、周辺入出力デバイスとして仮想周辺デバイスある仮想リモコン３００や仮想ＬＣＤ等の仮想入出力デバイスを混載システムである。このシステムでは、実マイコン部２００と仮想入出力デバイスとの入出力データの受渡しは、専用の実機インターフェースボード８５を用いて実現されている（例えば、特許文献２参照）。
【０００７】
以上のように、プログラムのテストに際して、論理的なテスト（以下論理テストと称する）を行う場合はシミュレータを使ってテストし、タイミング的なテスト（以下タイミングテストと称する）を行う場合はハードウエアを使ってテストする。例えば、プログラムのモジュールに入力する全ての入力データに対する出力データを検証する場合は論理テストを行う。マイコン周辺の入力デバイスから作為的に異常データを発生させ、プログラムに入力する論理テストもある。プログラムのメイン処理と割込み処理の競合によるＲＡＭ破壊、処理の応答時間等を検証するのはタイミングテストである。
【０００８】
従来のプログラム検証方法は、プログラムを効率よくテストする視点から考え、プログラムの機能毎にテストシナリオを作成することがある。この場合、テスト内容に、論理テストとタイミングテストが混在してしまうため、デバッグセットを操作する視点からみると、テスト項目に合わせてタイミングテストを行う実機デバッグセットと、論理テストを行うシミュレーションデバッグセットとを切換えて使いながらテストすることになる。従って、テスト効率が低下するが、従来は、デバッグセットの操作性を重視して、論理テストとタイミングテストに分けてプログラムのテストシナリオを作成していた。
【特許文献１】特開平９−１１４７００号公報（第１図）
【特許文献２】特開平８−６８１０号公報（第２図）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
テストシナリオは、テストするプログラムの機能視点で記述し、論理テストとタイミングテストを混在させても、テスト効率を向上させるために、実機デバッグシステムと仮想マイコンを使ったシミュレーションシステムを組合せたデバッグシステム、すなわち、実マイコンと仮想マイコンと周辺デバイス（実機デバイスと仮想デバイス）を混載したデバッグシステムとすることが望ましい。しかし、この方式では、以下の課題がある。
【００１０】
単独実行可能な仮想マイコンのアプリケーションと単独実行可能な実マイコンのアプリケーションを同時に起動すると、これらのアプリケーションが競合してしまい、正常に動作しない。このため、デバッグ対象プログラムの検証は、実マイコンと仮想マイコンを切換えて使ってプログラムテストを行うことになる。例えば、論理テストをする場合には、実マイコンのアプリケーションを終了させ、仮想マイコンのアプリケーションを起動し、マイコン周辺デバイスと接続した後、テストを行う。タイミングテストを行う場合には、逆に仮想マイコンのアプリケーションを終了させ、実マイコンのアプリケーションを起動し、マイコン周辺デバイスと接続した後、テストを行うことになる。このように、仮想マイコンのアプリケーションと実マイコンのアプリケーションの終了・起動を繰返すことでしかプログラム検証が実現出来なかった。このため、マイコンの停止・再起動の切換えの手間および時間がかかるという問題があった。また、自動検証を行う場合に、テストシナリオに、論理テストとタイミングテストが混在している場合、実マイコンと仮想マイコンを自動的に切換えできないためにテストができなかった。
【００１１】
これらにより、プログラムのデバッグおよび検証を効率よく行えないという問題があった。本発明は、上記の問題に鑑み、実マイコンと仮想マイコンとを用いてプログラムのデバッグおよび検証を効率よく行えるハイブリッドプログラム検証システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明にかかるプログラム検証システムは、上記の目的を達成するために、シングルチップマイコンのデバッグ対象プログラムを動作させる、単独実行可能な実マイコンと、前記実マイコンによる前記プログラムの実行動作をシミュレーションする、単独実行可能な仮想マイコンと、前記実マイコンおよび前記仮想マイコンを動作させるために必要なデータ入力を行う周辺入力デバイスと、前記周辺入力デバイスと前記実マイコンおよび仮想マイコンとの間に設けられ、前記周辺入力デバイスから前記実マイコンおよび仮想マイコンへのデータ転送制御と、前記実マイコンおよび仮想マイコンの作動／停止制御とを行うマイコン制御部とを備え、前記マイコン制御部が、前記実マイコンおよび仮想マイコンの一方または両方を選択して前記周辺入力デバイスからの入力データを転送すると共に、転送先のマイコンを作動させることを特徴とする。
【００１３】
なお、本発明にかかるプログラム検証システムにおいて、仮想マイコンとマイコン制御部とは、単一のアプリケーションとして実装することもできるし、それぞれが単独実行可能なアプリケーションであっても良い。
【００１４】
また、本発明にかかるプログラム検証システム制御用コンピュータプログラムは、シングルチップマイコンのデバッグ対象プログラムを動作させる単独実行可能な実マイコンと、前記実マイコンによる前記プログラムの実行動作をシミュレーションする単独実行可能な仮想マイコンと、前記実マイコンおよび前記仮想マイコンを動作させるために必要なデータ入力を行う周辺入力デバイスとを有するプログラム検証システムにおいて、前記周辺入力デバイスと前記実マイコンおよび仮想マイコンとの間に設けられるコンピュータ、あるいは、前記仮想マイコンを具現化するコンピュータに読み込まれて実行されるプログラム検証システム制御用コンピュータプログラムであって、前記コンピュータに、前記周辺入力デバイスから前記実マイコンおよび仮想マイコンの一方または両方を選択して前記周辺入力デバイスからの入力データを転送する処理と、前記実マイコンおよび仮想マイコンの作動／停止を制御する処理とを行わせる命令を含むことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、仮想マイコンおよび実マイコンを同時起動した後、仮想マイコンと実マイコンを切換えてプログラム検証することが可能になる。
【発明を実施するための最良の形態】
【００１６】
本発明にかかるプログラム検証システムは、前記周辺入力デバイスを複数備え、前記マイコン制御部が、データ入力を行うべき周辺入力デバイスを前記複数の周辺入力デバイスから選択するようにしても良い。この複数の周辺入力デバイスには、実機入力デバイスと仮想入力デバイスの両方を含み得る。
【００１７】
本発明にかかるプログラム検証システムは、実マイコンまたは仮想マイコンの実行結果を出力する周辺出力デバイスをさらに備え、前記マイコン制御部が、前記実マイコンまたは仮想マイコンからの出力データを前記周辺出力デバイスへ転送することが好ましい。周辺出力デバイスにより、実マイコンまたは仮想マイコンによる実行結果を確認することができるからである。また、この周辺出力デバイスを複数備え、前記マイコン制御部が、出力データを転送すべき周辺出力デバイスを前記複数の周辺出力デバイス部から選択する態様としても良い。
【００１８】
また、本発明にかかるプログラム検証システムにおいて、前記仮想マイコンが、前記仮想マイコンの作成時にコンパイラが出力するシンボル情報に基づいて生成されたシンボル定義を扱うことが可能な疑似デバッガをさらに備えたことが好ましい。仮想マイコンと実マイコンとを切換えてデバッグ対象プログラムを検証する場合、例えば、仮想マイコンとマイコン制御部とが一体型である一つのアプリケーションとすると、マイコン制御部から仮想マイコンのＲＡＭの読書きは、簡単に読書きできるＲＡＭシンボル名を直接参照する方法をとれる。しかし、実マイコンは、ＲＡＭシンボル名を直接参照できないため、ＲＡＭシンボル名の文字列をマイコン制御部から実マイコンへ渡し、ＲＡＭシンボル名の文字列から実デバッガ内でＲＡＭシンボル名へ変換を行って、ＲＡＭ内のデータを読書きする方法をとっていた。このため、仮想マイコンと実マイコンではＲＡＭの読書き制御コマンドが違っていた。例えば、プログラムをシミュレータテストする際にテストＲＡＭを追加する場合は、同じ内容を実マイコンでテストするために、ＲＡＭを操作するプログラムを追加・修正する必要がある。また、その逆も同様で、読書きするＲＡＭを追加する際は、必ず、シミュレータ検証と実マイコン検証の両方に対応したプログラム作成が必要であり、二度手間であった。上記の構成は、シンボル定義を扱える疑似デバッガを備えたことにより、この問題を解決するものである。
【００１９】
なお、より具体的には、ただしこれに限定されるべきではないが、マイコン制御部と一体型の仮想マイコンに擬似デバッガを組み込むと、マイコン制御部内のマイコン実行部が仮想マイコンと実デバッガに対して同じコマンドで制御できる。合わせて、擬似デバッガが、ＲＡＭシンボル名を扱える様にするため、例えばＭｉｃｒｏｓｏｆｔ社のＶｉｓｕａｌＣ＋＋アプリケーション等のコンパイラが出力するシンボル情報が記録されているファイルを解析し、擬似デバッガが利用可能なシンボル定義ファイルを生成するシンボル変換装置を付けることで、擬似デバッガは、実デバッガと同じＲＡＭシンボル名が扱える様になる。これにより、マイコン実行から実デバッガに発行するコマンドと同じコマンドを仮想マイコンに対して発行可能になり、ＲＡＭの読書き処理および擬似エミュレータおよび実エミュレータのマイコン実行を共通化し、二度手間が無くなる。
【００２０】
また、本発明にかかるプログラム検証システムにおいて、前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、前記自動検証部は、前記シナリオファイルに従って、各検証手順において実行すべきマイコンを選択し、選択結果を前記マイコン制御部へ渡すデバイス選択部を備え、前記マイコン制御部は、前記デバイス選択部の指示に従って、前記仮想マイコンおよび前記実マイコンの一方または両方を選択し作動させるマイコン実行部を備えたことが好ましい。
【００２１】
また、本発明にかかるプログラム検証システムにおいて、前記マイコン制御部が、前記周辺入力デバイスから前記仮想マイコンと前記実マイコンに同じ入力データを送る並列実行部と、前記仮想マイコンと前記実マイコンから実行結果をそれぞれ取得し、取得したデータを周辺出力デバイスに転送する出力分配部とを備え、前記周辺出力デバイスが、前記仮想マイコンの実行結果と前記実マイコンの実行結果とを対比可能な状態に表示することが好ましい。また、本発明にかかるプログラム検証システムにおいて、前記マイコン制御部が、前記周辺入力デバイスから前記仮想マイコンと前記実マイコンに同じ入力データを送る並列実行部と、前記仮想マイコンと前記実マイコンから実行結果をそれぞれ取得し、取得したデータの差異を求めて前記周辺出力デバイスへ出力する比較分析部とを備えた態様も好ましい。
【００２２】
プログラム開発段階を、シミュレーションから実機デバッグセット開発に移行する際に、仮想マイコンと実マイコンとでプログラム動作に相違があった場合に、プログラムが悪いのか、実機セットが悪いのか、あるいはシミュレーションシステムが悪いのかの判断を迅速に行うことが必要である。このために、マイコン制御部から仮想マイコンと実マイコンにリモコン等の同じ入力を加えることで同じ動作をさせ、それぞれのマイコンの出力結果を比較することで、動作の差異を検出することができる。
【００２３】
比較する方法として、先ず、周辺デバイス部のリモコン等からリモコンコードをマイコン制御部に送信し、マイコン制御部が、実マイコンと仮想マイコンに同じリモコンコードを送信するマイコン実行と、送信後にそれぞれのマイコンから返信データを受取るマイコン制御、および受信したデータを２つの表示デバイスに分けて送信し、実マイコンと仮想マイコンの動作比較を表示イメージにて行うようにしても良い。
【００２４】
また、本発明にかかるプログラム検証システムにおいて、前記仮想マイコンおよびマイコン制御部のそれぞれが単独実行可能なアプリケーションとして実装され、前記仮想マイコンと前記マイコン制御部とが仮想配線を介して接続され、前記マイコン制御部の指示により前記仮想マイコンの実行を終了させ、再起動を行うリスタート指示部と、前記リスタート指示部から仮想配線を経由して前記仮想マイコンのプロセスを終了および再起動するリスタート実行部とを備えたことが好ましい。さらに、この構成において、前記リスタート指示部が、前記仮想配線に接続された全ての単独実行可能なアプリケーション内に組み込まれ、前記リスタート実行部は、仮想配線に接続された単独実行可能な全てのアプリケーションデバイスに対して、終了および再起動を行う態様としても良い。
【００２５】
また、本発明にかかるプログラム検証システムにおいて、前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、前記自動検証部は、前記シナリオファイルに従って、各検証手順において実行すべきマイコンを選択し、前記仮想マイコンおよび前記実マイコンが用いるＲＡＭの読み書きおよび前記仮想マイコンおよび前記実マイコンの作動／停止を行うマイコン選択実行部を備えたことが好ましい。さらに、この構成において、仮想マイコンおよび実マイコンがそれぞれ複数設けられ、前記マイコン選択実行部が、前記複数の仮想マイコンまたは複数の実マイコンから、実行すべきマイコンを選択し、選択された仮想マイコンおよび実マイコンが用いるＲＡＭの読み書きおよび前記仮想マイコンおよび前記実マイコンの作動／停止を行う態様としても良い。
【００２６】
また、前記自動検証部で、前記シナリオファイルに従って、実行した結果を検証結果ファイルに記録するデータとして、RAMデータおよび信号値および画像データを複数記録することで、検証するプログラムの動作が時系列で把握できるため、検証精度を向上させることができる。RAMデータおよび信号値および画像データを記録するときに、プログラム検証するテスト項目に合わせて、記録する数（回数）や、記録時間を設定することで検証時間の短縮を行う。
【００２７】
また、本発明にかかるプログラム検証システムにおいて、前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、前記シナリオファイルで定義した１または複数の出力データを記録する手順に従って、前記周辺出力デバイスにおけるデータの変化を検出し前記自動検証部に返信するデータ比較検出部と、前記データ比較検出部の検出結果に基づいて、前記データおよび前記データに基づく出力画像の少なくとも一方を検証結果ファイルへ記録する画像データ記録部とを備えたことが好ましい。
【００２８】
また、本発明にかかるプログラム検証システムにおいて、前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、前記シナリオファイルで定義した１または複数の出力データを記録する手順に従って、前記周辺出力デバイスにおける信号の変化を検出し前記自動検証部に返信する信号比較検出部と、前記信号比較検出部の検出結果に基づいて、前記データおよび前記データに基づく出力画像の少なくとも一方を検証結果ファイルへ記録する画像データ記録部とを備えたことが好ましい。
【００２９】
また、本発明にかかるプログラム検証システムにおいて、前記データおよび前記データに基づく出力画像の少なくとも一方について、記録回数を制限する回数制限部をさらに備えたことが好ましい。
【００３０】
また、本発明にかかるプログラム検証システムにおいて、前記データおよび前記データに基づく出力画像の少なくとも一方について、記録時間を制限する時間制限部をさらに備えたことが好ましい。
【００３１】
また、本発明にかかるプログラム検証システムにおいて、画像記録を開始する最初の画像と、実行経過で変化する２枚目以降の画像とを比較する比較部をさらに備え、前記比較部による比較結果が同じであれば、前記自動検証部による画像記録を終了することが好ましい。
【００３２】
また、本発明にかかるプログラム検証システムにおいて、前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、前記シナリオファイルで定義した１または複数の出力データを記録する手順に従って、前記周辺出力デバイスにおけるＲＡＭデータの変化を検出し前記自動検証部に返信するデータ比較検出部と、前記データに基づく画像データを前記自動検証部へ返信する画像データ転送部と、前記自動検証部で画像データを表示し検証結果ファイルへ記憶する表示記憶部とを備えたことが好ましい。
【００３３】
また、本発明にかかるプログラム検証システムにおいて、前記検証結果ファイルに、画像記録の終了条件を記録する画像条件記録部をさらに備えたことが好ましい。
【００３４】
また、本発明にかかるプログラム検証システムにおいて、複数のデータまたは画像を記録する際の時間間隔に関する情報を記録する画像時間記録部を備えたことが好ましい。
【００３５】
さらに、単独実行可能な仮想マイコン・マイコンコントローラ一体部内のマイコンコントローラが、仮想マイコンのリセットスタート（以下リスタート）を行う際に、マイコンコントローラのスレッドから仮想マイコンのスレッドを終了し、再度仮想マイコンのスレッドを起動することで仮想マイコン内のプログラムを強制終了し、初期化処理から再実行をさせることで、リスタートと同様な動作をさせていた。しかし、この方法では、ユーザＲＡＭおよびデバッグＲＡＭの初期化はできなかった。そこで、仮想マイコンとマイコン制御部とを分離し、それぞれを単独実行可能なアプリケーションにすることで、マイコン制御部から仮想マイコンに対してリスタート要求を出して、仮想マイコンのアプリケーションを終了し、再起動させる。これにより、ユーザＲＡＭおよびデバッグＲＡＭの初期化ができる。このため、仮想マイコンとマイコン制御部に仮想バススロットを付け、マイコン制御部から仮想配線マネージャに仮想マイコンのアプリケーション終了・起動コマンドを発行し、仮想配線マネージャが仮想マイコンのアプリケーションを終了した後、再起動させることで実マイコン同等のリスタートを実現することもできる。
【００３６】
以下、本発明のより具体的な実施形態について、図面を参照しながら説明する。
（用語説明）
最初に、以下の各実施形態で用いる用語を説明する。
【００３７】
ＶＣ＋＋とは、Ｍｉｃｒｏｓｏｆｔ社のＶｉｓｕａｌ  Ｓｔｕｄｉｏ  Ｖｅｒ．６または、Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ．ｎｅｔ  Ｐｒｏｆｅｓｓｉｏｎａｌ  ＶｉｓｕａｌＣ＋＋等のＣ言語コンパイラである。
【００３８】
プログラムとは、ユーザが開発するデバッグ対象プログラム（以下プログラムと称する）であり、仮想マイコン上で実行される形式（例えばプログラム１０２）と、実マイコン上で実行される形式（例えばプログラム２０２）がある。
【００３９】
周辺デバイス部とは、仮想マイコン１００および実マイコン２００の動作検証に必要なデバイスであり、実機入出力デバイスと仮想入出力デバイスがある。例えば、仮想入力デバイスとしては仮想リモコン３００、仮想出力デバイスとしては仮想ＬＣＤ（液晶ディスプレイ）３２０、実機入力デバイスとしては実リモコン３３０、実機出力デバイスとしては実ＬＣＤ３１０がある。ただし、周辺デバイスはこれらの具体例のみに限定されない。
【００４０】
デバッガとは、実マイコン２００をデバッグするための実エミュレータ２１０を制御する実デバッガ２１２と、仮想マイコン１００および仮想マイコン１２０を制御する擬似エミュレータ１１０を制御する擬似デバッガ１１２である。
【００４１】
実エミュレータとは、プログラム２０２を実行するために、実機の組込みマイコンをエミュレートするインサーキットエミュレータである。
【００４２】
擬似エミュレータとは、プログラム１０２を実行するために、実機の組込みマイコンに搭載されている機能（割込み、タイマ、タスク等）をシミュレーションするための、マイコンのシミュレータである。
【００４３】
仮想配線とは、仮想マイコン・マイコンコントローラ一体部５０と実マイコン２００と周辺デバイス部３０と自動検証部４０等を仮想的に接続する配線である。なお、仮想マイコン・マイコンコントローラ一体部５０と実マイコン２００と周辺デバイス部３０と自動検証部４０等を複数のパーソナルコンピュータで実現した場合は、この仮想配線１２として、無線ＬＡＮ、有線ＬＡＮ等のネットワーク、ＵＳＢ、ＲＳ２３２Ｃ、ＩＥＥＥ１３９４等のパソコン間を接続する実配線を利用できる。また、仮想マイコン・マイコンコントローラ一体部５０と実マイコン２００と周辺デバイス部３０と自動検証部４０等を一台のパーソナルコンピュータ内で複数の単独実行可能なアプリケーションとして実現した場合は、仮想配線１２は、アプリケーション間にて通信可能なＤＤＥ、ＣＯＭ等のデータ通信機能を利用して実現できる。本実施形態では、仮想配線を、本願の出願人による先の特許出願（特願２００２−２０７８８４号）にて出願されているバス擬似化装置を用いて実施している。
【００４４】
成りすましとは、一例として、図２に示す通り、入力デバイスとして仮想リモコン３００と実リモコン３３０とマイコンコントロール５２０が、仮想配線１２に接続する場合のデバイス名を仮想リモコン３００は、「ＲＥＭＯ」とし、実リモコン３３０は「ＲＥＭＯ１」とし、マイコンコントロール５２０は、「ＣＴＬ」として接続する。マイコンコントロール５２０は、仮想リモコン３００からの受信を許可する設定にした場合に、仮想リモコン３００から送信先デバイス名「ＣＴＬ」を指定するだけで、マイコンコントロール５２０は、仮想リモコン３００からデータを受信できる。しかし、実リモコン３３０からマイコンコントロール５２０に送信先デバイス名を「ＣＴＬ」として送信しても、マイコンコントロール５２０は受信しない。そこで、図３２に示す通り、実リモコン３３０が、送信デバイス先名の指定時に「ＣＴＬ．ＲＥＭＯ」と指定すると、マイコンコントロール５２０は、仮想リモコン３００からの受信と判断して受信する。これを成りすまし機能という。この成りすまし機能を使えは、入力デバイスを増やした場合でも、マイコンコントロール５２０が受信を許可する設定にするためのプログラム修正は不要になる。
【００４５】
同報通信とは、一例として、図２に示す通り、出力デバイスとして仮想ＬＣＤ３２０と実ＬＣＤ３１０とマイコンコントローラ５２０が仮想配線１２に接続する場合のデバイス名を仮想ＬＣＤ３２０は「ＬＣＤ」とし、実ＬＣＤ３１０は、「ＬＣＤ１」とし、マイコンコントローラ５２０は、「ＣＴＬ」として接続する。マイコンコントロール５２０が、ＬＣＤ表示データを仮想ＬＣＤ３２０に転送するプログラムにしていた場合、実ＬＣＤ３１０に転送する場合は、マイコンコントロール５２０に実ＬＣＤ３１０にも転送するプログラムを作成する必要がある。また逆に、仮想ＬＣＤ３２０と実ＬＣＤ３１０に送るプログラムにした状態で、仮想ＬＣＤ３２０が不要になったので外す場合も同様に、マイコンコントロール５２０は仮想ＬＣＤ３２０に転送しないプログラムを作成する必要がある。そこで、仮想ＬＣＤ３２０と実ＬＣＤ３１０の変更をせずに、それぞれのＬＣＤ表示デバイスに転送を制御する機能が、同報通信である。同報通信は、図２の通信定義データａ１５および通信定義データｂ１７の設定により、仮想配線バスマネージャが、１つまたは、複数のデバイスに対して転送先を設定できる。この同報通信機能を使えば、出力デバイスを増減したい場合でも、マイコンコントロール５２０が送信を行うためのプログラム修正は不要になる。
【００４６】
通信定義データａ１５および通信定義データｂ１７に設定するデータ内容を、ＬＣＤ：”ＬＣＤ”，”ＬＣＤ１”とすれば、マイコンコントロール５２０が「ＬＣＤ」に送信した場合に、仮想配線バスマネージャが「ＬＣＤ」と「ＬＣＤ１」の両方に転送する。また、通信定義データａ１５および通信定義データｂ１７に設定するデータ内容を、ＬＣＤ：”ＬＣＤ１”とすれば、マイコンコントロール５２０が「ＬＣＤ」に送信した場合は、仮想配線バスマネージャが「ＬＣＤ１」のみ転送する。
【００４７】
非同期送信とは、仮想配線１２を利用して通信する手段であるが、データを通信相手に一方的に送信するだけで返信がない通信方法である。
【００４８】
同期送信とは、仮想配線１２を利用して通信する手段であるが、データを通信相手に送信した後、通信相手から返信データが返ってくるまで次の処理に進まず、待っている通信方法である。
【００４９】
ハイブリッドマイコンエンジンとは、実マイコン２００と仮想マイコン１００を複数混載して、目的に応じてマイコンを切換えて一つまたは複数で実行可能なマイコンである。
【００５０】
ハイブリッド入力デバイスとは、仮想マイコン１００または仮想マイコン１２０または実マイコン２００に入力するデバイスを、通信データフォーマットが同じであれば、仮想リモコン３００または実リモコン３３０から成りすまし機能を使って、自動検証部４０のシナリオファイルに定義した内容に従い、何れからでも入力可能である。
【００５１】
ハイブリッド出力デバイスとは、仮想マイコン１００または仮想マイコン１２０または実マイコン２００が出力するデバイスを、通信データフォーマットが同じであれば、仮想ＬＣＤ３２０または実ＬＣＤ３１０へ同報通信機能を使って、自動検証部４０のシナリオファイルに定義した内容に従い、何れかに出力可能である。
【００５２】
マルチスレッドとは、プログラム動作を軽くするために、プロセス（例えば１つのＷｉｎｄｏｗｓアプリケーション、なお、「Ｗｉｎｄｏｗｓ」はマイクロソフト社の登録商標である。）を複数のスレッドに分割し、別々に実行できるようにする機能をいう。
【００５３】
（第１実施形態）
＜第１実施形態の構成＞
以下、本発明の第１実施形態について、図を用いて説明する。
【００５４】
本実施形態にかかるハイブリッドプログラム検証システムは、図３に示す通り、マイコン周辺の入出力デバイスとしての周辺デバイス部３０と、実マイコン２００と、仮想マイコン・マイコンコントローラ一体部５０と、自動検証部４０とが、仮想配線マネージャ１０により制御される仮想配線１２を介して相互に接続された構成である。
【００５５】
周辺デバイス部３０は、（１）仮想入力デバイスとしての単独実行可能な仮想リモコン３００と、（２）仮想出力デバイスとしての単独実行可能な仮想ＬＣＤ３２０と、（３）実機入力デバイスとしての単独実行可能な実リモコン３３０と、（４）実機出力デバイスとしての単独実行可能な実ＬＣＤ３１０とを備えている。これらの入出力デバイスは、仮想配線スロット１４を介してそれぞれ仮想配線１２に接続されている。なお、実リモコン３３０は、上記の仮想配線スロット１４とＲＳ２３２Ｃブリッジ３３２を含むリモコンブリッジ３３４により仮想配線１２に接続されている。また、実ＬＣＤ３１０は、その内部のＲＳ２３２Ｃデバイスドライバ３１４を介してＬＣＤブリッジ３１８に接続されている。ＬＣＤブリッジ３１８は、上記の仮想配線スロット１４およびＲＳ２３２Ｃブリッジ３１６から構成される。
【００５６】
実マイコン２００は、テスト／デバッグの対象となるプログラム（プログラム２０２）とそのエミュレータ（実エミュレータ２１０）を実機マイコンに組み込んだ実機デバッグセットであり、単独で実行可能である。実エミュレータ２１０には、実デバッガ２１２が接続されている。また、プログラム２０２は、テスト／デバッグの対象プログラムを実エミュレータ２１０上での実行形式にしたものである。また、実マイコン２００は、さらに、プログラム２０２の実行を制御するユーザＲＡＭ２０４のデータを仮想配線１２経由で他のデバイスと通信するために、プログラム２０２の実行状態に同期化してユーザＲＡＭ２０４とデータ転送するデバッグＲＡＭ２０８に読書きを行うＳｉｍ・ＩＣＥ兼用デバッグプログラム２０６と、仮想配線スロット１４とを備えている。ただし、プログラム２０２の実行状態に同期化してユーザＲＡＭ２０４の読書きが不要な場合は、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６は、直接ユーザＲＡＭ２０４を読書きする。
【００５７】
仮想マイコン・マイコンコントローラ一体部５０は、実マイコンのシミュレータである仮想マイコン１００とマイコンコントローラ５００とを備え、単独実行可能なアプリケーションプログラムである。仮想マイコン１００は、疑似エミュレータ１１０と、疑似エミュレータ１１０上での実行形式にされたデバッグ対象プログラム（プログラム１０２）と、プログラム１０２の実行を制御するユーザＲＡＭ１０４のデータを仮想配線１２経由で他のデバイスと通信するために、プログラム１０２の実行状態に同期化してユーザＲＡＭ１０４とデータ転送するデバッグＲＡＭ１０８に読書きを行うＳｉｍ用デバッグプログラム１０６と、ユーザＲＡＭ１０４と、デバッグＲＡＭ１０８と、疑似デバッガ１１２とを備えている。ただし、プログラム１０２の実行状態に同期化してユーザＲＡＭ１０４の読書きが不要な場合は、Ｓｉｍ用デバッグプログラム１０６は、直接ユーザＲＡＭ１０４を読書きする。
【００５８】
マイコンコントローラ５００は、データ解析・実行部５０６と、マイコン制御部５０４と、マイコン実行部５０２と、ＩＣＥ制御部５０８と、比較分析部５０９と、ＲＡＭサンプリング部５０７と、仮想配線スロット１４とを備えている。
【００５９】
以上の構成により、本実施形態のハイブリッドプログラム検証システムは、テスト項目に合わせて作動させるマイコンを切換えることが可能となっている。また、本ハイブリッドプログラム検証システムは、手動によるプログラム検証（周辺入力デバイスを作業者が操作して行うプログラム検証）の他に、自動によるプログラム検証（自動検証部４０のシナリオファイル４１２に検証手順を登録して自動的に実行させるプログラム検証）も可能である。
【００６０】
手動によるプログラム検証では、周辺入力デバイスである仮想リモコン３００または実リモコン３３０等の何れか１つから操作者がデータ入力を行う。入力したデータは、マイコンコントローラ５００により、テスト項目が論理テストまたはタイミングテストであるかに応じて、論理テストを行う仮想マイコン１００またはタイミングテストを行う実マイコン２００の少なくとも一方へ選択的に転送される。そして、選択されたマイコンが実行
した出力データを、マイコンコントローラ５００が取得し、周辺デバイス部３０へ転送して画像イメージまたはデータ表示を行う。画像イメージを表示する場合は、周辺デバイス部３０内の仮想ＬＣＤ３２０または実ＬＣＤ３１０等の複数の出力デバイスに表示することが好ましい。
【００６１】
実マイコン２００または仮想マイコン１００による実行結果は、マイコンコントローラ５００内の比較分析部５０９で分析・比較される。例えば、実マイコン２００および仮想マイコン１００の両方で同じ入力データを処理させた結果を、比較分析部５０９で比較するようにしても良い。比較結果の出力形式は任意であるが、例えば図４に示す通り、１つの入力データを２つのマイコンに入力した結果として得られた出力ＲＡＭデータおよび表示デバイス画像を、入力データと並べて表示または印刷出力することで、２つのマイコンの動作に差異がある場合に検出が容易になる。
【００６２】
自動によるプログラム検証では、自動検証部４０において、シナリオファイル４１２内に記述された自動テストの手順（シナリオ）を自動検証制御部４００が入力し、そのシナリオで指定されたテスト項目の指示に従って、マイコンコントローラ５００が、仮想マイコン１００または実マイコン２００の少なくとも一方を選択して、入力データを転送する。
【００６３】
実マイコン２００または仮想マイコン１００による実行結果は、シナリオファイル４１２で指定された出力デバイスに対して転送され、画像イメージまたはデータとして表示される。シナリオファイル４１２で設定された、実行すべきマイコンおよび出力表示すべきデバイスは、自動検証制御部４００からマイコンコントローラ５００へ、図５に示すようなメッセージデータとして送信される。例えば、図５のメッセージ項目Ｎｏ．８について説明すると、自動検証メッセージで、出力表示デバイス指定のパラメータはＯＵＴｄｅｖｉｃｅの項目でＲＥ＿ＬＣＤと指定されている。このＲＥ＿ＬＣＤは、実機ＬＣＤ表示デバイスを表す。ここで、ＶＨ＿ＬＣＤを指定すると、仮想ＬＣＤ表示デバイスを指定したこととなる。
【００６４】
画像イメージを表示する場合は、周辺デバイス部３０内の仮想ＬＣＤ３２０または実ＬＣＤ３１０等の複数の出力デバイスに表示する。自動プログラム検証の場合、マイコンコントローラ５００内の比較分析部５０９でデータ分析またはデータ比較（複数マイコンで実行した場合）を行った結果を、例えばマイクロソフト社のＥｘｃｅｌ（登録商標）等の表計算アプリケーションプログラムを利用して、画像イメージあるいはデータとして自動記録するようになっている。あるいは、比較分析部５０９が、過去に記録した検証結果と比較するようにしても良い。比較分析部５０９による出力例は、図４に示したとおりである。図４に示すように、２つのマイコンで実行された結果として得られる出力ＲＡＭデータと表示デバイスの画像とを、入力データと共に並べて出力することで、２つのマイコンの動作の差異がある場合に、容易に検出可能になる。
【００６５】
＜シンボル定義＞
ＶＣ＋＋を実行するＶＣコンパイラ６００でコンパイルした後、出力されるＲＡＭ変数のアドレス番地等のシンボル情報ファイルを元に、シンボル変換部６０２で、擬似デバッガ１１２が利用可能なＣ言語プログラムのシンボル定義部６０４を作成し、仮想マイコン１００内のプログラムソースファイルを一緒にコンパイルする。ＶＣ＋＋が出力するシンボル情報からシンボル定義部６０４に変換する内容の一例は、図６に示す通りである。
【００６６】
＜各デバイスを自動的に仮想配線に接続する初期化処理＞
図３に示す単独実行可能な仮想リモコン３００を起動すると、仮想配線マネージャ１０が既に起動していなければ、自動的にこれを起動し、仮想リモコン３００内の仮想配線ス
ロット１４と仮想配線マネージャ１０が自動配線され、仮想配線１２ができる。
【００６７】
次にＲＳ２３２Ｃ通信が可能な実機である実リモコン３３０を起動した後、単独実行可能なリモコンブリッジ３３４を起動し、リモコンブリッジ３３４内のＲＳ２３２Ｃブリッジ３３２と実リモコン３３０をＲＳ２３２Ｃにて接続すると同時に、リモコンブリッジ３３４内の仮想配線スロット１４と仮想配線マネージャ１０が自動配線される。
【００６８】
次に、単独実行可能な仮想ＬＣＤ３２０を起動し、仮想ＬＣＤ３２０内の仮想配線スロット１４と仮想配線マネージャ１０が自動配線される。また、仮想ＬＣＤ３２０は、マイコンコントローラ５００からのＬＣＤ表示データを受信する許可を行う。
【００６９】
次にＲＳ２３２Ｃ通信が可能な実機である実ＬＣＤ３２０を起動した後、単独実行可能なＬＣＤブリッジ３１８を起動し、ＬＣＤブリッジ３１８内のＲＳ２３２Ｃブリッジ３１６と実ＬＣＤ３１０内のＲＳ２３２Ｃデバイスドライバ３１４とをＲＳ２３２Ｃで接続し、ＬＣＤブリッジ３１８内の仮想配線スロット１４と仮想配線マネージャ１０が自動配線される。これで、周辺デバイス部３０の入出力デバイスの、仮想配線１２への接続が完了する。
【００７０】
次に、実マイコン２００内のプログラム２０２を実行可能な実機である実エミュレータ２１０を起動し、実マイコン内の単独実行可能な実デバッガ２１２を起動し、実エミュレータ２１０と実デバッガ２１２を接続する。実デバッガ２１２は、仮想配線スロット１４経由で仮想バスマネージャ１０と自動配線する。また、実デバッガ２１２は、仮想マイコン・マイコンコントローラ一体部５０から、実デバッガ２１２を制御するコマンドの受信を許可する。
【００７１】
次に、単独実行可能な仮想マイコン・マイコンコントローラ一体部５０を起動し、仮想マイコン１００内のプログラム１０２を実行可能な擬似エミュレータ１１０を動作させる。仮想マイコン・マイコンコントローラ一体部５０内の仮想配線スロット１４は、仮想配線マネージャ１０と自動配線される。また、仮想マイコン・マイコンコントローラ一体部５０が、仮想配線１２経由で仮想リモコン３００の受信を許可する。実リモコン３３０が仮想マイコン・マイコンコントローラ一体部５０にリモコンコードを送信する場合は、ハイブリッド入力デバイスの機能により仮想リモコン３００に成りすまして送信する。
【００７２】
次に、単独実行可能な自動検証部４０を起動し、自動検証制御部４００内の仮想配線スロット１４を仮想配線バスマネージャ１０に自動配線する。
【００７３】
以上により、実リモコン３３０、仮想リモコン３００、実ＬＣＤ３１０、仮想ＬＣＤ３２０、実マイコン２００、仮想マイコン・マイコンコントローラ一体部５０、および、自動検証部４０が、仮想配線マネージャ１０により仮想配線１２で接続され、ハイブリッドプログラム検証システムが起動したことになる。
【００７４】
＜手動モードを選択してマイコンを実行＞
前述の手動によるプログラム検証を行う場合、各マイコンを実行する前に、図７に示すマイコンコントローラ５００内のＣＰＵ切換部５１５により、本プログラム検証システムの動作モードを、手動モード（作動させるマイコンの切換えを手動で行うモード）に設定する。
【００７５】
手動モード設定後、周辺デバイス部３０内の入力デバイスである実リモコン３３０または仮想リモコン３００において操作者によりクリックされたキーコードのデータと、各マイコンを制御するため、図５に示すメッセージ一覧表の項目Ｎｏ．１〜５の手動操作によ
るデータとを、仮想配線１２からマイコンコントローラ５００に渡す。マイコンコントローラ５００は、図５の「選択ＣＰＵ」項目に指示されているとおり、仮想マイコン１００（図５ではＶＨ＿ＣＰＵ１と表記）または実マイコン２００（図５ではＲＥ＿ＣＰＵ１と表記）の何れか１つまたは両方のマイコンに、キーコードを転送する。転送されたキーコードに従って選択されたマイコンが実行した結果のＬＣＤ表示データ等を、マイコンコントローラ５００が取得し、画像イメージの表示とデータ表示を行う。
【００７６】
画像イメージの表示は、図５の「ＯＵＴｄｅｖｉｃｅ」項目に指示された出力デバイスに対して、マイコンコントローラ５００のデータ解析・実行部５０６内の出力分配部５３６（図７参照）が、仮想ＬＣＤ３２０または実ＬＣＤ３１０の一方または両方に、表示データを転送して表示させる。これらの表示デバイスに表示データを転送する場合、ＣＰＵ切換部５１５でハイブリッド出力デバイスにした場合は、仮想配線マネージャ１０の同報通信機能を使って仮想ＬＣＤ３２０だけに転送し、図２の仮想配線マネージャ１０内の通信定義データａ１５および通信定義データｂ１７に設定されたデータに従って、仮想ＬＣＤ３２０または実ＬＣＤ３１０、あるいは、仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方に、ＬＣＤ表示データを転送して表示する。
【００７７】
データ表示は、１６進数ダンプ表示、１０進数ダンプ表示、テキスト表示、バイト型表示、ワード型表示、ロング型表示、構造体表示等のいずれであっても良く、複数のマイコンデータ比較等のデータ分析を行う。
【００７８】
＜自動モード選択してマイコンを実行＞
各マイコンを実行する前に、図７に示すマイコンコントローラ５００のマイコン実行部５０２内のＣＰＵ切換部５１５で、自動モードに切換えて、仮想マイコン１００または実マイコン２００の何れか１つまたは両方のマイコンを選択可能な設定にする。
【００７９】
自動モードは、図８に示すシナリオファイル４１２からテスト項目ごとに検証するマイコンおよびリモコンコードを取得し、図５に示すメッセージ一覧表の項目Ｎｏ．６〜１１の自動操作によるデータを、ハイブリッド入力デバイスの機能により仮想リモコン３００に成りすまして、仮想配線１２からマイコンコントローラ５００に渡す。
【００８０】
マイコンコントローラ５００は、自動モードで、図５の「選択ＣＰＵ」項目に指定されたマイコンとして、仮想マイコン１００または実マイコン２００の何れか１つまたは両方に、キーコードを転送する。
【００８１】
キーコードが転送されたマイコンは、キーコードに従って実行されるが、自動モードの場合は、手動モードの場合と違い、自動で検証するために、プログラム１０２またはプログラム２０２に確実にキーを渡し、キー処理の完了を自動で判断し、プログラム１０２またはプログラム２０２の実行結果を記録するために、図８に示すリセットスタート発行または、シーケンス発行または、イベント発行の完了を確認した後、次のシーケンスを実行するために同期通信を利用して実行する。
【００８２】
自動で検証するテストの一例として状態遷移表を使った検証の場合は、自動検証制御部４００がシナリオファイル４１２から検証するデバイス選択データを取得する。
【００８３】
次に、プログラム１０２またはプログラム２０２を検証する状態にするために、シーケンスデータを取得し、状態遷移表の中のテストしたい状態にする。シーケンスデータとしてリセットを取得した場合は、自動検証制御部４００からデバイス選択データとリセットをマイコンコントローラ５００に同期送信する。マイコンコントローラ５００は、デバイス選択データに従って、仮想マイコン１００または実マイコン２００がリセット完了した
ことを確認する。次に、マイコンコントローラ５００は、プログラムＧＯ実行を仮想マイコン１００または実マイコン２００に転送し、プログラムＧＯ実行したことを確認する。これによりリセットスタートが完了し、マイコンコントローラ５００を経由して自動検証制御部４００に返信する。
【００８４】
リセットスタートの完了を確認した後、シナリオファイル４１２から取得したシーケンスがリモコンキーの場合は、シーケンスキーを実行するため、自動検証制御部４００からマイコンコントローラ５００にデバイス選択データとシーケンスキーを同期送信する。マイコンコントローラ５００は、仮想マイコン１００または実マイコン２００がキー処理を完了したことを確認し、マイコンコントローラ５００から自動検証制御部４００に返信する。
【００８５】
シーケンス動作により、プログラム１０２またはプログラム２０２が目的の状態になったと想定して、シナリオファイル４１２から取得したイベントとなるリモコンキーでイベント実行するため、自動検証制御部４００からマイコンコントローラ５００にデバイス選択データとイベントキーを同期送信する。マイコンコントローラ５００は、仮想マイコン１００または実マイコン２００がイベントキー処理を完了したことを確認し、仮想マイコン１００または実マイコン２００が実行した結果のＬＣＤ表示データを取得し、マイコンコントローラ５００にＬＣＤ表示データを返信し、画像イメージの表示とデータの表示を行う。
【００８６】
画像イメージの表示は、図５のＯＵＴｄｅｖｉｃｅ項目に指示された出力デバイスに対して、マイコンコントローラ５００内の出力分配部５３６が、仮想ＬＣＤ３２０または実ＬＣＤ３１０、あるいは、仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方に、ＬＣＤ表示データを転送し表示する。表示デバイスに表示データを転送する場合、ＣＰＵ切換部５１５でハイブリッド出力デバイス指定にした場合は、仮想配線マネージャ１０の同報通信機能を使って仮想ＬＣＤ３２０だけに転送し、図２の仮想配線マネージャ１０内の通信定義データａ１５および通信定義データｂ１７に設定されたデータに従って、仮想ＬＣＤ３２０または実ＬＣＤ３１０、あるいは仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方に、ＬＣＤ表示データを転送し表示する。
【００８７】
データ表示は、比較分析部５０９で、１６進数ダンプ表示、１０進数ダンプ表示、テキスト表示、バイト型表示、ワード型表示、ロング型表示、構造体表示等の表示および複数のマイコンデータ比較表示等をすることでデータ分析を行う。
【００８８】
マイコンコントローラ５００は、画像イメージの表示とデータの表示を完了すると、自動検証制御部４００にＬＣＤ表示データを返信し、ＬＣＤ表示データを検証結果ファイル４１０に記録する。合わせて、仮想ＬＣＤ３２０または実ＬＣＤ３１０の画像を検証結果ファイル４１０に記録する。仮想ＬＣＤ３２０に表示した画像を検証結果ファイル４１０に記録する場合は、自動検証制御部４００がクリップボードにキャプチャ指示し、自動検証制御部４００がクリップボードの画像を検証結果ファイル４１０に記録する。
【００８９】
実ＬＣＤ３１０に表示した画像を検証結果ファイル４１０に記録する場合は、実ＬＣＤ３１０の画像をＰＣカメラで撮影し、ＵＳＢケーブル等でパソコンと接続し、パソコン上に表示した画像を自動検証制御部４００がクリップボードにキャプチャ指示し、自動検証制御部４００がクリップボードの画像を検証結果ファイル４１０に記録する。
【００９０】
仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方の画像を記録する場合は、仮想ＬＣＤ３２０に表示した画像を自動検証制御部４００がクリップボードにキャプチャ指示し、自動検証制御部４００がクリップボードの画像を検証結果ファイル４１０に記録した後、実ＬＣＤ３１０に表示
した画像をＰＣカメラで撮影しＵＳＢケーブル等でパソコンと接続し、パソコン上に表示した画像を自動検証制御部４００がクリップボードにキャプチャ指示し、自動検証制御部４００がクリップボードの画像を検証結果ファイル４１０に記録する。
【００９１】
＜仮想リモコンからマイコンコントローラへキーコードを転送する＞
仮想リモコン３００のボタンをクリックすると、キーコードを、図５に示す項目Ｎｏ．１のデータフォーマットで、仮想リモコン３００内の仮想配線スロット１４から仮想マイコン・マイコンコントローラ一体部５０に非同期送信する。送信したキーコードは、仮想配線１２を経由して仮想マイコン・マイコンコントローラ一体部５０内の仮想配線スロット１４にて受信する。
【００９２】
＜実リモコンからマイコンコントローラへキーコードを転送する＞
実機の実リモコン３３０のボタンをクリックすると、リモコンコードをＲＳ２３２Ｃ経由で送信し、リモコンブリッジ３３４内のＲＳ２３２Ｃブリッジ３３２で受信する。ＲＳ２３２Ｃブリッジ３３２は、受信したキーコードを仮想リモコン３００と同じ図５に示す項目Ｎｏ．１のデータフォーマットで、ハイブリッド入力デバイスの機能により仮想リモコン３００に成りすまして、仮想マイコン・マイコンコントローラ一体部５０にリモコンブリッジ３３４内の仮想配線スロット１４から非同期送信する。送信したキーコードは仮想配線１２を経由して仮想マイコン・マイコンコントローラ一体部５０内の仮想配線スロット１４で仮想リモコンから受信したことになる。
【００９３】
＜自動検証からマイコンコントローラへキーコードを転送する＞
自動検証制御部４００内のシナリオ制御部４０４が、シナリオファイル４１２から取得するキーには、マイコンのリセットスタートとシーケンスキーとイベントキーがある。
【００９４】
リセットスタートは、擬似エミュレータ１１０または実エミュレータ２１０をリセットスタートすることで、プログラム１０２またはプログラム２０２の実行を中断し、初期処理から実行させるため、デバイス選択部４０６で図５の項目Ｎｏ．４のデータフォーマットに変換する。
【００９５】
シーケンスキーは、状態遷移表の中のテストする状態にキー操作をするため、デバイス選択部４０６で図５の項目Ｎｏ．７または項目Ｎｏ．１０のデータフォーマットに変換する。
【００９６】
イベントキーは、テストする状態になった時点で、キーを発行し、状態の変化を見ることで、キーの有効・無効および状態の変化を確認するため、デバイス選択部４０６で図５の項目Ｎｏ．８または項目Ｎｏ．１１のデータフォーマットに変換する。
【００９７】
リセットスタートとシーケンスキーとイベントキーのそれぞれに変換したデータを自動検証制御部４００内の仮想配線スロット１４から仮想配線１２を経由して仮想マイコン・マイコンコントローラ一体部５０内の仮想配線スロット１４へ同期送信する。
【００９８】
＜手動操作でマイコンコントローラが仮想マイコンを制御＞
仮想リモコン３００または、実リモコン３３０から図５に示すメッセージ一覧表の項目Ｎｏ．１のデータをマイコンコントローラ５００内の仮想配線スロット１４で受信する。受信したデータは、図７に示すマイコンコントローラ５００内の並列実効部５３２で、図５の選択ＣＰＵ項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図５の選択ＣＰＵ項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
【００９９】
マイコンを選択した後、図５の操作項目の自動または手動の指定を手動と確認した後、自動・手動指示部５３０にて選択したマイコンに対して手動実行を行う。
【０１００】
[手動操作でマイコンコントローラが仮想マイコンへリモコンキー転送]
マイコンパラメータ作成部５１４から、仮想マイコン実行部５１０にて、仮想マイコン１００へリモコンコードを転送する。マイコンパラメータ作成部５１４は、リモコンコードを送信するパラメータを、図９に示す項目Ｎｏ.１２のリモコンコードのＲＡＭシンボ
ルを指定して書込みするラッパー関数を作成する。なお、手動実行する内容にはリセットスタートとＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０１０１】
[手動操作でマイコンコントローラが仮想マイコンをリセットスタート]
手動実行する内容が、リセットスタートの場合は、手動処理部５２６、マイコン制御指示部５１６、およびマイコン実行パラメータ作成部５１４で、図９に示す項目Ｎｏ．２のマイコンリセット関数を作成し、仮想マイコン実行部５１０から仮想マイコン１００をリセットした後、続いて、図９に示す項目Ｎｏ．１のマイコン実行に対応するラッパー関数を作成し、仮想マイコン実行部５１０から仮想マイコン１００を実行することで、仮想マイコン１００のリセットスタートを行う。
【０１０２】
[手動操作でマイコンコントローラが仮想マイコンにＲＡＭ書込み]
手動実行によるＲＡＭデータの書込みの場合は、ＲＡＭ書込み部５１８およびマイコン実行パラメータ作成部５１４で、図９に示す項目Ｎｏ．１０〜１５の関数を使ってＲＡＭ書込みを行う。
【０１０３】
[手動操作でマイコンコントローラが仮想マイコンにＲＡＭ読込み]
手動実行によるＲＡＭデータの読込みの場合は、出力データ取得部５２２からＲＡＭ読込み部５２０を経由してマイコン実行パラメータ作成部５１４で、図９に示す項目Ｎｏ．４〜９の関数を使って、仮想マイコン実行部５１０および仮想マイコン１００からＲＡＭ読込みを行う。読込んだデータは、出力データ取得部５２２で取得したＲＡＭを比較分析部５０９にて表示させると同時に、出力分配部５３６からＲＡＭ読込みを要求したデバイスに、仮想配線１２経由でＲＡＭデータを返信する。
【０１０４】
比較分析部５０９にて表示する一例として、図４に示す通り１つの入力データを２つのマイコンに入力した結果を、入力データの横に出力ＲＡＭデータと表示デバイスの画像を並べることで、２つのＣＰＵの動作に差異がある場合、容易に検出可能になる。
【０１０５】
＜手動操作でマイコンコントローラが実マイコンを制御＞
仮想リモコン３００または実リモコン３３０から、図５に示すメッセージ一覧表の項目Ｎｏ．１のデータを、マイコンコントローラ５００内の仮想配線スロット１４で受信する。受信したデータは、図７に示すマイコンコントローラ５００内の並列実行部５３２で、図５の選択ＣＰＵ項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図５の選択ＣＰＵ項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。マイコンを選択した後、図５の操作項目の自動または手動の指定を手動と確認した後、自動・手動指示部５３０にて選択したマイコンに対して手動実行を行う。
【０１０６】
[手動操作でマイコンコントローラが実マイコンへリモコンキー転送]
手動実行によるリモコンコードを送信する場合は、図９に示す項目Ｎｏ．１２に示す「ＲＡＭシンボルから１Ｂｙｔｅ書込み」のラッパー関数を使って、ユーザＲＡＭ２０４内のリモコンコード格納ＲＡＭシンボル名を指定してリモコンコードを書込むため、マイコン実行パラメータ作成部５１４とマイコン共通実行部５４４から仮想配線１２を経由して
、図１０に示す項目Ｎｏ．５のコマンドに変換して実マイコン２００にリモコンコードを同期送信し、マイコン共通実行部５４４が同期返信を受けることで、実マイコン２００がリモコンコード受付を完了する。
【０１０７】
なお、手動実行する内容には、リセットスタートとＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０１０８】
[手動操作でマイコンコントローラが実マイコンをリセットスタート]
手動実行によるリセットスタートの場合は、手動処理部５２６からマイコン制御指示部５１６を経由して送信するパラメータは、図９に示す項目Ｎｏ．２に示す「マイコンリセット」ラッパー関数を使って、マイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．１１のリセットコマンドに変換して仮想配線１２を経由で実マイコン２００をリセットさせるために同期送信する。マイコン共通実行部５４４が同期返信を受けることでリセット完了を確認後、プログラム実行するために、手動処理部５２６からマイコン制御指示部５１６を経由して送信するパラメータは、図９に示す項目Ｎｏ．１に示す「マイコン実行」ラッパー関数を使って、マイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．１２のプログラムＧＯコマンドに変換し、実マイコン２００を実行させるために同期送信する。マイコン共通実行部５４４が同期返信を受けることでプログラムスタートを確認し、リセットスタートを完了する。
【０１０９】
[手動操作でマイコンコントローラが実マイコンにＲＡＭ書込み]
手動実行によるＲＡＭ書込みの場合は、手動処理部５２６およびＲＡＭ書込みデータ５１８から、ＲＡＭ書込みコマンドをマイコン実行パラメータ作成部５１４でＲＡＭ書込み要求に合わせて、図９に示す項目Ｎｏ．１０〜１５に示すＲＡＭ書込みのラッパー関数を使って、マイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．１，２，５，６のＲＡＭ書込みコマンドに変換して実マイコン２００がＲＡＭ書込みを行うため同期送信する。マイコン共通実行部５４４が同期返信を受けることでＲＡＭ書込みの完了を確認する。また出力ＲＡＭの比較し分析を行うために、実マイコンに書込んだＲＡＭデータによる実行結果の出力ＲＡＭの変化を見るために、書込みするデータを出力データ取得部５２２に渡し、実マイコンから読込んだデータをＲＡＭサンプリング部５０７で表示する。
【０１１０】
[手動操作でマイコンコントローラが実マイコンにＲＡＭ読込み]
手動実行によるＲＡＭ読込みの場合は、手動処理部５２６からＲＡＭ読込みデータ５２０からＲＡＭ書込みコマンドをマイコン実行パラメータ作成部５１４でＲＡＭ読込み要求に合わせて、図９に示す項目Ｎｏ．４〜９に示すＲＡＭ読込みのラッパー関数を作成し、実マイコン実行部５１２からＩＣＥ制御部５０８でラッパー関数を図１０に示す項目Ｎｏ．３，４，７，８のＲＡＭ読込みコマンドに変換して、実マイコン２００がＲＡＭ読込みを行うため同期送信する。ＩＣＥ制御部５０８が同期返信を受けることでＲＡＭ読込み、出力データ取得部５２２で取得したＲＡＭを比較分析部５０９にて表示させると同時に、出力分配部５３６からＲＡＭ読込みを要求したデバイスに、ＲＡＭデータを仮想配線１２経由で返信する。比較分析部５０９にて表示する一例として、図４に示す通り１つの入力データを２つのマイコンに入力した結果を入力データの横に出力ＲＡＭデータと表示デバイスの画像を並べることで、２つのＣＰＵの動作に差異がある場合に、容易に検出可能になる。
【０１１１】
＜自動操作でマイコンコントローラが仮想マイコンを制御＞
自動検証制御部４００から発行するリモコンコードを仮想リモコン３００または実リモコン３３０が発行する同じフォーマットのデータにて仮想バスマネージャのハイブリッド入力デバイス機能である成りすましを使ってマイコンコントローラ５００に同期送信する
。マイコンコントローラ５００は、図５に示すメッセージ一覧表のデータをマイコンコントローラ５００内の仮想配線スロット１４で受信する。受信したデータは、図７に示すマイコンコントローラ５００内の並列実行部５３２で、図５の選択ＣＰＵ項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図５の選択ＣＰＵ項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。マイコンを選択した後、図５の操作項目の自動または手動の指定を自動と確認した後、自動・手動指示部５３０で選択した仮想マイコン１００に対して自動実行を行う。
【０１１２】
[自動操作でマイコンコントローラが仮想マイコンへリモコンキー転送]
自動・手動指示部５３０から自動でリモコンコードを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、仮想マイコンのＲＡＭ読書き制御の処理が完了するまで待つ。リモコンコードを送信するパラメータは、図９の項目Ｎｏ．１２に示すリモコンコードのＲＡＭシンボルを指定して書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４から、仮想マイコン実行部５１０を経由して仮想マイコン１００にリモコンコードを渡し、仮想マイコン１００がリモコンキー受付を完了するまで待つ。
【０１１３】
リモコンキー受付処理が完了すると、仮想マイコン実行部５１０から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、リモコンコード書込み指示をしたデバイスに対して、仮想バス１２経由でリモコンコード受付処理完了を返信する。
【０１１４】
なお、手動実行する内容にはリセットスタートとＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０１１５】
[自動操作でマイコンコントローラが仮想マイコンをリセットスタート]
自動・手動指示部５３０から自動でリセットスタートを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、仮想マイコン１００のリセットスタート制御の処理が完了するまで待つ。
【０１１６】
実行・完了待ち部５２４からマイコン制御指示部５１６を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．２のマイコンリセット関数を作成し、仮想マイコン実行部５１０から仮想マイコン１００をリセットした後、続いて、図９に示す項目Ｎｏ．１のマイコンが実行するラッパー関数を作成し、仮想マイコン実行部５１０から仮想マイコン１００を実行し、仮想マイコン１００がリセットスタートを完了するまで待つ。
【０１１７】
リセットスタート処理が完了すると、仮想マイコン実行部５１０から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、リセットスタートを指示したデバイスに対して、仮想バス１２経由で処理完了を返信する。
【０１１８】
[自動操作でマイコンコントローラが仮想マイコンにＲＡＭ書込み]
自動・手動指示部５３０から自動でＲＡＭ書込みを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、仮想マイコン１００のＲＡＭ書込み制御の処理が完了するまで待つ。
【０１１９】
実行・完了待ち部５２４からＲＡＭ書込みデータ５１８を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．１０〜１５の関数を使ってＲＡＭ書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４から、仮想マイコン実行部５１０を経由して仮想マイコン１００にＲＡＭデータを渡し、仮想マイコン１００がＲＡＭ書込み完了するまで待つ。
【０１２０】
ＲＡＭ書込み処理が完了すると、仮想マイコン実行部５１０から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、ＲＡＭ書込みを指示したデバイスに対して、仮想バス１２経由でＲＡＭデータ書込み処理完了を返信する。
【０１２１】
[自動操作でマイコンコントローラが仮想マイコンにＲＡＭ読込み]
自動・手動指示部５３０から自動でＲＡＭ読込みを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、仮想マイコン１００のＲＡＭ読込み制御の処理が完了するまで待つ。
【０１２２】
実行・完了待ち部５２４からＲＡＭ読込みデータ５２０を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．４〜９の関数を使ってＲＡＭ読込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４から仮想マイコン実行部５１０を経由して仮想マイコン１００にリモコンコードを渡し、仮想マイコンがＲＡＭ読込み完了するまで待つ。
【０１２３】
ＲＡＭ読込み処理が完了すると、仮想マイコン実行部５１０から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、ＲＡＭ読込みを指示したデバイスに対して、仮想バス１２経由でＲＡＭ読込み処理完了を返信する。また、読込んだデータは、出力データ取得部５２２で取得したＲＡＭを比較分析部５０９にて表示させる。比較分析部５０９で表示する一例として、図４に示す通り１つの入力データを２つのマイコンに入力した結果を入力データの横に出力ＲＡＭデータと表示デバイスの画像を並べることで、２つのＣＰＵの動作に差異がある場合に、容易に検出可能になる。
【０１２４】
＜自動操作でマイコンコントローラが実マイコンを制御＞
自動検証制御部４００から発行するリモコンコードを仮想リモコン３００または実リモコン３３０が発行する同じフォーマットのデータにて仮想バスマネージャのハイブリッド入力デバイス機能である成りすましを使ってマイコンコントローラ５００に同期送信する。マイコンコントローラ５００は、図５に示すメッセージ一覧表のデータをマイコンコントローラ５００内の仮想配線スロット１４で受信する。受信したデータは、図７に示すマイコンコントローラ５００内の並列実行部５３２で図５の選択ＣＰＵ項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図５の選択ＣＰＵ項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
【０１２５】
マイコンを選択した後、図５の操作項目の自動または手動の指定を自動と確認した後、自動・手動指示部５３０で選択した実マイコン２００に対して自動実行を行う。
【０１２６】
[自動操作でマイコンコントローラが実マイコンへリモコンキー転送]
自動・手動指示部５３０から自動でリモコンコードを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、実マイコン２００のＲＡＭ読書き制御の処理が完了するまで待つ。リモコンコードを送信するパラメータは、図９の項目Ｎｏ．１２に示すリモコンコードのＲＡＭシンボルを指定して書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４から実マイコン実行部５１２を経由してＩＣＥ制御部５０８でラッパー関数を図１０に示す項目Ｎｏ．５のＲＡＭシンボル書込みコマンドに変換し、実マイコン２００にリモコンコードを渡し、実マイコン２００がリモコンキー受付完了するまで待つ。
【０１２７】
リモコンキー受付処理が完了すると、実マイコン実行部５１２から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、リモコンコード書込み指示をしたデバイスに対して、仮想バス１２経由でリモコンコード受付処理完了を返信する。
【０１２８】
なお、手動実行する内容にはリセットスタートとＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０１２９】
[自動操作でマイコンコントローラが実マイコンをリセットスタート]
自動・手動指示部５３０から自動でリセットスタートを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、実マイコン２００のリセットスタート制御の処理が完了するまで待つ。
【０１３０】
実行・完了待ち部５２４からマイコン制御指示部５１６を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．２のマイコンリセット関数を作成し、実マイコン実行部５１２からＩＣＥ制御部５０８でラッパー関数を図１０に示す項目Ｎｏ．１１のリセットコマンドに変換して、実マイコン２００をリセットした後、続いて、図９に示す項目Ｎｏ．１のマイコンが実行するラッパー関数を作成し、実マイコン実行部５１２からＩＣＥ制御部５０８でラッパー関数を図１０に示す項目Ｎｏ．１２のプログラムＧＯコマンドに変換して実マイコン２００を実行し、実マイコン２００がリセットスタート完了するまで待つ。
【０１３１】
リセットスタート処理が完了すると、実マイコン実行部５１２から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、リセットスタートを指示したデバイスに対して仮想バス１２経由で処理完了を返信する。
【０１３２】
[自動操作でマイコンコントローラが実マイコンにＲＡＭ書込み]
自動・手動指示部５３０から自動でＲＡＭ書込みを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、実マイコン２００のＲＡＭ書込み制御の処理が完了するまで待つ。
【０１３３】
実行・完了待ち部５２４からＲＡＭ書込みデータ５１８を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．１０〜１５の関数を使ってＲＡＭ書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４から実マイコン実行部５１２を経由してＩＣＥ制御部５０８でラッパー関数を図１０に示す項目Ｎｏ．１，２，５，６のＲＡＭ書込みコマンドに変換し、実マイコン２００にＲＡＭデータを渡し、実マイコン２００がＲＡＭ書込み完了するまで待つ。
【０１３４】
ＲＡＭ書込み処理が完了すると、実マイコン実行部５１２から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、ＲＡＭ書込みを指示したデバイスに対して、仮想バス１２経由でＲＡＭ書込み処理完了を返信する。
【０１３５】
[自動操作でマイコンコントローラが実マイコンにＲＡＭ読込み]
自動・手動指示部５３０から自動でＲＡＭ読込みを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、実マイコン２００のＲＡＭ読込み制御の処理が完了するまで待つ。
【０１３６】
実行・完了待ち部５２４からＲＡＭ読込みデータ５２０を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．４〜９の関数を使ってＲＡＭ読込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４から実マイコン実行部５１２を経由して、ＩＣＥ制御部５０８でラッパー関数を図１０に示す項目Ｎｏ．３，４，７，８のＲＡＭシンボル読込みコマンドに変換し、実マイコン２００にＲＡＭデータを渡し、実マイコン２００がＲＡＭ読込み完了するまで待つ。
【０１３７】
ＲＡＭ読込み処理が完了すると、実マイコン実行部５１２から実行・完了待ち部５２４
に完了通知する。実行・完了待ち部５２４から、ＲＡＭ読込みを指示したデバイスに対して仮想バス１２経由でＲＡＭ読込み処理完了を返信する。また、読込んだデータは、出力データ取得部５２２で取得したＲＡＭを比較分析部５０９にて表示させる。比較分析部５０９にて表示する一例として、図４に示す通り１つの入力データを２つのマイコンに入力した結果を入力データの横に出力ＲＡＭデータと表示デバイスの画像を並べることで、２つのＣＰＵの動作に差異がある場合に、容易に検出可能になる。
【０１３８】
＜仮想マイコンの制御処理＞
マイコンコントローラ５００から発行した図１０に示すマイコン制御コマンドの解析を、仮想マイコン１００内のコマンド解析部１３４で行い、擬似エミュレータ１１０の実行と、擬似エミュレータ１１０のリセットと、デバッグＲＡＭ１０８またはユーザＲＡＭ１０４内のＲＡＭ読書きする各コマンドに対応する仮想マイコン１００の制御を行う。なお、仮想マイコン１００の制御にあたり、手動制御と自動制御は同じ動作になる。
【０１３９】
[仮想マイコン内にリモコンコード書込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたリモコンコードは、マイコンコントローラ５００で図１０の項目Ｎｏ．５の１バイトシンボルライトコマンドをコマンド解析部１３４で解析し、ＲＡＭシンボル指定部１３０に渡す。ＲＡＭシンボル指定部１３０は、図６のシンボル定義ファイルに示すシンボル定義部６０４とコマンド解析部１３４から送られてきたリモコンコードのＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換し、ＲＡＭ読書き識別部１２８からＲＡＭ書込み部１２４に渡す。ＲＡＭ書込み部１２４は、デバッグＲＡＭ１０８に書込み、Ｓｉｍデバッグプログラム１０６およびプログラム１０２をリモコン入力により動作する。
【０１４０】
Ｓｉｍデバッグプログラム１０６およびプログラム１０２の動作は、図１１に示す通り、マイコンコントローラ５００内の仮想Ｒｅｍｏ（Ｓ１０６）からのＶＨＲｅｍｏ（Ｓ１４０）へのＲＡＭ書込みを、Ｓｉｍデバッグプログラム１０６プログラムがＶＨＲｅｍｏ処理（Ｓ１５２）にて確認した後、Ｒｅｍｏ（Ｓ１６０）にリモコンコードを書込むことで、プログラム１０２は、リモコンコードが入力されたと判断して、Ｒｅｍｏ（Ｓ１６０）に書込まれたリモコンコードに対応した動作を行う。
【０１４１】
なお、上記のＲｅｍｏとは、図３のユーザＲＡＭ１０４で使うデータにより、実リモコンから受信したコードを実行するＲＡＭである。このリモコンコードを実行するのはプログラム１０４である。ＶＨＲｅｍｏとは、図３のデバッグＲＡＭ１０８で使う、仮想リモコン３００からの受信コードを一旦格納するＲＡＭである。受信コードを一旦格納した後、プログラムが実機リモコン受信処理を行った後に、ＶＨＲｅｍｏデータに仮想リモコンコードがあれば、ユーザＲＡＭ１０４内のＲｅｍｏにＶＨＲｅｍｏコードを上書きし、実リモコンの代わりに仮想リモコンコードを実行する。ＶＨＲｅｍｏコードを上書きした後、ＶＨｒｅｍｏは無効キーを設定する。このようにするのは、Ｒｅｍｏに仮想リモコンコードを直接書き込むと、プログラム１０２がＲｅｍｏコード生成中に仮想リモコンコードを上書きするタイミングもあり、システムが矛盾した動きをする可能性があるからである。この問題を避けるために、上述のとおり、仮想リモコンコードを一旦ＶＨＲｅｍｏに格納した後、プログラム１０２の動作にあわせて、前記仮想リモコンコードをＶＨＲｅｍｏからＲｅｍｏへコピーする同期化処理を行っている。
【０１４２】
なお、仮想マイコン１００を制御する内容には、擬似エミュレータのリセットと擬似エミュレータの実行開始とＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０１４３】
[擬似エミュレータをリセット]
擬似エミュレータ１１０のリセットは、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたリセットコマンドで行われる。リセットスタートコマンドは、マイコンコントローラ５００で図１０に示す通り、項目Ｎｏ．１１のリセットコマンドをコマンド解析部１３４に渡す。コマンド解析部１３４で解析し、リセット１２２に渡す。リセット１２２は、擬似エミュレータ１１０を強制停止させるために、Ｓｉｍデバッグプログラム１０６およびプログラム１０２を動作させる擬似エミュレータのスレッドを削除する。
【０１４４】
[擬似エミュレータでプログラム実行開始]
Ｓｉｍデバッグプログラム１０６およびプログラム１０２の実行は、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたプログラム実行コマンドで開始される。プログラム実行コマンドは、マイコンコントローラ５００から、図１０に示す項目Ｎｏ．１２のプログラムＧＯ実行コマンドのデータフォーマットで、コマンド解析部１３４に渡される。コマンド解析部１３４は、プログラムＧＯ実行コマンドを解析し、実行部１２０に渡す。実行部１２０は、擬似エミュレータ１１０のスレッドを起動することで、Ｓｉｍデバッグプログラム１０６およびプログラム１０２を最初から実行させる。
【０１４５】
Ｓｉｍデバッグプログラム１０６およびプログラム１０２の擬似エミュレータのリセット実行と、擬似エミュレータでのプログラム実行開始を連続して行うことで、実機セットのプログラムと同様にリセットスタート動作が実現出来る。
【０１４６】
[仮想マイコン内のＲＡＭに書込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ書込みＲＡＭアドレス指定の場合は、マイコンコントローラ５００で図１０の項目Ｎｏ．１，２のＲＡＭアドレスライトコマンドをコマンド解析部１３４で解析し、ＲＡＭアドレス指定部１３２に渡す。ＲＡＭアドレス指定部１３２は、ＲＡＭ読書き識別部１２８からＲＡＭ書込み部１２４に渡す。ＲＡＭ書込み部１２４は、デバッグＲＡＭ１０８またはユーザＲＡＭ１０４に書込みＳｉｍデバッグプログラム１０６およびプログラム１０２をＲＡＭに書込んだデータにより動作させる。
【０１４７】
また仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ書込みＲＡＭシンボル指定の場合は、マイコンコントローラ５００で図１０の項目Ｎｏ．５，６のＲＡＭシンボルライトコマンドをコマンド解析部１３４で解析し、ＲＡＭシンボル指定部１３０に渡す。ＲＡＭシンボル指定部１３０は、図６のシンボル定義ファイルに示すシンボル定義部６０４とコマンド解析部１３４から送られてきたＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換してＲＡＭ読書き識別部１２８からＲＡＭ書込み部１２４に渡す。ＲＡＭ書込み部１２４は、デバッグＲＡＭ１０８に書込みＳｉｍデバッグプログラム１０６およびプログラム１０２をリモコン入力により動作させる。
【０１４８】
Ｓｉｍデバッグプログラム１０６およびプログラム１０２の動作の一例は、図１１に示す通り、マイコンコントローラ５００内の仮想Ｒｅｍｏ（Ｓ１０６）からＶＨＲｅｍｏ（Ｓ１４０）にＲＡＭを書込みＳｉｍデバッグプログラム１０６プログラムがＶＨＲｅｍｏ処理（Ｓ１５２）にて確認した後、Ｒｅｍｏ（Ｓ１６０）にリモコンコードを書込むことで、プログラム１０２は、リモコンコードが入力されたと判断して、Ｒｅｍｏ（Ｓ１６０）に書込まれたリモコンコードに対応した動作を行う。
【０１４９】
[仮想マイコン内のＲＡＭに読込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ読込みＲＡＭアドレス指定の場合は、マイコンコントローラ５００で図１０の項目Ｎｏ．３，４のＲＡＭアドレスリードコマンドをコマンド解析部１３４で解析し、ＲＡＭアドレス指定部１３２に渡す。ＲＡＭアドレス指定部１３２からＲＡＭ読書き識別部１２８を経由してＲＡＭ読込み部１２６に渡す。ＲＡＭ読込み部１２６は、デバッグＲＡＭ１０８またはユーザＲＡＭ１０４から読込んだＲＡＭデータは、ＲＡＭ読込み部１２６からコマンド解析部１３４を経由してマイコンコントローラ５００に返信する。
【０１５０】
また、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ読込みＲＡＭシンボル指定の場合は、マイコンコントローラ５００で図１０の項目Ｎｏ．７，８のＲＡＭシンボルリードコマンドをコマンド解析部１３４で解析し、ＲＡＭシンボル指定部１３０に渡す。ＲＡＭシンボル指定部１３０は、図６のシンボル定義ファイルに示すシンボル定義部６０４とコマンド解析部１３４から送られてきたＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換してＲＡＭ読書き識別部１２８からＲＡＭ読込み部１２６に渡す。ＲＡＭ読込み部１２６は、デバッグＲＡＭ１０８またはユーザＲＡＭ１０４から読込んだＲＡＭデータを、ＲＡＭ読込み部１２６からコマンド解析部１３４を経由してマイコンコントローラ５００に返信する。
【０１５１】
＜実マイコンの制御処理＞
図１０に示すマイコン制御コマンドをマイコンコントローラ５００が発行し、仮想配線１２から仮想配線スロット１４を経由して、図３に示す実マイコン２００内の実デバッガに渡す。実デバッガ２１２がコマンドを解析し、実エミュレータ２１０の実行と実エミュレータ２１０のリセットとデバッグＲＡＭ２０８またはユーザＲＡＭ２０４内のＲＡＭ読書きする各コマンドに対応する実マイコン２００の制御を行う。
なお、マイコン２００の制御にあたり、手動制御と自動制御は同じ動作になる。
【０１５２】
[実マイコン内にリモコンコード書込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたリモコンコードは、図１０の項目Ｎｏ．５の１バイトシンボルライトコマンドをマイコンコントローラ５００が発行し、仮想配線１２から仮想配線スロット１４を経由して図３に示す実マイコン２００内の実デバッガに渡す。図１０の項目Ｎｏ．５の１バイトシンボルライトコマンドを実デバッガ２１２で解析し、ＰＸｓｙｍｂｏｌ２２２のシンボル定義ファイルとマイコンコントローラ５００から送られてきたリモコンコードのＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換し、デバッグＲＡＭ２０８に書込みＳｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２をリモコン入力により動作する。
【０１５３】
Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６およびプログラム２０２の動作は、図１１に示す通り、マイコンコントローラ５００内のＩＣＥ＿Ｒｅｍｏ（Ｓ１０４）からデバッグＲＡＭ２０８にＲＡＭデータを書込み、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６プログラムがリモコンコード書込みを確認した後、ユーザＲＡＭ２０４にリモコンコードを書込むことで、プログラム２０２は、リモコンコードが入力されたと判断して、リモコンコードに対応した動作を行う。
【０１５４】
なお、実マイコン２００を制御する内容には、実エミュレータ２１０のリセットと実エミュレータ２１０の実行開始とＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０１５５】
[実エミュレータをリセット]
実エミュレータ２１０のリセットは、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたリセットコマンドにより開始される。マイコンコントローラ５００は、図１０に示す項目Ｎｏ．１１のリセットコマンドのデータフォーマットで、リセットコマンドを仮想配線１２から仮想配線バススロット経由で実デバッガ２１２に渡す。実デバッガ２１２は、リセットコマンドに従って、実エミュレータ２１０をリセットすることで、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２の動作を強制停止し、擬似エミュレータ１１０をリセットする。
【０１５６】
[実エミュレータでプログラム実行開始]
実エミュレータ２１０のプログラムＧＯ実行は、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたプログラム実行コマンドにより開始される。マイコンコントローラ５００は、図１０に示す項目Ｎｏ．１２のプログラムＧＯ実行コマンドのデータフォーマットで、プログラムＧＯ実行コマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、プログラムＧＯ実行コマンドに従って、実エミュレータ２１０をリセットすることで、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２の動作を起動し、実エミュレータ２１０の実行を開始する。
【０１５７】
Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６およびプログラム２０２のリセット実行とプログラム実行を連続して行うことで、リセットスタート動作が実現出来る。
【０１５８】
[実マイコン内のＲＡＭに書込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から、ＲＡＭデータ書込みＲＡＭアドレス指定が発行された場合は、マイコンコントローラ５００は、図１０の項目Ｎｏ．１，２のＲＡＭアドレスライトコマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、コマンドを解析し、デバッグＲＡＭ２０８またはユーザＲＡＭ２０４に書込み、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６およびプログラム２０２をＲＡＭに書込んだデータにより動作させる。
【０１５９】
また、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から、ＲＡＭデータ書込みＲＡＭシンボル指定が発行された場合は、マイコンコントローラ５００は、図１０の項目Ｎｏ．５，６のＲＡＭシンボルライトコマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、ＰＸｓｙｍｂｏｌ２２２のシンボル定義ファイルとマイコンコントローラ５００から送られてきたＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換し、デバッグＲＡＭ２０８に書込み、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２を書込んだＲＭデータにより動作する。
【０１６０】
Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６およびプログラム２０２の動作は、図１１に示す通り、マイコンコントローラ５００内のＩＣＥ＿Ｒｅｍｏ（Ｓ１０４）からデバッグＲＡＭ２０８または、ユーザＲＡＭ２０４にＲＡＭデータを書込み、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６プログラムまたはプログラム２０２が書込んだＲＡＭデータを確認した後、ユーザＲＡＭ２０４にリモコンコードを書込むことで、プログラム２０２は、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２を書込んだＲＡＭデータにより動作する。
【０１６１】
[実マイコン内のＲＡＭに読込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から、ＲＡＭデータ読込みＲＡＭアドレス指定が発行された場合は、マイコンコントローラ５００は、図
１０の項目Ｎｏ．３，４のＲＡＭアドレスリードコマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、実エミュレータ２１０からデバッグＲＡＭ２０８またはユーザＲＡＭ２０４から読込んだＲＡＭデータを仮想配線１２からマイコンコントローラ５００に返信する。
【０１６２】
また、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から、ＲＡＭデータ読込みＲＡＭシンボル指定が発行された場合は、マイコンコントローラ５００は、図１０の項目Ｎｏ．７，８のＲＡＭシンボルリードコマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、ＰＸｓｙｍｂｏｌ２２２のシンボル定義ファイルとマイコンコントローラ５００から送られてきたＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換し、実デバッガに渡す。実デバッガ２１２は、実エミュレータ２１０からデバッグＲＡＭ２０８またはユーザＲＡＭ２０４から読込んだＲＡＭデータを仮想配線１２からマイコンコントローラ５００に返信する。
＜各マイコンの出力ＲＡＭデータの取得処理＞
仮想マイコン１００または実マイコン２００内のＲＡＭデータの取得・表示等の処理は、マイコンコントローラ５００のＲＡＭサンプリング部５０７内のサンプリング定義５０１として予め読込みたいＲＡＭを指定したマイコン名とＲＡＭ名を複数指定し、定常的なＲＡＭサンプリングを行う周期タイマを設定した後、ＲＡＭサンプリング部５０７にて定常的なＲＡＭデータの取得を行い、定義データで指定された周辺デバイス部３０内の仮想ＬＣＤ３２０または実ＬＣＤ３１０等に表示する。
【０１６３】
また、仮想マイコン１００または実マイコン２００または仮想マイコン１００と実マイコン２００を同時に動作させて、それぞれのＲＡＭデータを取得し、比較分析部５０９にてＲＡＭデータ並びに仮想ＬＣＤ３２０または実ＬＣＤ３１０等に表示した出力画像を記録し分析を行う。
【０１６４】
サンプリング定義５０１は、図１２のＲＡＭサンプリング定義データに示す通り、定義可能な設定データは、１つのＣＰＵから読込んだＲＡＭデータを複数の表示デバイスに同じＲＡＭデータを送信する設定およびサンプルリング周期を読込む個々のＲＡＭに設定することも可能になっている。
【０１６５】
[定常的な各マイコンの出力ＲＡＭデータの取得処理]
仮想マイコン１００内のプログラム１０２が、仮想リモコン３００または、実リモコン３３０から入力したリモコンコードに従って作成したＬＣＤ表示データ等のＲＡＭデータを、仮想ＬＣＤ３２０または実ＬＣＤ３１０の表示デバイスに表示するための処理を、ＲＡＭサンプリング部５０７で行う。
【０１６６】
ＲＡＭサンプリング部５０７は、予め読込みたいマイコン名として仮想マイコン１０２内のユーザＲＡＭ１０４、デバッグＲＡＭ１０８または、実マイコン２００内のユーザＲＡＭ２０４、デバッグＲＡＭ２０８を指定する。合わせて、指定したＲＡＭデータを一定周期で読込むため、サンプリングタイマを付ける。
【０１６７】
ＲＡＭの読込みは、サンプリングタイマのオーバーフロー毎に読込みたいマイコン名とＲＡＭ名としてＲＡＭシンボル名またはＲＡＭアドレス値と読込みたいデータサイズを出力データ取得部５２２に渡す。出力データ取得部５２２は、ＲＡＭデータを取得するため、ＲＡＭ読込みデータ５２０からマイコン実行パラメータ作成部５１４にて読込むマイコンを選択する。マイコン実行パラメータで、マイコンを選択し、仮想マイコン１００の場合は、仮想マイコン実行部５１０にて仮想マイコン１０２内のＲＡＭを込む。実マイコン
２００の場合は、実マイコン実行部５１２からＩＣＥ制御部５０８にて実マイコン内のＲＡＭを読込む。読込んだＲＡＭは、出力データ取得部５２２からＲＡＭサンプリング部５０７に渡す。ＲＡＭサンプリング部５０７は、予め読込んだＲＡＭを表示指定した周辺デバイス内の仮想ＬＣＤ３１０または実ＬＣＤ３２０等の表示デバイスに読込んだＲＡＭデータを仮想配線１２経由で転送する。
【０１６８】
仮想ＬＣＤ３２０に転送する場合は、仮想ＬＣＤ３２０で受信したデータを解析してＬＣＤ表示する。
【０１６９】
実ＬＣＤ３１０に転送する場合は、ＬＣＤブリッジ３１８で受信して、ＬＣＤブリッジ３１８内のＲＳ２３２Ｃ３１６にて実ＬＣＤ表示可能なデータに変換して、実機セットである実ＬＣＤ３１０にＲＳ２３２Ｃ経由にてデータを転送し表示する。
【０１７０】
複数の表示デバイスに表示する場合は、表示するＲＡＭデータを仮想ＬＣＤ３２０に仮想配線１２を経由して転送した後、同じＲＡＭデータを仮想配線１２から実ＬＣＤ３１０に転送し、それぞれの表示デバイスで表示する。
【０１７１】
なお、データ変化直後のデータを取得する方法の一例として、図１１に示すユーザＲＡＭ１０４がプログラム１０２の実行により変化した直後のデータを取得する場合は、予めＳｉｍデバッグプログラム１０６内のＶＨＬＣＤｂｕｆ処理（Ｓ１５６）にてプログラム１０２がリモコンコードを受付けてＬＣＤ表示データを作成した直後のデータを取得する条件のプログラムを組込み、条件一致時にＬＣＤｂｕｆ（Ｓ１６４）のＲＡＭデータをＶＨＬＣＤｂｕｆ（Ｓ１４４）のＲＡＭに書込む。これにより、変化直後のＲＡＭデータを取得することができ、ＶＨＬＣＤｂｕｆ（Ｓ１４４）のＲＡＭに書込まれたデータを別のデバイスから低速度で読んだ場合でも、変化直後のデータを確実に取得することが可能になる。
【０１７２】
また、ユーザＲＡＭ１０４またはデバッグＲＡＭ１０８またはユーザＲＡＭ２０４または、デバッグＲＡＭ２０８の指定したＲＡＭの変化の直後に仮想配線１２に接続してある各デバイス内の指定関数を実行する条件をＳｉｍ用デバッグプログラム１０６またはＳｉｍ・ＩＣＥ兼用デバッグプログラム内に組込む。条件一致時に、マイコンコントローラ５２０が、仮想配線１２に接続してある各デバイス内の指定関数を実行するため、仮想配線バスマネージャ１０のハイブリッド入力デバイス機能である成りすましで、指定したデバイス内の指定したコールバック関数を実行することができる。これにより、変化直後に各種のプログラムを実行することが可能となる。
【０１７３】
以上のように、プログラムテストを行うデバッグシステムに実マイコン２００と仮想マイコン１００を同時に起動しテストを行うことで、論理検証またはタイミング検証に合わせて実マイコン１００または仮想マイコン２００の切換えを瞬時に行える。
【０１７４】
また、自動検証時にテスト項目に合わせて実マイコン２００と仮想マイコン１００を自動で切換えることにより、プログラム機能の視点から作成した論理テストとタイミングテストをテスト内容中に混在させることが可能となり、最適な評価を効率よく行える。
【０１７５】
また、仮想マイコンを使ってデバッグ対象プログラムを開発した後、新規に作成した実マイコンを利用した実機デバッグセットで動作テストを行う場合に、仮想マイコンと実マイコンの動作をマイコン周辺の出力デバイスに表示し、合わせて比較したデータを表示することで実マイコン動作と仮想マイコン動作の差異が発生した場合に、効率よく差異を検出することで実マイコンデバッグセットの早期立上げが行える。
（第２実施形態）
以下、本発明の第２実施形態について、図を用いて説明する。
本発明にかかるハイブリッドプログラム検証システムでは、図１３に示す通り、仮想マイコン１２０とマイコンコントローラ５２０とが単独実行可能なアプリケーションとして実装されている点において、第１実施形態と異なっている。
＜第２実施形態の構成＞
本発明の第２実施形態にかかるハイブリッドプログラム検証装置は、図１３等に示す通り、手動によるプログラム検証と自動によるプログラム検証を行う。
【０１７６】
手動によるプログラム検証では、周辺入力デバイスである仮想リモコン３００または、実リモコン３３０等の何れか１つから入力したデータをテスト項目である論理テストまたは、タイミングテストに合わせてマイコンコントローラ５２０が、論理テストを行う仮想マイコン１２０または、タイミングテストを行う実マイコン２００の何れか１つあるいは複数のマイコンを選択してデータを転送し、選択したマイコンが実行した出力データをマイコンコントローラ５２０が取得し、画像イメージまたはデータ表示を行う。画像イメージを表示する場合は、周辺デバイス部３０内の仮想ＬＣＤ３２０または実ＬＣＤ３１０等の複数の出力デバイスに表示する。データ表示は、マイコンコントローラ５００内の比較分析部５０９で、多彩な表示形式によりデータ分析および複数マイコンを実行した場合のデータ比較が可能なシステム構成となっている。多彩な表示形式の一例として、図４に示す通り、１つの入力データを２つのマイコンに入力した結果を、入力データと共に、出力ＲＡＭデータと表示デバイスの画像を並べて表示することで、２つのＣＰＵの動作に差異がある場合に、検出が容易になる。
【０１７７】
自動によるプログラム検証では、自動テストを行うシナリオであるシナリオファイル４１２のデータを自動検証制御部４００が入力し、テスト項目の指示に従って、マイコンコントローラ５２０が、仮想マイコン１２０または、実マイコン２００の何れか１つあるいは複数のマイコンを選択して、データを転送し、選択したマイコンが実行した出力データをマイコンコントローラ５２０が取得し自動テストのシナリオファイル４１２に指定された内容を取得して図５のメッセージに変換したＯＵＴｄｅｖｉｃｅ項目の出力デバイスに、画像イメージまたはデータ表示を行う。画像イメージを表示する場合は、周辺デバイス部３０内の仮想ＬＣＤ３２０または実ＬＣＤ３１０等の複数の出力デバイスに表示する。データ表示は、マイコンコントローラ５２０内の比較分析部５０９で、多彩な表示形式によりデータ分析および複数マイコンを実行した場合のデータ比較を行った結果をＥｘｃｅｌ等に各マイコン実行結果の画像イメージおよびデータを自動記録あるいは、過去に記録した検証結果と比較する自動検証が可能なシステム構成となっている。多彩な表示形式の一例として、図４に示す通り、１つの入力データを２つのマイコンに入力した結果を、入力データと共に、出力ＲＡＭデータと表示デバイスの画像を並べて表示することで、２つのＣＰＵの動作に差異がある場合に、容易に検出可能になる。
【０１７８】
＜シンボル定義＞
ＶＣ＋＋を実行するＶＣコンパイラ６００でコンパイルした後、出力されるＲＡＭ変数のアドレス番地等のシンボル情報ファイルを元にシンボル変換部６０２で擬似デバッガ１１２が利用可能なＣ言語プログラムのシンボル定義部６０４作成し、仮想マイコン１２０内のプログラムソースファイルを一緒にコンパイルする。ＶＣ＋＋が出力するシンボル情報からシンボル定義部６０４に変換する内容の一例は、図６に示す通り。
【０１７９】
＜各デバイスを自動的に仮想配線接続する初期化処理＞
図１３に示す単独実行可能な仮想リモコン３００を起動すると、仮想配線マネージャ１０が既に起動していなければ、自動的に起動し、仮想リモコン３００内の仮想配線スロッ
ト１４と仮想配線マネージャ１０が自動配線され仮想配線１２ができる。
【０１８０】
次にＲＳ２３２Ｃ通信可能な実機である実リモコン３３０を起動した後、単独実行可能なリモコンブリッジ３３４を起動し、リモコンブリッジ３３４内のＲＳ２３２Ｃブリッジ３３２と実リモコン３３０をＲＳ２３２Ｃにて接続すると同時に、リモコンブリッジ３３４内の仮想配線スロット１４と仮想配線マネージャ１０が自動配線される。
【０１８１】
次に、単独実行可能な仮想ＬＣＤ３２０を起動し、仮想ＬＣＤ３２０内の仮想配線スロット１４と仮想配線マネージャ１０が自動配線される。また、仮想ＬＣＤ３２０は、マイコンコントローラ５２０からのＬＣＤ表示データを受信する許可を行う。
【０１８２】
次にＲＳ２３２Ｃ通信可能な実機である実ＬＣＤ３２０を起動した後、単独実行可能なＬＣＤブリッジ３１８を起動し、ＬＣＤブリッジ３１８内のＲＳ２３２Ｃブリッジ３１６と実ＬＣＤ３１０内のＲＳ２３２Ｃデバドラ３１４とＲＳ２３２Ｃで接続し、ＬＣＤブリッジ３１８内の仮想配線スロット１４と仮想配線マネージャ１０が自動配線される。これで、周辺デバイス部３０の入出力デバイスを仮想配線１２へ接続を完了する。
【０１８３】
次に、実マイコン２００内のプログラム２０２を実行可能な実機である実エミュレータ２１０を起動し、実マイコン内の単独実行可能な実デバッガ２１２を起動し、実エミュレータ２１０と実デバッガ２１２を接続する。実デバッガ２１２は、仮想配線スロット１４経由で仮想バスマネージャ１０と自動配線する。また、実デバッガは、マイコンコントローラ５２０から実デバッガ２１２を制御するコマンドの受信を許可する。また、単独実行可能な仮想マイコン１２０を起動し、仮想マイコン１２０内のプログラム１０２を実行可能な擬似エミュレータ１１０を動作させる。仮想マイコン１２０内の仮想配線スロット１４は、仮想配線マネージャ１０と自動配線される。これで、２つのマイコンエンジンの起動を完了する。
【０１８４】
次に、単独実行可能なマイコンコントローラ５２０が仮想配線１２経由で仮想リモコン３００の受信を許可する。実リモコン３３０がマイコンコントローラ一５２０にリモコンコードを送信する場合は、仮想リモコン３００にハイブリッド入力デバイス機能である成りすましにて送信する。
【０１８５】
次に、単独実行可能な自動検証制御部４００を起動し、自動検証制御部４００内の仮想配線スロット１４を仮想配線バスマネージャ１０に自動配線する。
【０１８６】
以上により、実リモコン３３０と仮想リモコン３００と実ＬＣＤ３１０と仮想ＬＣＤ３２０と実マイコン２００と仮想マイコン１２０とマイコンコントローラ５２０と自動検証制御部４００は、仮想配線マネージャ１０により仮想配線１２で接続し、ハイブリッドプログラム検証システムが起動したことになる。
【０１８７】
＜手動モード選択してマイコンを実行＞
各マイコンを実行する前に、図１４に示すマイコンコントローラ５２０内の実行するマイコンを自動切換えと手動切換えが可能なＣＰＵ切換え５１５で、手動モードに切換えて仮想マイコン１２０または実マイコン２００の何れか１つまたは複数のマイコンを選択可能な設定にする。
【０１８８】
手動モードを選択後、周辺デバイス部３０内の入力デバイスである実リモコン３３０または仮想リモコン３００がクリックされたキーコードデータと、各マイコンを制御するため、図５に示すメッセージ一覧表の項目Ｎｏ．１から５の手動操作によるデータを仮想配線１２からマイコンコントローラ５２０に渡す。マイコンコントローラ５２０は、手動モ
ードで、図５の選択ＣＰＵ項目に指示されたマイコンとして仮想マイコン１２０または実マイコン２００の何れか１つまたは複数のマイコンにキーコードを転送する。
【０１８９】
キーコードに従って、選択したマイコンを実行し、実行結果のＬＣＤ表示データ等をマイコンコントローラ５２０が取得し、画像イメージの表示とデータ表示を行う。
【０１９０】
画像イメージの表示は、図５のＯＵＴｄｅｖｉｃｅ項目に指示された出力デバイスに対して、マイコンコントローラ５２０内の出力分配部５３６が仮想ＬＣＤ３２０または、実ＬＣＤ３１０または、仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方にＬＣＤ表示データを転送しＬＣＤ表示する。表示デバイスに表示データを転送する場合、ＣＰＵ切換え５１５でハイブリッド出力デバイス指定にした場合は、仮想配線マネージャ１０の同報通信機能を使って仮想ＬＣＤ３２０だけに転送し、図２の仮想配線マネージャ１０内の通信定義データａ１５および通信定義データｂ１７に設定データに従って、仮想ＬＣＤ３２０または、実ＬＣＤ３１０または、仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方にＬＣＤ表示データを転送しＬＣＤ表示する。
【０１９１】
データ表示は、１６進数ダンプ表示、１０進数ダンプ表示、テキスト表示、バイト型表示、ワード型表示、ロング型表示、構造体表示等の表示を行い、複数のマイコンデータ比較等のデータ分析を行う。
＜自動モード選択してマイコンを実行＞
各マイコンを実行する前に、図１４に示すマイコンコントローラ５２０内の実行するマイコンを自動切換えと手動切換えが可能なＣＰＵ切換え５１５で、自動モードに切換えて仮想マイコン１２０または実マイコン２００の何れか１つまたは複数のマイコンを選択可能な設定にする。
【０１９２】
自動モードは、図８に示すシナリオファイル４１２からテスト項目ごとに検証するマイコンおよびリモコンコードを取得し、図５に示すメッセージ一覧表の項目Ｎｏ．６〜１１の自動操作によるデータを仮想リモコン３００にハイブリッド入力デバイス機能である成りすましで、仮想配線１２からマイコンコントローラ５２０に渡す。
【０１９３】
マイコンコントローラ５２０は、自動モードで、図５の選択ＣＰＵ項目に指定されたマイコンとして仮想マイコン１２０または実マイコン２００の何れか１つまたは複数のマイコンにキーコードを転送する。
【０１９４】
キーコードに従って、選択したマイコンを実行するが、手動との違いは、自動で検証するために、プログラム１０２またはプログラム２０２に確実にキーを渡し、キー処理の完了を自動で判断し、プログラム１０２またはプログラム２０２の実行結果を記録するために、図８に示すリセットスタート発行または、シーケンス発行または、イベント発行の完了を確認した後、次のシーケンスを実行するために同期通信を利用して実行する。
【０１９５】
自動で検証するテストの一例として図２３に示すシナリオファイル４１２の状態遷移表を使った検証の場合は、自動検証制御部４００がシナリオファイル４１２のシーケンスイベントに定義したマイコンを選択するデバイス選択データを取得する。
【０１９６】
次に、プログラム１０２またはプログラム２０２を検証する状態にするために、シーケンスデータを取得し状態遷移表の中のテストしたい状態にする。シーケンスデータとしてリセットスタートを取得した場合は、自動検証制御部４００からデバイス選択データとリセットをマイコンコントローラ５２０に同期送信する。マイコンコントローラ５２０は、デバイス選択データに従って、仮想マイコン１２０または実マイコン２００がリセット完了したことを確認し、次にマイコンコントローラ５２０は、プログラムＧＯ実行を仮想マイコン１２０または実マイコン２００に転送し、プログラムＧＯ実行したことを確認し、これによりリセットスタート完了し、マイコンコントローラ５２０を経由して自動検証制御部４００に返信する。
【０１９７】
リセットスタートの完了を確認した後、シナリオファイル４１２から取得したシーケンスがリモコンキーの場合は、シーケンスキーを実行するため、自動検証制御部４００からマイコンコントローラ５２０にデバイス選択データとシーケンスキーを同期送信する。マイコンコントローラ５２０は、仮想マイコン１２０または実マイコン２００がキー処理を完了したことを確認し、マイコンコントローラ５２０から自動検証制御部４００に返信する。
【０１９８】
シーケンス動作により、プログラム１０２またはプログラム２０２が目的の状態になったと想定して、シナリオファイル４１２から取得したイベントとなるリモコンキーでイベント実行するため、自動検証制御部４００からマイコンコントローラ５２０にデバイス選択データとイベントキーを同期送信する。マイコンコントローラは、仮想マイコン１２０または実マイコン２００がイベントキー処理を完了したことを確認し、仮想マイコン１２０または実マイコン２００が実行した結果のＬＣＤ表示データを取得し、マイコンコントローラ５２０にＬＣＤ表示データを返信し、画像イメージの表示とデータの表示を行う。
【０１９９】
画像イメージの表示は、図５のＯＵＴｄｅｖｉｃｅ項目に指示された出力デバイスに対して、マイコンコントローラ５２０内の出力分配部５３６が仮想ＬＣＤ３２０または、実ＬＣＤ３１０または、仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方にＬＣＤ表示データを転送しＬＣＤ表示する。
【０２００】
画像イメージの表示は、図５のＯＵＴｄｅｖｉｃｅ項目に指示された出力デバイスに対して、マイコンコントローラ５２０内の出力分配部５３６が仮想ＬＣＤ３２０または、実ＬＣＤ３１０または、仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方にＬＣＤ表示データを転送しＬＣＤ表示する。表示デバイスに表示データを転送する場合、ＣＰＵ切換え５１５でハイブリッド出力デバイス指定にした場合は、仮想配線マネージャ１０の同報通信機能を使って仮想ＬＣＤ３２０だけに転送し、図２の仮想配線マネージャ１０内の通信定義データａ１５および通信定義データｂ１７に設定データに従って、仮想ＬＣＤ３２０または、実ＬＣＤ３１０または、仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方にＬＣＤ表示データを転送しＬＣＤ表示する。
【０２０１】
データ表示は、比較分析部５０９で１６進数ダンプ表示、１０進数ダンプ表示、テキスト表示、バイト型表示、ワード型表示、ロング型表示、構造体表示等の表示および複数のマイコンデータ比較表示等をすることでデータ分析を行う。
【０２０２】
マイコンコントローラ５２０が画像イメージの表示とデータの表示を完了すると、自動検証制御部４００にＬＣＤ表示データを返信し、ＬＣＤ表示データを検証結果ファイル４１０（例えばＥｘｃｅｌファイル）に記録する。合わせて、仮想ＬＣＤ３２０または、実ＬＣＤ３１０の画像を検証結果ファイル（Ｅｘｃｅｌファイル）に記録する。以下、それらの処理の詳細についてそれぞれ説明する。
（１）仮想ＬＣＤ３２０の表示画像の記録
仮想ＬＣＤ３２０に表示した画像を検証結果ファイル４１０（例えばＥｘｃｅｌファイル）に記録する場合は、図２０に示すシナリオ読込み部１４４４が、図２８に示すシナリオファイル４１２のマルチ画面記録引数４１２ｂを取得し、マルチ画面記録とシングル画像記録による画像記録を行う。なお、図２８に示すシナリオファイル４１２は、シーケンスイベント４１２ａ、マルチ画面記録引数４１２ｂ、状態４１２ｃ、テストイベント４１２ｄ、アクション４１２ｅから構成されている。シーケンスイベント４１２ａは、テストする状態へ移行させるシーケンスイベントの定義である。マルチ画面記録引数４１２ｂは、マルチ画面を記録する条件を記述したものであり、記録枚数制限値または記録時間制限値あるいは記録時間間隔として記述される。状態４１２ｃは、テスト状態に関する条件を記述する。テストイベント４１２ｄは、テスト状態にした後、テストイベントを発行して実行結果を確認するための定義である。アクション４１２ｅには、テストイベントを発行した時に変化した状態を記録する。
＜シングル画面記録＞
シングル画像記録の場合は、シナリオ読込み部１４４４で読込んだマルチ画面記録引数４１２ｂをテスト部１４３８に渡し、シングル画像記録部１４３６を通して、仮想ＬＣＤ３２０に対して画像を転送する。画像転送には、２通りある。仮想ＬＣＤ３２０と自動検証部４０が同じパソコンで実行されるときは、クリップボード経由で画像を転送する（以下、「パソコン内転送」と称する）。一方、仮想ＬＣＤ３２０と自動検証部４０が別個のパソコンで起動されているときは、仮想ＬＣＤ３２０を起動したパソコンから自動検証部４０を起動しているパソコンに画像データを転送して自動検証部４０に仮想ウィンドウを作成し、その仮想ウィンドウに画像データを表示させ、クリップボードにコピーすることができる（以下、「パソコン間転送」と称する）。以下、それぞれの場合のシングル画面記録動作について説明する。
[パソコン内転送]
画像の転送の指示を受けたときに、パソコン内転送の指示の時は、クリップボードに仮想ＬＣＤ表示画像をキャプチャ指示する。仮想ＬＣＤ３２０は、図２１に示す画像コピー部１３０２で、仮想ＬＣＤ表示画像をクリップボードにキャプチャする。キャプチャが完了すると、図２０に示すダンプデータ取得部１４０６からキャプチャ画像記録部１４１４を経由して検証結果ファイル４１０に記録する。
[パソコン間転送]
画像の転送の指示を受けたときに、パソコン間転送の指示の時は、予め自動検証制御部４００内に仮想ウィンドウを作成するために、仮想ＬＣＤ３２０内の画像サイズＡＴ連絡部１３１０から、仮想ウィンドウサイズを、仮想ウィンドウ作成部１４０２に転送する。次に、画像データ転送部１３０６から画像データ取得部１４０４に画像を転送して、仮想ウィンドウ描画部１４０８で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ１４１０でクリップボードにコピーし、キャプチャ画像記録部１４１４を経由して検証結果ファイル４１０に記録する。
＜マルチ画面記録＞
マルチ画像記録の場合は、シナリオ読込み部１４４４で読込んだマルチ画面記録引数４１２ｂをテスト部１４３８に渡し、マルチ画像記録部１４３４で記録する際の枚数制限と時間制限データを解析する。記録枚数制限値は枚数カウンタ１４３２へ、時間制限値は時間カウンタ１４３０へそれぞれ渡される。仮想ＬＣＤ３２０に対して、マルチ画像記録開始の指示を、マルチ画像記録部１４３４から通知する。
【０２０３】
仮想ＬＣＤ３２０は、マルチ画像記録開始の指示を受けると、画像の変化を検出するために、１ｓｔデータ比較部１３２０で最初の画像データを確保すると同時に、最初の画像を自動検証制御部４００に転送する。
【０２０４】
画像転送には、２通りある。仮想ＬＣＤ３２０と自動検証部４０が同じパソコンで実行されるときは、クリップボード経由で画像を転送する（以下、「パソコン内転送」と称する）。一方、仮想ＬＣＤ３２０と自動検証部４０が別個のパソコンで起動されているときは、仮想ＬＣＤ３２０を起動したパソコンから自動検証部４０を起動しているパソコンに画像データを転送して自動検証部４０に仮想ウィンドウを作成し、その仮想ウィンドウに画像データを表示させ、クリップボードにコピーすることができる（以下、「パソコン間転送」と称する）。以下、それぞれの場合のマルチ画面記録動作について説明する。
[パソコン内転送]
１枚目の画像の転送指示を受けたときに、パソコン内転送の指示の時は、クリップボードに仮想ＬＣＤ表示画像をキャプチャするよう指示する。仮想ＬＣＤ３２０は、図２１に示す画像コピー部１３０２で仮想ＬＣＤ表示画像をクリップボードにキャプチャする。キャプチャが完了すると、図２０に示すダンプデータ取得部１４０６からキャプチャ画像記録部１４１４を経由して、キャプチャした仮想ＬＣＤ表示画像を検証結果ファイル４１０に記録する。
[パソコン間転送]
１枚目の画像の転送指示を受けたときに、パソコン間転送の指示の時は、予め自動検証制御部４００内に仮想ウィンドウを作成するために、仮想ＬＣＤ３２０内の画像サイズＡＴ連絡部１３１０から仮想ウィンドウ作成１４０２へ、仮想ウィンドウサイズを転送する。次に、画像データ転送部１３０６から画像データ取得部１４０４へ画像データを転送して、仮想ウィンドウ描画部１４０８で仮想表示した後、その仮想表示画像を仮想ウィンドウキャプチャ１４１０でクリップボードにコピーし、キャプチャ画像記録部１４１４を経由して検証結果ファイル４１０に記録する。また、２枚目以降の画像記録については、仮想ＬＣＤに描画するタイミングで、前回の画像データとの比較をデータ比較部１３１６で行い、違いがあれば自動検証制御部４００に画像を転送する。
[２枚目画像のパソコン内転送]
２枚目の画像の転送指示を受けたときに、パソコン内転送の指示の時は、ダンプデータ転送部１３０８から画像コピー部１３２０を経由して、さらに、図２０に示すダンプデータ取得部１４０６からキャプチャ画像記録部１４１４を経由して、検証結果ファイル４１０に画像データを記録する。
[２枚目画像のパソコン間転送]
２枚目の画像の転送指示を受けたときに、パソコン間転送の指示の時は、画像データ転送部１３０６から画像データ取得部１４０４に画像を転送して、仮想ウィンドウ描画部１４０８で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ１４１０でクリップボードにコピーし、キャプチャ画像記録部１４１４を経由して検証結果ファイル４１０に記録する。
【０２０５】
キャプチャ画像記録部１４１４は、マルチ画像記録の時は、記録が完了する度に、その旨をマルチ画像記録部１４３４に渡す。
【０２０６】
マルチ画像記録部１４３４は、枚数制限の時は、枚数カウンタ１４３２により記録画像の枚数をカウントし、カウント値が、枚数カウンタ１４３２に予め渡されている枚数制限値になると、仮想ＬＣＤ３２０に記録終了を指示する。これにより、自動検証制御部４００は、次のテストに移行する。
【０２０７】
一方、マルチ画像記録部１４３４は、時間制限の時は、時間カウンタ１４３０により記録時間を計測し、カウント値が、時間カウンタ１４３０に予め渡されている記録制限値になると、仮想ＬＣＤ３２０に記録終了を指示する。これにより、自動検証４００は、次のテストに移行する。
【０２０８】
さらに、１ｓｔデータ比較部１３２０が、２枚目以降の記録画像が最初の画像と同じであるかの比較を行い、同じであれば、仮想ＬＣＤ表示内容が点滅等の繰返し表示であるため、図２０の画像記録終了部１４１２からマルチ画像記録部１４３４に記録終了を通知し、自動検証制御部４００は、次のテストに移行する。
【０２０９】
なお、マルチ画像記録の変化を、データの代わりに、仮想ＬＣＤ３２０内の信号の変化を検出する１ｓｔ信号比較部１３１８を利用して検出することもできる。
（２）実ＬＣＤの表示画像の記録
実ＬＣＤ３1０に表示した画像を検証結果ファイル４１０（例えばＥｘｃｅｌファイル）に記録する場合は、図２０に示すシナリオ読込み部１４４４が、図２８に示すシナリオファイル４１２のマルチ画面記録引数４１２ｂを取得し、マルチ画面記録とシングル画像記録による画像記録を行う。
＜シングル画面記録＞
シングル画像記録の場合は、シナリオ読込み部１４４４で読込んだマルチ画面記録引数４１２ｂをテスト部１４３８に渡し、シングル画像記録部１４３６を通して、実ＬＣＤ３１０の画像をＰＣカメラ１３２６（図２２参照）で撮影し、ＵＳＢケーブル等でパソコンと接続し、パソコン上のカメラモニタ１３２２で表示した画像を転送する。画像転送には、２通りある。実ＬＣＤ３１０と自動検証部４０が同じパソコンで実行されるときは、クリップボード経由で画像を転送する（以下、「パソコン内転送」と称する）。一方、実ＬＣＤ３１０と自動検証部４０が別個のパソコンで起動されているときは、実ＬＣＤ３１０を起動したパソコンから自動検証部４０を起動しているパソコンに画像データを転送して自動検証部４０に仮想ウィンドウを作成し、その仮想ウィンドウに画像データを表示させ、クリップボードにコピーすることができる（以下、「パソコン間転送」と称する）。以下、それぞれの場合のシングル画面記録動作について説明する。
[パソコン内転送]
画像の転送の指示を受けたときに、パソコン内転送の指示の時は、画像コピー１３２８からカメラモニタ１３２２に表示した画像をクリップボードにキャプチャするよう指示する。キャプチャが完了すると、図２０に示すダンプデータ取得部１４０６からキャプチャ画像記録部１４１４を経由して、検証結果ファイル４１０に画像を記録する。
[パソコン間転送]
画像の転送の指示を受けたときに、パソコン間転送の指示の時は、予め自動検証制御部４００内に仮想ウィンドウを作成するために、実ＬＣＤ３１０の画像サイズを画像サイズＡＴ連絡部１３１０から仮想ウィンドウ作成１４０２へ、仮想ウィンドウサイズを転送する。次に、画像データ転送部１３０６から画像データ取得部１４０４に画像を転送して、仮想ウィンドウ描画１４０８で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ１４１０でクリップボードにコピーし、キャプチャ画像記録部１４１４を経由して検証結果ファイル４１０に記録する。
＜マルチ画面記録＞
マルチ画像記録の場合は、シナリオ読込み部１４４４で読込んだマルチ画面記録引数４１２ｂをテスト部１４３８に渡し、マルチ画像記録部１４３４で記録する枚数制限と時間制限データを解析する。記録枚数制限値は枚数カウンタ１４３２に渡し、時間制限値は時間カウンタ１４３０へ渡される。ＲＳ２３２Ｃブリッジ３１６に対して、マルチ画像記録開始の指示を、マルチ画像記録１４３４から通知する。ＲＳ２３２Ｃブリッジ３１６は、マルチ画像記録開始の指示を受けると、画像の変化を検出するために、１ｓｔデータ比較部１３２０で最初の画像データを確保すると同時に、最初の画像を自動検証制御部４００に転送する。
【０２１０】
画像転送には、２通りある。実ＬＣＤ３１０と自動検証部４０が同じパソコンで実行されるときは、クリップボード経由で画像を転送する（以下、「パソコン内転送」と称する）。一方、実ＬＣＤ３１０と自動検証部４０が別個のパソコンで起動されているときは、実ＬＣＤ３１０を起動したパソコンから自動検証部４０を起動しているパソコンに画像データを転送して自動検証部４０に仮想ウィンドウを作成し、その仮想ウィンドウに画像データを表示させ、クリップボードにコピーすることができる（以下、「パソコン間転送」と称する）。以下、それぞれの場合のシングル画面記録動作について説明する。
[パソコン内転送]
画像の転送の指示を受けたときに、パソコン内転送の指示の時は、画像コピー部１３２８から、カメラモニタ１３２２に表示した画像をクリップボードにキャプチャ指示する。キャプチャが完了すると、図２０に示すダンプデータ取得部１４０６からキャプチャ画像記録部１４１４を経由して検証結果ファイル４１０に記録する。
[パソコン間転送]
画像の転送の指示を受けたときに、パソコン間転送の指示の時は、予め自動検証制御部４００内に仮想ウィンドウを作成するために、実ＬＣＤ３１０の画像サイズを画像サイズＡＴ連絡部１３１０から仮想ウィンドウサイズを仮想ウィンドウ作成１４０２に転送する。次に、画像データ転送部１３０６から画像データ取得１４０４部に画像を転送して、仮想ウィンドウ描画部１４０８で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ１４１０でクリップボードにコピーし、キャプチャ画像記録部１４１４を経由して検証結果ファイル４１０に記録する。
【０２１１】
また、２枚目以降の画像記録については、実ＬＣＤ３１０に描画するタイミングで、前回の画像データとの比較をデータ比較部１３１６で行い、違いがあれば画像を自動検証制御部４００に転送する。
[２枚目画像のパソコン内転送]
２枚目の画像の転送指示を受けたときに、パソコン内転送の指示の時は、ダンプデータ転送部１３０８から画像コピー部１３２８を経由して、図２０に示すダンプデータ取得部１４０６からキャプチャ画像記録部１４１４を経由して検証結果ファイル４１０に記録する。
[２枚目画像のパソコン間転送]
２枚目の画像の転送指示を受けたときに、パソコン間転送の指示の時は、画像データ転送部１３０６から画像データ取得部１４０４に転送して、仮想ウィンドウ描画部１４０８で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ１４１０でクリップボードにコピーし、キャプチャ画像記録部１４１４を経由して検証結果ファイル４１０に記録する。
【０２１２】
キャプチャ画像記録部１４１４は、マルチ画像記録の時は、記録が終了するたびに、その旨をマルチ画像記録部１４３４に通知する。
【０２１３】
マルチ画像記録部１４３４は、枚数制限の時は、枚数カウンタ１４３２により記録画像の枚数をカウントし、カウント値が、枚数カウンタ１４３２に予め渡されている枚数制限値になると、ＲＳ２３２Ｃブリッジ３１６に記録終了を指示する。これにより、自動検証制御部４００は、次のテストに移行する。
【０２１４】
一方、マルチ画像記録部１４３４は、時間制限の時は、時間カウンタ１４３０により記録時間を計測し、カウント値が、時間カウンタ１４３０に予め渡されている記録制限値になると、ＲＳ２３２Ｃブリッジ３１６に記録終了を指示する。これにより、自動検証４００は、次のテストに移行する。
【０２１５】
さらに、１ｓｔデータ比較部１３２０が、２枚目以降の記録画像が最初の画像と同じであるかの比較を行い、同じであれば、実ＬＣＤ表示内容が点滅等の繰返し表示であるため、図２０の画像記録終了部１４１２からマルチ画像記録部１４３４に記録終了を通知し、自動検証制御部４００は、次のテストに移行する。
【０２１６】
なお、マルチ画像記録の変化を、データの代わりに、ＲＳ２３２Ｃブリッジ３１６内の信号の変化を検出する１ｓｔ信号比較部１３１８を利用して検出することもできる。
＜マルチ画面記録の動作フロー＞
[自動検証制御部から表示デバイスへの指示]
図２５に示すとおり、自動検証制御部４００は、シナリオ読込み部１４４４がシナリオファイル４１２から読込んだマルチ画面記録引数４１２ｂの値により、ＳｅｎｄＤｉｓｐ（）（Ｓ８００）でマルチ画像キャプチャ指示（Ｓ８０４）とシングル画像キャプチャ指示（Ｓ８０６）により、仮想ＬＣＤ３２０または実ＬＣＤ３１０に対して、図２６に示す「自動検証デバイス → 出力表示デバイス送信コマンド」を示すメッセージを、仮想配線１２経由で送信する。また、マルチ画面記録のときは、マルチ画像記録指示（Ｓ８０８）で仮想ＬＣＤ３２０または実ＬＣＤ３１０に対して、マルチ画面記録指示を送信する。
【０２１７】
[表示デバイスの処理と自動検証への通知]
図２３に示すとおり、仮想ＬＣＤ３２０または実ＬＣＤ３１０の処理は、ＬＣＤ＿Ｄｉｓｐ（）（Ｓ６００）で、自動検証制御部４００とマイコンコントローラ５２０から受信したメッセージにより振り分けて動作する。
【０２１８】
ｉＭｓｇ１ＬＣＤ（Ｓ６０２）では、通常処理を行う。具体的には、信号変化（Ｓ６０６）でデータ変化と信号変化を区別し、それぞれの処理を行う。次に、画面キャプチャの処理中であった場合は、表示変化させる画面キャプチャが正常に出来ないために、ｆＫｅｅｐフラッグをＳ６０１で判定し、ｆＫｅｅｐフラッグが立っていなければ、ＬＣＤ表示要求（Ｓ６１２）を行う。なお、ここではまだ表示しない。次に、２枚目以降の画面が１ｓｔ画面と同じか否かをＳ６１４で判断し、同じであれば、自動検証制御部４００に対してマルチ画面記録の終了指示を行う。
【０２１９】
ｉＭｓｇ１２０ＬＣＤ（Ｓ６２２）では、マルチ画面記録時の初期設定を行う。
【０２２０】
ｉＭｓｇ１１０ＬＣＤ（Ｓ６２８）では、最初の画面記録処理の場合は、１ｓｔ画像記録初期設定（Ｓ６３２）で初期化の処理を行う。合わせて自動検証制御部４００で画像を仮想表示させるために、仮想表示のウィンドウサイズを通知する。
【０２２１】
ｉＭｓｇ１１１ＬＣＤ（Ｓ６３８）では、自動検証制御部４００にクリップボード経由で画像データを転送するか、画像データを仮想配線１２経由で転送し、自動検証４００の仮想ウィンドウに表示するかの判断をＳ６４０で行いそれぞれの処理を実行する。
【０２２２】
[表示デバイスから自動検証デバイスに通知]
自動検証制御部４００が仮想ＬＣＤ３２０または実ＬＣＤ３１０から受信したメッセージに従って実行する処理は、図２４に示すとおり、ＬＣＤ＿Ｄｉｓｐ（）（Ｓ７００）で行う。
【０２２３】
ｉＭｓｇ１１３ＡＴ（Ｓ７０２）は、自動検証４００内に仮想ウィンドウを作成し、仮想ＬＣＤ３２０または実ＬＣＤ３１０から受信した表示データを表示するウィンドウを作成する。
【０２２４】
ｉＭｓｇ１１３ＡＴ（Ｓ７０６）は、仮想ＬＣＤ３２０または実ＬＣＤ３１０から画像をクリップボード経由で送ってきたか、画像データを仮想配線１２経由で送ってきたか判断して、仮想配線１２経由で送ってきた場合は、Ｓ７１２で仮想ウィンドウに画像を描画し、キャプチャ（Ｓ７１４）でクリップボードにコピーする。次に、クリップボードにコピーした画像を検証結果ファイル４１０に記録し、合わせて画像記録時の条件として、時間を記録する画像タイムスタンプ記録（Ｓ７１８）を行い、画像記録制限値になれば停止する処理を行う。
【０２２５】
ｉＭｓｇ１１２ＡＴ（Ｓ７０６）は、マルチ画像の記録終了の処理になる。記録を終了する処理には、画像記録時間の制限と画像記録数の制限と繰り返し表示の場合の３通りがあり、どの条件で終了したかを記録するために、画像条件記録（Ｓ７２８）で処理する。
【０２２６】
仮想ＬＣＤ３２０と実ＬＣＤ３１０の両方の画像を記録する場合は、仮想ＬＣＤ３２０に表示した画像を自動検証制御部４００がクリップボードにキャプチャ指示し、自動検証制御部４００がクリップボードの画像を検証結果ファイル４１０に記録した後、実ＬＣＤ３１０に表示した画像をＰＣカメラで撮影しＵＳＢケーブル等でパソコンと接続し、パソコン上に表示した画像を自動検証制御部４００がクリップボードにキャプチャ指示し、自動検証制御部４００がクリップボードの画像を検証結果ファイル４１０に記録する。また、仮想ＬＣＤ３２０と実ＬＣＤ３１０の画像を複数枚記録するマルチ画像記録を行うこともできる。
【０２２７】
図２９に、マルチ画像記録を行った結果として得られる検証結果ファイル４１０の内容の一例を示す。図２９において、Ａは、新規記録を実行したときのマルチ画面および画面のダンプデータである。なお、画面変化がないモードの場合は、１枚の画像のみが記録される。Ｂは比較検証時の実行モードである。Ｃは比較検証を実行したときのマルチ画面および画面のダンプデータである。
【０２２８】
＜仮想リモコンからマイコンコントローラへキーコードを転送する＞
仮想リモコン３００のボタンをクリックすると、キーコードを図５に示す項目Ｎｏ．１のデータフォーマットでマイコンコントローラ５２０に仮想リモコン３００内の仮想配線スロット１４から非同期送信する。送信したキーコードは仮想配線１２を経由してマイコンコントローラ５２０内の仮想配線スロット１４にて受信する。
【０２２９】
＜実リモコンからマイコンコントローラへキーコードを転送する＞
実機の実リモコン３３０のボタンをクリックすると、リモコンコードをＲＳ２３２Ｃ経由で送信し、リモコンブリッジ３３４内のＲＳ２３２Ｃブリッジ３３２で受信する。ＲＳ２３２Ｃブリッジ３３２は、受信したキーコードを仮想リモコン３００と同じ図５に示す項目Ｎｏ．１のデータフォーマットで、仮想リモコン３００にハイブリッド入力デバイス機能である成りすまして、マイコンコントローラ５２０にリモコンブリッジ３３４内の仮想配線スロット１４から非同期送信する。送信したキーコードは仮想配線１２を経由してマイコンコントローラ５２０内の仮想配線スロット１４で仮想リモコンから受信したことになる。
【０２３０】
＜自動検証からマイコンコントローラへキーコードを転送する＞
自動検証制御部４００内のシナリオ制御部４０４が、シナリオファイル４１２から取得するキーには、マイコンのリセットスタートとシーケンスキーとイベントキーがある。
【０２３１】
リセットスタートは、擬似エミュレータ１１０または、実エミュレータ２１０をリセットスタートすることで、プログラム１０２またはプログラム２０２の実行を中断し、初期処理から実行させるため、デバイス選択部４０６で図５の項目Ｎｏ．４のデータフォーマットに変換する。
【０２３２】
シーケンスキーは、状態遷移表の中のテストする状態にキー操作をするため、デバイス選択部４０６で図５の項目Ｎｏ．７または項目Ｎｏ．１０のデータフォーマットに変換する。
【０２３３】
イベントキーは、テストする状態になった時点で、キーを発行し、状態の変化を見ることで、キーの有効・無効および状態の変化を確認するため、デバイス選択部４０６で図５の項目Ｎｏ．８または項目Ｎｏ．１１のデータフォーマットに変換する。
【０２３４】
リセットスタートとシーケンスキーとイベントキーのそれぞれに変換したデータを自動検証制御部４００内の仮想配線スロット１４から仮想配線１２を経由してマイコンコントローラ５２０内の仮想配線スロット１４へ同期送信する。
【０２３５】
＜手動操作でマイコンコントローラが仮想マイコンを制御＞
仮想リモコン３００または、実リモコン３３０から図５に示すメッセージ一覧表の項目Ｎｏ．１のデータをマイコンコントローラ５２０内の仮想配線スロット１４で受信する。受信したデータは、図１４に示すマイコンコントローラ５２０内の並列実効５３２で図５
の選択ＣＰＵ項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図５の選択ＣＰＵ項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
【０２３６】
マイコンを選択した後、図５の操作項目の自動または手動の指定を手動と確認した後、自動・手動指示部５３０にて選択したマイコンに対して手動実行を行う。
【０２３７】
[手動操作でマイコンコントローラが仮想マイコンへリモコンキー転送]
リモコンコードを送信するパラメータを図９に示す項目Ｎｏ．１２のリモコンコードのＲＡＭシンボルを指定して書込みするラッパー関数を作成するマイコンパラメータ作成部５１４からマイコン共通実行部５４４で図１０に示す項目Ｎｏ．５のコマンドに変換して仮想配線１２を経由して仮想マイコン１２０にリモコンコードを転送する。
【０２３８】
なお、手動実行する内容にはリセットスタートとＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０２３９】
[手動操作でマイコンコントローラが仮想マイコンをリセットスタート]
手動実行する内容が、リセットスターの場合は、手動処理部５２６からマイコン制御指示部５１６からマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．２のマイコンリセット関数を作成し、マイコン共通実行部５４４で図１０に示す項目Ｎｏ．１１のコマンドに変換して仮想配線１２を経由して仮想マイコン１２０をリセットした後、続いて、図９に示す項目Ｎｏ．１のマイコン実行するラッパー関数を作成し、マイコン共通実行部５４４で図１０に示す項目Ｎｏ．１２のコマンドに変換して仮想配線１２を経由して仮想マイコン１２０を実行することで、仮想マイコンのリセットスタートを行う。
【０２４０】
[手動操作でマイコンコントローラが仮想マイコンにＲＡＭ書込み]
手動実行によるＲＡＭデータの書込みの場合は、ＲＡＭ書込み５１８からマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．１０から項目Ｎｏ．１５の関数を作成し、マイコン共通実行部５４４で図１０に示す項目Ｎｏ．１，３，５，６のコマンドに変換して仮想配線１２を経由して仮想マイコン１２０にＲＡＭ書込みを行う。
【０２４１】
[手動操作でマイコンコントローラが仮想マイコンにＲＡＭ読込み]
手動実行によるＲＡＭデータの読込みの場合は、出力データ取得部５２２からＲＡＭ読込み５２０を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．４〜９の関数を使ってマイコン共通実行部５４４から仮想配線１２を経由で仮想マイコン１２０からＲＡＭ読込みを行う。読込んだデータは、出力データ取得部５２２で取得したＲＡＭを比較分析部５０９にて表示させると同時に、出力分配部５３６からＲＡＭ読込みを要求したデバイスにＲＡＭデータをデバイスへ仮想配線１２経由で返信する。
【０２４２】
比較分析部５０９にて表示する一例として、図４に示す通り１つの入力データを２つのマイコンに入力した結果を、入力データと共に、出力ＲＡＭデータと表示デバイスの画像を並べて表示することで、２つのＣＰＵの動作に差異がある場合に、容易に検出可能になる。
【０２４３】
＜手動操作でマイコンコントローラが実マイコンを制御＞
仮想リモコン３００または、実リモコン３３０から図５に示すメッセージ一覧表の項目Ｎｏ．１のデータをマイコンコントローラ５２０内の仮想配線スロット１４で受信する。受信したデータは、図１４に示すマイコンコントローラ５２０内の並列実効５３２で図５の選択ＣＰＵ項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図５の選択ＣＰＵ項目に複数のマイコンを設定した場合は、設定したマイコン順に
順次実行を繰返す。
【０２４４】
マイコンを選択した後、図５の操作項目の自動または手動の指定を手動と確認した後、自動・手動指示部５３０にて選択したマイコンに対して手動実行を行う。
【０２４５】
[手動操作でマイコンコントローラが実マイコンへリモコンキー転送]
手動実行によるリモコンコードを送信する場合は、図９に示す項目Ｎｏ．１２に示す「ＲＡＭシンボルから１Ｂｙｔｅ書込み」のラッパー関数を使って、ユーザＲＡＭ２０４内のリモコンコード格納ＲＡＭシンボル名を指定してリモコンコードを書込むため、マイコン実行パラメータ作成部５１４とマイコン共通実行部５４４から仮想配線１２を経由して、図１０に示す項目Ｎｏ．５のコマンドに変換して実マイコン２００にリモコンコードを同期送信し、マイコン共通実行部５４４が同期返信を受けることで、実マイコン２００がリモコンコード受付を完了する。
【０２４６】
なお、手動実行する内容には、リセットスタートとＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０２４７】
[手動操作でマイコンコントローラが実マイコンをリセットスタート]
手動実行によるリセットスタートの場合は、手動処理部５２６からマイコン制御指示部５１６を経由して送信するパラメータは、図９に示す項目Ｎｏ．２に示す「マイコンリセット」ラッパー関数を使って、マイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．１１のリセットコマンドに変換して仮想配線１２を経由で実マイコン２００をリセットさせるために同期送信する。マイコン共通実行部５４４が同期返信を受けることでリセット完了を確認後、プログラム実行するために、手動処理部５２６からマイコン制御指示部５１６を経由して送信するパラメータは、図９に示す項目Ｎｏ．１に示す「マイコン実行」ラッパー関数を使って、マイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．１２のプログラムＧＯコマンドに変換し、実マイコン２００を実行させるために同期送信する。マイコン共通実行部５４４が同期返信を受けることでプログラムスタートを確認し、リセットスタートを完了する。
【０２４８】
[手動操作でマイコンコントローラが実マイコンにＲＡＭ書込み]
手動実行によるＲＡＭ書込みの場合は、手動処理部５２６およびＲＡＭ書込みデータ５１８から、ＲＡＭ書込みコマンドをマイコン実行パラメータ作成部５１４でＲＡＭ書込み要求に合わせて、図９に示す項目Ｎｏ．１０〜１５に示すＲＡＭ書込みのラッパー関数を使って、マイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．１，２，５，６のＲＡＭ書込みコマンドに変換して実マイコン２００がＲＡＭ書込みを行うため同期送信する。マイコン共通実行部５４４が同期返信を受けることでＲＡＭ書込みの完了を確認する。また出力ＲＡＭの比較し分析を行うために、実マイコンに書込んだＲＡＭデータによる実行結果の出力ＲＡＭの変化を見るために、書込みするデータを出力データ取得部５２２に渡し、実マイコンから読込んだデータをＲＡＭサンプリング部５０７で表示する。
【０２４９】
[手動操作でマイコンコントローラが実マイコンにＲＡＭ読込み]
手動実行によるＲＡＭ読込みの場合は、手動処理部５２６からＲＡＭ読込みデータ５２０からＲＡＭ書込みコマンドをマイコン実行パラメータ作成部５１４でＲＡＭ読込み要求に合わせて、図９に示す項目Ｎｏ．４から項目Ｎｏ．９に示すＲＡＭ読込みのラッパー関数を作成し、マイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．３，４，７，８のＲＡＭ読込みコマンドに変換して実マイコン２００がＲＡＭ読込みを行うため同期送信する。マイコン共通実行部５４４が同期返信を受けることでＲＡＭ読込み、出力データ取得部５２２で取得したＲＡＭを比較分析部５０９にて表示させると同時に、出力
分配部５３６からＲＡＭ読込みを要求したデバイスにＲＡＭデータをデバイスへ仮想配線１２経由で返信する。比較分析部５０９にて表示する一例として、図４に示す通り１つの入力データを２つのマイコンに入力した結果を、入力データと共に、出力ＲＡＭデータと表示デバイスの画像を並べて表示することで、２つのＣＰＵの動作に差異がある場合に、容易に検出可能になる。
【０２５０】
＜自動操作でマイコンコントローラが仮想マイコンを制御＞
自動検証制御部４００から発行するリモコンコードを仮想リモコン３００または、実リモコン３３０が発行する同じフォーマットのデータにて仮想バスマネージャのハイブリッド入力デバイス機能である成りすましを使ってマイコンコントローラ５２０に同期送信する。マイコンコントローラ５２０は、図５に示すメッセージ一覧表のデータをマイコンコントローラ５２０内の仮想配線スロット１４で受信する。受信したデータは、図１４に示すマイコンコントローラ５２０内の並列実効５３２で図５の選択ＣＰＵ項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図５の選択ＣＰＵ項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
【０２５１】
マイコンを選択した後、図５の操作項目の自動または手動の指定を自動と確認した後、自動・手動指示部５３０で選択した仮想マイコン１２０に対して自動実行を行う。
【０２５２】
[自動操作でマイコンコントローラが仮想マイコンへリモコンキー転送]
自動・手動指示部５３０から自動でリモコンコードを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、仮想マイコンのＲＡＭ読書き制御の処理が完了するまで待つ。リモコンコードを送信するパラメータは、図９の項目Ｎｏ．１２に示すリモコンコードのＲＡＭシンボルを指定して書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４からマイコン共通実行部５４４で図１０に示す項目Ｎｏ．５のコマンドに変換して仮想マイコン１２０にリモコンコードを同期送信し、マイコン共通実行部５４４が同期返信を受けることで、仮想マイコン１２０がリモコンキー受付完了するまで待つ。
【０２５３】
リモコンキー受付処理が完了すると、マイコン共通実行部５４４から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、リモコンコード書込み指示をしたデバイスに対して仮想バス１２経由でリモコンコード受付処理完了を返信する。
【０２５４】
なお、手動実行する内容にはリセットスタートとＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０２５５】
[自動操作でマイコンコントローラが仮想マイコンをリセットスタート]
自動・手動指示部５３０から自動でリセットスタートを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、仮想マイコン１２０のリセットスタート制御の処理が完了するまで待つ。
【０２５６】
実行・完了待ち部５２４からマイコン制御指示部５１６を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．２のマイコンリセット関数を作成し、マイコン共通実行部５４４から仮想マイコン１２０をリセットした後、続いて、図９に示す項目Ｎｏ．１のマイコン実行するラッパー関数を作成し、マイコン共通実行部５４４から仮想マイコン１２０を実行し、仮想マイコン１２０がリセットスタート完了するまで待つ。
【０２５７】
リセットスタート処理が完了すると、マイコン共通実行部５４４から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、リセットスタートを指示したデバイスに対して仮想バス１２経由で処理完了を返信する。
【０２５８】
[自動操作でマイコンコントローラが仮想マイコンにＲＡＭ書込み]
自動・手動指示部５３０から自動でＲＡＭ書込みを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、仮想マイコン１２０のＲＡＭ書込み制御の処理が完了するまで待つ。
【０２５９】
実行・完了待ち部５２４からＲＡＭ書込みデータ５１８を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．１０から項目１５の関数を使ってＲＡＭ書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４からマイコン共通実行部５４４から仮想マイコン１２０にＲＡＭデータを渡し、仮想マイコン１２０がＲＡＭ書込み完了するまで待つ。
【０２６０】
ＲＡＭ書込み処理が完了すると、マイコン共通実行部５４４から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、ＲＡＭ書込みを指示したデバイスに対して仮想バス１２経由でＲＡＭデータ書込み処理完了を返信する。
【０２６１】
[自動操作でマイコンコントローラが仮想マイコンにＲＡＭ読込み]
自動・手動指示部５３０から自動でＲＡＭ読込みを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、仮想マイコン１２０のＲＡＭ読込み制御の処理が完了するまで待つ。
【０２６２】
実行・完了待ち部５２４からＲＡＭ読込みデータ５２０を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．４から項目Ｎｏ．９の関数を使ってＲＡＭ読込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４からマイコン共通実行部５４４から仮想マイコン１２０にリモコンコードを渡し、仮想マイコンがＲＡＭ読込み完了するまで待つ。
【０２６３】
ＲＡＭ読込み処理が完了すると、マイコン共通実行部５４４から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、ＲＡＭ読込みを指示したデバイスに対して仮想バス１２経由でＲＡＭ読込み処理完了を返信する。また、読込んだデータは、出力データ取得部５２２で取得したＲＡＭを比較分析部５０９にて表示させる。比較分析部５０９で表示する一例として、図４に示す通り、１つの入力データを２つのマイコンに入力した結果を、入力データの横に出力ＲＡＭデータと表示デバイスの画像を並べることで、２つのＣＰＵの動作に差異がある場合に容易に検出可能になる。
【０２６４】
＜自動操作でマイコンコントローラが実マイコンを制御＞
自動検証制御部４００から発行するリモコンコードを仮想リモコン３００または、実リモコン３３０が発行する同じフォーマットのデータにて仮想バスマネージャのハイブリッド入力デバイス機能である成りすましを使ってマイコンコントローラ５２０に同期送信する。マイコンコントローラ５２０は、図５に示すメッセージ一覧表のデータをマイコンコントローラ５２０内の仮想配線スロット１４で受信する。受信したデータは、図１４に示すマイコンコントローラ５２０内の並列実効５３２で図５の選択ＣＰＵ項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図５の選択ＣＰＵ項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
【０２６５】
マイコンを選択した後、図５の操作項目の自動または手動の指定を自動と確認した後、自動・手動指示部５３０で選択した実マイコン２００に対して自動実行を行う。
【０２６６】
[自動操作でマイコンコントローラが実マイコンへリモコンキー転送]
自動・手動指示部５３０から自動でリモコンコードを送信する指示をうけた自動処理部
５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、実マイコン２００のＲＡＭ読書き制御の処理が完了するまで待つ。リモコンコードを送信するパラメータは、図９の項目Ｎｏ．１２に示すリモコンコードのＲＡＭシンボルを指定して書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４からマイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．５のＲＡＭシンボル書込みコマンドに変換して実マイコン２００にリモコンコードを渡し、実マイコン２００がリモコンキー受付完了するまで待つ。
【０２６７】
リモコンキー受付処理が完了すると、マイコン共通実行部５４４から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、リモコンコード書込み指示をしたデバイスに対して仮想バス１２経由でリモコンコード受付処理完了を返信する。
【０２６８】
なお、手動実行する内容にはリセットスタートとＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０２６９】
[自動操作でマイコンコントローラが実マイコンをリセットスタート]
自動・手動指示部５３０から自動でリセットスタートを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、実マイコン２００のリセットスタート制御の処理が完了するまで待つ。
【０２７０】
実行・完了待ち部５２４からマイコン制御指示部５１６を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．２のマイコンリセット関数を作成し、マイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．１１のリセットコマンドに変換して実マイコン２００をリセットした後、続いて、図９に示す項目Ｎｏ．１のマイコン実行するラッパー関数を作成し、マイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．１２のプログラムＧＯコマンドに変換して実マイコン２００を実行し、実マイコン２００がリセットスタート完了するまで待つ。
【０２７１】
リセットスタート処理が完了すると、マイコン共通実行部５４４から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、リセットスタートを指示したデバイスに対して仮想バス１２経由で処理完了を返信する。
【０２７２】
[自動操作でマイコンコントローラが実マイコンにＲＡＭ書込み]
自動・手動指示部５３０から自動でＲＡＭ書込みを送信する指示をうけた自動処理部５２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、実マイコン２００のＲＡＭ書込み制御の処理が完了するまで待つ。
【０２７３】
実行・完了待ち部５２４からＲＡＭ書込みデータ５１８を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．１０〜１５の関数を使ってＲＡＭ書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４からマイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．１，２，５，６のＲＡＭ書込みコマンドに変換して実マイコン２００にＲＡＭデータを渡し、実マイコン２００がＲＡＭ書込み完了するまで待つ。
【０２７４】
ＲＡＭ書込み処理が完了すると、マイコン共通実行部５４４から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、ＲＡＭ書込みを指示したデバイスに対して仮想バス１２経由でＲＡＭ書込み処理完了を返信する。
【０２７５】
[自動操作でマイコンコントローラが実マイコンにＲＡＭ読込み]
自動・手動指示部５３０から自動でＲＡＭ読込みを送信する指示をうけた自動処理部５
２８は、実行・完了待ち部５２４にて同期送信の設定を行うことで、実マイコン２００のＲＡＭ読込み制御の処理が完了するまで待つ。
【０２７６】
実行・完了待ち部５２４からＲＡＭ読込みデータ５２０を経由してマイコン実行パラメータ作成部５１４で図９に示す項目Ｎｏ．４〜９の関数を使ってＲＡＭ読込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部５１４からマイコン共通実行部５４４でラッパー関数を図１０に示す項目Ｎｏ．３，４，７，８のＲＡＭシンボル読込みコマンドに変換して実マイコン２００にＲＡＭデータを渡し、実マイコン２００がＲＡＭ読込み完了するまで待つ。
【０２７７】
ＲＡＭ読込み処理が完了すると、マイコン共通実行部５４４から実行・完了待ち部５２４に完了通知する。実行・完了待ち部５２４から、ＲＡＭ読込みを指示したデバイスに対して仮想バス１２経由でＲＡＭ読込み処理完了を返信する。また、読込んだデータは、出力データ取得部５２２で取得したＲＡＭを比較分析部５０９にて表示させる。比較分析部５０９にて表示する一例として、図４に示す通り、１つの入力データを２つのマイコンに入力した結果を、入力データと共に出力ＲＡＭデータと表示デバイスの画像を並べることで、２つのＣＰＵの動作に差異がある場合に容易に検出可能になる。
【０２７８】
＜仮想マイコンの制御処理＞
マイコンコントローラ５２０から発行した図１０に示すマイコン制御コマンドの解析を仮想マイコン１２０内のコマンド解析部１３４で行い、擬似エミュレータ１１０の実行と擬似エミュレータ１１０のリセットとデバッグＲＡＭ１０８またはユーザＲＡＭ１０４内のＲＡＭ読書きする各コマンドに対応する仮想マイコン１２０の制御を行う。
なお、仮想マイコン１２０の制御にあたり、手動制御と自動制御は同じ動作になる。
【０２７９】
[仮想マイコン内にリモコンコード書込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたリモコンコードは、マイコンコントローラ５２０で図１０の項目Ｎｏ．５の１バイトシンボルライトコマンドをコマンド解析部１３４で解析し、ＲＡＭシンボル指定１３０に渡す。ＲＡＭシンボル指定１３０は、図６のシンボル定義ファイルに示すシンボル定義部６０４とコマンド解析部１３４から送られてきたリモコンコードのＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換してＲＡＭ読書き識別１２８からＲＡＭ書込み１２４に渡す。ＲＡＭ書込み１２４は、デバッグＲＡＭ１０８に書込みＳｉｍデバッグプログラム１０６およびプログラム１０２をリモコン入力により動作する。
【０２８０】
Ｓｉｍデバッグプログラム１０６およびプログラム１０２の動作は、図１１に示す通り、マイコンコントローラ５２０内の仮想ＲｅｍｏＳ１０６からＶＨＲｅｍｏＳ１４０にＲＡＭを書込みをＳｉｍデバッグプログラム１０６プログラムがＶＨＲｅｍｏ処理Ｓ１５２にて確認した後、ＲｅｍｏＳ１６０にリモコンコードを書込むことで、プログラム１０２は、リモコンコードが入力されたと判断して、ＲｅｍｏＳ１６０に書込まれたリモコンコードに対応した動作を行う。
【０２８１】
なお、仮想マイコン１２０を制御する内容には、擬似エミュレータのリセットと、擬似エミュレータの実行開始と、ＲＡＭ書込みと、ＲＡＭ読込みとがあり、それぞれの動作は次の通りである。
【０２８２】
[擬似エミュレータをリセット]
擬似エミュレータ１１０のリセットは、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたリセットコマンドにより開始される。マイコンコントローラ５２０は、図１５に示す通り、項目Ｎｏ．１１のリセットコマンドのデータフ
ォーマットで、リセットコマンドをコマンド解析部１３４に渡す。コマンド解析部１３４はリセットコマンドを解析し、リセット部１２２に渡す。
【０２８３】
次に、マイコンコントローラ５２０から、マイコンコントローラ５２０内の仮想配線スロット１４に対して、仮想マイコンのリセット要求を行う。マイコンコントローラ５２０内の仮想配線スロット１４は、同期通信にて仮想配線マネージャ１０内のリスタート実行部１６に対してリセット要求し、リスタート完了まで同期返信待ちする。仮想配線マネージャ１０は、仮想マイコン１２０のウィンドウハンドラを取得し、そのウィンドウハンドラを使って仮想マイコン１２０のアプリケーションを強制終了する。仮想マイコン１２０のウィンドウハンドラの取得が不可になることで、仮想マイコン１２０はアプリケーションの終了を確認し、マイコンコントローラ５２０にリセット完了を返信する。
【０２８４】
[擬似エミュレータでプログラム実行開始]
擬似エミュレータ１１０の動作開始により、Ｓｉｍデバッグプログラム１０６およびプログラム１０２の実行開始が開始される。仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたプログラム実行コマンドは、マイコンコントローラ５２０により、図１０に示す項目Ｎｏ．１２のプログラムＧＯ実行コマンドのデータフォーマットで、コマンド解析部１３４に渡される。コマンド解析部１３４は、プログラム実行コマンドを解析し、実行部１２０に渡す。
【０２８５】
次に、マイコンコントローラ５２０からマイコンコントローラ５２０内の仮想配線スロット１４に対して、仮想マイコン１２０のスタート要求を行う。マイコンコントローラ５２０内の仮想配線スロット１４は、同期通信にて仮想配線マネージャ１０内のリスタート実行部１６に対してスタート要求する。仮想配線マネージャ１０は、先に終了した仮想マイコン１２０のアプリケーション名を記憶しておき、そのアプリケーションを再起動する。仮想配線マネージャ１０は、仮想マイコン１２０から仮想配線１２への接続要求待ちを行う。仮想マイコン１２０は、起動すると、仮想配線マネージャ１０に対して仮想配線接続要求を出す。仮想配線マネージャ１０は、この要求を受けて、仮想マイコン１２０が起動したことを確認すると、マイコンコントローラ５２０に対して、仮想マイコン１２０が起動完了したことを返信する。
【０２８６】
実マイコンのリセットスタート時に全てのＲＡＭをゼロクリアするのと同様な動作を、仮想マイコン・マイコンコントローラ一体部５０のアプリケーションでは、マイコンコントローラのスレッドから仮想マイコンのスレッドを終了させ、再び仮想マイコンスレッドを起動する方法により行う。この場合、プログラムは初期化処理から実行するが、全てのＲＡＭのゼロクリアは、仮想マイコン・マイコンコントローラ一体部５０のアプリケーションが終了してないため、ゼロクリアされない。もしこの状態でゼロクリアする場合は、全てのグローバル変数のＲＡＭを抽出し、クリアするプログラムをＳｉｍデバッグプログラム１０６内に組込む必要がある。そこで、仮想マイコン１２０とマイコンコントローラ５２０のそれぞれ別々のアプリケーションとし、マイコンコントローラ５２０から仮想マイコン１２０アプリケーションを強制終了し、再起動させることで、ＲＡＭは全てゼロクリアされる。このため、全てのグローバル変数のＲＡＭを抽出し、クリアするプログラムをＳｉｍデバッグプログラム１０６内に組込む必要はなくなる。
【０２８７】
[仮想マイコン内のＲＡＭに書込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ書込みＲＡＭアドレス指定の場合は、マイコンコントローラ５２０で図１０の項目Ｎｏ．１，２のＲＡＭアドレスライトコマンドをコマンド解析部１３４で解析し、ＲＡＭアドレス指定１３２に渡す。ＲＡＭアドレス指定１３２は、ＲＡＭ読書き識別１２８からＲＡＭ書込み１２４に渡す。ＲＡＭ書込み１２４は、デバッグＲＡＭ１０８または
ユーザＲＡＭ１０４に書込みＳｉｍデバッグプログラム１０６およびプログラム１０２をＲＡＭに書込んだデータにより動作させる。
【０２８８】
また仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ書込みＲＡＭシンボル指定の場合は、マイコンコントローラ５２０で図１０の項目Ｎｏ．５，６のＲＡＭシンボルライトコマンドをコマンド解析部１３４で解析し、ＲＡＭシンボル指定１３０に渡す。ＲＡＭシンボル指定１３０は、図６のシンボル定義ファイルに示すシンボル定義部６０４とコマンド解析部１３４から送られてきたＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換してＲＡＭ読書き識別１２８からＲＡＭ書込み１２４に渡す。ＲＡＭ書込み１２４は、デバッグＲＡＭ１０８に書込みＳｉｍデバッグプログラム１０６およびプログラム１０２をリモコン入力により動作させる。
【０２８９】
Ｓｉｍデバッグプログラム１０６およびプログラム１０２の動作の一例は、図１１に示す通り、マイコンコントローラ５２０内の仮想ＲｅｍｏＳ１０６からＶＨＲｅｍｏＳ１４０にＲＡＭを書込みＳｉｍデバッグプログラム１０６プログラムがＶＨＲｅｍｏ処理Ｓ１５２にて確認した後、ＲｅｍｏＳ１６０にリモコンコードを書込むことで、プログラム１０２は、リモコンコードが入力されたと判断して、ＲｅｍｏＳ１６０に書込まれたリモコンコードに対応した動作を行う。
【０２９０】
[仮想マイコン内のＲＡＭに読込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ読込みＲＡＭアドレス指定の場合は、マイコンコントローラ５２０で図１０の項目Ｎｏ．３，４のＲＡＭアドレスリードコマンドをコマンド解析部１３４で解析し、ＲＡＭアドレス指定１３２に渡す。ＲＡＭアドレス指定１３２からＲＡＭ読書き識別１２８を経由してＲＡＭ読込み１２６に渡す。ＲＡＭ読込み１２６は、デバッグＲＡＭ１０８またはユーザＲＡＭ１０４から読込んだＲＡＭデータは、ＲＡＭ読込み１２６からコマンド解析部１３４を経由してマイコンコントローラ５２０に返信する。
【０２９１】
また、また仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ読込みＲＡＭシンボル指定の場合は、マイコンコントローラ５２０で図１０の項目Ｎｏ．７，８のＲＡＭシンボルリードコマンドをコマンド解析部１３４で解析し、ＲＡＭシンボル指定１３０に渡す。ＲＡＭシンボル指定１３０は、図６のシンボル定義ファイルに示すシンボル定義部６０４とコマンド解析部１３４から送られてきたＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換してＲＡＭ読書き識別１２８からＲＡＭ読込み１２６に渡す。ＲＡＭ読込み１２６は、デバッグＲＡＭ１０８またはユーザＲＡＭ１０４から読込んだＲＡＭデータは、ＲＡＭ読込み１２６からコマンド解析部１３４を経由してマイコンコントローラ５２０に返信する。
【０２９２】
＜実マイコンの制御処理＞
図１０に示すマイコン制御コマンドをマイコンコントローラ５２０が発行し、仮想配線１２から仮想配線スロット１４を経由して図３に示す実マイコン２００内の実デバッガに渡す。実デバッガ２１２がコマンドを解析し、実エミュレータ２１０の実行と実エミュレータ２１０のリセットとデバッグＲＡＭｓ２０８またはユーザＲＡＭ２０４内のＲＡＭ読書きする各コマンドに対応する実マイコン２００の制御を行う。
なお、マイコン２００の制御にあたり、手動制御と自動制御は同じ動作になる。
【０２９３】
[実マイコン内にリモコンコード書込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたリモコンコードは、図１０の項目Ｎｏ．５の１バイトシンボルライトコマンドをマイコン
コントローラ５２０が発行し、仮想配線１２から仮想配線スロット１４経由して図３に示す実マイコン２００内の実デバッガに渡す。図１０の項目Ｎｏ．５の１バイトシンボルライトコマンドを実デバッガ２１２で解析し、ＰＸｓｙｍｂｏｌ２２２のシンボル定義ファイルとマイコンコントローラ５２０から送られてきたリモコンコードのＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換し、デバッグＲＡＭ２０８に書込みＳｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２をリモコン入力により動作する。
【０２９４】
Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６およびプログラム２０２の動作は、図１１に示す通り、マイコンコントローラ５２０内のＩＣＥ＿ＲｅｍｏＳ１０４からデバッグＲＡＭ２０８にＲＡＭデータを書込みＳｉｍ・ＩＣＥ兼用デバッグプログラム２０６プログラムがリモコンコード書込みを確認した後、ユーザＲＡＭ２０４にリモコンコードを書込むことで、プログラム２０２は、リモコンコードが入力されたと判断して、リモコンコードに対応した動作を行う。
【０２９５】
なお、実マイコン２００を制御する内容には、実エミュレータ２１０のリセットと実エミュレータ２１０の実行開始とＲＡＭ書込みとＲＡＭ読込みがあり、それぞれの動作は次の通りである。
【０２９６】
[実エミュレータをリセット]
実エミュレータ２１０のリセットは、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたリセットコマンドにより開始される。マイコンコントローラ５２０は、図１０に示す項目Ｎｏ．１１のリセットコマンドのデータフォーマットで、リセットコマンドを仮想配線１２から仮想配線バススロット経由で実デバッガ２１２に渡す。実デバッガ２１２は、リセットコマンドに従って、実エミュレータ２１０をリセットすることで、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２の動作を強制停止し、擬似エミュレータ１１０をリセットする。
【０２９７】
[実エミュレータでプログラム実行開始]
実エミュレータ２１０のプログラムＧＯ実行は、仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたプログラム実行コマンドにより開始される。マイコンコントローラ５２０は、図１０に示す項目Ｎｏ．１２のプログラムＧＯ実行コマンドのデータフォーマットで、プログラムＧＯ実行コマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、プログラムＧＯ実行コマンドに従って、実エミュレータ２１０をリセットすることで、Ｓｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２の動作を起動し、実エミュレータの実行を開始する。
【０２９８】
Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６およびプログラム２０２のリセット実行とプログラム実行を連続して行うことで、リセットスタート動作が実現出来る。
【０２９９】
[実マイコン内のＲＡＭに書込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ書込みＲＡＭアドレス指定の場合は、マイコンコントローラ５２０で図１０の項目Ｎｏ．１，２のＲＡＭアドレスライトコマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、コマンドを解析し、デバッグＲＡＭ２０８またはユーザＲＡＭ２０４に書込みＳｉｍ・ＩＣＥ兼用デバッグプログラム２０６およびプログラム２０２をＲＡＭに書込んだデータにより動作させる。
【０３００】
また仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行さ
れたＲＡＭデータ書込みＲＡＭシンボル指定の場合は、マイコンコントローラ５２０で図１０の項目Ｎｏ．５，６のＲＡＭシンボルライトコマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、ＰＸｓｙｍｂｏｌ２２２のシンボル定義ファイルとマイコンコントローラ５２０から送られてきたＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換し、デバッグＲＡＭ２０８に書込みＳｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２を書込んだＲＭデータにより動作する。
【０３０１】
Ｓｉｍ・ＩＣＥ兼用デバッグプログラム２０６およびプログラム２０２の動作は、図１１に示す通り、マイコンコントローラ５２０内のＩＣＥ＿ＲｅｍｏＳ１０４からデバッグＲＡＭ２０８または、ユーザＲＡＭ２０４にＲＡＭデータを書込みＳｉｍ・ＩＣＥ兼用デバッグプログラム２０６プログラムまたは、プログラム２０２が書込んだＲＡＭデータを確認した後、ユーザＲＡＭ２０４にリモコンコードを書込むことで、プログラム２０２はＳｉｍ・ＩＣＥ兼用デバッグプログラム１０６およびプログラム１０２を書込んだＲＡＭデータにより動作する。
【０３０２】
[実マイコン内のＲＡＭに読込み]
仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ読込みＲＡＭアドレス指定の場合は、マイコンコントローラ５２０で図１０の項目Ｎｏ．３，４のＲＡＭアドレスリードコマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、実エミュレータ２１０からデバッグＲＡＭ２０８またはユーザＲＡＭ２０４から読込んだＲＡＭデータを仮想配線１２からマイコンコントローラ５２０に返信する。
【０３０３】
また、また仮想リモコン３００、実リモコン３３０、または自動検証制御部４００から発行されたＲＡＭデータ読込みＲＡＭシンボル指定の場合は、マイコンコントローラ５２０で図１０の項目Ｎｏ．７，８のＲＡＭシンボルリードコマンドを仮想配線１２から仮想配線バススロット１４経由で実デバッガ２１２に渡す。実デバッガ２１２は、ＰＸｓｙｍｂｏｌ２２２のシンボル定義ファイルとマイコンコントローラ５２０から送られてきたＲＡＭシンボル名を比較し、一致したＲＡＭシンボル名に対応するＲＡＭアドレスに変換し、実デバッガに渡す。実デバッガ２１２は、実エミュレータ２１０からデバッグＲＡＭ２０８またはユーザＲＡＭ２０４から読込んだＲＡＭデータを仮想配線１２からマイコンコントローラ５２０に返信する。
＜各マイコンの出力ＲＡＭデータの取得処理＞
仮想マイコン１２０または実マイコン２００内のＲＡＭデータを取得し表示等の処理は、マイコンコントローラ５２０内のＲＡＭサンプリング部５０７内のサンプリング定義５０１として予め読込みたいＲＡＭを指定したマイコン名とＲＡＭ名を複数指定し、定常的なＲＡＭサンプリングを行う周期タイマを設定した後、ＲＡＭサンプリング部５０７にて定常的なＲＡＭデータの取得を行い、定義データで指定された周辺デバイス部３０内の仮想ＬＣＤ３２０または実ＬＣＤ３１０等に表示する。
【０３０４】
また、仮想マイコン１２０または実マイコン２００または仮想マイコン１２０と実マイコン２００を同時に動作させて、それぞれのＲＡＭデータ取得し、比較分析部５０９にてＲＡＭデータ並びに仮想ＬＣＤ３２０または実ＬＣＤ３１０等に表示した出力画像を記録し分析を行う。
【０３０５】
サンプリング定義５０１は、図１２のＲＡＭサンプリング定義データ示す通り、定義可能な設定データは、１つのＣＰＵから読込んだＲＡＭデータを複数の表示デバイスに同じＲＡＭデータを送信する設定およびサンプルリング周期を読込む個々のＲＡＭに設定する
ことも可能になっている。
【０３０６】
[定常的な各マイコンの出力ＲＡＭデータの取得処理]
仮想マイコン１２０内のプログラム１０２が、仮想リモコン３００または、実リモコン３３０から入力したリモコンコードに従って、プログラム１０２が実行し、作成したＬＣＤ表示データ等のＲＡＭデータを仮想ＬＣＤ３２０または実ＬＣＤ３１０の表示デバイスに表示するための処理をＲＡＭサンプリング部５０７で行う。
【０３０７】
ＲＡＭサンプリング部５０７は、予め読込みたいマイコン名として仮想マイコン１０２内のユーザＲＡＭ１０４、デバッグＲＡＭ１０８または、実マイコン２００内のユーザＲＡＭ２０４、デバッグＲＡＭ２０８を指定する。合わせて、指定したＲＡＭデータを一定周期で読込むため、サンプリングタイマを付ける。
【０３０８】
ＲＡＭの読込みは、サンプリングタイマのオーバーフロー毎に読込みたいマイコン名とＲＡＭ名としてＲＡＭシンボル名またはＲＡＭアドレス値と読込みたいデータサイズを出力データ取得部５２２に渡す。出力データ取得部５２２は、ＲＡＭデータ取得するため、ＲＡＭ読込みデータ５２０からマイコン実行パラメータ作成部５１４にて読込むマイコンを選択する。マイコン実行パラメータで、マイコンを選択し、仮想マイコン１２０の場合は、仮想マイコン実行部５１０にて仮想マイコン１０２内のＲＡＭを込む。実マイコン２００の場合は、マイコン共通実行部５４４にて実マイコン内のＲＡＭを読込む。読込んだＲＡＭは、出力データ取得部５２２からＲＡＭサンプリング部５０７に渡す。ＲＡＭサンプリング部５０７は、予め読込んだＲＡＭを表示指定した周辺デバイス内の仮想ＬＣＤ３１０または実ＬＣＤ３２０等の表示デバイスに読込んだＲＡＭデータを仮想配線１２経由で転送する。
【０３０９】
仮想ＬＣＤ３２０に転送する場合は、仮想ＬＣＤ３２０で受信したデータを解析してＬＣＤ表示する。
【０３１０】
実ＬＣＤ３１０に転送する場合は、ＬＣＤブリッジ３１８で受信して、ＬＣＤブリッジ３１８内のＲＳ２３２Ｃ３１６にて実ＬＣＤ表示可能なデータに変換して実機セットである実ＬＣＤ３１０にＲＳ２３２Ｃ経由にてデータを転送し表示する。
【０３１１】
複数の表示デバイスに表示する場合は、表示するＲＡＭデータを仮想ＬＣＤ３２０に仮想配線１２を経由して転送した後、同じＲＡＭデータを仮想配線１２から実ＬＣＤ３１０に転送し、それぞれの表示デバイスで表示する。
【０３１２】
なお、データ変化直後のデータを取得する方法の一例として、図１１に示すユーザＲＡＭ１０４がプログラム１０２の実行により、変化した直後のデータを取得する場合は、予めＳｉｍデバッグプログラム１０６内のＶＨＬＣＤｂｕｆ処理（Ｓ１５６）にてプログラム１０２がリモコンコードを受付けてＬＣＤ表示データを作成した直後のデータを取得する条件のプログラムを組込み、条件一致時にＬＣＤｂｕｆ（Ｓ１６４）のＲＡＭデータをＶＨＬＣＤｂｕｆ（Ｓ１４４）のＲＡＭに書込む。これにより、変化直後のＲＡＭデータを取得することができ、ＶＨＬＣＤｂｕｆ（Ｓ１４４）のＲＡＭに書込まれたデータを別のデバイスから低速度で読んだ場合でも、変化直後のデータを確実に取得することが可能になる。
【０３１３】
また、ユーザＲＡＭ１０４またはデバッグＲＡＭ１０８またはユーザＲＡＭ２０４または、デバッグＲＡＭ２０８の指定したＲＡＭの変化の直後に仮想配線１２に接続してある各デバイス内の指定関数を実行する条件をＳｉｍ用デバッグプログラム１０６またはＳｉｍ・ＩＣＥ兼用デバッグプログラム内に組込む。条件一致時に、マイコンコントローラ５
２０が、仮想配線１２に接続してある各デバイス内の指定関数を実行するため、仮想配線バスマネージャ１０の機能であるハイブリッド入力デバイス機能である成りすましで、指定したデバイス内の指定したコールバック関数を実行することができる。これにより、変化直後に各種のプログラムを実行することが可能となる。
【０３１４】
マイコンコントローラ５２０から各種マイコンを制御可能にするため、図１に示すオンボードデバッガブリッジ９５０と仮想配線１２を接続し、オンボードデバッガブリッジ９５０とからオンボードデバッグセット９４０をＲＳ２３２Ｃ等で接続する。また、ＲＯＭブリッジ９３０と仮想配線１２を接続し、ＲＯＭブリッジ９３０からＲＯＭエミュレータデバッグセットとＲＳ２３２Ｃ等で接続する。また、実機デバッグブリッジ９１０と仮想配線１２を接続し、実機デバッグブリッジ９１０から実機デバッグセット９００とＲＳ２３２Ｃ等で接続し、マイコンコントローラ５２０から制御するマイコンの通信データフォーマットを図１０に示す仮想マイコンおよび実マイコンを制御するコマンドの通りにすることで、自動検証等のデバッグする対象マイコンの選択肢を広げることが可能になる。
【０３１５】
また、図１９に示すように、マイコンコントローラ５２１と自動検証制御部４００とを、一つの仮想配線スロット１４を共有する一体型として構成することも可能である。
【０３１６】
以上のように、マイコンコントローラ５２０から仮想マイコン１２０をリセットスタートさせる場合に、実マイコンにより近いリセットスタートのシミュレーション動作が可能になる。
【０３１７】
上述したように、プログラムテストを行うデバッグシステムに実マイコンと仮想マイコンを同時に起動しテストを行うことで、論理検証またはタイミング検証に合わせて実マイコンまたは仮想マイコンを切換えるための停止・再起動を行うことなく、マイコンコントローラ内のボタンにて瞬時に切換えることが可能となり、効率よくデバッグができる。
【０３１８】
また、マイコンコントローラ内のマイコン制御の共通化により２度手間がなくなり生産性が向上する。また、自動検証時にテスト項目に合わせて実マイコンと仮想マイコンを自動で切換えることで、テスト内容は、プログラム機能の視点から作成した論理テストとタイミングテストを混在が可能となり最適な評価を効率よく行える。
【０３１９】
また、仮想マイコンを使ってデバッグ対象プログラムを開発した後、新規に作成した実マイコンを利用した実機デバッグセットで動作テストを行う場合に、仮想マイコンと実マイコンの動作をマイコン周辺の出力デバイスに表示し、合わせて比較したデータを表示することで実マイコン動作と仮想マイコン動作の差異が発生した場合に、効率よく差異を検出することで実マイコンデバッグセットの早期立上げが行える。
【０３２０】
また、仮想マイコン・マイコンコントローラ一体部を仮想マイコンとマイコンコントローラとして単独実行可能なアプリケーションに分離することで、実マイコンにより近いリスタートのシミュレーション動作が可能になる。
【０３２１】
更に、図１に示す通り、全てデバイスである仮想ＬＣＤ３２０と実ＬＣＤと実機デバッグセットと仮想マイコンと実マイコンとＲＯＭエミュレータデバッグセットとオンボードデバッグセットと仮想リモコンと実リモコンの全てが、単独実行可能なアプリケーションとして分散化している。また、マイコンコントローラが全てのデバイスの通信切換え制御を行えるため、デバッグ対象プログラムのテスト内容に従って、周辺入力デバイス部と各種マイコン部と周辺出力デバイス部間の通信するデバイス構成を変更することで、テスト内容がシミュレーションが効率よい、実機が効率よい、実機とシミュレータを組合せた方がよい等の多様化するテストに柔軟に対応が可能になる。
【産業上の利用可能性】
【０３２２】
本発明は、仮想マイコンおよび実マイコンを有し、プログラム検証時に仮想マイコンと実マイコンを瞬時に自動切換えしてテストできるため、自動的にプログラム検証を行うプログラム検証システムとして有用である。また、マイコンを複数実行し、ＲＡＭデータおよび画像イメージの動作記録が可能なため、１つのリモコンから複数のマイコンを制御し、それぞれのマイコンの動作の差異を見れば、バラツキの検証等にも応用できる。
【図面の簡単な説明】
【０３２３】
【図１】各マイコンと各入出力デバイス接続する論理的な配線のブロック図
【図２】仮想配線マネージャの成りすまし通信機能の説明図
【図３】本発明の一実施形態にかかるプログラム検証システムのブロック図
【図４】ＲＡＭ分析で表示するデータ例を示す説明図
【図５】周辺デバイスから受信したマイコンコントローラの通信メッセージの一例を示す説明図
【図６】シンボル定義データの一例を示す説明図
【図７】マイコンコントローラの構成を示すブロック図
【図８】自動検証システムの動作シーケンスおよびマイコン自動選択方法を示す説明図
【図９】マイコン実行パラメータ作成で作成する関数の例を示す説明図
【図１０】仮想マイコンおよび実マイコンを制御するコマンドの例を示す説明図
【図１１】ＲＡＭデータ流れおよびリセットスタートのフローチャート
【図１２】ＲＡＭサンプリング定義データの例を示す説明図
【図１３】仮想マイコンとマイコンコントローラ分離型のプログラム検証システムのブロック図
【図１４】マイコンコントローラの構成を示すブロック図
【図１５】マイコンコントローラから仮想マイコンの終了・起動をする方法を示す説明図
【図１６】擬似デバッガの構成を示すブロック図
【図１７】ＡＰＩ共通化されたマイコンコントローラの一例を示す説明図
【図１８】仮想配線の接続例を示す説明図
【図１９】本発明の他の実施形態にかかるプログラム検証システムのブロック図
【図２０】マルチ画像記録が可能な自動検証部の構成を示すブロック図
【図２１】マルチ画像記録が可能な仮想ＬＣＤ表示部の構成を示すブロック図
【図２２】マルチ画像記録が可能な実ＬＣＤ表示部の構成を示すブロック図
【図２３】マルチ画像記録が可能なＬＣＤ表示のフローチャート
【図２４】マルチ画像記録が可能なＬＣＤから自動検証デバイスへ受信する状態のフローチャート
【図２５】マルチ画像記録が可能な自動検証デバイスのＬＣＤ画像記録指示のフローチャート
【図２６】マルチ画像記録が可能な仮想マイコンおよび実マイコンを制御するコマンドを示す説明図
【図２７】マルチ画像記録が可能な自動検証システムの構成図
【図２８】マルチ画像記録が可能なシナリオファイルの説明図
【図２９】マルチ画像記録を実行した結果を示す説明図
【図３０】従来の実機デバッグセットを用いたプログラム検証方法
【図３１】従来のシステムシミュレータセットを用いたプログラム検証方法
【図３２】従来の実マイコンと仮想入出力デバイスを組合せたプログラム検証方式
【符号の説明】
【０３２４】
１０    仮想配線マネージャ
１４    仮想配線スロット
１２    仮想配線
３０    周辺デバイス部
４０    自動検証部
５０    仮想マイコン・マイコンコントローラ一体部
１００  仮想マイコン
１２０  仮想マイコン
２００  実マイコン
３００  仮想リモコン
３１０  実ＬＣＤ
３２０  仮想ＬＣＤ
３３０  実リモコン
４００  自動検証制御部
５００  マイコンコントローラ
５２０  マイコンコントローラ
【図１】
2005166010.tif 000003
【図２】
2005166010.tif 000004
【図３】
2005166010.tif 000005
【図４】
2005166010.tif 000006
【図５】
2005166010.tif 000007
【図６】
2005166010.tif 000008
【図７】
2005166010.tif 000009
【図８】
2005166010.tif 000010
【図９】
2005166010.tif 000011
【図１０】
2005166010.tif 000012
【図１１】
2005166010.tif 000013
【図１２】
2005166010.tif 000014
【図１３】
2005166010.tif 000015
【図１４】
2005166010.tif 000016
【図１５】
2005166010.tif 000017
【図１６】
2005166010.tif 000018
【図１７】
2005166010.tif 000019
【図１８】
2005166010.tif 000020
【図１９】
2005166010.tif 000021
【図２０】
2005166010.tif 000022
【図２１】
2005166010.tif 000023
【図２２】
2005166010.tif 000024
【図２３】
2005166010.tif 000025
【図２４】
2005166010.tif 000026
【図２５】
2005166010.tif 000027
【図２６】
2005166010.tif 000028
【図２７】
2005166010.tif 000029
【図２８】
2005166010.tif 000030
【図２９】
2005166010.tif 000031
【図３０】
2005166010.tif 000032
【図３１】
2005166010.tif 000033
【図３２】
2005166010.tif 000034