JP2004157787A - プログラム検証システム - Google Patents

プログラム検証システム Download PDF

Info

Publication number
JP2004157787A
JP2004157787A JP2002323098A JP2002323098A JP2004157787A JP 2004157787 A JP2004157787 A JP 2004157787A JP 2002323098 A JP2002323098 A JP 2002323098A JP 2002323098 A JP2002323098 A JP 2002323098A JP 2004157787 A JP2004157787 A JP 2004157787A
Authority
JP
Japan
Prior art keywords
data
unit
virtual
eeprom
verification
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.)
Pending
Application number
JP2002323098A
Other languages
English (en)
Inventor
Michinori Fujita
充典 藤田
Katsumi Tsurumoto
克己 鶴本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002323098A priority Critical patent/JP2004157787A/ja
Publication of JP2004157787A publication Critical patent/JP2004157787A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】シミュレーションによるソフトウェアの評価において、データ入力、動作結果の出力、または検証等の評価作業を自動化することにより、作業ミスの発生しやすい手作業を省略して、デバッグに要する期間の短縮と品質の向上を実現し得る評価システムを提供する。
【解決手段】ICE400と仮想EEPROM80とを用いてプログラムの動作検証を行うプログラム検証システムであって、仮想EEPROM80に対するICE400の入出力データをデータR/W部300で取得し、取得したデータをモニタ304の表示形式に合わせて可視化する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、機器組込みマイコン用ソフトウェアを実際のハードウェア上ではなく、擬似バスシステムを使用したシステムシミュレータ上で動作させる環境において、疑似マイコンおよび周辺機器を擬似バスに接続し、ソフトウェアの論理的な評価をPC上で自動的に行うための自動論理評価システムに関するものである。
【0002】
【従来の技術】
従来、シングルチップマイコン制御用アプリケーションプログラムの評価は、シングルチップマイコンの全機能をエミュレートできるインサーキットエミュレータを、ターゲットとなるシングルチップマイコンの代わりに組み込み、ハードウェアで構成された実機デバッグセットに接続して行われていた。
【0003】
しかし、プログラムのテストを行うためには、システムを動作させるハードウェアが先行完成していることが必須条件となっていたため、ソフトウェア開発の工程がハードウェア開発の進捗に大きく左右されるという問題があった。
【0004】
この問題を解決するために、ターゲットとなるシングルチップマイコンのシミュレーションおよび周辺デバイスのシミュレーションを行うことで、実機を使わずに、デバッグ対象プログラムを評価する方法が提案されている。
【0005】
このようなシミュレーション方法の一例が、例えば特開平9−114700号公報(特許文献1)に開示されている。特許文献1に開示されたシステムは、テスト/デバッグの対象となる組込みソフトウェアと、マイクロプロセッサユニット(MPU)およびメモリを模擬するMPUシミュレータと、入出力を模擬する入出力装置模擬部と、MPUと1つ以上の入出力装置を接続する信号線を模擬する入出力装置実行制御機構と、シミュレータの起動順序を記述した起動定義ファイルと、I/OモニタとI/Oモデルのプロセスを起動/終了する手段と、ユーザが全てのI/Oモデルのリソース情報を参照・変更できる手段と、I/OモデルとI/Oモニタの接続関係を表示する手段を持つ入出力模擬部操作環境とで構成され、それぞれの構成要素は、複数のプロセスで構成され、仮想バスにて接続されている。
【0006】
この従来のシミュレーション方法では、図11に示す通り、実機周辺デバイスを制御する部分に、仮想周辺デバイスを制御するプログラムを組込み仮想RAMに接続し、実機プログラムをPC上でシミュレーションする方法をとっていた。
【0007】
【特許文献1】
特開平9−114700号公報
【0008】
【発明が解決しようとする課題】
しかし、従来の実機デバッグセットを用いて、例えばEEPROMの検証を行う場合、図12に示すように、実機デバッグセットのユーザRAM402等を、検証操作手順書120に記載された操作手順に基づいて手動で操作し、その実行結果を検証結果記録書130に手作業で記録していた。このため、検証に手間がかかるだけでなく、検証作業者により検証精度にばらつきが生じるという問題があった。
【0009】
また、実機デバッグセットが完成してからでないと動作検証ができないので、実機デバッグセットが正常に動作しない場合に、検証対象のプログラムが悪いのか、あるいは、検証プラットフォームである実機デバッグセットが悪いのかを判断することが難しく、解析に時間がかかる。
【0010】
また、従来、実機デバッグセットを用いたプログラム実行結果の検証は、検証結果記録書130に記録されたデータを、手作業で表示イメージに変換することにより行われていた。このため、検証作業に大変な手間と時間がかかるという問題もあった。
【0011】
また、例えば、白物家電等に用いられる周波数判別プログラムの検証作業(図13参照)も、EEPROM処理の検証作業と全く同じく、実機デバッグセットが完成してからでないと動作検証ができず、また、検証データを人間が見やすい状態に変換するために手間と時間がかかるという問題を有していた。
【0012】
本発明は、上記の問題を解決するために、シミュレーションによるソフトウェアの評価において、データ入力、動作結果の出力、または検証等の評価作業を自動化することにより、作業ミスの発生しやすい手作業を省略して、デバッグに要する期間の短縮と品質の向上を実現し得るプログラム評価システムを提供することを目的とする。
【0013】
【課題を解決するための手段】
上記の目的を達成するために、本発明にかかるプログラム検証システムは、エミュレータと、前記エミュレータに接続された仮想周辺デバイスとを用いてプログラムの動作検証を行うプログラム検証システムであって、前記仮想周辺デバイスに対する前記エミュレータの入出力データを取得するデータ取得部と、前記データ取得部により取得されたデータを少なくとも一時的に格納する検証データ記憶部と、前記検証データ記憶部の内容を可視化するモニタ表示部とを備えたことを特徴とする。
【0014】
【発明の実施の形態】
本発明によれば、仮想周辺デバイスに対するエミュレータの入出力データを可視化することにより、実機デバッグセットの完成を待たずして仮想周辺デバイスでデバッグした結果を、手間をかけずに視覚的に検証することが可能なプログラム検証システムを提供することができる。
【0015】
以下、図面を参照しながら、本発明にかかるプログラム検証システムの実施形態について説明する。
【0016】
最初に、以下の各実施形態で用いる用語を説明する。
【0017】
デバッグ対象プログラムとは、マイコン上で動作させるべくユーザが開発するプログラムであり、本発明のシミュレーションシステムにおいてデバッグされるプログラムである。
【0018】
マイコンエミュレーションとは、実機の組込みマイコンに搭載されている機能(割込み、タイマ、タスク等)をエミュレートするものである。
【0019】
同期通信とは、仮想配線を利用して通信する手段であるが、データを通信相手に送信した後、通信相手から返信データが返ってくるまで待っている通信方法である。
【0020】
実機プログラムは、デバッグ対象プログラムおよび同期処理プログラムを含む。同期処理プログラムとは、デバッグ対象プログラムが利用する実機デバイスのユーザRAMと、仮想配線で実機デバイスに接続されている仮想デバイスとの間での相互の転送データを、デバッグ対象プログラムの動作に合わせて同期化する処理を制御するためのプログラムである。
【0021】
デバッガは、実機デバッグセットで利用するICE(In Circuit Emulator)を制御する。
【0022】
ICEは、デバッグプログラムを実行するために、実機の組込みマイコンをエミュレートする。
【0023】
HTAとは、HTML Applicationsの略で、Webページで実行可能なさまざまな機能(HTML、CSS、スクリプト言語(JavaScript(登録商標),VBA等)、Behavior等)をサポートする。
【0024】
ActiveX(登録商標)とは、インターネット対応のOLEドキュメントオブジェクトであるActiveXドキュメントや、インターネットアクセス機能を持ったクライアントアプリケーションを開発するためのAPIである。
【0025】
OLEとは、Object Linking and Embeddingの略で、アプリケーションが別のアプリケーションの機能を呼出して自分自身の機能のように利用したりできる。
【0026】
仮想配線とは、仮想デバイスとデバッガと自動検証制御等を仮想的に接続する配線である。なお、仮想デバイスとデバッガと自動検証制御等を複数のパーソナルコンピュータで実現した場合は、この仮想配線として、ネットワーク、USB、RS232C、IEEE1394等を使用できる。また、仮想デバイスとデバッガと自動検証制御等を一台のパーソナルコンピュータ内で複数の単独実行可能なアプリケーションとして実現した場合は、仮想配線は、アプリケーション間にて通信可能なDDE、COM等のデータ通信機能を利用して実現できる。
【0027】
オンザフライとは、デバッグ対象プログラムが実行中でもICE内のユーザRAMとマイコンエミュレーション内のレジスタの読書きが可能な機能である。 仮想配線は、本出願人による先の出願(特願2001−219887号)に記載されたバス疑似化装置を用いて実施できる。
【0028】
(第1の実施形態)
以下、本発明の第1の実施形態について、図1を用いて説明する。
【0029】
本実施形態にかかるプログラム検証システムは、EEPROMデバイスを制御するプログラムをデバッグ対象プログラム414とするものである。図1に示す通り、本プログラム検証システムは、デバッグ対象プログラム414が、EEPROMデバイスに対して、設計されたとおりにデータの読書きが行えるかを、実機であるEEPROMデバイスの代わりに仮想EEPROM80を用いてシミュレーションする。これにより、実機では検証困難なデータ読書きシーケンスの検証や、ノイズ等によるデータ化けに対するデバッグ対象プログラムの動作の検証を行う。
【0030】
本プログラム検証システムでは、デバッグ対象プログラム414をICE400上で実行するのだが、仮想EEPROM80とICE400とのデータ転送を行う必要がある。このため、ICE400と仮想EEPROM80の同期を合わせるためのポーリング部302を備える。このポーリング部302を経由して仮想EEPROM80とICE400内のユーザRAM402との間でデータ転送を行う。また、仮想EEPROM80のデータR/W部300のデータをモニタし表示する。
【0031】
また、本プログラム検証システムでは、仮想EEPROM80にコマンド判別部310を備え、シナリオファイル692からのコマンドを判別してエラーデータを生成し、ポーリング部302とデータR/W部300とを同期させることにより、実基板での評価ではかなりの時間を要するエラーチェックを簡単に行うことが可能である。
【0032】
さらに、図1に示すように、ICE400側にEEPROM転送部422を設け、仮想EEPROM80内にEEPROMデータ転送部320を設け、これらを仮想配線70に接続することにより、仮想EEPROM80が完全に独立した構成となっていることが好ましい。これにより、仮想EEPROM80を、EEPROMを使用する製品の検証に応用できるようになり、汎用性を持たせることができる。
【0033】
以下、具体的に、本実施形態のプログラム検証システムの構成と動作について説明する。本プログラム検証システムは、図1に示すように、実機デバイス検証システム81と仮想EEPROM80とを、仮想配線70で接続した構成である。実機デバイス検証システム81は、ICE400、デバッガ500、実機プログラム410、EEPROM転送部422、およびバススロット424を備えている。仮想EEPROM80は、ポーリング部302、EEPROMデータ転送部320、同期部314、エラーデータ部312、コマンド判別部310、データR/W部300、モニタ304、仮想表示部306、およびバススロット308を備えている。
【0034】
なお、デバッグ対象プログラム414の動作に必要なICE400と、ICE400に接続されるデバッガ500と、仮想EEPROM80とは、共に仮想配線70に接続されている。
[EEPROMデータ書き込みシーケンスの検証]
最初に、本プログラム検証システムにおける、EEPROMデータ書き込みシーケンスの検証について説明する。
【0035】
実機デバイス検証システム81では、デバッグ対象プログラム414における実機EEPROMへのデータ書き込みシーケンスを、シミュレーションにて検証するために、図2に示すように、デバッグ対象プログラム414の命令を置き換える。
【0036】
すなわち、従来の検証システムでは、デバッグ対象プログラムに実機EEPROMへの書き込み命令(実機WRITE)があった場合(図2の左側のフローチャートにおけるステップS420)、書き込みデータをダンプして検証するために仮想表示RAMへ転送するようにしていたが(ステップS421)、本実施形態では、デバッグ対象プログラム414における実機EEPROMへの書き込み命令を、マイコンエミュレーション406を経由した、ユーザRAM402への仮想WRITE命令に変更する。仮想WRITE命令は、図2の右側のフローチャートに示すとおり、EEPROMへ書き込みたいデータおよびそのアドレスを設定し(ステップS432)、EEPROMへの書き込み要求を出す(ステップS436)ことにより実現される。
【0037】
EEPROMへの書き込み要求のチェックを行うために、仮想EEPROM80のポーリング部302は、EEPROMデータ転送部320に対して、1ms毎に、書き込みイベントの読み込み指示を出す。EEPROMデータ転送部320は、ポーリング部302から、書き込みイベントの読み込み指示を受けると、以下に説明するEEPROMデータ読み込み処理を行うことにより、EEPROM書き込み要求があるか否かを判断する。
<EEPROMデータ読み込み処理>
EEPROMデータ転送部320は、読み込みたいユーザRAM402内のRAMアドレスを指定して、バススロット308〜仮想配線70〜バススロット424を経由して、同期通信にてEEPROM転送部422へ送る。EEPROM転送部422は、デバッガ500に対して、デバッガの機能であるオンザフライ機能を利用して、図3に示すメッセージ内の1バイトメモリリードコマンドを発行する。デバッガ500は、EEPROMデータ転送部320にて指定されたアドレスから、ユーザRAM402のデータを読出し、読み出したデータを、EEPROM転送部422〜バススロット424〜仮想配線70〜バススロット308を順次経由して、EEPROMデータ転送部320へ、同期通信により返信する。これにより、ポーリング部302へ、ユーザRAM402の指定アドレスから読み出されたデータが送られる。
<EEPROM書き込みイベント有りの場合>
上述のようにユーザRAM402から読み出されたデータ(EEPROM書き込みイベントデータ)が、「要求有り」を表している場合は、EEPROMデータ転送部320が上述したEEPROMデータ読み込み処理を行うことにより、ユーザRAM402内のEEPROM書き込みデータアドレスおよびデータを、ポーリング部302へ取得する。
<EEPROM書き込みアドレスおよびデータの表示処理>
ポーリング部302は、ユーザRAM402から読み込んだEEPROM書き込みデータアドレスおよびデータを、データR/W部300に渡す。データR/W部300は、モニタ304の表示形式に合わせてデータを整形して、仮想表示部306に渡す。仮想表示部306は、例えば図4に示すような画面をモニタ304に表示する。
【0038】
以上のように、本実施形態のプログラム検証システムでは、EEPROMへのデータ書き込みシーケンスについて、仮想EEPROM80が、EEPROM書き込みアドレスおよび書き込みデータをユーザRAM402から取得し、取得したデータをモニタ表示する。これにより、デバッグ対象プログラム414におけるEEPROMデータ書き込みシーケンスを視覚的に検証することができるので、検証効率が向上する。
[EEPROMデータ読み込みシーケンスの検証]
次に、本プログラム検証システムにおける、EEPROMデータ読み込みシーケンスの検証について説明する。
【0039】
実機デバイス検証システム81は、デバッグ対象プログラム414における実機EEPROMからのデータ読み込みシーケンスを、シミュレーションにて検証するために、図5に示すように、デバッグ対象プログラム414の命令を置き換える。すなわち、従来の検証システムでは、デバッグ対象プログラムに実機EEPROMからの読み込み命令(実機READ)があった場合(図5の左側のフローチャートにおけるステップS520)、読み込みデータを仮想表示RAMへ転送するようにしていたが(ステップS521)、本実施形態では、デバッグ対象プログラム414における実機EEPROMからの読み込み命令を、マイコンエミュレーション406を経由した、ユーザRAM402からの仮想READ命令に変更する。仮想READ命令は、図5の右側のフローチャートに示すとおり、EEPROMから読み込みたいデータおよびそのアドレスを設定し(ステップS532)、EEPROM読み込み要求を出す(ステップS536)ことにより実現される。
【0040】
EEPROM読み込み要求のチェックを行うために、ポーリング部302は、EEPROMデータ転送部320に対して、1ms毎に、読み込みイベントの読み込み指示を出す。EEPROMデータ転送部320は、ポーリング部302から、読み込みイベントの読み込み指示を受けると、前記で説明したとおりのEEPROMデータ読み込み処理を行うことにより、ユーザRAM402からEEPROM読込イベントデータを読み出し、EEPROM読み込み要求があるか否かを判断する。
<EEPROM読み込みイベント有り>
上述のようにユーザRAM402から読み出されたEEPROM読み込みイベントデータが、「要求有り」を表している場合は、EEPROMデータ転送部320が上述したEEPROMデータ読み込み処理を行うことにより、ユーザRAM402内のEEPROM読み込みデータアドレスおよびデータを、ポーリング部302へ取得する。
<EEPROM読み込みアドレスおよびデータの表示処理>
ポーリング部302は、ユーザRAM402から読み込んだEEPROM読み込みデータアドレスおよびデータを、データR/W部300に渡す。データR/W部300は、モニタ304の表示形式に合わせてデータを整形して、仮想表示部306に渡す。仮想表示部306は、例えば図4に示すような画面をモニタ304に表示する。
【0041】
以上のように、本実施形態のプログラム検証システムでは、EEPROMからのデータ読み込み書き込みシーケンスについて、仮想EEPROM80が、EEPROM読み込みアドレスおよび読み込みデータをユーザRAM402から取得し、取得したデータをモニタ表示する。これにより、デバッグ対象プログラム414におけるEEPROMデータ読み込みシーケンスを視覚的に検証することができるので、検証効率が向上する。
[EEPROMエラーデータの読み込みシーケンスの検証]
さらに、本プログラム検証システムにおける、EEPROMエラーデータの読み込みシーケンスの検証について説明する。
<シナリオファイルおよび検証結果ファイルの読書き処理>
本プログラム検証システムは、図1に示すように、テスト仕様書および成績書として、シナリオファイル692および検証結果ファイル690を利用する。検証結果ファイル690およびシナリオファイル692を読み書きするためのアプリケーションとして、例えば、Microsoft社のExcel(登録商標)を利用できる。
【0042】
プログラム自動検証をコントロールする自動検証制御部650は、HTAを利用して記述されている。また、検証結果ファイル690およびシナリオファイル692の読み書きを自動検証制御部650から行うために、OLE機能を利用できる。また、自動検証制御部650と仮想配線70との間では、例えばActiveX(登録商標)を利用したデータ通信を行う。
<EEPROMエラーデータ読み込み処理>
シナリオファイル692には、EEPROMのデータマップに従って、アドレスおよび各種書き込みデータがセットされている。図6に示すように、検証手順が記述されているシナリオファイル692から、シナリオファイル読込部660が、ActiveX(登録商標)コントロールを利用し、JavaScript(登録商標)記述にてアドレスデータと書き込みデータを読み込み、データ実行部662にデータを渡す。データ実行部662は、アドレスデータと書き込みデータをHEXデータに変換し、データ発行部664へ渡す。データ発行部664は、バススロット600から仮想配線70を介して仮想EEPROM80のコマンド判別部310へデータを送ると同時に、イベント検出部656に対して、バススロット600を介さずに、データを記録するための同期化イベント、コメント、アドレスデータ、および、書き込みデータを送る。
<イベント検出処理>
イベント検出部656は、バススロット600を介して送られて来るICE400からのデータと、データ発行部664から直接送られて来る同期化イベントとを判別する。ICE400からのデータであれば、ICEデータ取得部658へ送り、データ発行部664からの同期化イベントであれば、検証結果ファイル書込部652へ送る。ICEデータ取得部658は、HEXデータを文字列データに変換し、検証結果ファイル書込部652へ転送する。
【0043】
検証結果ファイル書込部652は、ActiveX(登録商標)コントロールを利用し、JavaScript(登録商標)記述にて、検証結果ファイル690へ書き込みを行う。
【0044】
図7(a)および(b)に、シナリオファイル692および検証結果ファイル690の一例を示す。このように、シナリオファイル692に基づく検証結果を、検証結果ファイル690へ自動で書き込むことにより、検証作業の手順と結果を一元的に管理することが可能となる。
<EEPROMのエラー判別処理>
EEPROMのエラー判別は、以下のように行う。
【0045】
まず、上述のEEPROMデータ読込処理を行うことにより、ポーリング部302へユーザRAMデータを取り込む。
【0046】
次に、シナリオファイル692から、バススロット600〜仮想配線70〜バススロット308を介して、コマンド判別部310へ、エラー判別データを取り込む。
<エラーデータの判別>
エラー判別データは、“0”が正常チェック、“1”がエラーチェックを表すものとする。すなわち、EPPROMからの読み出しデータが正常であるものとして検証を行う場合は、シナリオファイル692のエラー判別データに“0”を設定し、EPPROMからの読み出しデータがエラーデータであるものとして検証を行う場合は、シナリオファイル692のエラー判別データに“1”を設定する。コマンド判別部310は、コマンドとして、正常チェックの場合は“0”を、エラーチェックの場合は“1”を、エラーデータ部312に転送する。
<エラーデータの置換>
コマンド判別部310により転送されたコマンドがエラーチェックを表す“1”であれば、エラーデータ部312は、ユーザRAM402からポーリング部302に取り込んであるデータを反転することにより、エラーデータを作成する。コマンドが“0”であれば、ユーザRAM402から取り込んだデータをそのまま用いる。
<アドレス、リトライカウンタの読み込み処理>
次に、前述したEEPROMデータ読み込み処理を実行することにより、ユーザRAM402から、アドレスおよびリトライカウンタを、ポーリング部302へ読み込む。アドレスとは、EEPROMのデータマップのアドレスであり、リトライカウンタとは、ソフトウェア上で読み返しているカウンタである。
<ポーリングと同期化>
ポーリング部302は、読み込んだユーザRAM402内のアドレスと、EEPROMのリトライカウンタとを、同期部314へ転送する。
<エラーデータとの同期>
同期部314は、EEPROMのリトライカウンタが0であれば、正常と判断し、データR/W部300とエラーデータ部312へ、アドレスとデータを転送する。EEPROMのリトライカウンタが1以上であれば、異常と判断し、データR/W部300へのデータ転送を停止し、エラーデータ部312のみへアドレスとデータを転送する。
<エラーデータの返信>
エラーデータ部312は、EEPROMのリトライカウンタが1以上であれば、アドレスとエラーデータを、バススロット308〜仮想配線70〜バススロット600へ、返信データとして送信する。
<EEPROMエラーデータ読み込み処理およびイベント検出処理>
バススロット600は、前述したEEPROMエラーデータ読込処理を行うことにより、イベント検出部656に対して、エラーデータ部312からの返信データを送る。そして、イベント検出部656は、前述したイベント検出処理を行うことにより、検証結果ファイル690へ書き込みを行う。
【0047】
従来、EEPROMのエラーデータの検証作業は、エラーコマンドを手作業により変更し、エラーとしてプログラムが判断するかどうかを検証し、シナリオファイルに書き込むという作業を要していたため、すべてのエラーデータを検証するためには、大変な時間がかかっていた。しかし、以上に説明したように、本実施形態によれば、自動的にエラー判別を行うことができ、手作業に比べて短時間に検証できる。また、検証テスト成績表(検証結果ファイル690)の自動生成も可能になる。
<EEPROMの統合評価>
なお、EEPROMデータ転送部320とバススロット308との間の送信と、EEPROM転送部422とバススロット424との間の送信が、同一のデータフォーマットを採用しているために、EEPROMデータ転送部320とデバッガ500とを直接接続することによっても、EEPROMの評価を行うことができる。この場合、EEPROM転送部422およびバススロット424を省略して、実機デバイス検証システム81内に仮想EEPROM80を埋め込むことができる。このようにすれば、バススロットや仮想配線を経由したデータ通信ではないために汎用性は高くないが、短期開発が容易となる。
【0048】
(第2実施形態)
以下、本発明の第2の実施形態について説明する。
【0049】
本実施形態にかかるプログラム検証システムは、周波数を判別するプログラムをデバッグ対象とし、デバッグ対象プログラムが設計どおりに周波数判別を行えるかを、周波数測定器(実機)の代わりに仮想周波数判別部を用いてシミュレーションすることで、実機では検証時間がかかる周波数判別シーケンスを、効率的に検証するものである。
【0050】
このため、本実施形態のプログラム検証システムは、図8に示すように、実機デバイス検証システム91と、仮想周波数判別部90とを仮想配線70で接続した構成である。実機デバイス検証システム91は、ICE400、デバッガ500、実機プログラム410、周波数抽出部450、周波数転送部452、および、バススロット454を備えている。仮想周波数判別部90は、仮想周波数作成部801、周波数データ転送部810、周波数判別I/O部800、モニタ804、仮想表示部806、および、バススロット308を備えている。
[周波数判別データシーケンス処理]
実機デバイス検証システム91は、実機周波数判別のプログラムを、デバッグ対象プログラム414を用いたシミュレーションにて検証するために、以下のとおり、周波数判別データシーケンス処理を行う。
<周波数判別データ読み込み>
まず、周波数判別データを読み込むために、周波数データ転送部810が、読み込みたいユーザRAM402内のRAMアドレスを指定して、バススロット308〜仮想配線70〜バススロット454を順次経由して、周波数転送部452に同期通信にて送る。周波数転送部452は、デバッガ500に対して、デバッガ500の機能であるオンザフライ機能を利用して、図3に示すメッセージ内の1バイトメモリリードコマンドを発行する。デバッガ500は、周波数データ転送部810にて指定されたアドレスからユーザRAMのデータを読み出し、周波数転送部452〜バススロット454〜仮想配線70〜バススロット308を経由して、周波数データ転送部810への同期通信の返信データとする。
<シナリオファイルおよび検証結果ファイルの読書き方法>
本実施形態のプログラム検証システムも、第1の実施形態と同様に、自動検証を行うために、自動検証制御部750、検証結果ファイル790、およびシナリオファイル792を備えている。これらは、バススロット600を介して仮想配線70に接続される。
【0051】
検証結果ファイル790およびシナリオファイル792の読み書きを行うアプリケーションとして、例えば、Microsoft社のExcel(登録商標)を利用できる。プログラム自動検証をコントロールする自動検証制御部750は、HTAを利用して記述されている。また、Excel(登録商標)を用いて作成された検証結果ファイル790およびシナリオファイル792の読み書きを自動検証制御部750から行うために、OLE機能を利用している。また、自動検証制御部750と仮想配線70との間で、ActiveX(登録商標)を利用してデータ通信を行っている。
<周波数判別データファイル読み込み処理>
図9に示すように、検証手順が記述されているシナリオファイル792から、シナリオファイル読込部660が、例えば、ActiveX(登録商標)コントロールを利用し、JavaScript(登録商標)記述にてアドレスデータと書き込みデータを読み込み、データ実行部662にデータを渡す。データ実行部662は、アドレスデータと書き込みデータをHEXデータに変換し、データ発行部664へ渡す。データ発行部664は、バススロット600から仮想配線70を介してバススロット308へデータを送ると同時に、イベント検出部656に対して、バススロット600を介さずに、データを記録するための同期化イベント、コメント、アドレスデータ、および、書き込みデータを送る。
<イベント検出>
イベント検出部656は、バススロット600経由で送られて来るICE400からのデータと、データ発行部664から直接送られて来る同期化イベントとを判別し、ICE400からのデータは、ICEデータ取得部758へ送る。ICEデータ取得部758は、受け取ったデータをHEXデータから文字列データに変換し、検証結果ファイル書込部652へ転送する。
【0052】
検証結果ファイル書込部652は、ActiveX(登録商標)コントロールを利用し、JavaScript(登録商標)記述にて、検証結果ファイル790へ書き込みを行う。
【0053】
図10(a)および(b)に、シナリオファイル792および検証結果ファイル790の一例を示す。このように、シナリオファイル792に従って検証を行った結果を、検証結果ファイル790へ自動で書き込むことにより、検証作業の手順と結果を一元的に管理することが可能となる。
<周波数判別イベント>
データ発行部664から直接送られてくる同期化イベントは、バススロット600を通して返信され、仮想配線からバススロット308を介して周波数発生部802へ転送される。
<周波数判別データ転送処理>
周波数発生部802で、同期化イベントがあると判断した場合、周波数判別データ部803が、シナリオファイル792から送られた周波数判別データを周波数データ転送部810へ転送する。
<周波数判別データ書き込み処理>
周波数データ転送部810は、書き込みたいユーザRAM402内のRAMアドレスを指定して、バススロット308〜仮想配線70〜バススロット454を経由して、周波数転送部452へ同期通信にて送る。周波数抽出部450は、デバッガ500に対して、デバッガ500の機能であるオンザフライ機能を利用して、図3に示すメッセージ内の1バイトメモリライトコマンドを発行する。デバッガ500は、周波数データ転送部810にて指定されたアドレスからユーザRAM402のデータを読み出し、周波数転送部452〜バススロット454〜仮想配線70〜バススロット308を順次経由して、周波数データ転送810へ同期通信により返信する。
<周波数判別データ作成>
周波数判別データ部803により、周波数判別データは、バススロット308〜仮想配線70〜バススロット454を順次経由して、周波数転送部452へ同期通信にて送られる。送られたデータは、周波数抽出部450からデバッガ500に対して、図3に示すメッセージ内の1バイトメモリライトコマンドを1ms毎に発行することにより、デバッガ500の機能であるオンザフライ機能を利用して、ユーザRAM402上の、周波数データ転送部810に指定されたアドレスへ書き込まれる。
<周波数判別データ表示>
ユーザRAM402から読み込んだ周波数判別データは、周波数判別I/O部800に渡される。周波数判別I/O部800は、モニタ804の表示方式に合わせてデータを整形し、仮想表示部806に渡す。仮想表示部806は、例えば図4に示すような画面をモニタ804に表示することにより、視覚的に検証することができる。
<周波数判別の統合評価>
なお、周波数データ転送部810とバススロット308との間、周波数転送部452とバススロット454との間は、同一の送信データフォーマットを用いる。従って、周波数データ転送部810と周波数抽出部450とを直接接続することによっても、周波数判別のシミュレーションを行うことができる。この場合、周波数転送部452およびバススロット454を省略して、実機デバイス検証システム91内に仮想周波数判別部90を埋め込むことができる。このようにすれば、バススロットや仮想配線を経由したデータ通信ではないので汎用性は高くないが、短期開発が容易である。
【0054】
一方、図8に示すように、仮想周波数判別部90に周波数データ転送部810、ICE400側に周波数抽出部450を設けて、仮想配線70に接続した構成によれば、仮想周波数判別部90を完全に独立した構成とすることができる。この場合、この仮想周波数判別部90は、周波数判別を使用する製品に単独で対応できるようになり、汎用性を有する。
【0055】
以上の各実施形態で説明したプログラム検証システムによれば、擬似バスシステムを使用したシステムシミュレータに、自動評価システムを接続することにより、ソフトウェアの評価において、ハードウェアの開発日程による制約を受けずにソフトウェアの評価を行うことができる。また、手作業によらず、検証結果の一元管理が可能となり、作業効率が向上する。さらに、自動評価に用いる評価データの収集および書類の作成も自動化することにより、評価仕様書の作成から成績書の作成までを一元管理し、人為ミスの入り込む余地を徹底的に排除することが可能である。これにより、評価期間の短縮とソフトウェアの品質向上を図ることができる。
【0056】
【発明の効果】
以上のように、本発明によれば、シミュレーションによるソフトウェアの評価において、データ入力、動作結果の出力、または検証等の評価作業を自動化することにより、作業ミスの発生しやすい手作業を省略して、デバッグに要する期間の短縮と品質の向上を実現し得るプログラム評価システムを提供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態にかかるプログラム検証システムの構成を示すブロック図
【図2】EEPROM書き込みフロー
【図3】メッセージ一覧表
【図4】仮想表示部の表示例
【図5】EEPROM読み込みフロー
【図6】第1の実施形態における自動検証制御部の構成例を示すブロック図
【図7】(a)はEEPROMの評価におけるシナリオファイルの一例、(b)はEEPROMの評価における検証結果ファイルの一例
【図8】本発明の第2の実施形態にかかるプログラム検証システムの構成を示すブロック図
【図9】第2の実施形態における自動検証制御部の構成例を示すブロック図
【図10】(a)は周波数判別プログラムの評価におけるシナリオファイルの一例、(b)は検証結果ファイルの一例
【図11】従来の実機評価システムのフロー構成
【図12】従来の実機デバッグセットを用いたプログラム検証方法(EEPROMの場合)
【図13】従来の実機デバッグセットを用いたプログラム検証方法(周波数判別処理の場合)
【符号の説明】
70 仮想配線
80 仮想EEPROM
81 実機デバイス検証システム
90 仮想周波数判別部
91 実機デバイス検証システム
300 データR/W部
302 ポーリング部
304 モニタ
306 仮想表示部
308 バススロット
310 コマンド判別部
312 エラーデータ部
314 同期部
320 EEPROMデータ転送部
400 ICE
410 実機プログラム
414 デバッグ対象プログラム
422 EEPROM転送部
424 バススロット
450 周波数抽出部
452 周波数転送部
454 バススロット
500 デバッガ
800 周波数判別I/O部
801 仮想周波数作成部
804 モニタ
806 仮想表示部
810 周波数データ転送部

Claims (7)

  1. エミュレータと、前記エミュレータに接続された仮想周辺デバイスとを用いてプログラムの動作検証を行うプログラム検証システムであって、
    前記仮想周辺デバイスに対する前記エミュレータの入出力データを取得するデータ取得部と、
    前記データ取得部により取得されたデータを少なくとも一時的に格納する検証データ記憶部と、
    前記検証データ記憶部の内容を可視化するモニタ表示部とを備えたことを特徴とするプログラム検証システム。
  2. 前記プログラムが、EEPROMを周辺デバイスとして用いるプログラムであり、
    前記仮想周辺デバイスとして前記EEPROMをシミュレートする仮想EEPROM部と、
    前記エミュレータと前記仮想EEPROM部との間のデータ転送のタイミングを制御する転送制御部とをさらに備えた、請求項1に記載のプログラム検証システム。
  3. 検証シナリオデータが記述されたシナリオ記憶部をさらに備え、
    前記シナリオ記憶部が前記仮想EEPROM部に接続され、前記仮想EEPROM部が、前記シナリオ記憶部から読み込んだ前記検証シナリオデータに従って検証を行う、請求項2に記載のプログラム検証システム。
  4. 前記検証シナリオデータが、エラーデータ生成コマンドを含むと共に、
    前記仮想EEPROM部が、
    前記検証シナリオデータからエラーデータ生成コマンドを抽出した場合にエラーデータを作成するエラーデータ作成部と、
    前記データ取得部と、前記エラーデータ作成部と、前記ポーリング部との書き込みタイミングを同期させる同期部とを備える、請求項3に記載のプログラム検証システム。
  5. 前記仮想EEPROM部と前記エミュレータとが仮想配線を介して接続され、
    前記仮想EEPROM部に、前記ポーリング部と前記仮想配線との間でデータを転送する第1のデータ転送部を備え、
    前記エミュレータと前記仮想配線との間に、前記エミュレータのRAMと前記仮想配線との間でデータを転送する第2のデータ転送部を備えた、請求項2〜4のいずれか一項に記載のプログラム検証システム。
  6. 前記プログラムが、周波数測定器を周辺デバイスとして用いて周波数を判別するプログラムであり、
    前記仮想周辺デバイスとして前記周波数測定器をシミュレートする仮想周波数判別部と、
    前記エミュレータと前記仮想周波数判別部との間のデータ転送のタイミングを制御する転送制御部とをさらに備えた、請求項1に記載のプログラム検証システム。
  7. 前記仮想周波数判別部と前記エミュレータとが仮想配線を介して接続され、
    前記仮想周波数判別部に、前記仮想配線との間でデータを転送する第1のデータ転送部を備え、
    前記エミュレータと前記仮想配線との間に、前記エミュレータのRAMと前記仮想配線との間でデータを転送する第2のデータ転送部を備えた、請求項6に記載のプログラム検証システム。
JP2002323098A 2002-11-06 2002-11-06 プログラム検証システム Pending JP2004157787A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002323098A JP2004157787A (ja) 2002-11-06 2002-11-06 プログラム検証システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002323098A JP2004157787A (ja) 2002-11-06 2002-11-06 プログラム検証システム

Publications (1)

Publication Number Publication Date
JP2004157787A true JP2004157787A (ja) 2004-06-03

Family

ID=32803088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002323098A Pending JP2004157787A (ja) 2002-11-06 2002-11-06 プログラム検証システム

Country Status (1)

Country Link
JP (1) JP2004157787A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170020664A (ko) * 2015-08-13 2017-02-23 세메스 주식회사 기판 처리 설비 시뮬레이션 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170020664A (ko) * 2015-08-13 2017-02-23 세메스 주식회사 기판 처리 설비 시뮬레이션 시스템 및 방법
KR102293295B1 (ko) 2015-08-13 2021-08-25 세메스 주식회사 기판 처리 설비 시뮬레이션 시스템 및 방법

Similar Documents

Publication Publication Date Title
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
EP2204738A2 (en) Method and system for performing software verification
GB2217070A (en) Software testing apparatus
US10176078B1 (en) Debugging process
US20060253842A1 (en) Modelling of programmable devices
EP1782204A2 (en) Emulation and debug interfaces for testing an integrated circuit with an asynchronous microcontroller
CN117422026B (zh) 一种基于risc-v架构的处理器验证系统
Lin et al. Functional verifications for SoC software/hardware co-design: From virtual platform to physical platform
JP4187470B2 (ja) 半導体装置の開発支援連携装置及び開発支援方法
JP4171240B2 (ja) プログラム検証システム
JP2008135008A (ja) プログラムモジュール検証方式
US10816600B1 (en) Protocol analysis and visualization during simulation
JP2011039781A (ja) 協調シミュレーション装置及びシミュレーション方法
JP2004157787A (ja) プログラム検証システム
JPH08314760A (ja) プログラム開発支援装置
CN114328045A (zh) 一种bmc的i2c调试方法、系统、装置及计算机可读存储介质
JP2004252585A (ja) プログラム検証システム
CN113204929A (zh) 基于sv和uvm实现ahb vip的方法、电子装置及存储介质
JP4562439B2 (ja) プログラム検証システムおよびプログラム検証システム制御用コンピュータプログラム
JP2007249293A (ja) ハードウェア/ソフトウェア協調検証装置
JP2005353020A (ja) コンピュータプログラムのシミュレーション方式
JPS6349851A (ja) シミユレ−シヨンシステム
JP2005346487A (ja) マイコンソフトウェア動作検証システム
JP4893028B2 (ja) チップセットのエミュレーション装置および方法
US20020026302A1 (en) Automatic evaluation method, automatic evaluation system, and storage medium storing automatic evaluation program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060613

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061114