JP4562439B2 - プログラム検証システムおよびプログラム検証システム制御用コンピュータプログラム - Google Patents
プログラム検証システムおよびプログラム検証システム制御用コンピュータプログラム Download PDFInfo
- Publication number
- JP4562439B2 JP4562439B2 JP2004201031A JP2004201031A JP4562439B2 JP 4562439 B2 JP4562439 B2 JP 4562439B2 JP 2004201031 A JP2004201031 A JP 2004201031A JP 2004201031 A JP2004201031 A JP 2004201031A JP 4562439 B2 JP4562439 B2 JP 4562439B2
- Authority
- JP
- Japan
- Prior art keywords
- microcomputer
- virtual
- real
- unit
- ram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
(用語説明)
最初に、以下の各実施形態で用いる用語を説明する。
<第1実施形態の構成>
以下、本発明の第1実施形態について、図を用いて説明する。
した出力データを、マイコンコントローラ500が取得し、周辺デバイス部30へ転送して画像イメージまたはデータ表示を行う。画像イメージを表示する場合は、周辺デバイス部30内の仮想LCD320または実LCD310等の複数の出力デバイスに表示することが好ましい。
VC++を実行するVCコンパイラ600でコンパイルした後、出力されるRAM変数のアドレス番地等のシンボル情報ファイルを元に、シンボル変換部602で、擬似デバッガ112が利用可能なC言語プログラムのシンボル定義部604を作成し、仮想マイコン100内のプログラムソースファイルを一緒にコンパイルする。VC++が出力するシンボル情報からシンボル定義部604に変換する内容の一例は、図6に示す通りである。
図3に示す単独実行可能な仮想リモコン300を起動すると、仮想配線マネージャ10が既に起動していなければ、自動的にこれを起動し、仮想リモコン300内の仮想配線ス
ロット14と仮想配線マネージャ10が自動配線され、仮想配線12ができる。
前述の手動によるプログラム検証を行う場合、各マイコンを実行する前に、図7に示すマイコンコントローラ500内のCPU切換部515により、本プログラム検証システムの動作モードを、手動モード(作動させるマイコンの切換えを手動で行うモード)に設定する。
るデータとを、仮想配線12からマイコンコントローラ500に渡す。マイコンコントローラ500は、図5の「選択CPU」項目に指示されているとおり、仮想マイコン100(図5ではVH_CPU1と表記)または実マイコン200(図5ではRE_CPU1と表記)の何れか1つまたは両方のマイコンに、キーコードを転送する。転送されたキーコードに従って選択されたマイコンが実行した結果のLCD表示データ等を、マイコンコントローラ500が取得し、画像イメージの表示とデータ表示を行う。
各マイコンを実行する前に、図7に示すマイコンコントローラ500のマイコン実行部502内のCPU切換部515で、自動モードに切換えて、仮想マイコン100または実マイコン200の何れか1つまたは両方のマイコンを選択可能な設定にする。
ことを確認する。次に、マイコンコントローラ500は、プログラムGO実行を仮想マイコン100または実マイコン200に転送し、プログラムGO実行したことを確認する。これによりリセットスタートが完了し、マイコンコントローラ500を経由して自動検証制御部400に返信する。
した画像をPCカメラで撮影しUSBケーブル等でパソコンと接続し、パソコン上に表示した画像を自動検証制御部400がクリップボードにキャプチャ指示し、自動検証制御部400がクリップボードの画像を検証結果ファイル410に記録する。
仮想リモコン300のボタンをクリックすると、キーコードを、図5に示す項目No.1のデータフォーマットで、仮想リモコン300内の仮想配線スロット14から仮想マイコン・マイコンコントローラ一体部50に非同期送信する。送信したキーコードは、仮想配線12を経由して仮想マイコン・マイコンコントローラ一体部50内の仮想配線スロット14にて受信する。
実機の実リモコン330のボタンをクリックすると、リモコンコードをRS232C経由で送信し、リモコンブリッジ334内のRS232Cブリッジ332で受信する。RS232Cブリッジ332は、受信したキーコードを仮想リモコン300と同じ図5に示す項目No.1のデータフォーマットで、ハイブリッド入力デバイスの機能により仮想リモコン300に成りすまして、仮想マイコン・マイコンコントローラ一体部50にリモコンブリッジ334内の仮想配線スロット14から非同期送信する。送信したキーコードは仮想配線12を経由して仮想マイコン・マイコンコントローラ一体部50内の仮想配線スロット14で仮想リモコンから受信したことになる。
自動検証制御部400内のシナリオ制御部404が、シナリオファイル412から取得するキーには、マイコンのリセットスタートとシーケンスキーとイベントキーがある。
仮想リモコン300または、実リモコン330から図5に示すメッセージ一覧表の項目No.1のデータをマイコンコントローラ500内の仮想配線スロット14で受信する。受信したデータは、図7に示すマイコンコントローラ500内の並列実効部532で、図5の選択CPU項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図5の選択CPU項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
マイコンパラメータ作成部514から、仮想マイコン実行部510にて、仮想マイコン100へリモコンコードを転送する。マイコンパラメータ作成部514は、リモコンコードを送信するパラメータを、図9に示す項目No.12のリモコンコードのRAMシンボ
ルを指定して書込みするラッパー関数を作成する。なお、手動実行する内容にはリセットスタートとRAM書込みとRAM読込みがあり、それぞれの動作は次の通りである。
手動実行する内容が、リセットスタートの場合は、手動処理部526、マイコン制御指示部516、およびマイコン実行パラメータ作成部514で、図9に示す項目No.2のマイコンリセット関数を作成し、仮想マイコン実行部510から仮想マイコン100をリセットした後、続いて、図9に示す項目No.1のマイコン実行に対応するラッパー関数を作成し、仮想マイコン実行部510から仮想マイコン100を実行することで、仮想マイコン100のリセットスタートを行う。
手動実行によるRAMデータの書込みの場合は、RAM書込み部518およびマイコン実行パラメータ作成部514で、図9に示す項目No.10〜15の関数を使ってRAM書込みを行う。
手動実行によるRAMデータの読込みの場合は、出力データ取得部522からRAM読込み部520を経由してマイコン実行パラメータ作成部514で、図9に示す項目No.4〜9の関数を使って、仮想マイコン実行部510および仮想マイコン100からRAM読込みを行う。読込んだデータは、出力データ取得部522で取得したRAMを比較分析部509にて表示させると同時に、出力分配部536からRAM読込みを要求したデバイスに、仮想配線12経由でRAMデータを返信する。
仮想リモコン300または実リモコン330から、図5に示すメッセージ一覧表の項目No.1のデータを、マイコンコントローラ500内の仮想配線スロット14で受信する。受信したデータは、図7に示すマイコンコントローラ500内の並列実行部532で、図5の選択CPU項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図5の選択CPU項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。マイコンを選択した後、図5の操作項目の自動または手動の指定を手動と確認した後、自動・手動指示部530にて選択したマイコンに対して手動実行を行う。
手動実行によるリモコンコードを送信する場合は、図9に示す項目No.12に示す「RAMシンボルから1Byte書込み」のラッパー関数を使って、ユーザRAM204内のリモコンコード格納RAMシンボル名を指定してリモコンコードを書込むため、マイコン実行パラメータ作成部514とマイコン共通実行部544から仮想配線12を経由して
、図10に示す項目No.5のコマンドに変換して実マイコン200にリモコンコードを同期送信し、マイコン共通実行部544が同期返信を受けることで、実マイコン200がリモコンコード受付を完了する。
手動実行によるリセットスタートの場合は、手動処理部526からマイコン制御指示部516を経由して送信するパラメータは、図9に示す項目No.2に示す「マイコンリセット」ラッパー関数を使って、マイコン共通実行部544でラッパー関数を図10に示す項目No.11のリセットコマンドに変換して仮想配線12を経由で実マイコン200をリセットさせるために同期送信する。マイコン共通実行部544が同期返信を受けることでリセット完了を確認後、プログラム実行するために、手動処理部526からマイコン制御指示部516を経由して送信するパラメータは、図9に示す項目No.1に示す「マイコン実行」ラッパー関数を使って、マイコン共通実行部544でラッパー関数を図10に示す項目No.12のプログラムGOコマンドに変換し、実マイコン200を実行させるために同期送信する。マイコン共通実行部544が同期返信を受けることでプログラムスタートを確認し、リセットスタートを完了する。
手動実行によるRAM書込みの場合は、手動処理部526およびRAM書込みデータ518から、RAM書込みコマンドをマイコン実行パラメータ作成部514でRAM書込み要求に合わせて、図9に示す項目No.10〜15に示すRAM書込みのラッパー関数を使って、マイコン共通実行部544でラッパー関数を図10に示す項目No.1,2,5,6のRAM書込みコマンドに変換して実マイコン200がRAM書込みを行うため同期送信する。マイコン共通実行部544が同期返信を受けることでRAM書込みの完了を確認する。また出力RAMの比較し分析を行うために、実マイコンに書込んだRAMデータによる実行結果の出力RAMの変化を見るために、書込みするデータを出力データ取得部522に渡し、実マイコンから読込んだデータをRAMサンプリング部507で表示する。
手動実行によるRAM読込みの場合は、手動処理部526からRAM読込みデータ520からRAM書込みコマンドをマイコン実行パラメータ作成部514でRAM読込み要求に合わせて、図9に示す項目No.4〜9に示すRAM読込みのラッパー関数を作成し、実マイコン実行部512からICE制御部508でラッパー関数を図10に示す項目No.3,4,7,8のRAM読込みコマンドに変換して、実マイコン200がRAM読込みを行うため同期送信する。ICE制御部508が同期返信を受けることでRAM読込み、出力データ取得部522で取得したRAMを比較分析部509にて表示させると同時に、出力分配部536からRAM読込みを要求したデバイスに、RAMデータを仮想配線12経由で返信する。比較分析部509にて表示する一例として、図4に示す通り1つの入力データを2つのマイコンに入力した結果を入力データの横に出力RAMデータと表示デバイスの画像を並べることで、2つのCPUの動作に差異がある場合に、容易に検出可能になる。
自動検証制御部400から発行するリモコンコードを仮想リモコン300または実リモコン330が発行する同じフォーマットのデータにて仮想バスマネージャのハイブリッド入力デバイス機能である成りすましを使ってマイコンコントローラ500に同期送信する
。マイコンコントローラ500は、図5に示すメッセージ一覧表のデータをマイコンコントローラ500内の仮想配線スロット14で受信する。受信したデータは、図7に示すマイコンコントローラ500内の並列実行部532で、図5の選択CPU項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図5の選択CPU項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。マイコンを選択した後、図5の操作項目の自動または手動の指定を自動と確認した後、自動・手動指示部530で選択した仮想マイコン100に対して自動実行を行う。
自動・手動指示部530から自動でリモコンコードを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、仮想マイコンのRAM読書き制御の処理が完了するまで待つ。リモコンコードを送信するパラメータは、図9の項目No.12に示すリモコンコードのRAMシンボルを指定して書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部514から、仮想マイコン実行部510を経由して仮想マイコン100にリモコンコードを渡し、仮想マイコン100がリモコンキー受付を完了するまで待つ。
自動・手動指示部530から自動でリセットスタートを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、仮想マイコン100のリセットスタート制御の処理が完了するまで待つ。
自動・手動指示部530から自動でRAM書込みを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、仮想マイコン100のRAM書込み制御の処理が完了するまで待つ。
自動・手動指示部530から自動でRAM読込みを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、仮想マイコン100のRAM読込み制御の処理が完了するまで待つ。
自動検証制御部400から発行するリモコンコードを仮想リモコン300または実リモコン330が発行する同じフォーマットのデータにて仮想バスマネージャのハイブリッド入力デバイス機能である成りすましを使ってマイコンコントローラ500に同期送信する。マイコンコントローラ500は、図5に示すメッセージ一覧表のデータをマイコンコントローラ500内の仮想配線スロット14で受信する。受信したデータは、図7に示すマイコンコントローラ500内の並列実行部532で図5の選択CPU項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図5の選択CPU項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
自動・手動指示部530から自動でリモコンコードを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、実マイコン200のRAM読書き制御の処理が完了するまで待つ。リモコンコードを送信するパラメータは、図9の項目No.12に示すリモコンコードのRAMシンボルを指定して書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部514から実マイコン実行部512を経由してICE制御部508でラッパー関数を図10に示す項目No.5のRAMシンボル書込みコマンドに変換し、実マイコン200にリモコンコードを渡し、実マイコン200がリモコンキー受付完了するまで待つ。
自動・手動指示部530から自動でリセットスタートを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、実マイコン200のリセットスタート制御の処理が完了するまで待つ。
自動・手動指示部530から自動でRAM書込みを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、実マイコン200のRAM書込み制御の処理が完了するまで待つ。
自動・手動指示部530から自動でRAM読込みを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、実マイコン200のRAM読込み制御の処理が完了するまで待つ。
に完了通知する。実行・完了待ち部524から、RAM読込みを指示したデバイスに対して仮想バス12経由でRAM読込み処理完了を返信する。また、読込んだデータは、出力データ取得部522で取得したRAMを比較分析部509にて表示させる。比較分析部509にて表示する一例として、図4に示す通り1つの入力データを2つのマイコンに入力した結果を入力データの横に出力RAMデータと表示デバイスの画像を並べることで、2つのCPUの動作に差異がある場合に、容易に検出可能になる。
マイコンコントローラ500から発行した図10に示すマイコン制御コマンドの解析を、仮想マイコン100内のコマンド解析部134で行い、擬似エミュレータ110の実行と、擬似エミュレータ110のリセットと、デバッグRAM108またはユーザRAM104内のRAM読書きする各コマンドに対応する仮想マイコン100の制御を行う。なお、仮想マイコン100の制御にあたり、手動制御と自動制御は同じ動作になる。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたリモコンコードは、マイコンコントローラ500で図10の項目No.5の1バイトシンボルライトコマンドをコマンド解析部134で解析し、RAMシンボル指定部130に渡す。RAMシンボル指定部130は、図6のシンボル定義ファイルに示すシンボル定義部604とコマンド解析部134から送られてきたリモコンコードのRAMシンボル名を比較し、一致したRAMシンボル名に対応するRAMアドレスに変換し、RAM読書き識別部128からRAM書込み部124に渡す。RAM書込み部124は、デバッグRAM108に書込み、Simデバッグプログラム106およびプログラム102をリモコン入力により動作する。
擬似エミュレータ110のリセットは、仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたリセットコマンドで行われる。リセットスタートコマンドは、マイコンコントローラ500で図10に示す通り、項目No.11のリセットコマンドをコマンド解析部134に渡す。コマンド解析部134で解析し、リセット122に渡す。リセット122は、擬似エミュレータ110を強制停止させるために、Simデバッグプログラム106およびプログラム102を動作させる擬似エミュレータのスレッドを削除する。
Simデバッグプログラム106およびプログラム102の実行は、仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたプログラム実行コマンドで開始される。プログラム実行コマンドは、マイコンコントローラ500から、図10に示す項目No.12のプログラムGO実行コマンドのデータフォーマットで、コマンド解析部134に渡される。コマンド解析部134は、プログラムGO実行コマンドを解析し、実行部120に渡す。実行部120は、擬似エミュレータ110のスレッドを起動することで、Simデバッグプログラム106およびプログラム102を最初から実行させる。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたRAMデータ書込みRAMアドレス指定の場合は、マイコンコントローラ500で図10の項目No.1,2のRAMアドレスライトコマンドをコマンド解析部134で解析し、RAMアドレス指定部132に渡す。RAMアドレス指定部132は、RAM読書き識別部128からRAM書込み部124に渡す。RAM書込み部124は、デバッグRAM108またはユーザRAM104に書込みSimデバッグプログラム106およびプログラム102をRAMに書込んだデータにより動作させる。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたRAMデータ読込みRAMアドレス指定の場合は、マイコンコントローラ500で図10の項目No.3,4のRAMアドレスリードコマンドをコマンド解析部134で解析し、RAMアドレス指定部132に渡す。RAMアドレス指定部132からRAM読書き識別部128を経由してRAM読込み部126に渡す。RAM読込み部126は、デバッグRAM108またはユーザRAM104から読込んだRAMデータは、RAM読込み部126からコマンド解析部134を経由してマイコンコントローラ500に返信する。
図10に示すマイコン制御コマンドをマイコンコントローラ500が発行し、仮想配線12から仮想配線スロット14を経由して、図3に示す実マイコン200内の実デバッガに渡す。実デバッガ212がコマンドを解析し、実エミュレータ210の実行と実エミュレータ210のリセットとデバッグRAM208またはユーザRAM204内のRAM読書きする各コマンドに対応する実マイコン200の制御を行う。
なお、マイコン200の制御にあたり、手動制御と自動制御は同じ動作になる。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたリモコンコードは、図10の項目No.5の1バイトシンボルライトコマンドをマイコンコントローラ500が発行し、仮想配線12から仮想配線スロット14を経由して図3に示す実マイコン200内の実デバッガに渡す。図10の項目No.5の1バイトシンボルライトコマンドを実デバッガ212で解析し、PXsymbol222のシンボル定義ファイルとマイコンコントローラ500から送られてきたリモコンコードのRAMシンボル名を比較し、一致したRAMシンボル名に対応するRAMアドレスに変換し、デバッグRAM208に書込みSim・ICE兼用デバッグプログラム106およびプログラム102をリモコン入力により動作する。
実エミュレータ210のリセットは、仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたリセットコマンドにより開始される。マイコンコントローラ500は、図10に示す項目No.11のリセットコマンドのデータフォーマットで、リセットコマンドを仮想配線12から仮想配線バススロット経由で実デバッガ212に渡す。実デバッガ212は、リセットコマンドに従って、実エミュレータ210をリセットすることで、Sim・ICE兼用デバッグプログラム106およびプログラム102の動作を強制停止し、擬似エミュレータ110をリセットする。
実エミュレータ210のプログラムGO実行は、仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたプログラム実行コマンドにより開始される。マイコンコントローラ500は、図10に示す項目No.12のプログラムGO実行コマンドのデータフォーマットで、プログラムGO実行コマンドを仮想配線12から仮想配線バススロット14経由で実デバッガ212に渡す。実デバッガ212は、プログラムGO実行コマンドに従って、実エミュレータ210をリセットすることで、Sim・ICE兼用デバッグプログラム106およびプログラム102の動作を起動し、実エミュレータ210の実行を開始する。
仮想リモコン300、実リモコン330、または自動検証制御部400から、RAMデータ書込みRAMアドレス指定が発行された場合は、マイコンコントローラ500は、図10の項目No.1,2のRAMアドレスライトコマンドを仮想配線12から仮想配線バススロット14経由で実デバッガ212に渡す。実デバッガ212は、コマンドを解析し、デバッグRAM208またはユーザRAM204に書込み、Sim・ICE兼用デバッグプログラム206およびプログラム202をRAMに書込んだデータにより動作させる。
仮想リモコン300、実リモコン330、または自動検証制御部400から、RAMデータ読込みRAMアドレス指定が発行された場合は、マイコンコントローラ500は、図
10の項目No.3,4のRAMアドレスリードコマンドを仮想配線12から仮想配線バススロット14経由で実デバッガ212に渡す。実デバッガ212は、実エミュレータ210からデバッグRAM208またはユーザRAM204から読込んだRAMデータを仮想配線12からマイコンコントローラ500に返信する。
<各マイコンの出力RAMデータの取得処理>
仮想マイコン100または実マイコン200内のRAMデータの取得・表示等の処理は、マイコンコントローラ500のRAMサンプリング部507内のサンプリング定義501として予め読込みたいRAMを指定したマイコン名とRAM名を複数指定し、定常的なRAMサンプリングを行う周期タイマを設定した後、RAMサンプリング部507にて定常的なRAMデータの取得を行い、定義データで指定された周辺デバイス部30内の仮想LCD320または実LCD310等に表示する。
仮想マイコン100内のプログラム102が、仮想リモコン300または、実リモコン330から入力したリモコンコードに従って作成したLCD表示データ等のRAMデータを、仮想LCD320または実LCD310の表示デバイスに表示するための処理を、RAMサンプリング部507で行う。
200の場合は、実マイコン実行部512からICE制御部508にて実マイコン内のRAMを読込む。読込んだRAMは、出力データ取得部522からRAMサンプリング部507に渡す。RAMサンプリング部507は、予め読込んだRAMを表示指定した周辺デバイス内の仮想LCD310または実LCD320等の表示デバイスに読込んだRAMデータを仮想配線12経由で転送する。
(第2実施形態)
以下、本発明の第2実施形態について、図を用いて説明する。
本発明にかかるハイブリッドプログラム検証システムでは、図13に示す通り、仮想マイコン120とマイコンコントローラ520とが単独実行可能なアプリケーションとして実装されている点において、第1実施形態と異なっている。
<第2実施形態の構成>
本発明の第2実施形態にかかるハイブリッドプログラム検証装置は、図13等に示す通り、手動によるプログラム検証と自動によるプログラム検証を行う。
VC++を実行するVCコンパイラ600でコンパイルした後、出力されるRAM変数のアドレス番地等のシンボル情報ファイルを元にシンボル変換部602で擬似デバッガ112が利用可能なC言語プログラムのシンボル定義部604作成し、仮想マイコン120内のプログラムソースファイルを一緒にコンパイルする。VC++が出力するシンボル情報からシンボル定義部604に変換する内容の一例は、図6に示す通り。
図13に示す単独実行可能な仮想リモコン300を起動すると、仮想配線マネージャ10が既に起動していなければ、自動的に起動し、仮想リモコン300内の仮想配線スロッ
ト14と仮想配線マネージャ10が自動配線され仮想配線12ができる。
各マイコンを実行する前に、図14に示すマイコンコントローラ520内の実行するマイコンを自動切換えと手動切換えが可能なCPU切換え515で、手動モードに切換えて仮想マイコン120または実マイコン200の何れか1つまたは複数のマイコンを選択可能な設定にする。
ードで、図5の選択CPU項目に指示されたマイコンとして仮想マイコン120または実マイコン200の何れか1つまたは複数のマイコンにキーコードを転送する。
<自動モード選択してマイコンを実行>
各マイコンを実行する前に、図14に示すマイコンコントローラ520内の実行するマイコンを自動切換えと手動切換えが可能なCPU切換え515で、自動モードに切換えて仮想マイコン120または実マイコン200の何れか1つまたは複数のマイコンを選択可能な設定にする。
(1)仮想LCD320の表示画像の記録
仮想LCD320に表示した画像を検証結果ファイル410(例えばExcelファイル)に記録する場合は、図20に示すシナリオ読込み部1444が、図28に示すシナリオファイル412のマルチ画面記録引数412bを取得し、マルチ画面記録とシングル画像記録による画像記録を行う。なお、図28に示すシナリオファイル412は、シーケンスイベント412a、マルチ画面記録引数412b、状態412c、テストイベント412d、アクション412eから構成されている。シーケンスイベント412aは、テストする状態へ移行させるシーケンスイベントの定義である。マルチ画面記録引数412bは、マルチ画面を記録する条件を記述したものであり、記録枚数制限値または記録時間制限値あるいは記録時間間隔として記述される。状態412cは、テスト状態に関する条件を記述する。テストイベント412dは、テスト状態にした後、テストイベントを発行して実行結果を確認するための定義である。アクション412eには、テストイベントを発行した時に変化した状態を記録する。
<シングル画面記録>
シングル画像記録の場合は、シナリオ読込み部1444で読込んだマルチ画面記録引数412bをテスト部1438に渡し、シングル画像記録部1436を通して、仮想LCD320に対して画像を転送する。画像転送には、2通りある。仮想LCD320と自動検証部40が同じパソコンで実行されるときは、クリップボード経由で画像を転送する(以下、「パソコン内転送」と称する)。一方、仮想LCD320と自動検証部40が別個のパソコンで起動されているときは、仮想LCD320を起動したパソコンから自動検証部40を起動しているパソコンに画像データを転送して自動検証部40に仮想ウィンドウを作成し、その仮想ウィンドウに画像データを表示させ、クリップボードにコピーすることができる(以下、「パソコン間転送」と称する)。以下、それぞれの場合のシングル画面記録動作について説明する。
[パソコン内転送]
画像の転送の指示を受けたときに、パソコン内転送の指示の時は、クリップボードに仮想LCD表示画像をキャプチャ指示する。仮想LCD320は、図21に示す画像コピー部1302で、仮想LCD表示画像をクリップボードにキャプチャする。キャプチャが完了すると、図20に示すダンプデータ取得部1406からキャプチャ画像記録部1414を経由して検証結果ファイル410に記録する。
[パソコン間転送]
画像の転送の指示を受けたときに、パソコン間転送の指示の時は、予め自動検証制御部400内に仮想ウィンドウを作成するために、仮想LCD320内の画像サイズAT連絡部1310から、仮想ウィンドウサイズを、仮想ウィンドウ作成部1402に転送する。次に、画像データ転送部1306から画像データ取得部1404に画像を転送して、仮想ウィンドウ描画部1408で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ1410でクリップボードにコピーし、キャプチャ画像記録部1414を経由して検証結果ファイル410に記録する。
<マルチ画面記録>
マルチ画像記録の場合は、シナリオ読込み部1444で読込んだマルチ画面記録引数412bをテスト部1438に渡し、マルチ画像記録部1434で記録する際の枚数制限と時間制限データを解析する。記録枚数制限値は枚数カウンタ1432へ、時間制限値は時間カウンタ1430へそれぞれ渡される。仮想LCD320に対して、マルチ画像記録開始の指示を、マルチ画像記録部1434から通知する。
[パソコン内転送]
1枚目の画像の転送指示を受けたときに、パソコン内転送の指示の時は、クリップボードに仮想LCD表示画像をキャプチャするよう指示する。仮想LCD320は、図21に示す画像コピー部1302で仮想LCD表示画像をクリップボードにキャプチャする。キャプチャが完了すると、図20に示すダンプデータ取得部1406からキャプチャ画像記録部1414を経由して、キャプチャした仮想LCD表示画像を検証結果ファイル410に記録する。
[パソコン間転送]
1枚目の画像の転送指示を受けたときに、パソコン間転送の指示の時は、予め自動検証制御部400内に仮想ウィンドウを作成するために、仮想LCD320内の画像サイズAT連絡部1310から仮想ウィンドウ作成1402へ、仮想ウィンドウサイズを転送する。次に、画像データ転送部1306から画像データ取得部1404へ画像データを転送して、仮想ウィンドウ描画部1408で仮想表示した後、その仮想表示画像を仮想ウィンドウキャプチャ1410でクリップボードにコピーし、キャプチャ画像記録部1414を経由して検証結果ファイル410に記録する。また、2枚目以降の画像記録については、仮想LCDに描画するタイミングで、前回の画像データとの比較をデータ比較部1316で行い、違いがあれば自動検証制御部400に画像を転送する。
[2枚目画像のパソコン内転送]
2枚目の画像の転送指示を受けたときに、パソコン内転送の指示の時は、ダンプデータ転送部1308から画像コピー部1320を経由して、さらに、図20に示すダンプデータ取得部1406からキャプチャ画像記録部1414を経由して、検証結果ファイル410に画像データを記録する。
[2枚目画像のパソコン間転送]
2枚目の画像の転送指示を受けたときに、パソコン間転送の指示の時は、画像データ転送部1306から画像データ取得部1404に画像を転送して、仮想ウィンドウ描画部1408で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ1410でクリップボードにコピーし、キャプチャ画像記録部1414を経由して検証結果ファイル410に記録する。
(2)実LCDの表示画像の記録
実LCD310に表示した画像を検証結果ファイル410(例えばExcelファイル)に記録する場合は、図20に示すシナリオ読込み部1444が、図28に示すシナリオファイル412のマルチ画面記録引数412bを取得し、マルチ画面記録とシングル画像記録による画像記録を行う。
<シングル画面記録>
シングル画像記録の場合は、シナリオ読込み部1444で読込んだマルチ画面記録引数412bをテスト部1438に渡し、シングル画像記録部1436を通して、実LCD310の画像をPCカメラ1326(図22参照)で撮影し、USBケーブル等でパソコンと接続し、パソコン上のカメラモニタ1322で表示した画像を転送する。画像転送には、2通りある。実LCD310と自動検証部40が同じパソコンで実行されるときは、クリップボード経由で画像を転送する(以下、「パソコン内転送」と称する)。一方、実LCD310と自動検証部40が別個のパソコンで起動されているときは、実LCD310を起動したパソコンから自動検証部40を起動しているパソコンに画像データを転送して自動検証部40に仮想ウィンドウを作成し、その仮想ウィンドウに画像データを表示させ、クリップボードにコピーすることができる(以下、「パソコン間転送」と称する)。以下、それぞれの場合のシングル画面記録動作について説明する。
[パソコン内転送]
画像の転送の指示を受けたときに、パソコン内転送の指示の時は、画像コピー1328からカメラモニタ1322に表示した画像をクリップボードにキャプチャするよう指示する。キャプチャが完了すると、図20に示すダンプデータ取得部1406からキャプチャ画像記録部1414を経由して、検証結果ファイル410に画像を記録する。
[パソコン間転送]
画像の転送の指示を受けたときに、パソコン間転送の指示の時は、予め自動検証制御部400内に仮想ウィンドウを作成するために、実LCD310の画像サイズを画像サイズAT連絡部1310から仮想ウィンドウ作成1402へ、仮想ウィンドウサイズを転送する。次に、画像データ転送部1306から画像データ取得部1404に画像を転送して、仮想ウィンドウ描画1408で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ1410でクリップボードにコピーし、キャプチャ画像記録部1414を経由して検証結果ファイル410に記録する。
<マルチ画面記録>
マルチ画像記録の場合は、シナリオ読込み部1444で読込んだマルチ画面記録引数412bをテスト部1438に渡し、マルチ画像記録部1434で記録する枚数制限と時間制限データを解析する。記録枚数制限値は枚数カウンタ1432に渡し、時間制限値は時間カウンタ1430へ渡される。RS232Cブリッジ316に対して、マルチ画像記録開始の指示を、マルチ画像記録1434から通知する。RS232Cブリッジ316は、マルチ画像記録開始の指示を受けると、画像の変化を検出するために、1stデータ比較部1320で最初の画像データを確保すると同時に、最初の画像を自動検証制御部400に転送する。
[パソコン内転送]
画像の転送の指示を受けたときに、パソコン内転送の指示の時は、画像コピー部1328から、カメラモニタ1322に表示した画像をクリップボードにキャプチャ指示する。キャプチャが完了すると、図20に示すダンプデータ取得部1406からキャプチャ画像記録部1414を経由して検証結果ファイル410に記録する。
[パソコン間転送]
画像の転送の指示を受けたときに、パソコン間転送の指示の時は、予め自動検証制御部400内に仮想ウィンドウを作成するために、実LCD310の画像サイズを画像サイズAT連絡部1310から仮想ウィンドウサイズを仮想ウィンドウ作成1402に転送する。次に、画像データ転送部1306から画像データ取得1404部に画像を転送して、仮想ウィンドウ描画部1408で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ1410でクリップボードにコピーし、キャプチャ画像記録部1414を経由して検証結果ファイル410に記録する。
[2枚目画像のパソコン内転送]
2枚目の画像の転送指示を受けたときに、パソコン内転送の指示の時は、ダンプデータ転送部1308から画像コピー部1328を経由して、図20に示すダンプデータ取得部1406からキャプチャ画像記録部1414を経由して検証結果ファイル410に記録する。
[2枚目画像のパソコン間転送]
2枚目の画像の転送指示を受けたときに、パソコン間転送の指示の時は、画像データ転送部1306から画像データ取得部1404に転送して、仮想ウィンドウ描画部1408で仮想表示した後、仮想表示画像を仮想ウィンドウキャプチャ1410でクリップボードにコピーし、キャプチャ画像記録部1414を経由して検証結果ファイル410に記録する。
<マルチ画面記録の動作フロー>
[自動検証制御部から表示デバイスへの指示]
図25に示すとおり、自動検証制御部400は、シナリオ読込み部1444がシナリオファイル412から読込んだマルチ画面記録引数412bの値により、SendDisp()(S800)でマルチ画像キャプチャ指示(S804)とシングル画像キャプチャ指示(S806)により、仮想LCD320または実LCD310に対して、図26に示す「自動検証デバイス → 出力表示デバイス送信コマンド」を示すメッセージを、仮想配線12経由で送信する。また、マルチ画面記録のときは、マルチ画像記録指示(S808)で仮想LCD320または実LCD310に対して、マルチ画面記録指示を送信する。
図23に示すとおり、仮想LCD320または実LCD310の処理は、LCD_Disp()(S600)で、自動検証制御部400とマイコンコントローラ520から受信したメッセージにより振り分けて動作する。
自動検証制御部400が仮想LCD320または実LCD310から受信したメッセージに従って実行する処理は、図24に示すとおり、LCD_Disp()(S700)で行う。
仮想リモコン300のボタンをクリックすると、キーコードを図5に示す項目No.1のデータフォーマットでマイコンコントローラ520に仮想リモコン300内の仮想配線スロット14から非同期送信する。送信したキーコードは仮想配線12を経由してマイコンコントローラ520内の仮想配線スロット14にて受信する。
実機の実リモコン330のボタンをクリックすると、リモコンコードをRS232C経由で送信し、リモコンブリッジ334内のRS232Cブリッジ332で受信する。RS232Cブリッジ332は、受信したキーコードを仮想リモコン300と同じ図5に示す項目No.1のデータフォーマットで、仮想リモコン300にハイブリッド入力デバイス機能である成りすまして、マイコンコントローラ520にリモコンブリッジ334内の仮想配線スロット14から非同期送信する。送信したキーコードは仮想配線12を経由してマイコンコントローラ520内の仮想配線スロット14で仮想リモコンから受信したことになる。
自動検証制御部400内のシナリオ制御部404が、シナリオファイル412から取得するキーには、マイコンのリセットスタートとシーケンスキーとイベントキーがある。
仮想リモコン300または、実リモコン330から図5に示すメッセージ一覧表の項目No.1のデータをマイコンコントローラ520内の仮想配線スロット14で受信する。受信したデータは、図14に示すマイコンコントローラ520内の並列実効532で図5
の選択CPU項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図5の選択CPU項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
リモコンコードを送信するパラメータを図9に示す項目No.12のリモコンコードのRAMシンボルを指定して書込みするラッパー関数を作成するマイコンパラメータ作成部514からマイコン共通実行部544で図10に示す項目No.5のコマンドに変換して仮想配線12を経由して仮想マイコン120にリモコンコードを転送する。
手動実行する内容が、リセットスターの場合は、手動処理部526からマイコン制御指示部516からマイコン実行パラメータ作成部514で図9に示す項目No.2のマイコンリセット関数を作成し、マイコン共通実行部544で図10に示す項目No.11のコマンドに変換して仮想配線12を経由して仮想マイコン120をリセットした後、続いて、図9に示す項目No.1のマイコン実行するラッパー関数を作成し、マイコン共通実行部544で図10に示す項目No.12のコマンドに変換して仮想配線12を経由して仮想マイコン120を実行することで、仮想マイコンのリセットスタートを行う。
手動実行によるRAMデータの書込みの場合は、RAM書込み518からマイコン実行パラメータ作成部514で図9に示す項目No.10から項目No.15の関数を作成し、マイコン共通実行部544で図10に示す項目No.1,3,5,6のコマンドに変換して仮想配線12を経由して仮想マイコン120にRAM書込みを行う。
手動実行によるRAMデータの読込みの場合は、出力データ取得部522からRAM読込み520を経由してマイコン実行パラメータ作成部514で図9に示す項目No.4〜9の関数を使ってマイコン共通実行部544から仮想配線12を経由で仮想マイコン120からRAM読込みを行う。読込んだデータは、出力データ取得部522で取得したRAMを比較分析部509にて表示させると同時に、出力分配部536からRAM読込みを要求したデバイスにRAMデータをデバイスへ仮想配線12経由で返信する。
仮想リモコン300または、実リモコン330から図5に示すメッセージ一覧表の項目No.1のデータをマイコンコントローラ520内の仮想配線スロット14で受信する。受信したデータは、図14に示すマイコンコントローラ520内の並列実効532で図5の選択CPU項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図5の選択CPU項目に複数のマイコンを設定した場合は、設定したマイコン順に
順次実行を繰返す。
手動実行によるリモコンコードを送信する場合は、図9に示す項目No.12に示す「RAMシンボルから1Byte書込み」のラッパー関数を使って、ユーザRAM204内のリモコンコード格納RAMシンボル名を指定してリモコンコードを書込むため、マイコン実行パラメータ作成部514とマイコン共通実行部544から仮想配線12を経由して、図10に示す項目No.5のコマンドに変換して実マイコン200にリモコンコードを同期送信し、マイコン共通実行部544が同期返信を受けることで、実マイコン200がリモコンコード受付を完了する。
手動実行によるリセットスタートの場合は、手動処理部526からマイコン制御指示部516を経由して送信するパラメータは、図9に示す項目No.2に示す「マイコンリセット」ラッパー関数を使って、マイコン共通実行部544でラッパー関数を図10に示す項目No.11のリセットコマンドに変換して仮想配線12を経由で実マイコン200をリセットさせるために同期送信する。マイコン共通実行部544が同期返信を受けることでリセット完了を確認後、プログラム実行するために、手動処理部526からマイコン制御指示部516を経由して送信するパラメータは、図9に示す項目No.1に示す「マイコン実行」ラッパー関数を使って、マイコン共通実行部544でラッパー関数を図10に示す項目No.12のプログラムGOコマンドに変換し、実マイコン200を実行させるために同期送信する。マイコン共通実行部544が同期返信を受けることでプログラムスタートを確認し、リセットスタートを完了する。
手動実行によるRAM書込みの場合は、手動処理部526およびRAM書込みデータ518から、RAM書込みコマンドをマイコン実行パラメータ作成部514でRAM書込み要求に合わせて、図9に示す項目No.10〜15に示すRAM書込みのラッパー関数を使って、マイコン共通実行部544でラッパー関数を図10に示す項目No.1,2,5,6のRAM書込みコマンドに変換して実マイコン200がRAM書込みを行うため同期送信する。マイコン共通実行部544が同期返信を受けることでRAM書込みの完了を確認する。また出力RAMの比較し分析を行うために、実マイコンに書込んだRAMデータによる実行結果の出力RAMの変化を見るために、書込みするデータを出力データ取得部522に渡し、実マイコンから読込んだデータをRAMサンプリング部507で表示する。
手動実行によるRAM読込みの場合は、手動処理部526からRAM読込みデータ520からRAM書込みコマンドをマイコン実行パラメータ作成部514でRAM読込み要求に合わせて、図9に示す項目No.4から項目No.9に示すRAM読込みのラッパー関数を作成し、マイコン共通実行部544でラッパー関数を図10に示す項目No.3,4,7,8のRAM読込みコマンドに変換して実マイコン200がRAM読込みを行うため同期送信する。マイコン共通実行部544が同期返信を受けることでRAM読込み、出力データ取得部522で取得したRAMを比較分析部509にて表示させると同時に、出力
分配部536からRAM読込みを要求したデバイスにRAMデータをデバイスへ仮想配線12経由で返信する。比較分析部509にて表示する一例として、図4に示す通り1つの入力データを2つのマイコンに入力した結果を、入力データと共に、出力RAMデータと表示デバイスの画像を並べて表示することで、2つのCPUの動作に差異がある場合に、容易に検出可能になる。
自動検証制御部400から発行するリモコンコードを仮想リモコン300または、実リモコン330が発行する同じフォーマットのデータにて仮想バスマネージャのハイブリッド入力デバイス機能である成りすましを使ってマイコンコントローラ520に同期送信する。マイコンコントローラ520は、図5に示すメッセージ一覧表のデータをマイコンコントローラ520内の仮想配線スロット14で受信する。受信したデータは、図14に示すマイコンコントローラ520内の並列実効532で図5の選択CPU項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図5の選択CPU項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
自動・手動指示部530から自動でリモコンコードを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、仮想マイコンのRAM読書き制御の処理が完了するまで待つ。リモコンコードを送信するパラメータは、図9の項目No.12に示すリモコンコードのRAMシンボルを指定して書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部514からマイコン共通実行部544で図10に示す項目No.5のコマンドに変換して仮想マイコン120にリモコンコードを同期送信し、マイコン共通実行部544が同期返信を受けることで、仮想マイコン120がリモコンキー受付完了するまで待つ。
自動・手動指示部530から自動でリセットスタートを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、仮想マイコン120のリセットスタート制御の処理が完了するまで待つ。
自動・手動指示部530から自動でRAM書込みを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、仮想マイコン120のRAM書込み制御の処理が完了するまで待つ。
自動・手動指示部530から自動でRAM読込みを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、仮想マイコン120のRAM読込み制御の処理が完了するまで待つ。
自動検証制御部400から発行するリモコンコードを仮想リモコン300または、実リモコン330が発行する同じフォーマットのデータにて仮想バスマネージャのハイブリッド入力デバイス機能である成りすましを使ってマイコンコントローラ520に同期送信する。マイコンコントローラ520は、図5に示すメッセージ一覧表のデータをマイコンコントローラ520内の仮想配線スロット14で受信する。受信したデータは、図14に示すマイコンコントローラ520内の並列実効532で図5の選択CPU項目に示すマイコンの選択に従って、リモコンキーを書込むマイコンを選択する。図5の選択CPU項目に複数のマイコンを設定した場合は、設定したマイコン順に順次実行を繰返す。
自動・手動指示部530から自動でリモコンコードを送信する指示をうけた自動処理部
528は、実行・完了待ち部524にて同期送信の設定を行うことで、実マイコン200のRAM読書き制御の処理が完了するまで待つ。リモコンコードを送信するパラメータは、図9の項目No.12に示すリモコンコードのRAMシンボルを指定して書込みを行うプログラムであるラッパー関数を作成するマイコンパラメータ作成部514からマイコン共通実行部544でラッパー関数を図10に示す項目No.5のRAMシンボル書込みコマンドに変換して実マイコン200にリモコンコードを渡し、実マイコン200がリモコンキー受付完了するまで待つ。
自動・手動指示部530から自動でリセットスタートを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、実マイコン200のリセットスタート制御の処理が完了するまで待つ。
自動・手動指示部530から自動でRAM書込みを送信する指示をうけた自動処理部528は、実行・完了待ち部524にて同期送信の設定を行うことで、実マイコン200のRAM書込み制御の処理が完了するまで待つ。
自動・手動指示部530から自動でRAM読込みを送信する指示をうけた自動処理部5
28は、実行・完了待ち部524にて同期送信の設定を行うことで、実マイコン200のRAM読込み制御の処理が完了するまで待つ。
マイコンコントローラ520から発行した図10に示すマイコン制御コマンドの解析を仮想マイコン120内のコマンド解析部134で行い、擬似エミュレータ110の実行と擬似エミュレータ110のリセットとデバッグRAM108またはユーザRAM104内のRAM読書きする各コマンドに対応する仮想マイコン120の制御を行う。
なお、仮想マイコン120の制御にあたり、手動制御と自動制御は同じ動作になる。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたリモコンコードは、マイコンコントローラ520で図10の項目No.5の1バイトシンボルライトコマンドをコマンド解析部134で解析し、RAMシンボル指定130に渡す。RAMシンボル指定130は、図6のシンボル定義ファイルに示すシンボル定義部604とコマンド解析部134から送られてきたリモコンコードのRAMシンボル名を比較し、一致したRAMシンボル名に対応するRAMアドレスに変換してRAM読書き識別128からRAM書込み124に渡す。RAM書込み124は、デバッグRAM108に書込みSimデバッグプログラム106およびプログラム102をリモコン入力により動作する。
擬似エミュレータ110のリセットは、仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたリセットコマンドにより開始される。マイコンコントローラ520は、図15に示す通り、項目No.11のリセットコマンドのデータフ
ォーマットで、リセットコマンドをコマンド解析部134に渡す。コマンド解析部134はリセットコマンドを解析し、リセット部122に渡す。
擬似エミュレータ110の動作開始により、Simデバッグプログラム106およびプログラム102の実行開始が開始される。仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたプログラム実行コマンドは、マイコンコントローラ520により、図10に示す項目No.12のプログラムGO実行コマンドのデータフォーマットで、コマンド解析部134に渡される。コマンド解析部134は、プログラム実行コマンドを解析し、実行部120に渡す。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたRAMデータ書込みRAMアドレス指定の場合は、マイコンコントローラ520で図10の項目No.1,2のRAMアドレスライトコマンドをコマンド解析部134で解析し、RAMアドレス指定132に渡す。RAMアドレス指定132は、RAM読書き識別128からRAM書込み124に渡す。RAM書込み124は、デバッグRAM108または
ユーザRAM104に書込みSimデバッグプログラム106およびプログラム102をRAMに書込んだデータにより動作させる。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたRAMデータ読込みRAMアドレス指定の場合は、マイコンコントローラ520で図10の項目No.3,4のRAMアドレスリードコマンドをコマンド解析部134で解析し、RAMアドレス指定132に渡す。RAMアドレス指定132からRAM読書き識別128を経由してRAM読込み126に渡す。RAM読込み126は、デバッグRAM108またはユーザRAM104から読込んだRAMデータは、RAM読込み126からコマンド解析部134を経由してマイコンコントローラ520に返信する。
図10に示すマイコン制御コマンドをマイコンコントローラ520が発行し、仮想配線12から仮想配線スロット14を経由して図3に示す実マイコン200内の実デバッガに渡す。実デバッガ212がコマンドを解析し、実エミュレータ210の実行と実エミュレータ210のリセットとデバッグRAMs208またはユーザRAM204内のRAM読書きする各コマンドに対応する実マイコン200の制御を行う。
なお、マイコン200の制御にあたり、手動制御と自動制御は同じ動作になる。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたリモコンコードは、図10の項目No.5の1バイトシンボルライトコマンドをマイコン
コントローラ520が発行し、仮想配線12から仮想配線スロット14経由して図3に示す実マイコン200内の実デバッガに渡す。図10の項目No.5の1バイトシンボルライトコマンドを実デバッガ212で解析し、PXsymbol222のシンボル定義ファイルとマイコンコントローラ520から送られてきたリモコンコードのRAMシンボル名を比較し、一致したRAMシンボル名に対応するRAMアドレスに変換し、デバッグRAM208に書込みSim・ICE兼用デバッグプログラム106およびプログラム102をリモコン入力により動作する。
実エミュレータ210のリセットは、仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたリセットコマンドにより開始される。マイコンコントローラ520は、図10に示す項目No.11のリセットコマンドのデータフォーマットで、リセットコマンドを仮想配線12から仮想配線バススロット経由で実デバッガ212に渡す。実デバッガ212は、リセットコマンドに従って、実エミュレータ210をリセットすることで、Sim・ICE兼用デバッグプログラム106およびプログラム102の動作を強制停止し、擬似エミュレータ110をリセットする。
実エミュレータ210のプログラムGO実行は、仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたプログラム実行コマンドにより開始される。マイコンコントローラ520は、図10に示す項目No.12のプログラムGO実行コマンドのデータフォーマットで、プログラムGO実行コマンドを仮想配線12から仮想配線バススロット14経由で実デバッガ212に渡す。実デバッガ212は、プログラムGO実行コマンドに従って、実エミュレータ210をリセットすることで、Sim・ICE兼用デバッグプログラム106およびプログラム102の動作を起動し、実エミュレータの実行を開始する。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたRAMデータ書込みRAMアドレス指定の場合は、マイコンコントローラ520で図10の項目No.1,2のRAMアドレスライトコマンドを仮想配線12から仮想配線バススロット14経由で実デバッガ212に渡す。実デバッガ212は、コマンドを解析し、デバッグRAM208またはユーザRAM204に書込みSim・ICE兼用デバッグプログラム206およびプログラム202をRAMに書込んだデータにより動作させる。
れたRAMデータ書込みRAMシンボル指定の場合は、マイコンコントローラ520で図10の項目No.5,6のRAMシンボルライトコマンドを仮想配線12から仮想配線バススロット14経由で実デバッガ212に渡す。実デバッガ212は、PXsymbol222のシンボル定義ファイルとマイコンコントローラ520から送られてきたRAMシンボル名を比較し、一致したRAMシンボル名に対応するRAMアドレスに変換し、デバッグRAM208に書込みSim・ICE兼用デバッグプログラム106およびプログラム102を書込んだRMデータにより動作する。
仮想リモコン300、実リモコン330、または自動検証制御部400から発行されたRAMデータ読込みRAMアドレス指定の場合は、マイコンコントローラ520で図10の項目No.3,4のRAMアドレスリードコマンドを仮想配線12から仮想配線バススロット14経由で実デバッガ212に渡す。実デバッガ212は、実エミュレータ210からデバッグRAM208またはユーザRAM204から読込んだRAMデータを仮想配線12からマイコンコントローラ520に返信する。
<各マイコンの出力RAMデータの取得処理>
仮想マイコン120または実マイコン200内のRAMデータを取得し表示等の処理は、マイコンコントローラ520内のRAMサンプリング部507内のサンプリング定義501として予め読込みたいRAMを指定したマイコン名とRAM名を複数指定し、定常的なRAMサンプリングを行う周期タイマを設定した後、RAMサンプリング部507にて定常的なRAMデータの取得を行い、定義データで指定された周辺デバイス部30内の仮想LCD320または実LCD310等に表示する。
ことも可能になっている。
仮想マイコン120内のプログラム102が、仮想リモコン300または、実リモコン330から入力したリモコンコードに従って、プログラム102が実行し、作成したLCD表示データ等のRAMデータを仮想LCD320または実LCD310の表示デバイスに表示するための処理をRAMサンプリング部507で行う。
20が、仮想配線12に接続してある各デバイス内の指定関数を実行するため、仮想配線バスマネージャ10の機能であるハイブリッド入力デバイス機能である成りすましで、指定したデバイス内の指定したコールバック関数を実行することができる。これにより、変化直後に各種のプログラムを実行することが可能となる。
14 仮想配線スロット
12 仮想配線
30 周辺デバイス部
40 自動検証部
50 仮想マイコン・マイコンコントローラ一体部
100 仮想マイコン
120 仮想マイコン
200 実マイコン
300 仮想リモコン
310 実LCD
320 仮想LCD
330 実リモコン
400 自動検証制御部
500 マイコンコントローラ
520 マイコンコントローラ
Claims (12)
- シングルチップマイコンのデバッグ対象プログラムを動作させる、単独実行可能な実マイコンと、
前記実マイコンによる前記デバック対象プログラムの実行動作をシミュレーションする、単独実行可能な仮想マイコンと、
前記実マイコンおよび前記仮想マイコンを動作させるために必要なデータ入力を行う周辺入力デバイスと、
前記周辺入力デバイスと前記実マイコンおよび仮想マイコンとの間に設けられ、前記周辺入力デバイスから前記実マイコンおよび仮想マイコンへのデータ転送制御と、前記実マイコンおよび仮想マイコンの作動/停止制御とを行うマイコン制御部とを備え、
前記マイコン制御部が、前記実マイコンおよび仮想マイコンの両方を選択して、両方の実行状態を確認して同期を取り、前記周辺入力デバイスからの入力データを転送すると共に、転送先のマイコンを作動させることにより、前記実マイコンおよび前記仮想マイコンにおいて同一のデバック対象プログラムを実行可能であることを特徴とするプログラム検証システム。 - 前記周辺入力デバイスを複数備え、
前記マイコン制御部が、データ入力を行うべき周辺入力デバイスを前記複数の周辺入力デバイスから選択する、請求項1に記載のプログラム検証システム。 - 前記実マイコンまたは仮想マイコンの実行結果を出力する周辺出力デバイスをさらに備え、
前記マイコン制御部が、前記実マイコンまたは仮想マイコンからの出力データを前記周辺出力デバイスへ転送する、請求項1に記載のプログラム検証システム。 - 前記周辺出力デバイスを複数備え、
前記マイコン制御部が、出力データを転送すべき周辺出力デバイスを前記複数の周辺出力デバイス部から選択する、請求項3に記載のプログラム検証システム。 - 前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、
前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、
前記自動検証部は、前記シナリオファイルに従って、各検証手順において実行すべきマイコンを選択し、選択結果を前記マイコン制御部へ渡すデバイス選択部を備え、
前記マイコン制御部は、前記デバイス選択部の指示に従って、前記仮想マイコンおよび前記実マイコンの一方または両方を選択し作動させるマイコン実行部を備えた、請求項1に記載のプログラム検証システム。 - 前記マイコン制御部が、
前記周辺入力デバイスから前記仮想マイコンと前記実マイコンに同じ入力データを送る並列実行部と、
前記仮想マイコンと前記実マイコンから実行結果をそれぞれ取得し、取得したデータを周辺出力デバイスに転送する出力分配部とを備え、
前記周辺出力デバイスが、前記仮想マイコンの実行結果と前記実マイコンの実行結果とを対比可能な状態に表示する、請求項3または4に記載のプログラム検証システム。 - 前記マイコン制御部が、
前記周辺入力デバイスから前記仮想マイコンと前記実マイコンに同じ入力データを送る並列実行部と、
前記仮想マイコンと前記実マイコンから実行結果をそれぞれ取得し、取得したデータの差異を求めて前記周辺出力デバイスへ出力する比較分析部とを備えた、請求項3または4に記載のプログラム検証システム。 - 前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、
前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、
前記自動検証部は、前記シナリオファイルに従って、各検証手順において実行すべきマイコンを選択し、前記仮想マイコンおよび前記実マイコンが用いるRAMの読み書きおよび前記仮想マイコンおよび前記実マイコンの作動/停止を行うマイコン選択実行部を備えた、請求項1に記載のプログラム検証システム。 - 前記仮想マイコンおよび実マイコンがそれぞれ複数設けられ、前記マイコン選択実行部が、前記複数の仮想マイコンまたは複数の実マイコンから、実行すべきマイコンを選択し、選択された仮想マイコンおよび実マイコンが用いるRAMの読み書きおよび前記仮想マイコンおよび前記実マイコンの作動/停止を行う、請求項8に記載のプログラム検証システム。
- 前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、
前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、
前記シナリオファイルで定義した1または複数の出力データを記録する手順に従って、前記周辺出力デバイスにおけるデータの変化を検出し前記自動検証部に返信するデータ比較検出部と、
前記データ比較検出部の検出結果に基づいて、前記データおよび前記データに基づく出力画像の少なくとも一方を検証結果ファイルへ記録する画像データ記録部とを備えた、請求項3に記載のプログラム検証システム。 - 前記実マイコンおよび仮想マイコンを用いたプログラム検証テストの手順を記録したシナリオファイルを参照し、前記シナリオファイルの内容に応じた指示を前記マイコン制御部へ渡す自動検証部をさらに備え、
前記シナリオファイルには、検証手順毎に実行すべき仮想マイコンおよび実マイコンの少なくとも一方が指定され、
前記シナリオファイルで定義した1または複数の出力データを記録する手順に従って、前記周辺出力デバイスにおける信号の変化を検出し前記自動検証部に返信する信号比較検出部と、
前記信号比較検出部の検出結果に基づいて、前記データおよび前記データに基づく出力画像の少なくとも一方を検証結果ファイルへ記録する画像データ記録部とを備えた、請求項3に記載のプログラム検証システム。 - シングルチップマイコンのデバッグ対象プログラムを動作させる単独実行可能な実マイコンと、前記実マイコンによる前記デバック対象プログラムの実行動作をシミュレーションする単独実行可能な仮想マイコンと、前記実マイコンおよび前記仮想マイコンを動作させるために必要なデータ入力を行う周辺入力デバイスとを有するプログラム検証システムにおいて、前記周辺入力デバイスと前記実マイコンおよび仮想マイコンとの間に設けられるコンピュータ、あるいは、前記仮想マイコンを具現化するコンピュータのいずれかに読み込まれて実行されるプログラム検証システム制御用コンピュータプログラムであって、
前記コンピュータに、前記周辺入力デバイスから前記実マイコンおよび仮想マイコンの両方を選択して、両方の実行状態を確認して同期を取り、前記周辺入力デバイスからの入力データを転送する処理と、前記実マイコンおよび仮想マイコンの作動/停止を制御することにより、前記実マイコンおよび前記仮想マイコンにおいて同一のデバッグ対象プログラムとを行わせる命令を含むことを特徴とするプログラム検証システム制御用コンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004201031A JP4562439B2 (ja) | 2003-11-11 | 2004-07-07 | プログラム検証システムおよびプログラム検証システム制御用コンピュータプログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003381478 | 2003-11-11 | ||
JP2004201031A JP4562439B2 (ja) | 2003-11-11 | 2004-07-07 | プログラム検証システムおよびプログラム検証システム制御用コンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005166010A JP2005166010A (ja) | 2005-06-23 |
JP4562439B2 true JP4562439B2 (ja) | 2010-10-13 |
Family
ID=34741641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004201031A Expired - Fee Related JP4562439B2 (ja) | 2003-11-11 | 2004-07-07 | プログラム検証システムおよびプログラム検証システム制御用コンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4562439B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4747060B2 (ja) * | 2006-09-20 | 2011-08-10 | 株式会社アイ・エル・シー | 検証装置、検証プログラム、および検証方法 |
JPWO2008099931A1 (ja) | 2007-02-15 | 2010-05-27 | 富士通テン株式会社 | マイクロコンピュータの模擬装置 |
US20090203368A1 (en) * | 2008-02-11 | 2009-08-13 | Mobile Complete, Inc. | Automated recording of virtual device interface |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216176A (ja) * | 2000-02-04 | 2001-08-10 | Seiko Epson Corp | デバッグ装置およびデバッグ方法ならびにデバッグプログラムを記憶した記憶媒体 |
JP2003316603A (ja) * | 2002-04-24 | 2003-11-07 | Matsushita Electric Ind Co Ltd | プログラム検証システム |
-
2004
- 2004-07-07 JP JP2004201031A patent/JP4562439B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216176A (ja) * | 2000-02-04 | 2001-08-10 | Seiko Epson Corp | デバッグ装置およびデバッグ方法ならびにデバッグプログラムを記憶した記憶媒体 |
JP2003316603A (ja) * | 2002-04-24 | 2003-11-07 | Matsushita Electric Ind Co Ltd | プログラム検証システム |
Also Published As
Publication number | Publication date |
---|---|
JP2005166010A (ja) | 2005-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0471924A2 (en) | Automated function testing of application programs | |
WO2012077704A1 (ja) | デバッグスタブサーバ、デバッグ方法およびプログラム | |
JP4562439B2 (ja) | プログラム検証システムおよびプログラム検証システム制御用コンピュータプログラム | |
JP4171240B2 (ja) | プログラム検証システム | |
JP2004252585A (ja) | プログラム検証システム | |
JPH11194960A (ja) | ソフトウェア試験装置 | |
EP1224551A1 (en) | Protocol acknowledgment between homogeneous systems | |
Kline et al. | The in-circuit approach to the development of microcomputer-based products | |
JPS6310456B2 (ja) | ||
JPH11272494A (ja) | ワイドバンドスイッチファームウエアのデバック/コシミュレーション方式 | |
KR100200712B1 (ko) | 노-타겟 시스템의 프로그램 디버깅 장치 | |
JPH05128079A (ja) | マルチプロセツサシステムにおけるトレース方式 | |
JP2002189617A (ja) | 評価システム、及び評価方法 | |
JP3085730B2 (ja) | 複合cpuシステムの並列シミュレーション方式 | |
JP4494329B2 (ja) | 情報処理装置 | |
JP2004157787A (ja) | プログラム検証システム | |
JP2007141139A (ja) | 情報処理装置 | |
JP2887515B2 (ja) | 記録装置のシミュレータ | |
JP2004046716A (ja) | デバッグ装置 | |
JPH0520122A (ja) | リモートデバツグ方法 | |
JP2000215079A (ja) | Cpuデバッガ | |
JPH1115690A (ja) | 画像処理装置及び画像処理装置とコンピュータ間の通信確立方法 | |
JPH1153219A (ja) | ソフトウェア検証装置 | |
JPH11161514A (ja) | デバッガ装置、デバッガ方法、およびデバッガプログラムを記録した記録媒体 | |
JP2002288003A (ja) | シミュレーション方法およびシミュレーションプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070427 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090406 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100415 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100614 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100706 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100727 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4562439 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |