JPH0883198A - プログラムシミュレーション装置 - Google Patents

プログラムシミュレーション装置

Info

Publication number
JPH0883198A
JPH0883198A JP6217128A JP21712894A JPH0883198A JP H0883198 A JPH0883198 A JP H0883198A JP 6217128 A JP6217128 A JP 6217128A JP 21712894 A JP21712894 A JP 21712894A JP H0883198 A JPH0883198 A JP H0883198A
Authority
JP
Japan
Prior art keywords
simulation
program
access
external device
input
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
JP6217128A
Other languages
English (en)
Inventor
Masaaki Okajima
正明 岡島
Shingo Igarashi
真悟 五十嵐
Katsuhiko Ueki
克彦 植木
Takeshi Yasuda
剛 安田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6217128A priority Critical patent/JPH0883198A/ja
Publication of JPH0883198A publication Critical patent/JPH0883198A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 ターゲットプログラムを変更することなく、
かつ、オペレーティングシステムを再構築することな
く、ターゲットプログラムのテスト及びデバッグを行う
ことができるプログラムシミュレーション装置を提供す
る。 【構成】 デバッグモードの設定がホストOS部3内の
動作モード記憶部になされ、シミュレートする対象であ
る入出力装置がシミュレート対象指定格納部6に指定さ
れた時、プログラム実行部2によりアクセス要求が供給
されると、ホストOS部3内のデバイスドライバは、入
出力シミュレート部4を介して入出力装置に対するシミ
ュレートを行う。一方、デバッグモードが設定されてい
ない場合、もしくは当該デバイスドライバに対応する入
出力装置がシミュレート対象指定格納部6に指定されて
いない場合は、デバイスドライバは、外部装置に直接ア
クセスする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムのシミュレ
ーション実行をホストマシン上で行うプログラムシミュ
レーション装置の改良に関するものである。
【0002】
【従来の技術】一般に、工作機械等の機械装置及びプラ
ント等の制御を行う場合、専用の制御装置が必要とな
る。通常は、開発コストを考慮して、既に存在する計算
機システムに各用途に応じた専用のハードウエアを付加
し、これらの組み合わせを制御装置として利用する場合
が多い。
【0003】また、多くの場合、制御装置のベースとな
る上記計算機システム(以下、ホストマシンと呼ぶ)
は、プログラム開発環境を備えている。プログラム開発
とは、プログラムの内容を決定し(設計)、このプログ
ラムを所定のプログラミング言語で表されたソースコー
ドとして記述し(コーディング)、このソースコードを
コンピュータのCPUが実行可能な実行モジュールに変
換し(コンパイル・リンク)、実行モジュールを試験的
に実行し(テスト)、プログラムの過誤を除去する(デ
バッグ)等の過程をいう。上記ホストマシンは、これら
各過程を実行するプログラムを搭載している。そのた
め、制御装置上で動作するプログラム(以下、ターゲッ
トプログラムとする)を、このホストマシン上で開発す
ることができる。
【0004】一方、ホストマシンに付加する専用ハード
ウェアは、ほとんどの場合、新規に開発する必要があ
り、ソフトウェアの開発と並行して行われる。このた
め、上記制御装置上で動作させるターゲットプログラム
のテスト及びデバッグを行う際に、ホストマシンに付加
するハードウェアの開発が間に合わない場合がある。そ
のため、完成している専用ハードウェアの数が少ない、
もしくはそれら専用ハードウェアの信頼性が低い、など
の問題が起こる可能性が高い。従って、専用ハードウエ
アが無い状態でも、ターゲットプログラムのテスト及び
デバッグを行うようにする必要がある。
【0005】このためには、以下のような方法が採られ
ていた。
【0006】(a)テスト及びデバッグの対象となるタ
ーゲットプログラムにおいて、ホストマシンに付加され
る専用ハードウエアに対してアクセスを行う部分を変更
する。例えば、プログラム中の専用ハードウエアに対す
るアクセス命令を、何も処理しないNOP命令で置き換
えたり、無条件分岐命令を付加してアクセス命令を呼び
飛ばしたりする。
【0007】(b)上記ホストマシン上で動作するオペ
レーティングシステム(以下、OSという)を再構築す
ることにより、専用ハードウエアに対するアクセスをホ
ストマシン上でシミュレートするようにする。すなわ
ち、外部のハードウエアをコントロールするプログラム
であるデバイスドライバ部を変更し、仮想の専用ハード
ウエアに対するアクセスをシミュレートし得るようにす
る。
【0008】
【発明が解決しようとする課題】しかしながら、上記方
法(a)によれば、テスト及びデバッグのために対象プ
ログラムを変更するため、専用ハードウエアが完成した
後に、もう一度テストを繰り返さなければならなかっ
た。
【0009】また、上記方法(b)に示すようにOSを
再構築することは、非常に手間と時間とがかかる作業で
あった。更に、専用ハードウェアが付加された場合と付
加されていない場合との2通りのOSを構築する必要が
あり、テスト及びデバッグに要するコストが増大し、非
効率的であるという問題があった。
【0010】本発明は、上記のような従来技術の問題点
を解決するために提案されたもので、その第1の目的
は、ターゲットプログラムを変更することなく、かつ、
オペレーティングシステムの再構築を行うことなく、タ
ーゲットプログラムのテスト及びデバッグを行うことが
できるプログラムシミュレーション装置を提供すること
である。
【0011】また第2の目的は、ターゲットプログラム
を変更することなく、シミュレーションを行う部分を変
更することができるプログラムシミュレーション装置を
提供することである。
【0012】また、第3の目的は、ターゲットプログラ
ムが単一のプロセスからなるものであっても、上記第1
の目的を達成することができるプログラムシミュレーシ
ョン装置を提供することである。
【0013】また、第4の目的は、付加する外部装置が
全て完成していなくても、その各々について直接アクセ
スもしくはシミュレーションを行うことができるプログ
ラムシミュレーション装置を提供することである。
【0014】また、第5の目的は、オペレーティングシ
ステムが効率よく直接アクセスもしくはシミュレーショ
ンを行うことができるプログラムシミュレーション装置
を提供することである。
【0015】
【課題を解決するための手段】上記の目的を達成するた
め、請求項1記載の発明によるプログラムシミュレーシ
ョン装置は、ホストマシンに外部装置が付加されてなる
制御システム上で実行されるターゲットプログラムを、
前記ホストマシン上において実行するプログラムシミュ
レーション装置において、前記ターゲットプログラムの
実行モジュールを格納する実行モジュール格納手段と、
前記実行モジュールを実行するプログラム実行手段と、
前記外部装置が付加されていない場合に、該外部装置に
対するアクセスをシミュレートするシミュレート手段
と、前記シミュレート手段がシミュレートする対象であ
る外部装置が指定されるシミュレート対象指定格納手段
と、動作モードとしてデバッグモードの設定/解除の情
報が入力されると共に、前記プログラム実行手段によ
り、前記実行モジュールにおける前記外部装置に対する
アクセス要求が供給されるオペレーティングシステムと
を具備し、前記オペレーティングシステムは、前記入力
される動作モードを記憶する動作モード記憶手段と、前
記外部装置に対するアクセス要求が供給されることによ
り、前記動作モード記憶手段におけるデバッグモードの
設定/解除を判別し、該デバッグモードの設定がなされ
ている場合は、前記シミュレート対象指定格納手段の指
定内容に基づき、前記外部装置への直接アクセスか、該
アクセスのシミュレートかのいずれかを判定し、前記直
接アクセスである場合は前記外部装置に直接アクセス
し、前記シミュレートである場合は前記シミュレート手
段を介してシミュレートを行うデバイスドライバとを有
することを特徴とする。
【0016】また、請求項2記載の発明によるプログラ
ムシミュレーション装置は、請求項1記載の発明におい
て、前記オペレーティングシステムは、前記ターゲット
プログラムを複数のプロセスの一部として実行し、前記
シミュレート手段は、前記ターゲットプログラムの実行
モジュールとは異別のプロセスとして動作することを特
徴とする。
【0017】また、請求項3記載の発明によるプログラ
ムシミュレーション装置は、請求項1記載の発明におい
て、前記シミュレート手段は、前記外部装置へのアクセ
スに応じたデータの読出し及び書込みがなされる記憶手
段と、前記記憶手段に対して前記データの読出し及び書
込みを行うシミュレーション部とを有し、前記デバイス
ドライバは、前記外部装置へのアクセスのシミュレート
であると判定した場合、前記アクセス要求があったこと
を前記シミュレーション部に対して通知し、前記シミュ
レーション部は、前記デバイスドライバから前記通知が
あった場合、前記記憶手段に対して前記データの読出し
及び書込みを行うことを特徴とする。
【0018】また、請求項4記載の発明によるプログラ
ムシミュレーション装置は、ホストマシンに外部装置が
付加されてなる制御システム上で実行されるターゲット
プログラムを、前記ホストマシン上において実行するプ
ログラムシミュレーション装置において、前記ターゲッ
トプログラムの実行モジュールを格納する実行モジュー
ル格納手段と、前記外部装置に対応して前記アクセス処
理ルーチンが指定されるシミュレート対象指定格納手段
と、前記実行モジュールを実行するプログラム実行手段
と、前記外部装置が付加されていない場合に該外部装置
に対するアクセスを実行する、アクセス処理ルーチンが
リンクされ、動作モードとしてデバッグモードの設定/
解除の情報が入力されると共に、前記プログラム実行手
段により、前記実行モジュールにおける前記外部装置に
対するアクセス要求が供給されるオペレーティングシス
テムとを具備し、前記オペレーティングシステムは、前
記入力される動作モードを記憶する動作モード記憶手段
と、前記外部装置に対するアクセス要求が供給されるこ
とにより、前記動作モード記憶手段におけるデバッグモ
ードの設定/解除を判別し、該デバッグモードの設定が
なされている場合は、前記シミュレート対象指定格納手
段の指定内容に基づき、前記外部装置への直接アクセス
か、該アクセスのシミュレートかのいずれかを判定し、
前記直接アクセスである場合は前記外部装置に直接アク
セスし、前記シミュレートである場合は前記アクセス処
理ルーチンを呼び出すデバイスドライバと、前記デバイ
スドライバによって呼び出されたアクセス処理ルーチン
を実行するシミュレート処理手段とを有することを特徴
とする。
【0019】また、請求項5記載の発明によるプログラ
ムシミュレーション装置は、請求項1または4記載の発
明において、前記デバイスドライバは、前記外部装置毎
に対応して複数設けられ、各々対応する外部装置に対す
るアクセスを制御し、前記オペレーティングシステム
は、前記入力されるデバッグモードの設定/解除の情報
に基づき、前記動作モード記憶手段にデバッグモードの
設定/解除を設定し、前記実行モジュールにおける前記
外部装置に対するアクセス要求に基づき、前記複数設け
られたデバイスドライバのうちのいずれかを選択して前
記アクセス要求を発行する制御手段を有することを特徴
とする。
【0020】また、請求項6記載の発明によるプログラ
ムシミュレーション装置は、請求項1または4記載の発
明において、前記シミュレート対象指定格納手段に格納
された情報を読み込み、読み込んだ情報を前記オペレー
ティングシステム上にロードするシミュレート対象指定
ロード手段を有することを特徴とする。
【0021】
【作用】上記のような構成を有する本発明は、次のよう
な作用を有する。
【0022】すなわち、請求項1記載の発明によれば、
動作モードとしてデバッグモードを設定すべき情報が入
力されると、この情報が動作モード記憶手段に記憶され
る。また、シミュレーションが行われる場合、シミュレ
ートする対象である外部装置がシミュレート対象指定格
納手段に指定される。
【0023】この時、プログラム実行手段により外部装
置に対するアクセス要求が供給されると、デバイスドラ
イバは、動作モード記憶手段におけるデバッグモードの
設定/解除を判別する。デバッグモードが設定されてい
る場合、デバイスドライバは、シミュレート対象指定格
納手段の指定内容に基づき、外部装置への直接アクセス
か、アクセスのシミュレートかを判断する。シミュレー
トである場合は、デバイスドライバは、シミュレート手
段を介して外部装置に対するシミュレートを行う。 一
方、デバッグモードが設定されていない場合、もしく
は、シミュレート対象指定格納手段の指定内容により直
接アクセスであることが判断された場合は、デバイスド
ライバは、外部装置に直接アクセスする。
【0024】このように、動作モードとシミュレート対
象の外部装置を指定しておき、外部装置へのアクセス要
求があった時にそれらを参照することにより、直接アク
セスかシミュレーションかを判断し、シミュレート手段
を介してシミュレートを行うようにしたので、ターゲッ
トプログラムを変更することなく、かつ、オペレーティ
ングシステムを再構築することなく、ターゲットプログ
ラムのテスト及びデバッグを行うことができる。
【0025】また、請求項2記載の発明によれば、シミ
ュレート手段は、ターゲットプログラムの実行モジュー
ルとは異別のプロセスとして動作するため、シミュレー
ト手段を変更する際に、ターゲットプログラムを変更す
る必要がない。
【0026】また、請求項3記載の発明によれば、デバ
イスドライバは、外部装置へのアクセスのシミュレート
を行うと判定すると、その旨をシミュレーション部に対
して通知する。この通知により、シミュレーション部は
記憶手段に対してデータの読出し及び書込みを行う。こ
のように、シミュレーション部はデバイスドライバから
の通知により、ターゲットプログラムとは別に動作する
ため、シミュレーション部を変更する際にターゲットプ
ログラムを変更する必要がない。
【0027】また、請求項4記載の発明によれば、外部
装置に対してシミュレーションが行われる場合、シミュ
レートする対象である外部装置とその外部装置に対する
アクセス処理ルーチンがシミュレート対象指定格納手段
に指定される。この時、外部装置に対するアクセス要求
が供給されると、デバイスドライバは、動作モード記憶
手段におけるデバッグモードの設定/解除を判別する。
デバッグモードが設定されている場合、デバイスドライ
バは、シミュレート対象指定格納手段の指定内容に基づ
き、外部装置への直接アクセスか、アクセスのシミュレ
ートかを判断する。シミュレートである場合は、デバイ
スドライバはアクセス処理ルーチンを呼び出す。これに
より、シミュレート処理手段は、呼び出されたアクセス
処理ルーチンを実行することによって外部装置に対する
シミュレーションを行う。一方、デバッグモードが設定
されていない場合、もしくはシミュレート対象指定格納
手段の指定内容により直接アクセスであることが判断さ
れた場合は、請求項1記載の発明と同様である。
【0028】以上のように、請求項1記載の発明と同様
な効果が得られる。また、オペレーティングシステム内
のシミュレート処理手段によりアクセス処理ルーチンを
実行するため、ターゲットプログラムが単一のプロセス
からなるものであってもよい。
【0029】また、請求項5記載の発明によれば、デバ
ッグモードの設定/解除の情報が入力されると、制御手
段は、これに基づいて動作モード記憶手段にデバッグモ
ードの設定/解除を設定する。また、実行モジュールに
おける外部装置へのアクセス要求が供給されると、制御
手段は、この内容に基づいて、複数設けられたデバイス
ドライバのうちのいずれかを選択して、それに対してア
クセス要求を発行する。このように、制御手段により、
外部装置毎に対応して設けられたデバイスドライバの各
々に対して制御を行うようにしたので、付加する外部装
置が全て完成していなくても、その各々に対して直接ア
クセスもしくはシミュレーションを行うことができる。
【0030】また、請求項6記載の発明によれば、外部
装置へのアクセス要求がなされると、シミュレート対象
指定ロード手段は、シミュレート対象指定格納手段に格
納されている情報を読み込み、オペレーティングシステ
ム上にロードする。これにより、デバイスドライバは、
オペレーティングシステム上にロードされた情報を参照
して、外部装置への直接アクセスかアクセスのシミュレ
ートかを判断すればよいので、処理を効率的に行うこと
ができる。
【0031】
【実施例】以下、本発明によるプログラムシミュレーシ
ョン装置について、図面に従って具体的に説明する。な
お、下記実施例はコンピュータ上に実現されるものであ
り、下記実施例の各機能は、プログラムとして格納され
た所定の手順でコンピュータを動作させることによって
実現されている。従って、以下、実施例の各機能を有す
る仮想的回路ブロックを想定して実施例を説明する。
【0032】また、本発明におけるプログラムシミュレ
ーション装置とは、上述したホストマシンのことをい
う。すなわち、上記ホストマシンが実行モジュールの試
験的な実行(プログラムシミュレーション)という機能
を有することから、プログラムシミュレーションを行っ
ているホストマシンの実体は、プログラムシミュレーシ
ョン装置であるということができるためである。従っ
て、以下に示すプログラムシミュレーション装置は、専
用ハードウエアとしての入出力装置が付加されない場合
は、これら入出力装置をホストマシン上でシミュレート
する。
【0033】A.第1実施例 (1)第1実施例の構成 <全体構成>図1は、本発明の第1実施例によるプログ
ラムシミュレーション装置の構成を示す図である。この
プログラムシミュレーション装置は、目的プログラムの
実行モジュールを格納するターゲット実行モジュール格
納部1と、上記実行モジュールを実行するCPUである
プログラム実行部2とを有する。
【0034】また、このプログラムシミュレーション装
置は、ホストマシン上で動作するオペレーティングシス
テムであるホストOS部3と、このプログラムシミュレ
ーション装置に付加されるべき入出力装置に対する入出
力を、ホストマシン上でシミュレートする入出力シミュ
レート部4と、ホストOS部3及び入出力シミュレート
部4がシミュレートする際に使用する共有メモリ5とを
有する。この共有メモリ5には、シミュレートが行われ
る際に、入出力シミュレート部4及びホストOS部3に
より入出力装置に対するデータの書込み及び読出しがな
される。
【0035】また、本実施例において、ホストOS部3
は、複数のプロセスからなるマルチプログラミング(マ
ルチタスキング)による目的プログラムを実行すること
ができるものである。そして、入出力シミュレート部4
は、上記目的プログラムの実行モジュールとは別のプロ
セスとして動作するものである。
【0036】更に、このプログラムシミュレーション装
置はシミュレート対象指定格納部6を有しており、この
シミュレート対象指定格納部6には、シミュレートする
対象である入出力装置と、この入出力装置に対応する共
有メモリ5の領域とが指定される。
【0037】<ホストOS部3の内部構成>また、図2
は、ホストOS部3の内部構成を示すブロック図であ
る。同図において、ホストOS部3は、ホストOS部3
の制御プログラムであり、システムコールによって呼び
出されるシステムコール本体11を有する。このシステ
ムコールとは、ホストOS部3のシステムを操作及び管
理するサブルーチンであり、実行モジュールからホスト
OS部3に対する一定の動作の要求である。ここでは、
システムコールとして、入出力装置に対する入出力要求
がなされる。また、上記システムコールとしては、ユー
ザによって図示しないコマンド入力手段から入力される
動作モードの設定および解除等の要求もなされる。
【0038】更に、ホストOS部3は、入出力装置に対
する入出力要求を処理するデバイスドライバ12と、ホ
ストOS部3の動作モードが設定される動作モード記憶
部13とを有する。上記デバイスドライバ12は、本装
置に付加される入出力装置及びシミュレートの対象とな
る入出力装置毎に存在するものである。また、上記動作
モード記憶部13には、デバッグ及びテストを行うモー
ドであることを示す「デバッグモード」であるか否かが
設定される。
【0039】上記システムコール本体11は、システム
コールによる入出力要求に基づき、上記デバイスドライ
バ12のうちのいずれのデバイスドライバ12である
か、及び、そのデバイスドライバ12が入出力装置に対
してどのようなアクセスを行うかを判断し、それに応じ
て目的のデバイスドライバ12に対してコマンドを送
る。デバイスドライバ12は、上記コマンドに従って、
対応する入力装置に対しデータの入出力を行い、その結
果をシステムコール本体11に返すようになっている。
【0040】(2)第1実施例の作用および効果 上記のような構成を有する本装置におけるプログラムシ
ミュレーションは、以下のように行われる。まず、ユー
ザは、予め、図示しないコマンド入力手段により、動作
モードを「デバッグモード」に設定するコマンドを入力
する。これにより、ホストOS部3に対し、動作モード
を「デバッグモード」に設定するシステムコールが発行
される。そして、ホストOS部3は、このシステムコー
ルの実体であるシステムコール本体11によって、動作
モード記憶部13に動作モードとして「デバッグモー
ド」を設定する。
【0041】また、ユーザは、予め、シミュレートする
対象である入出力装置と、シミュレートする際に使用す
る共有メモリ5の領域とを、シミュレート対象指定格納
部6に指定しておく。
【0042】図3に、上記シミュレート対象指定格納部
6における入出力装置の指定方法の例を示す。ここで
は、シミュレートの対象となる入出力装置をデバイスド
ライバ名によって指定し、共有メモリ5の領域をアドレ
スによって指定する方法を例示している。この他に、入
出力装置を専用ハードウェア名で指定する方法、及び、
共有メモリ5にキーを割り当て、そのキーの名前によっ
て指定する方法等も用いることが可能である。
【0043】更に、ユーザは、目的プログラムをコンパ
イルした実行モジュールを、ターゲット実行モジュール
格納部1に格納しておく。すなわち、目的プログラム
は、マルチプロセスからなり、専用ハードウエアを付加
した制御装置上で動作するプログラムであるが、具体的
には、例えば、ハードウエア構成やOSの種類に依存し
ない高級言語を用いて記述し、ホストマシン上のセルフ
コンパイラでコンパイルしておく。
【0044】そして、プログラム実行部2は、上記実行
モジュールを実行する。まず、上記実行モジュールから
ホストOS部3に対し、入出力装置に対する入出力要求
を行うためのシステムコールが発行された場合、システ
ムコール本体11は、指定された入出力装置に対応する
デバイスドライバ12に対し入出力要求のコマンドを発
行する。
【0045】デバイスドライバ12は、図4で示すよう
な手順によって入出力要求のシミュレーションを行う。
まず、デバイスドライバ12は、動作モード記憶部13
を参照することにより、動作モードが「デバッグモー
ド」であるか否かを判定する(ステップSA1)。そし
て、「デバッグモード」である場合は、シミュレート対
象指定格納部6を参照し、当該デバイスドライバ12が
シミュレート対象として指定されているかどうかを判定
する(ステップSA2)。シミュレート対象として指定
されている場合には、入出力シミュレート部4に対し、
割り込み等により入出力要求があったことを通知する。
【0046】次に、デバイスドライバ12は、シミュレ
ート対象指定格納部6を参照することにより、シミュレ
ートに使用する共有メモリ5の領域のアドレスを得る
(ステップSA3)。そして、共有メモリ5の上記アド
レスの領域に対して、書き込み及び読み出し等の入出力
処理を行う(ステップSA4)。また、この時、ホスト
OS部3により入出力シミュレート部4のプロセスのス
ケジューリングがなされており、入出力シミュレート部
4は、デバイスドライバ12からの入出力要求があった
という通知を受け、指定の共有メモリ5に対し値を書き
込むなどの処理を行う。
【0047】一方、動作モード記憶部13に動作モード
として「デバッグモード」が設定されていない場合、も
しくは、「デバッグモード」が設定されていても当該デ
バイスドライバ12がシミュレート対象指定格納部4に
登録されていなかった場合には、入出力装置に対する通
常の入出力処理を行う(ステップSA5)。すなわち、
デバイスドライバ12は、図示しない入力装置もしくは
出力装置に対し、入出力命令及びデータ等を供給する。
【0048】ここで、入出力処理をシミュレートする具
体的な例について説明する。
【0049】例えば、ディスプレイ等の表示装置に対す
る出力処理をシミュレートする場合について示す。この
場合、動作モードとして「デバッグモード」が指定さ
れ、上記表示装置に対応するデバイスドライバ12が、
シミュレート対象としてシミュレート対象指定格納部6
に指定される。そして、実行モジュールから上記表示装
置に対する出力要求のシステムコールが発行されると、
システムコール本体11は、上記表示装置に対応するデ
バイスドライバ12に対し出力要求のコマンドを発行す
る。ここで、当該デバイスドライバ12がシミュレート
対象指定格納部6に指定されているため、デバイスドラ
イバ12は、入出力シミュレート部4に対し、当該デバ
イスドライバ12に対する出力要求があったことを通知
する。
【0050】そして、シミュレート対象指定格納部6に
指定された共有メモリ5の領域に対し、上記表示装置に
表示させるべき命令及びデータ等を書き込む。一方、入
出力シミュレート部4は、デバイスドライバ12からの
通知により、共有メモリ5に書き込まれた命令及びデー
タを読み出し、それらに基づいて当該表示装置に対する
出力処理をシミュレートする。その結果、例えば正常終
了したかエラーが発生したか等の情報を共有メモリ5の
領域に書き込む。そして、デバイスドライバ12は、入
出力シミュレート部4によって書き込まれた表示装置か
らの結果を示すデータを、共有メモリ5から読み出す。
【0051】シミュレートする対象がキーボード等の入
力装置である場合は、上記表示装置の出力処理と同様に
入力処理を行う。この場合、デバイスドライバ12は、
シミュレート対象指定格納部6に指定された共有メモリ
5の領域に、上記入力装置に対する命令等を書き込む。
一方、入出力シミュレート部4は、デバイスドライバ1
2からの通知により、共有メモリ5から上記命令を読み
出して当該入力装置に対する入力処理をシミュレート
し、その結果を共有メモリ5の領域に書き込む。そし
て、デバイスドライバ12は、入力装置から取り込まれ
るデータ等の結果を共有メモリ5から読み出す。
【0052】なお、デバイスドライバ12は、共有メモ
リ5にデータを書き込むだけで入出力シミュレート部4
に対して通知をしないものとしてもよい。この場合、入
出力シミュレート部4は定期的に共有メモリ5を監視
し、書き込みがあるとその情報を読み出して処理を行
う。この情報を実際に読み出すタイミングは、ホストO
S部3のスケジューリングによる。
【0053】また、シミュレート対象指定格納部6を参
照する方法としては、上述したように直接シミュレート
対象指定格納部6を参照する方法のほかに、以下のよう
な方法を用いてもよい。すなわち、シミュレート対象指
定格納部6をホストOS部3上にロードするためのシミ
ュレート対象指定ロード手段を設け、それによって予め
シミュレート対象指定格納部6から情報を読み込み、読
み込んだ内容をホストOS上にロードしておく。これに
より、デバイスドライバ12は、ロードされた情報を参
照するだけでよい。
【0054】また、上記構成によれば、入出力シミュレ
ート部4は、目的プログラムの実行モジュールとは別に
動作するため、入出力シミュレート部4を変更する際に
目的プログラムを変更する必要がない。
【0055】更に、システムコール本体11により、入
出力装置に対応して設けられたデバイスドライバの各々
に対して入出力要求のコマンドが発行されるため、入出
力装置毎に対応した処理を行うことができる。
【0056】(3)その他の具体例 上述したように、本実施例では専用ハードウエアとして
入出力装置をシミュレートする場合について説明した
が、以下、シリアル通信装置をシミュレートする場合に
ついて説明する。ここでは、目的プログラム内に、外部
装置に対して1文字を送信するような要求がある場合を
示す。なお、入出力装置をシミュレートすることから、
図1ではシミュレート手段を「入出力シミュレート部
4」としたが、簡単のために以下でもこの名称を用いて
説明する。
【0057】まず、実行モジュールからホストOS部3
に対し、外部装置に対する1文字送信要求を示すシステ
ムコールが発行される。これにより、システムコール本
体11は、当該外部装置に対応するデバイスドライバ1
2に対し、1文字送信要求の命令と共に送信文字を供給
する。デバイスドライバ12は、動作モード記憶部13
を参照することにより、「デバッグモード」であると判
定する。そして、デバイスドライバ12は、共有メモリ
5に1文字送信要求の命令と送信文字とを書き込み、入
出力シミュレート部4に対して1文字送信要求があった
ことを通知する。
【0058】次に、デバイスドライバ12は、制御を目
的プログラムに戻す。ここで、ホストOS部3によって
入出力シミュレート部4のスケジューリングが行われ
る。その後、入出力シミュレート部4は、共有メモリ5
から上記命令を読み出す。そして、命令の内容が1文字
送信要求であると判定した後、共有メモリ5から送信文
字を読み出す。これにより、入出力シミュレート部4
は、1文字送信のシミュレーション処理を行う。
【0059】このようなシリアル通信装置では、通常、
通信を受けとった側からACK等の制御文字が返信され
る。従って、入出力シミュレート部4は、ACK等の制
御文字を返す処理をシミュレートする。具体的には、ま
ず、入出力シミュレート部4は、返信する制御文字を決
定し、共有メモリ5に受信処理の命令と上記制御文字を
書き込む。そして、デバイスドライバ12に対し、受信
処理を行うよう通知する。
【0060】デバイスドライバ12は、入出力シミュレ
ート部4からの通知により、共有メモリ5から命令を読
み出す。そして、上記命令の内容から受信処理を行うと
いうことを判定し、共有メモリ5から返信された制御文
字を読み出す。その後、目的プログラムに上記制御文字
を渡す。
【0061】B.第2実施例 なお、本発明は上記実施例に限定されるものではなく、
次のような他の実施例をも包含するものである。
【0062】図5は、本発明の第2実施例によるプログ
ラムシミュレ−ション装置の構成を示す図である。この
プログラムシミュレーション装置は、ターゲット実行モ
ジュール格納部21と、プログラム実行部22と、ホス
トOS部23と、シミュレート対象指定格納部26とを
有する。同図におけるターゲット実行モジュール格納部
21及びプログラム実行部22は、上記第1実施例にお
けるターゲット実行モジュール格納部1及びプログラム
実行部2と同様なものである。また、本実施例における
ホストOS部23には、入出力シミュレート処理を行う
入出力処理ルーチンがリンクされている。更に、本実施
例におけるシミュレート対象指定格納部26には、シミ
ュレートの対象となる入出力装置と、この入出力装置に
対して行われる入出力シミュレート処理とが指定されて
いる。
【0063】本実施例においては、ホストOS部23
は、複数のプロセスからなるマルチプログラミングによ
る目的プログラムを実行するものでもよいし、単一のプ
ロセスのみからなる目的プログラムを実行するものでも
よい。
【0064】また、図6は、ホストOS部23の内部構
成を示すブロック図である。本実施例におけるホストO
S部23は、上述した第1実施例と同様のシステムコー
ル本体31とデバイスドライバ32と動作モード記憶部
34とを有すると共に、入出力装置のシミュレートを行
う入出力シミュレート処理部33を有している。この入
出力シミュレート処理部33は、入出力装置毎に存在す
るデバイスドライバ32の各々に対応して設けられてい
る。本実施例によるホストOS部23において、デバイ
スドライバ32は、上述した入出力処理ルーチンを呼び
出すものであり、このデバイスドライバ32に対応する
入出力シミュレート処理部33は、呼び出された入出力
処理ルーチンを実行する。
【0065】すなわち、第2実施例によるプログラムシ
ミュレーション装置が第1実施例によるものと異なる点
は、入出力シミュレート部4及び共有メモリ5が無く、
代わりに、ホストOS部23の内部に入出力シミュレー
ト処理部33とが設けられている点である。
【0066】図7に、上記シミュレート対象指定格納部
26における入出力装置の指定方法の例を示す。ここで
は、シミュレートの対象となる入出力装置をデバイスド
ライバ名によって指定すると共に、入出力シミュレート
処理名によりそのデバイスドライバに対する入出力シミ
ュレート処理を指定している。この入出力シミュレート
処理名は、上記入出力処理ルーチン名を示す。
【0067】また、デバイスドライバ32は、図8で示
すような手順によって入出力要求のシミュレーションを
行う。この手順では、図4に示す方法とほぼ同様の手順
によって処理を行う(ステップSB1,SB2,SB
4)。異なるのは、以下の点である。すなわち、動作モ
ードとして「デバッグモード」が設定され、かつ当該デ
バイスドライバ32がシミュレートの対象として指定さ
れている場合、図4に示す第1実施例においては、入出
力シミュレート部4によって共有メモリ5を用いてデー
タの書込み及び読出しを行っていた。
【0068】これに対して、本実施例では、デバイスド
ライバ32は、シミュレート対象指定格納部26に指定
されている入出力処理ルーチン名を参照し、その入出力
処理ルーチンを呼び出す(ステップSB3)。この呼び
出された入出力処理ルーチンは、当該デバイスドライバ
32に対応した入出力シミュレート処理部33によって
実行される。
【0069】例えば、第1実施例の場合と同様に、ディ
スプレイ等の表示装置に対する出力処理をシミュレート
する場合について示す。この場合、実行モジュールから
上記表示装置に対する出力要求のシステムコールが発行
されると、システムコール本体31は、上記表示装置に
対応するデバイスドライバ32に対し出力要求のコマン
ドを発行する。ここで、当該デバイスドライバ32は、
シミュレート対象指定格納部26に指定されているた
め、対応する入出力処理ルーチン名を参照して、その入
出力処理ルーチンを呼び出す。これにより、入出力シミ
ュレート処理部33は、上記入出力処理ルーチンを実行
することにより、上述した表示装置に対する出力処理を
シミュレートする。
【0070】以上のように、第2実施例によるプログラ
ムシミュレーション装置においては、ホストOS部23
がマルチプロセス用に構成されていなくても、入出力シ
ミュレート処理部33により、他のプロセスである入出
力処理ルーチンが実行されることにより、入出力処理の
シミュレーションが実行される。
【0071】
【発明の効果】以上のように、本発明のプログラムシミ
ュレーション装置によれば、オペレーティングシステム
を再構築することなく、かつ、ターゲットプログラムを
変更することなく、専用ハードウェアのシミュレーショ
ンが可能となり、テスト及びデバッグ作業を大幅に効率
化することができる。
【図面の簡単な説明】
【図1】本発明の第1実施例によるプログラムシミュレ
ーション装置の構成例を示すブロック図。
【図2】同実施例におけるホストOS部3の内部構成例
を示すブロック図。
【図3】同実施例におけるシミュレート対象指定格納部
6の記述例を示す図。
【図4】同実施例におけるデバイスドライバ12による
シミュレーションの手順を示すフローチャート。
【図5】本発明の第2実施例によるプログラムシミュレ
ーション装置の構成を示すブロック図。
【図6】同実施例におけるホストOS部23の内部構成
を示すブロック図。
【図7】同実施例におけるシミュレート対象指定格納部
26の記述例を示す図。
【図8】図5の実施例におけるデバイスドライバ32に
よるシミュレーションの手順を示すフローチャート。
【符号の説明】
1,21…ターゲット実行モジュール格納部 2,22…プログラム実行部 3,23…ホストOS部 4…入出力シミュレート部 5…共有メモリ 6,26…シミュレート対象指定格納部 11,31…システムコール本体 12,32…デバイスドライバ 13,34…動作モード記憶部 33…入出力シミュレート処理部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 安田 剛 神奈川県川崎市幸区柳町70番地 株式会社 東芝柳町工場内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ホストマシンに外部装置が付加されてな
    る制御システム上で実行されるターゲットプログラム
    を、前記ホストマシン上において実行するプログラムシ
    ミュレーション装置において、 前記ターゲットプログラムの実行モジュールを格納する
    実行モジュール格納手段と、 前記実行モジュールを実行するプログラム実行手段と、 前記外部装置が付加されていない場合に、該外部装置に
    対するアクセスをシミュレートするシミュレート手段
    と、 前記シミュレート手段がシミュレートする対象である外
    部装置が指定されるシミュレート対象指定格納手段と、 動作モードとしてデバッグモードの設定/解除の情報が
    入力されると共に、前記プログラム実行手段により、前
    記実行モジュールにおける前記外部装置に対するアクセ
    ス要求が供給されるオペレーティングシステムとを具備
    し、 前記オペレーティングシステムは、 前記入力される動作モードを記憶する動作モード記憶手
    段と、 前記外部装置に対するアクセス要求が供給されることに
    より、前記動作モード記憶手段におけるデバッグモード
    の設定/解除を判別し、該デバッグモードの設定がなさ
    れている場合は、前記シミュレート対象指定格納手段の
    指定内容に基づき、前記外部装置への直接アクセスか、
    該アクセスのシミュレートかのいずれかを判定し、前記
    直接アクセスである場合は前記外部装置に直接アクセス
    し、前記シミュレートである場合は前記シミュレート手
    段を介してシミュレートを行うデバイスドライバとを有
    することを特徴とするプログラムシミュレーション装
    置。
  2. 【請求項2】 前記オペレーティングシステムは、 前記ターゲットプログラムを複数のプロセスの一部とし
    て実行し、 前記シミュレート手段は、 前記ターゲットプログラムの実行モジュールとは異別の
    プロセスとして動作することを特徴とする請求項1記載
    のプログラムシミュレーション装置。
  3. 【請求項3】 前記シミュレート手段は、 前記外部装置へのアクセスに応じたデータの読出し及び
    書込みがなされる記憶手段と、 前記記憶手段に対して前記データの読出し及び書込みを
    行うシミュレーション部とを有し、 前記デバイスドライバは、 前記外部装置へのアクセスのシミュレートであると判定
    した場合、前記アクセス要求があったことを前記シミュ
    レーション部に対して通知し、 前記シミュレーション部は、 前記デバイスドライバから前記通知があった場合、前記
    記憶手段に対して前記データの読出し及び書込みを行う
    ことを特徴とする請求項1記載のプログラムシミュレー
    ション装置。
  4. 【請求項4】 ホストマシンに外部装置が付加されてな
    る制御システム上で実行されるターゲットプログラム
    を、前記ホストマシン上において実行するプログラムシ
    ミュレーション装置において、 前記ターゲットプログラムの実行モジュールを格納する
    実行モジュール格納手段と、 前記実行モジュールを実行するプログラム実行手段と、 前記外部装置に対応して前記アクセス処理ルーチンが指
    定されるシミュレート対象指定格納手段と、 前記外部装置が付加されていない場合に該外部装置に対
    するアクセスを実行する、アクセス処理ルーチンがリン
    クされ、動作モードとしてデバッグモードの設定/解除
    の情報が入力されると共に、前記プログラム実行手段に
    より、前記実行モジュールにおける前記外部装置に対す
    るアクセス要求が供給されるオペレーティングシステム
    とを具備し、 前記オペレーティングシステムは、 前記入力される動作モードを記憶する動作モード記憶手
    段と、 前記外部装置に対するアクセス要求が供給されることに
    より、前記動作モード記憶手段におけるデバッグモード
    の設定/解除を判別し、該デバッグモードの設定がなさ
    れている場合は、前記シミュレート対象指定格納手段の
    指定内容に基づき、前記外部装置への直接アクセスか、
    該アクセスのシミュレートかのいずれかを判定し、前記
    直接アクセスである場合は前記外部装置に直接アクセス
    し、前記シミュレートである場合は前記アクセス処理ル
    ーチンを呼び出すデバイスドライバと、 前記デバイスドライバによって呼び出されたアクセス処
    理ルーチンを実行するシミュレート処理手段とを有する
    ことを特徴とするプログラムシミュレーション装置。
  5. 【請求項5】 前記デバイスドライバは、 前記外部装置毎に対応して複数設けられ、各々対応する
    外部装置に対するアクセスを制御し、 前記オペレーティングシステムは、 前記入力されるデバッグモードの設定/解除の情報に基
    づき、前記動作モード記憶手段にデバッグモードの設定
    /解除を設定し、前記実行モジュールにおける前記外部
    装置に対するアクセス要求に基づき、前記複数設けられ
    たデバイスドライバのうちのいずれかを選択して前記ア
    クセス要求を発行する制御手段を有することを特徴とす
    る請求項1または4記載のプログラムシミュレーション
    装置。
  6. 【請求項6】 前記シミュレート対象指定格納手段に格
    納された情報を読み込み、読み込んだ情報を前記オペレ
    ーティングシステム上にロードするシミュレート対象指
    定ロード手段を有することを特徴とする請求項1または
    4記載のプログラムシミュレーション装置。
JP6217128A 1994-09-12 1994-09-12 プログラムシミュレーション装置 Pending JPH0883198A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6217128A JPH0883198A (ja) 1994-09-12 1994-09-12 プログラムシミュレーション装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6217128A JPH0883198A (ja) 1994-09-12 1994-09-12 プログラムシミュレーション装置

Publications (1)

Publication Number Publication Date
JPH0883198A true JPH0883198A (ja) 1996-03-26

Family

ID=16699298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6217128A Pending JPH0883198A (ja) 1994-09-12 1994-09-12 プログラムシミュレーション装置

Country Status (1)

Country Link
JP (1) JPH0883198A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018525714A (ja) * 2015-06-27 2018-09-06 マカフィー,エルエルシー アプリケーションのシミュレーション

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018525714A (ja) * 2015-06-27 2018-09-06 マカフィー,エルエルシー アプリケーションのシミュレーション

Similar Documents

Publication Publication Date Title
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
JP2753500B2 (ja) 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
JP5270330B2 (ja) マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置
JP2000500602A (ja) エミュレーション環境をサポートするディバイスドライバアーキテクチャ
CA2205247C (en) Avionic computer software interpreter
US6684395B2 (en) Multiple image dynamic bind and load procedure for a multi-processor
CN111880863B (zh) 应用程序的运行方法、装置、电子设备及存储介质
EP0270983A2 (en) Method for the parallel simulation of multiprocessor computer systems
CN1312583C (zh) 仿真装置和仿真方法
JPH0883198A (ja) プログラムシミュレーション装置
JP3051438B2 (ja) 拡張グラフィック機能を与える方法
JP2005353020A (ja) コンピュータプログラムのシミュレーション方式
JP3424548B2 (ja) 組み込み機器用ソフトウエア論理シミュレータ
JP3270729B2 (ja) 拡張命令セット・シミュレータ
JP2788353B2 (ja) タスクトレース方法
Goldberg et al. The PRIM System: An alternative architecture for emulator development and use
JPH0283749A (ja) マイクロプロセッサの内部割込み制御方式
JPH01205347A (ja) I/o割込みをシミュレートする装置及び方法
JP3137094B2 (ja) シミュレーション方法、シミュレーション装置及びその記録媒体
Bojovic et al. The interactive development and testing system for a RISC-style processor
KR100658485B1 (ko) 마이크로프로세서 개발시스템
JP2000322289A (ja) 制御装置エミュレーション方式及び制御装置エミュレーション方法及び制御装置エミュレーション方法を計算機に実現させるためのプログラムを記憶した計算機読取可能な記録媒体
JPH08221296A (ja) 組み込みソフトウェアデバッグ支援装置
JP2000330775A (ja) 組み込みシステム開発方法
JPH0368037A (ja) プログラム開発装置