JPH01307837A - Mpuシミュレーション方法及びmpuシミュレータ - Google Patents

Mpuシミュレーション方法及びmpuシミュレータ

Info

Publication number
JPH01307837A
JPH01307837A JP63139673A JP13967388A JPH01307837A JP H01307837 A JPH01307837 A JP H01307837A JP 63139673 A JP63139673 A JP 63139673A JP 13967388 A JP13967388 A JP 13967388A JP H01307837 A JPH01307837 A JP H01307837A
Authority
JP
Japan
Prior art keywords
mpu
command
data
execution
debugger
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.)
Granted
Application number
JP63139673A
Other languages
English (en)
Other versions
JP2803090B2 (ja
Inventor
Tetsuji Sato
佐藤 徹次
Satoshi Takaoka
聡 高岡
Yoichi Nagasato
永里 洋一
Yasuto Kaneko
金子 康人
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP63139673A priority Critical patent/JP2803090B2/ja
Publication of JPH01307837A publication Critical patent/JPH01307837A/ja
Application granted granted Critical
Publication of JP2803090B2 publication Critical patent/JP2803090B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、MPU(マイクロプロセッサユニット)によ
り制御される機器を開発する際に使用されるンミュレー
タ装置に関し、特に、制御プログラムのデバッグを行う
ための7ミユレーンヨン方法及びンミュレータに関する
〔従来の技術〕
近年、MPUにより電気機器等を制御することが一般的
に行われている。MPUは、論理演算ユニット プログ
ラムメモリ、データメモリ、レジスタ、インターフェー
ス等が同一チップ内に形成された集積回路であり、プロ
グラムを変えることにより種々の制御を行うことができ
る。
このMPUにより制御される機器は、基本的には三つの
部分に分けられる。たとえば、複写機を例に挙げて説明
すると、第27図に示されるように、複写機本体201
、MPU202及びこの両者間のインターフェースを行
う電気回路基板203  とから構成されている。
複写機本体201 には、複写動作状態を検出するため
のセンサ及びコントロールパネルからの指示をスカする
ためのスイッチ等が設けられており、これらのセンサ、
スイッチ等からの入力は、−旦電気回路基板203 に
供給され、ここで所定の信号処理が行われたのちM P
、U2O5に入力データとして供給される。また、入力
のなかの成るものは割込信号としてM P U2O5に
供給される。M P U2O5で所定の処理が行われた
出力データは、電気回路基板203 に供給され、この
電気回路基板203 からは、複写機本体201 に設
けられたモータ、ソレノイド等の駆動部品を制御するた
めの信号を出力する。
このようなM P U2O5により制御される複写機を
開発する際には、複写機本体201 の設計、すなわち
、機構設計及び電気回路設計に並行してソフトウェア開
発、すなわち、当該機器のMPUで実行されるターゲッ
トプログラムの開発が行われる。
第28図はMPUにより制御される機器を開発する場合
の一般的な開発手順を示したもので、製品が企画される
と、基本的な仕様が設計され、この仕様に基づいて機構
設計、電気回路設計及びソフトウェア開発が並行して行
われる。
ここで、従来のソフトウェア開発に関して説明する。
先ず、開発の対象となる複写機で使用されるMPU1す
なわち、ターゲットMPUのソフトウェアの仕様が作成
される。そして、この仕様に基づいてソースプログラム
が作成される。このソースプログラムの作成及び編集に
際しては、開発ツールとして、たとえば、ミニコンピユ
ータ上のエディタが使用される。そして、このソースプ
ログラムが、開発ツールのコンパイラ或いはアセンブラ
によりオブジェクトプログラムに変換される。この後に
、このオブジェクトプログラムに対してデバッグを行う
必要がある。
このため、従来はデバッグ用の開発ツールとして一般に
インサーキットエミュレータが使用される。このインサ
ーキットエミュレータは、前記MPUに置換して接続さ
れ、MPUの動作をシミュレートするもので、1ステツ
プ毎の動作、レジスタ内容等の表示等が可能となってい
る。
〔発明が解決しようとする課題〕
しかしながら、従来のインサーキットエミュレータは、
実際の電気回路基板203 に接続されて使用されるも
のであり、この電気回路基板203 の試作が完成する
までは、デバッグ作業を開始することができずデバッグ
偉業が遅れてしまう。このため、設計期間の制約等から
完全なデバッグが行われる前に、次の実機デバッグの工
程に送られる。
この実機デバッグでは、ターゲラ)MPUが実際の電気
回路或いは機構部分と組み合わされソフトウェアが検査
されるが、この段階で多数のバグが発見されるいう不都
合が生じる。また、この段階で発見されるトラブルは原
因追及及び対策に非常に手間がかかり、このためンステ
ム全体としての開発効率が著しく低下するという問題が
あった。
また、デバッグの対象とすることができるMPUは1種
類のみであり、MPUの種類が変わった場合は別のイン
サーキットエミュレータを使用する必要があった。更に
は、従来のインサーキットシミュレータにおいては、M
PUの入力端子に供給される信号は予め決められた静的
な電圧であり、実際の動作時のように入力端子に供給さ
れる信号を動的に変化させてシミュレーションを行うこ
とはできなかった。
本発明は、上述の問題点を解決するために案出されたも
のであって、ソフトウェア開発に際してソフトウェア単
体でのデバッグを可能にすると共に、複数のMPUに容
易に対応できるようにすることを目的とする。
〔課題を解決するための手段〕
本発明のMPUシミュレーション方法は、前記目的を達
成するため、シミュレーションの対象となるMPUのハ
ードウェア構成情報及び前記MPUの端子に供給する各
種タイミング信号をファイルデータとして読み込むと共
に、デバッグの対象となるターゲットプログラムを読み
込み、これらのデータを使用してシミ5レーシヨンの対
象となるMPUに固有の命令実行構造にしたがってター
ゲットプログラムの実行をシミュレートすることを特徴
とする。
また、本発明のMPUシミュレータは、前記目的を達成
するため、シミュレーションの対象と、なるMPUのハ
ードウェア構成情報を格納する構成情報ファイルと、前
記MPUの端子に供給する各種タイミング信号のデータ
を格納する外部事象ファイルと、端末からの入力コマン
ド或いは端末への表示情報の処理を行うユーザインター
フェースと、該ユーザインターフェースを介して入力さ
れたコマンドに基づいてターゲットプログラムがロード
されているメモリテーブルの内容の変更1表示、ターゲ
ットプログラムの実行、停止等を指示するデバッガと、
該デバッガからの指示に基づき前記構成情報ファイル及
び外部事象ファイルからのデータを使用してシミュレー
ションの対象となるMPUに固有の構造にしたがってタ
ーゲットプログラムの実行をシミュレートするMPUモ
ジュールとを備えたことを特徴とする。
〔作用〕
本発明の作用を第1図を参照して具体的に例を挙げて説
明する。
本発明においては、MPUシミニレータが起動されると
、構成情報が格納されたコンフィグレーションファイル
CFからシミュレーションの対象となるMPUのハード
ウェア環境のデータがロードされると共に、MPUの端
子に供給されるべき各種タイミング信号が外部事象ファ
イノ叶PF からテストデータとしてロードされる。更
に、デバッグの対象となるターゲットプログラムTPが
メモリテーブルMRYTにロードされる。この状態でタ
ーゲットプログラムTPの実行を指示すると、デバッガ
DBGからMPUモジュールMMにMPUのインストラ
クションの実行、停止等が指示され、M P Uモジュ
ールMMにふいてMPUのインストラクションの実行が
シミュレートされる。したがって、略実機のものと同じ
ハードウェア環境のもとてオブジェクトプログラムが実
行される。
このM P Uのシミュレーションに際しては、ユーザ
インターフェース旧Fを介してキーボード等からデバッ
ガDBG に各種コマンドが入力され、デバッガDBG
からの指示に基づきMPUモジュール!、+ 3.1に
おいてMPUのインストラクンヨンの実行がシミュレー
トされる。実行結果はユーザインターフェースUIF 
を介してデイスプレィ等に表示される。プログラムの実
行中にトラブルが生じた場合、このトラブルは、端末の
デイスプレィ等に表示されるので、ユーザはそのトラブ
ルの原因をデバッガDBG のコマンドを使用して解析
し、修正する。
前記MPUモジュールM Mは、M P Uの種類に応
じてそれぞれ設けられており、MPUシミュレーク起動
時の指示に基づいてシミュレーンヨンの対象となるMP
Uに対応したMPUモジュール!AMが選択される。し
たがって、MPUの種類が異なった場合でも、デバッガ
DBG、ユーザインターフェース旧F等を共通に使用す
ることができる。すなわち、MPUモジュール)Aλ1
を切り換えるだけで、多数種のMPUに容易に対応が可
能となる。
〔実施例〕
以下、図面を参照しながら実施例に基づいて本発明の特
徴を具体的に説明する。なお、本実施例においては、M
PUで制御される複写機の制御プログラムを開発する場
合を例に挙げて説明する。
第2図は本発明のMPUシミュレータを含む複写機ンミ
ュレータ全体のソフトウェア構成の階層構造例を示す説
明図、第3図は本発明のMPUシミュレータのソフトウ
ェア構成例の概略を示す説明図である。
第2図に示すように、本実施例のMPUシミュレータM
Sは、複写機の動作をシミュレートする複写機シミユレ
ータC3を構成する複数のプログラムブロックの一つと
して位置している。
すなわち、複写機シミュレータC3は、MPUのハード
ウェア設定に関する情報を生成するコンフィグレーショ
ン生成部CG、MPUの入力端子への信号の変化状態を
示すテストデータを生成する外部事象データ生成!EP
DG及びMPUのシミュレーションを行うMPUシミュ
レータMSから構成されている。
M P U ’y ミ、 レークMSハ、U N I 
X (登録商標)と呼ばれるオペレーティングシステム
の管理下でMPUのシミュレーションを実行するもので
、第3図に示すように、ツリー構造を有する5個のサブ
システムから構成されている。
すなわち、プログラムを起動させるためのシミュレータ
SIM、後述するユーザインターフェースIIIFから
のコマンドを受けてそれに応じた処理を行うデバフガD
OG、 M P Uの1インストラクシヨンの実行等を
行うMPUモジュール!J )、l 、  端末のキー
ボード等からのコマンドを解析してデバッガ08G が
理解できる形式に変換して渡すと共に処理結果を端末の
デイスプレィ等に返すユーザインターフェースUIF 
及びターゲットプログラムTPをMPUの仮想メモリ空
間、たとえば、メモリテーブルM RY Tにロードす
るローダLDRから構成されている。
これらのサブシステムの詳細については後述するが、各
サブシステムは互いに独立性が高く、後述するように、
たとえば、MPUモジュールHを切り換えることにより
種々のMPUのシミュレーンヨンが可能となっている。
また、それぞれのサブシステムは、他のサブシステムか
ら呼び出される関数を有するエン) IJ−モジュール
と、種々の内部処理を行うサブモジュールから構成され
ている。
第4図は、本実施例のMPUシミュレータのハードウェ
ア構成を示すブロック図である。
第4図において、1はMPUシミュレータ全体の制御及
びデータ処理を行う中央処理装置である。
この中央処理装置1には、メインメモリ2が接続されて
いる。更に、中央処理装置1にはシリアルデータライン
3aを介して各種データ及び指示を入力するキーボード
4及び処理結果等を表示するためのデイスプレィ5が接
続されている。なお、キーボード4及びデイスプレィ5
からなる端末は複数組配置され、中央処理装置1では時
分割的に複数のタスクを処理するようになっている。ま
た、中央処理装置1のバス3には、プログラム及びデー
タを格納するディスク装置6等が接続される。
前記ディスク装置6には、MPUシミュレータで実行中
の全ての処理に関して、その実行中に必要なプログラム
本体、データ等のソフトウェア資源がファイルとして格
納されており、プログラムの実行に際しては、このディ
スク装置6内のプログラム及びデータをメインメモリ2
にロードし、中央処理装置1はこれらのソフトウェア資
源を使用して必要な処理を進める。
本実施例のMPUシミュレータにおける各サブシステム
の関係を第5図を参照して説明する。
図に示されるように、本実施例のMPUシミュレータは
、大きく分けてンミュレータSIM、デバッガDBG、
 M P UモジュールM)4.ユーザインターフェー
ス[IIF及びローダLDRの5個のサブシステムから
構成されている。
そして、これらのサブシステムに対して、ターゲットプ
ログラムTP、  コンフィグレーションファイルCF
、  外部事象ファイルEPF、 )レースファイルT
F等の外部ファイルが設けられる。
また、外部テーブルとして、コンフィグレーションテー
ブルCFGT、  外部事象テーブノ叶PT、コマンド
テーブルCM D T 、  レジスタ情報テーブルR
IT、端子機能テーブルTPT、 M P U実行ステ
ータステーブル!、1EST、  メモリテーブル!J
 RY T 、  メツセージテーブル!、l S G
 Tが設けられる。更に、外部バッファとしてメツセー
ジバッファ)、IBが設けられる。
以下、各ファイル及びテーブルの構成の概略について説
明する。なお、項目の詳細については、後述する。
ターゲットプログラムTPは、ユーザがシミュレータ上
で動作させたい、すなわち、デバッグの対象となるヘキ
サフォーマットファイル形式のプログラムであってディ
スクファイルである。なお、ここでディスクファイルと
は、第4図に示すディスク装置6内に格納されるファイ
ルを意味する。
コンフィグレーションファイルCFは、シミュレーショ
ンの対象となるMPUに対応して、M P U動作クロ
ック、外部事象ファイルのデフォルトのファイル名、増
設RAMやROMの容量及びアドレス、シリアルクロク
の周波数、MPU種別等のMPUハードウェアデータを
格納するディスクファイルであり、シミュレータS I
 M の起動に先立って、第2図に示すコンフィグレー
ション生成部CGにより必要データが生成され、コンフ
ィグレーションファイルCFに格納される。
また、コンフィグレーションテーブルCFGTは、コン
フィグレーションファイルCFに対応するメモリファイ
ルである。このコンフィグレーションテーブルCFGT
は、ユーザが定義したコンフィグレーションファイルC
Fを解析して生成されるもので第6図に示す構成を有し
ており、その内容を第1表に示す。
第1表 なお、ID番号はMPUの種別を示す8ビツトのデータ
であって、たとえば、A/D変換器を内蔵した日本電気
株式会社製の8ピツトのMPUであるμP07810に
は、「0」を割り当て、μP07810・のプログラム
内蔵型であるμP07811には「1」を割り当てる。
同様に他の種別のMPUに対しでもそれぞれ異なったI
D番号を割り当てる。
外部事象ファイルEPF は、MPUの端子に供給され
る信号の性質、たとえば、論理信号名、端子機能名、属
性1人出力種別、開始時間、繰り返し回数、データ自体
等を格納するディスクファイルであって、シミュレータ
SIMの起動に先立って、第2図に示す外部事象データ
生成部EFDGによりデータ文として作成される。
論理信号名は、ユーザが任意につける信号名であって、
入力を省略したときは以下に説明する端子機能名と同一
になる。
端子機能名は、MPUの端子又は端子群についての名称
であり、後述するように予め決められた名称を使用する
また、属性はデータの属性を指定するもので、rdJは
8ビツトデータを意味する。また、「S」は1ビツトデ
ータすなわち2.値の信号データであることを意味する
。なお、この属性は端子機能名と対になっている。
入力/出力種別は、入力、出力を区別するもので、Fi
lはMPUへの入力を意味し、「0」はMPUからの出
力を意味する。
開始時間は、データの開始時間をM P Uのクロック
数で指定するもので、シミュレータが後述する「ラン(
run) J又は[ステップ(step) J コ?ン
ドにより実行を開始してからの積算クロックが指定のク
ロックに達した時点でデータが有効となる。
繰り返し回数は、指定のデータの繰り返し回数を指定す
るものである。
データは、属性にしたがってデータ自体を定義するもの
で、8ビツトデータの場合は16進2桁で指定され、信
号データの場合は「h」又は「1」で指定される。
この外部事象ファイルEPF におけるデータ文の例を
以下に示す。
data  s+data、rxd、d、+、150,
3.”30.if”このデータ文で定義された信号は、
論理信号名がrsidajaJの入力8ビツトデータで
あって、積算クロックが150の特売から、端子機能名
がrrxdJの端子にr30J、 Nfjのデータが3
回繰り返して供給されることを示している。
data adataQ、 paQ、 s、 i、 1
0.3.h、 l、 l、ビまた、このデータ文で定義
された信号は、論理信号名がradataOJの入力信
号データであって、積算クロックが10の時点から、端
子機能名がrpaOJの端子にハイレベル、ローレベル
、ローレベル。
ローレベルの信号が3回繰り返して供給されることを示
している。
また、外部事象テーブノL−IEPT は、デバッガ[
]BGから知らされる上述の外部事象ファイルEPF 
のデータをフォーマット変換して一時的に格納するメイ
ンメモリ2上のテーブルである。この外部事象テーブル
EPTの構成の一例を第7図に示し、その内容を第2表
に示す。
第2表 また、レジスタ情報テーブルRIT は、MPUの各レ
ジスタに関する情報を格納するメインメモリ2上のテー
ブルであって第8図に示す構成を有しており、その内容
を第3表に示す。このレジスタ情報テーブルRAT は
、各MPUに対応して複数組設けられている。
第3表 前述のμP07811の場合のレジスタの一例を第4表
に示す。なお、第4表(a)は一般しジスタ、同表ら)
は特殊レジスタ、同表(C)はリクエストレジスタを示
している。
なお、このμP07811の各レジスタの詳細について
は、日本電気株式会社発行の「μC0M−87AD μ
P07811ユーザーズ・マニユアル(16M768G
) Jに記載があるので、ここではレジスタの種類を挙
げるにとどめ詳細な説明は省略する。
(以下、余白) 第4表(a) 第4表(b) 第4表(C) 端子機能テーブルTPT は、MPUの端子機能に関す
る情報を格納するメインメモリ2上のテーブルであり、
第9図に示す構成を有しており、その内容を第5表に示
す。端子機能テーブルTPT も各MPUに対応して複
数組設けられている。
第5表 端子機能名は、MPUの端子又は端子群についての名称
であり、予め決められた名称を使用する。
ターゲットのMPUとしてμP07811を使用する場
合の端子機能名の一例を第6表に示す。なお、表中、入
力出力種別Jの欄のIは入力、0は出力、Iloは人出
力を示している。
(以下余白) 第6表 上述のμP07811自体のハードウェア構成の概略を
第10図に示す。なお、このμP[]7811自体の構
成については、前述の「μCO!J −87A D μ
P[]7811ユーザ一ズ・マニュアル(IE!、+7
686) jに詳細に述べられていので、ここでは、概
略を説明するにとどめる。
第10図に示されるM P Uにおいて、実行すべきプ
ログラムはプログラムメモIJP!、!に格納されてい
る。プログラムの実行に際しては、レジスタ部RBのプ
ログラムカウンタICにより指示されたアドレスの命令
がインストラクンヨンレジスタIHに格納され、インス
トラクションデコーダ10で解釈される。そして、この
解釈結果に基づき、内部データ或いは外部から入力され
たデータに対して必要な処理を行う。命令及びデータは
、内部データバスIDB 内を流れており、演算が必要
なデータは、ラッチLTCI、 LT[:2を介して算
術論理回路ALIJ に供給され、指定された演算が行
われる。この際、実行に必要な外部データは、シリアル
人出力部5IO1割り込み制御部+NTC,タイマTI
MER,タイマ/イベントカウンタTlEC,A/D変
換器ADC,ポート部PB等から入力される。演算後の
フラグの状態はプログラムステータスワード部PSWに
格納される。
演算後のデータは、レジスタfiRB内の所定のレジス
フ或いはデータメモIJD!Jに格納される。また、必
要に応じてシリアル人出力部SID、タイマT I !
、I E It 。
クイマ/イベントカウンタTEC,ポート部PB等を介
して、MPUの外部に出力される。
以下、第5図に戻って説明する。
メモリテーブル!、I RY Tは、ターゲットプログ
ラムTPがロードされる64にバイトのアドレス空間を
有するメインメモリ2上のテーブルである。
コマンドテーブルC!JDTは、ユーザインターフェー
ス[lIF とテ゛バンガDBG  との中間にあり、
ユーザから正しい入力があった場合に、ユーザインター
フェースUIF がデータをセントするメインメモリ2
上のテーブルであり、第11図に示す構成を有しており
、その内容を第7表に示す。
第7表 デバッガDBG はセントされたコマンド番号及びパラ
メータに応じて処理を行う。
また、メツセージテーブルM S G Tはデイスプレ
ィ5に出力するだめのメンセーノを格納したメインメモ
リ2上のテーブルであるっ 次に、MPU実行ステータステーブル!A E S T
は、MPUの実行動作に関する情報を有するメインメモ
リ2上のテーブルであり、MPUモジュールゝ、+ !
、1からデバッガDBGへ、命令実行中に起きたエラー
等を報告するためのものであり。このMPU実行ステー
タステーブル1.1 E S Tは、第12図に示す構
成を有しており、その内容例を第8表に示す。
第8表 各項目について説明すると、先ず、リセット信号継続は
、M P Uのリセット端子への入力がローレベルのま
まハイレベルにならない場合に、MPUモジュール1.
賛4によってセットされるものである。
リセット信号有無は、M P Uのリセット端子へロー
レベルの入力があった場合に、MPUモジュールM)j
によってセットされるものである。ホールト命令実行有
無は、ホールト命令すなわち、MPUの停止命令があっ
たかどうかを示している。ポートアクセスエラーは、M
PUのポートに不当なアクセスがあったかどうかを示し
ており、たとえば、入力端子へデータを書き込もうとし
た命令があった場合にセットされる。アドレスアクセス
エラーは、不当なアドレスがアクセスされたことを示し
ており、たとえば、コンフィグレーションファイルCF
で定義されていないアドレス領域がアクセスされたよう
な場合にセットされる。インストラクション実行エラー
は、インストラクション実行中にエラーが生じたことを
示すもので、たとえば、定義されていないインストラク
ションがあったような場合!二セントされる。演算エラ
ーは、演算中にエラーが発生したことを示すもので、た
とえば、0で除算した場合、或いは、指温れが生じたよ
うな場合にセットされる。最後のメモリマツプエラーは
、メモリへのアクセスが不当であることを示しており、
たとえば、ROM領域にデータを書き込もうとした命令
があった場合にセットされる。
次に、各サブシステムの内部テーブルについて説明する
デバッガDBG には、内部テーブルとして、デバッガ
ステータステーブルDST、ブレークポイントテーブル
BPT、 )レースモードテーブルTMT、ラインバッ
ファLB及びメツセージ編集テーブル!、lET等が設
けられている。
デバッガステータステーブルDST は、デバッガDB
G の実行動作に関する各種情報を格納するメインメモ
リ2上のテーブルであり、第13図に示す構成を有して
おり、その内容を第9表に示す。
第9表 なお、このデバッガステータステーブルDST の初期
状態は、シミュレーションモード、ターゲットプログラ
ム無、外部事象ファイル無に設定されている。また、M
PU状態は、第12図に示すMPU実行ステータステー
ブルMEST (第8表参照)の内容を複写したもので
、1ステップ実行が終了するたびに外部テーブルのMP
U実行ステータステーブルMESTから読み込まれて更
新される。
ブレークポイントテーブルBPT は、ブレークポイン
トの情報を格納するメインメモリ2上のテーブルであり
、たとえば、第14図に示すように5個のブレークポイ
ントの設定が可能な構成を有している。ブレークポイン
トの設定例を第10表に示す。
第10表 第10表の例では、a090番地、 bb12番地及び
0210番地(いずれも16進表示)の3カ所でプログ
ラムが一旦停止する。なお、表中の−1はブレークポイ
ントが未設定であることを示している。
トレースモードテーブルTMT  ハ、)レース実行の
各種モードを格納するメインメモリ2上のテーブルであ
り、第15図に示す構成を有しており、その内容を第1
1表に示す。
第11表 なお、初期状態では、トレース無1 ファイルクローズ
となっている。
ラインバッファLBは、ユーザインターフェースUIF
 からの1行の入力を受は取るメモリバッファであり、
たとえば、キャラクタデータを256個格納する容量を
有している。
メツセージ編集テーブルMET は、メツセージ編集用
のメモリバッファであり、たとえば、キャラクタデータ
を256個格納する容量を有している。
次に、MPUモジュール!AMの内部テーブルについて
説明する。
MPUモジュール)、1Mには、内部テーブルとして、
レジスタテーブルRT、  端子テーブルTT、MPt
JステータステーブルM S T 、ペースクロックテ
ーブルBCT。
実行タイマテーブルETT、命令セットテーブルIST
及び命令解析テーブルIATが設けられている。
レジスタテーブルRTは、全てのレジスタを実際のM 
P Uのレジスタと同じサイズで持ち、実情報を格納す
るメインメモリ2上のテーブルであり、第16図に示す
ように、一般しジスタテープル、′eF殊レジスタテー
ブル、リクエストレジスタテーブル及びプログラムステ
ータスワードテーブルから構成されている。この一般し
ジスタテープル、特殊レジスタテーブル及びリクエスト
レジスタテーブルは、先に述べた第4表(a)、  (
b)及び(C)に記載の各レジスタに対応している。ま
た、プログラムステータスワードテーブルは、MPUの
プログラムステータスワード部(第10図においてPS
l’lで示す)と同じ機能を有するメインメモリ2上の
テーブルであり、ゼロフラグ、スキップフラグ、ハーフ
キャリフラグ、 Llフラグ、  LOlフラグキャリ
フラグ等の領域がある。
端子テーブルTTは、端子機能に関する実情報を格納す
るメインメモリ2上のテーブルであり、第17面に示す
構成を有しており、その内容を第12表に示す。
第12表 MPUステータステーブルMST は、MPUの実行動
作モードに関する情報を持つメインメモリ2上のテーブ
ルであり、第18図に示す構成を有しており、その内容
を第13表に示す。
第13表 なお、リセット情報は、リセット端子へのローレベル入
力をクロック換算したもので、ここでは、クロック数が
60を超えるとMPUのリセットを行うようになってい
る。また、Elは割り込み受付可能状態を示し、DIは
割り込み受付不可能状態を示す。
ベースクロッタテ−プルOCT は、クロック動作に関
する情報を持つメインメモリ2上のテーブルであり、第
19図に示す構造を有しており、レベル0がハイレベル
であるかローレベルであるか、レベル0の時間間隔、レ
ベル1がハイレベルであるかローレベルであるか、レベ
ル1の時間間隔、1クロツタの時間間隔、現在のレベル
がハイレベルであるかローレベルであるか、1クロック
相対時間、クロックカウント数及び合計クロック数の情
報を有している。
実行タイマテーブルεTT は、実行時間に関する情報
を持つメモリ上のテーブルであり、第20図に示す構造
を有しており、1基本タロツク時間1合計実行時間1合
計実行うロック数、1命令時間。
1命令ステート数、1命令クロック数2合計ステップ数
1割り込みクロック数及び割り込み時間から構成されて
いる。
命令セットテーブルIST は、命令毎にオペレーショ
ンコード、分類コード、実行時に要するステート数等に
関する情報を持つメモリ上のテーブルであり、後述する
命令解析の際に参照される。
最後の命令解析テーブルIAT は、メモリテーブルM
 RY Tから読み込まれたターゲットプログラムのオ
ブジェクトを解析して実行するための各種の情報を持つ
メインメモリ2上のテーブルであり、第21図に示す構
造を有しており、命令コード番号。
第1オペランド、第2オペランド、命令コード長。
第1ステート数、第2ステート数の情報を有している。
上述のペースクロッタテ−プルBCT、実行タイマテー
ブルETT、命令解析テーブル[AT がどのように参
照されるかについては、後述する。
更に、ユーザインターフェース旧Fには、コマンド分類
テーブルCOT、コマンドセットテーブルCST。
コマンドチエツクテーブルCCT等が設けられている。
:177)’分iテーブルCOT は、ユーザのコマン
ド入力毎に、コマンドラインの内容を、コマンド。
区切り記号、パラメータに分解してセットするテーブル
である(第22図参照)。また、コマンドセットテーブ
ルC3T には、コマンド毎にコマンド番号。
コマンド文字列、パラメータのデフォルト値及び入力形
式がコード化して登録されている(第23図参照)。更
に、コマンドチエツクテーブルCCTは、ユーサノコマ
ント入力毎に、コマンドセラ)f−プルC3T の中か
ら該当コマンドの登録内容が複写されるテンポラリテー
ブルである。ユーザが入力したコマンドの文字列がコマ
ンドセットチーフルC3T の文字列の内容と一致する
と、このテーブルが作成され、ユーザ入力が正しいもの
かどうかが調べられる。
この結果、そのコマンドが正しければ、外部テーブルと
して設けられたコマンドテーブルCMDTにセットされ
る。
第24図はこれらのコマンド分類テーブルCOT、コマ
ンドセットテーブルC3T及びコマンドチエツクテーブ
ルCCTの関係を模式的に図示したものである。
次に、MPUモジュールM L+の各エントリーモジュ
ールについて説明する。
MPUモジュールMMとしては、下記の機能が求められ
る。
(i)MPUの1命令(インストラクション)を実行す
る。
(ii )  デバッガDBG の求めにより、MPU
のステータス情報、レジスタ、メモリ内容等を通知する
(iii)  デバッガDBG の指定したレジスタ、
メモリ領域の値を設定する。
(1v)デバッガDOGから外部入力が知らされ、また
、逆に外部出力の内容をデバッガDOG に知らせる。
これらの機能を実現するため、MPUモジュールM M
は以下の複数のエントリー関数を有している。
c−initial  ニレジスタテ−プルRT、  
端子テーブルTT等にアクセスして、MPUの状態をハ
ードウェアにおけるリセット状態にする関数 c−asmadrs  :アセンブラステートメント入
力時の開始アドレスを格納する関数 c−asm  :アセンブラステートメントをオブジェ
クトコードに変換し、メモリテーブルMRYT内の所定
のメモリ空間に格納する関数 c−disasm :命令解析テーブルIATを参照し
て指定のメモリ範囲を逆アセンブライメージでメツセー
ジバッファMBに書き込む関数 c−memprint :指定のメモリ範囲を指定形式
の表示イメージでメツセージバッファ!IBiご書き込
む関数 c−regprint :指定されたレジスタの内容を
指定形式の表示イメージでメツセージバッファMB+:
m書き込む関数 c−memwr+te :指定のアドレスへ指定のデー
タを書き込む関数 C−regWrlte :指定のレジスタへ指定のデー
タを書き込む関数 c−memfill  :指定のメモリ範囲を指定のデ
ータで埋める関数 c−inpadrs  : 15進データを連続入力す
る開始アドレスを格納する関数 c−input  :入力した16進データを前記関数
rc−inpadrsj で指定したアドレスから順次
書き込む関数 C−eXec :現在のプログラムカウンタが指すアド
レスの1ステツプを実行する関数 なお、この関数rc−execJでは、基本的には以下
に示す!序で処理が行われる。
第25図を参照して説明する。先ず、実行に先立って実
行ステータスフラグがクリアされる(ステラ プ51)
(1)命令解析 命令毎にオペレーンコンコード9分類コード1実行時に
要するステート数等が登録されているMPUモジュール
1.4M内の命令セン)テーブルIST を参照し゛C
1実行内容、実行に要する時間等を解析し、解析内容を
命令解析テーブルIAT ヘセソトする。
(2)命令実行 命令解析テーブルIATの内容により命令を実行する。
また、この命令によりレジスタテーブルRT。
メモリテーブルM RY T 、  端子テーブルTT
等へアクセスする。更に、ホールト命令や、メモリアク
セスエラーがあると、MPU実行ステータステーブルM
 E S Tへその内容を書き込む(以上、ステップ5
2)。
(3)実行時間更新 実行時間に関する各種情報が格納されている実行タイマ
テーブル訂Tを更新する。
(4)  ペースクロック更新 タイマ、イベント機能等の機能実行の際に参照されるベ
ースクロックテーブルBCTを更新する。゛(5)  
機能実行 MPUのタイマ、イベント、シリアルインターフェース
機能等を実行する。この機能実行の際には、ベースクロ
ックテーブルBCTが参照され、また、端子テーブルT
T、  レジスタテーブルRTがアクセスされる(以上
、ステップ53)。
(6)トレース実行 MPUステータステーブルMST 内のトレースの設定
により、内部トレース、外部トレースの処理を行い、処
理結果をトレースファイルTFへ書き込む(ステップ5
4〜57)。
(7)割り込み解析実行 レジスタテーブルRT内フラグを参照し、割り込みがあ
ったかどうか判定する。割り込みがあった場合は、レジ
スタテーブルRT内のプログラムカウンタIcを、割り
込みプログラムのスタートアドレスに書き換える(ステ
ップ53)。
(8)外部事象取り込み MPUステータステーブルMST 内の実行モードがシ
ミュレーションモードであるときは、実行タイマテーブ
ルETT を参照しながら、外部事象テーブルEPT 
から外部事象を取り込み、端子テーブルTT等をセット
する(ステップ59)。
そして、最後にリターンする。
以上が、関数「c−execJの説明である。
以下、関数の説明を続ける。
c−time :実行タイマテーブルETT を参照し
て直前の実行時間を知らせる関数 c−status : M P Uステータステーブル
14sT を参照して現在のステータスを返す関数 c−exin :外部事象テーブルEPT を参照して
外部入力事象を取り込む関数 c−exout  :外部事象入力を知らせる関数c−
conf ig : M P U ステータステーブル
11!ST を参照してMPU!t1作環境の設定を行
う関数c−opbyte :は、現在のプログラムカウ
ンタの指す命令の命令バイト数を返す関数 次に、ユーザインターフェースUIF における関数に
ついて説明する。
ユーザインターフェースLIIF は、キーボード4゜
デイスプレィ5等の端末の人出処理を行うもので、デバ
ッガDBG からの要求により下記の機能が果たす必要
がある。
(i)  デバッガDBGからの出力をデイスプレィ5
に表示する。
(ii )  キーボード4からのコマンドラインを入
力して解析し、デバッガDBG が理解できる形式に変
換する。このとき、文法エラーのチエツクを行う。
(iii)  キーボード4からの入力1行をそのまま
デバッガDBGに渡す。
(iv)  キーボード4からの入力1文字をそのまま
デバッガDBGに渡す。
これらの機能を実現するため、ユーザインターフェース
UIF は以下に説明する複数のエントリー関数を有し
ている。
u−display  :与えられた文字列データを端
末のデイスプレィ5に表示する関数 u−comin  :入力されたコマンドに対してコマ
ンドテーブルCM D T 、  レジスタ情報テーブ
ルRIT、端子機能テーブルTPT等を参照して文法チ
エツクを行うと共に、文法的に正しければコマンドテー
ブルCM D Tに所定のコマンド番号及びパラメータ
をセットしてデバッガDBGヘリターンする関数u−g
etline  :キーボード4の改行キーが押される
までの1行の文字列を受は取り、ファイルポインタによ
り指定されたテンポラリメモリバッファ(図示せず)の
アドレスにその内容を書き込む関数1−getchar
  :キーボード4から1文字を受は取り、その文字を
そのまま関数値としてデバッガDBGへ返す関数 次に、各サブシステムの機能の詳細について、第5図の
サブシステム関連図及び第26図のフローチャートを参
照して、操作の手順にしたがって説明する。なお、以下
の説明において特に注記している個所を除いて各ステッ
プの処理はデバッガDBGにより行われる。
なお、シミュレータSIMの起動に先立って、第2図に
示すコンフィグレーション生成部CGにより、使用する
MPUに対応して必要なデータを生成してコンフィグレ
ーションファイルCFに格納しておく。同様に、外部事
象データ生成部EPDGにより、必要なテストデータを
生成し、これを外部事象ファイルEPFに格納しておく
シミュレータS I M は、前記UNIXのコマンド
レベルの所定の起動コマンドにより起動され、ターゲッ
トプログラムTPを読み込むべきことをデバッガDBG
  に知らせる。たとえば、シミュレーションの対象と
なるMPUが、前述のμP07811であり、デバッグ
すべきターゲットプログラムTPのファイル名がrte
stJである場合は、第4図に示されるキーボード4か
ら、rmpu7811 test Jと入力する。
このようにシミュレータSIMが起動されると、先ず、
コンフィグレーションファイルCFがロードされ(ステ
ップ101)、次いでデバッガDBG、 M P Uモ
ジュールMMの内部テーブルが初期化される(ステップ
102)。
また、デバッガDOGはローダLDRを呼び出してター
ゲットプログラムTPをメモリテーブル!、I RY 
Tにロードする(ステップ103)。次いで、外部事象
ファイルEPFがロードされ(ステップ104)、デバ
ッガDBGからユーザインターフェース[IIF が呼
び出され、デバッガコマンドの入力待ちとなり(ステッ
プ105)ユーザの入力を受は付ける(ステップ106
)。なお、これらのステップ105. 106はユーザ
インターフェースUIFにより行われる。
すなわち、ステップ105になると、デバッガDBGか
らユーザインターフェース旧Fが call u−comin() の形式で呼び出され、キーボード4からシミュレータS
 I IJのコマンドを待つ。そして、ユーザが1行入
力した時点でコマンドテーブルCMDTを参照して文法
エラーのチエツクを行なう。文法エラーがあった場合は
、ユーザインターフェースtlIF の関数ru−di
splayJ を呼び出してエラーメツセージを表示さ
せ、関数値を0としてデバッガDBG にリターンする
。また、文法的に正しければ、コマンドテーブルCMD
Tに必要なパラメータをセントすると共に、関数値にコ
マンド番号をセントしてデバッガDBGにリターンする
。なお、この関数ru−cominJが呼ばれたときは
、デイスプレィ5にプロンプトとしてr (mpu) 
Jを表示する。
デバッガコマンドの一例を以下に示す。
アセンブルコマンドrasmj は、メモリ内容をアセ
ンブラニーモニックにより変更するコマンドである。こ
のrasmJ コマンドを受けると、デバッガDBG 
は起点アドレスのチエツクをしたのち、MPUモジュー
ルMMの関数r c−asmadrs Jを呼び出し、
アセンブラ入力の起点アドレスを通知する。その後、ア
センブラニーモニックの入力モードになったことをユー
ザインターフェースIJIF の関数ru−displ
ayJを通じてユーザに知らせる。アセンブラニーモニ
ツクの入力モードになると、ユーザインターフェースU
[F の関数「u−getline」が呼び出される。
この関数[u−getlineJは、入力に対して文法
エラーのチエツクを行うことなく改行キー入力までの1
行文の入力をそのまま返す。デバッガDOGはこれをM
PUモジュールj、l !、tにそのまま渡し、MPU
モジュール!、1 !、1はこのステートメントを解析
し、オブジェクトに変換したのち所定番地に格納する。
正常時には、M P Uモジュール)AMはそのまま次
の入力を待つが、異常時にはその旨エラーメツセージを
表示したのち入力を待つ。なお、入力が改行キーのみで
あるときは、アセンブラニーモニックの入力モードが解
除され、関数ru−cominJが呼び出されてコマン
ド入力モードとなる。
たとえば、メモリの0215番地以降のプログラム内容
をrmvi a、0OhJ に対応するデータに変更す
る場合、r (mpu) jのプロンプトが表示されて
いる状態で、r0215jとアドレスを入力して改行キ
ーを押すと、この入力されたアドレスがプロンプトとな
って入力待ちとなり、次いで、rmvi a、0OhJ
 と入力して改行キーを押すと、入力されたアセンブラ
ステートメント、すなわち、rmvi a、00hJが
オブジェクトに変換されて、0215番地に「69」が
、0216番地に「00」が格納される。なお、rmv
i a、0OhJは、16進数の「00」をAレジスタ
に入れるμP07810及びμP07811の命令であ
る。
ブレークコマンドrbreakj は、最大5個のブレ
ークポイントを設定するコマンドであり、このコマンド
を受けるとデバッガDBGはブレークポイントテーブル
BPTの内容を書き換える。なお、デバッガDBGは、
1ステップ実行前にMPUモジュールM旧こ対してプロ
グラムカウンタ値及び命令バイト数を問い合わせ、ブレ
ークポイントがこれから実行しようとするプログラムの
アドレス空間に含まれる場合は、ブレークポイントでプ
ログラムの実行を停止する。
クリアコマンド「clearJ は、上記rbreak
J :17ンドで設定したブレークポイントを解除する
コマンドである。
デバッグコマンドrdebugJ は、シミュレータを
初期化するコマンドであり、ターゲットプログラムが指
定されている場合、このプログラムがメモリテーブルM
 RY T上にロードされる。
ディスアセンブルコマンドrdisasembleJは
、メモリの内容をディスアセンブルして、アセンブラニ
ーモニックで表示するコマンドである。このコマンドは
、起点アドレス及びワード数をパラメータにしてMPU
モジュールMMの関数rc−disasmJを呼び出す
。MPUモジニールIAMは逆アセンブルの結果を表示
イメージで作成してメツセージバッファ)4Bに格納し
たのちデバッガ[]BG にリターンする。
デバッガDOG はその結果をユーザインターフェース
tllF を介してデイスプレィ5に表示する。
外部事象ロードコマンドr external Jは、
指定の外部事象ファイルEPF の内容をメモリテーブ
ルMRYT上にロードするコマンドである。
フィルコマンドrfillJは、メモリテーブルM R
Y Tの指定範囲のアドレス空間を指定データで埋める
コマンドである。
ヘルプコマンドrhelpJは、MPUシミニレータの
全てのコマンドの一覧表を表示するコマンドである。
インプットコマンドrinputJ は、指定アドレス
から連続して16進データをセットするコマンドである
モードコマンドrmodeJは、シミュレータの実行モ
ードの指定・変更を行うコマンドである。本実施例のシ
ミュレータの実行モードは、プログラムモードとシミュ
レーションモードの2通りあり、プログラムモードでは
ターゲットプログラムTPO実行動作のみを行い、シミ
ュレーションモードでは外部事象を含めたシミュレーシ
ョンを行う。シミュレータ起動時には、自動的にシミュ
レーションモードとなるが、このrmodeJコマンド
により実行モードを変更することができる。
プリントコマンドrprintJ は、MPUのレジス
タ、メモリ等の内容を表示するコマンドであり、起点ア
ドレス及びワード数或いはレジスタ塩及び表示形式をパ
ラメータにしてMPUモジュールMMの関数rc−me
mprint J或いはrC−regprintJを呼
び出す。MPUモジュールM Mは指定アドレス空間或
いは指定レジスタのデータを表示イメージで作成してメ
ツセージバッファMBに格納したのちデバッガDBGに
リターンする。デバッガDOGはその結果をユーザイン
ターフェース[IIF を介してデイスプレィ5に表示
する。
終了コマンドrquitJは、シミュレーションを終了
するコマンドであって、このコマンドの入力により前記
UNIXのコマンドレベルに戻る。
ランコマンドrrunJ は、ターゲットプログラムT
Pを指定のアドレスから実行するコマンドである。
このコマンドを受けると、デバッガDBGliMPUモ
ジュールM Mに対して実行を命じる。MPUモジュー
ルMMでは、レジスタテーブルRTのプログラムカウン
タの値を指定されたアドレスに書き換えたのち、プログ
ラムを1ステツプごとに実行する。
■ステップの実行においては、デバッガDBG は、デ
バッガステータステーブルDST により現在の設定ス
テータスを参照する。
ブレークポイント表示コマンドrshow break
Jは、現在のブレークポイント全てについて設定状況の
一覧表を表示するコマンドである。
ステップコマンド[5tepJは、現在のプログラムカ
ウンタが指すアドレスを1ステツプだけ実行したのち停
止するコマンドである。
ステータスコマンド「5tatusjは、現在のシミュ
レータ動作環境等を表示するコマンドで、たとえば、デ
バッガステータステーブルDSTを参照して、シミュレ
ータ実行モード、MPU種別、MPU動作クロック、タ
ーゲットプログラム名、外部事象ファイル名、現在のプ
ログラムカウンタの値、トレースモード設定状況等を表
示する。
トレースコマンド「tracej は、内部或いは外部
事象の発生をトレースし、その内容をデイスプレィ5に
表示すると共にトレースファイルTFに格納するコマン
ドである。
書き込みコマンドrwritej は、指定のメモリ或
いはレジスタに値をセットするコマンドである。
なお、上述のrrunJ コマンド実行中にコントロー
ルCとすると、実行中のターゲットプログラムは停止し
、コマンド待ちとなる。なお、コントロールCとは、キ
ーボード4のコントロールキーを押しながら「C」のキ
ーを押すことを意味する。
本実施例のMPUシミュレータを使用してソフトウェア
単体のデバッグを行う際の基本的な流れとしては、プロ
グラムの実行に先立ち、入力データをセットし、デバッ
グの対象となるプログラムユニットの出口にブレークポ
イントを設定したのち、プログラムユニットの先頭から
実行する。そして、ブレークポイントで止まった時点で
出力データを参照し、予め想定していたデータと一致す
るかどうか検査する。不一致があった場合は、どこにバ
グが存在しているのかをデバッガコマンドを使用して見
つけ出す。
キーボード4から入力されたコマンドラインは、ユーザ
インターフェース[IIF により解析され、デバッガ
DBG が理解できる形式に変換される。
ユーザの入力が終了コマンド、すなわち、rquitJ
であったときは、MPUシミュレータの動作を終了させ
る(ステップ107)。また、「quitJ以外のコマ
ンドであり且つMPUインストラクション実行コマンド
でない場合、たとえば、rwriteJ、rρrint
J。
rbreakj等であった場合、それぞれのコマンドが
実行される(ステップ108.117)。そして、その
実行結果がユーザインターフェース旧Fに通知され(ス
テノア’118)、ユーザインターフェースUIF  
により実行結果がデイスプレィ5に表示される(ステッ
プ119)。
また、ユーザの入力がMPUインストラクンヨン実行コ
マンド、すなわち、「run J、 r 5tep J
コマンドであったときは(ステップ108)、シミュレ
ーンヨンモードであるかどうかデバッガステータステー
ブルDSTを参照して判別しくステップ109)、ンミ
ュレーションモードであるときは、外部事象ファイルE
PFから外部入力データをセットする(ステップ110
)。次いで、MPUモジュール:a !、1によりMP
Uインストラクション実行のシミュレーンヨンが行われ
た(ステップ111)のち、タイマ、タイマ/イベント
カウンタ処理等のMPUの内部機能が実行され(ステッ
プ112)、更に、インストラクション実行結果のデバ
ッガDBGへの通知等が行われる(ステラ7’113)
。なお、シミュレーンヨンモードでないとき、すなわち
、プログラムモードのときは、ターゲットプログラムの
実行動作のみを行い外部入力データは不要であるので、
外部入力データのセット (ステップ110)はスキッ
プされる。なお、ステップ111.112.113は、
デバッガDBGではなく、MPUモジュールMMにより
実行される。
インストラクション実行結果は、更にユーザインターフ
ェースUIFへ通知され(ステップ114)、このユー
ザインターフェースUIF により実行結果の表示が第
4図に示されるデイスプレィ5により行われる(ステッ
プ115)。
たとえば、a090番地にブレークポイントがセットさ
れている場合、a090番地を含むアドレス空間でプロ
グラムを実行すると途中でターゲットプログラムの実行
が停止し、 rbreak at breakl(a090)  J
という表示が行われる。この表示は、ターゲットプログ
ラムの実行が、第1ブレークポイントのアドレスである
8090番地で停止したことを意味している。この状態
でrprintj コマンドを使用してレジスタやメモ
リの内容を表示させ、予期した値と一致するかどうか検
査する。
一致した場合、コマンドとしてrrun a090Jを
入力し、このブレークポイントからターゲットプログラ
ムの実行を再開させ、次のブレークポイントまでプログ
ラムを実行させる。
この模作をブレークポイント毎に行う。
出力されたレジスタやメモリの内容が予期した値と一致
しない場合は、たとえば、rtracej コマンドに
よりブレークポイントに至るまでのレジスタやメモリの
変化を、MPUのインストラクション毎に表示させてバ
グの位置を探す。このトレースモードにおいては、デバ
ッガDBG のトレースモードテーブルT!JT が参
照され、指定されたトレースモードに応じて、内部トレ
ース、外部トレース或いは両方のトレースが行われ、ト
レース結果がデイスプレィ5に表示されると共にトレー
スファイルTFに格納される。なお、内部トレースの場
合は、MPUの実行によるレジスタ、メモリ、内部機能
をトレースする。また、外部トレースの場合は、外部事
象ファイルEPFから取り込んだ外部入力、及び、MP
Uからのポート出力、シリアル出力等をトレースする。
そして、バグが発見されたら、ターゲットプログラムを
オブジェクトレベルで修正する。たとえば、[asmj
 コマンドにより、該当番地のメモリ内容をアセンブラ
ニーモニソクにより変更する。
なお、このデバッグ作業のためには、「breakJ。
rprint上r Lrace上rasmJ コマンド
の他に、先に述べた各種デバッガコマンドが使用される
上述の作業の繰り返しによりデバッグ作業が行われる。
ターゲットプログラムの複数ステップにわたる実行のン
ミュレーションが指示された場合、指定された全インス
トラクションの実行が終了するまでは、ステップ116
からステップ109に戻る。全インストラクションの実
行が終了するとデバッガコマンドの入力待ちに戻る(ス
テップ116.105)。
上述のように、本実施例のシミユレータにおいては、ン
ミュレーション実行の際には、ローダLDRによりター
ゲットプログラムTPがメモリテーブルM RY Tに
ロードされ、コンフィグレーションファイルCF及び外
部事象ファイルEPF のデータに基づいてMPUモジ
ュール゛11 !、lでMPU動作のシミュレーンヨン
を行う。すなわち、設定されたハードウェア環境のもと
てテストデータに応じてターゲットプログラムTPが実
行される。そして、シミュレーンヨンの結果は、デイス
プレィ5(第4図参照)に表示される。
ユーザは、このシミュレーションの結果をチエツクし、
トラブルが発生した場合は、デバッガコマンドにより原
因を解析する。トラブル解析の結果、バグが発見された
場合は、デバッガコマンドによりによりターゲットプロ
グラムを修正する。
上記作業を各種条件、例えば、テストデータを変更しな
がら繰り返すことによりデバッグが終了し、バグのない
オブジェクトプログラムが得られる。
このとき、M P Uに固有な情報の部分、すなわち、
レジスタ構造、端子構造及びインストラクンヨン体系等
に関係する部分は独立したモジュール、すなわち、レジ
スタ情報テーブルRIT、端子機能テーブルTPT及び
M P UモジュールMMとなっているので、シミュレ
ーンヨンの対象となるMPUに応じてこれらのテーブル
及びモジュールを切り換えればよい。
〔発明の効果〕
以上述べたように、本発明によれば、MPUを使用した
機器のソフトウェアを開発する際に、ハードウェア環境
及び外部事象のデータをファイル化しておき、このファ
イルのデータに基づいてシミュレーションを行う。した
がって、実際の装置を使用することなくソフトウェア単
体でのデバッグが可能となりデバッグ効率を高めること
ができる。このとき、MPUモジュールを独立して設け
、このMPUモジュールにMPU固有の処理を受は持た
せている。したがって、MPUの種別が変更となっても
、デバッガ本体、ユーザインターフェース等を変更する
必要はなく、MPUモジュールを切り換えればこれに対
応することができる。これにより従来のように、各MP
Uに対してそれぞれ独立のシミュレータを用意する必要
がなくなりソフトウェアの開発費用を抑えることができ
る。
【図面の簡単な説明】
第1図は本発明のMPUシミュレータを説明するための
原理図、第2図はMPUシミュレータと複写機シミュレ
ータ全体との階層関係を示すブロック図、第3図はMP
Uシミュレータのソフトウェア構造を示す説明図、第4
図はMPUシミュレータのハードウェア構成を示すブロ
ック図、第5図はMPUシミュレータを構成する各サブ
システムとファイル及びテーブルとの関係を示す説明図
、第6図はコンフィグレーションテーブルの構成を示す
説明図、第7図は外部事象テーブルの構成を示す説明図
、第8図はレジスタ情報テーブルの構成を示す説明図、
第9図は端子機能テーブルの構成を示す説明図、第10
図はシミュレーションの対象となるMPUの構造の一例
を示す概略ブロック図、第11図はコマンドテーブルの
構成を示す説明図、第12図はMPU実行ステータステ
ーブルの構成を示す説明図、第13図はデバッグステー
タステーブルの構成を示す説明図、第14図はブレーク
ポイントテーブルの構成を示す説明図、第15図はトレ
ースモードテーブルの構成を示す説明図、第16図はレ
ジスタテーブルの構成を示す説明図、第17図は端子テ
ーブルの構成を示す説明図、第18図はM P Uステ
ータステーブルの構成を示す説明図、第19図はペース
クロックテーブルの構成を示す説明図、第20図は一実
行タイマテーブルの構成を示す説明図、第21図は命令
解析テーブルの構成を示す説明図、第22図はコマンド
分類テーブルのm成を示す説明図、第23図はコマンド
セットテーブルの構成を示す説明図、第24図はコマン
ド関連テーブル間の関係を示す説明図、第25図はMP
Uモジュールにおける関数の処理の流れの一例を示すフ
ローチャート、第26図は本実施例のM P Uシミュ
レータにおけるシミュレーション動作の流れを説明する
ためのフローチャートである。また、第27図はMPU
により制御される複写機の概略を示す説明図、第28図
はM P Uにより制御される機器を開発する際の一般
的な手順を示す工程図である。 CF;コンフィグレーションファイル DOG :デバソガ EPF :外部事象ファイル !JM:MPUモジュール !、1RYT:メモリテーブル TP:ターゲットプログラム 111F :ユーザインターフェース 特許出願人     富士ゼロックス株式会社代 理 
人     小 堀  益(はが2名)第1図 TP IF 第2図 CG      EPDG     MS第 3 図 第4゛図 第6図     第7図 第11図    第12図 第8図    第9図 第14図 第16図    第17図   第18図第21図  
 第22図    第23図第19図    第20図 1し ベ ル 1 定義     :合計実行うロンク
数・1クロツクカウント数胃    i割り込みクロフ
ク数、1Lλh ’) O−/ ’) tl霞1if 
”) 込ミBW 間第24図 ユーザ入力 第25図 第 26 図

Claims (1)

  1. 【特許請求の範囲】 1、シミュレーションの対象となるMPUのハードウェ
    ア構成情報及び前記MPUの端子に供給する各種タイミ
    ング信号をファイルデータとして読み込むと共に、デバ
    ッグの対象となるターゲットプログラムのデータを読み
    込み、これらのデータを使用してシミュレーションの対
    象となるMPUに固有の命令実行構造にしたがってター
    ゲットプログラムの実行をシミュレートすることを特徴
    とするMPUシミュレーション方法。 2、前記ハードウェア構成情報は、構成情報ファイルに
    格納され、前記各種タイミング信号は、外部事象ファイ
    ルに格納されていることを特徴とする請求項1記載のM
    PUシミュレーション方法。 3、前記ターゲットプログラムはシミュレーションに先
    立ち、メモリテーブルにロードされることを特徴とする
    請求項1記載のMPUシミュレーション方法。 4、MPUの種類ごとに前記ターゲットプログラムの実
    行のシミュレーションを行うMPUモジュールを設ける
    と共に、該MPUモジュールに対するコマンドの入力及
    び該MPUモジュールからの出力の表示を行うユーザイ
    ンターフェースを設けたことを特徴とする請求項1記載
    のMPUシミュレーション方法。 5、前記ユーザインターフェースを介して入力されたコ
    マンドに基づいて、前記ターゲットプログラムがロード
    されているメモリテーブルの内容の変更、表示、ターゲ
    ットプログラムの実行、停止等を前記MPUモジュール
    に指示するデバッガを設けたことを特徴とする請求項4
    記載のMPUシミュレーション方法。 6、シミュレーションの対象となるMPUのハードウェ
    ア構成情報を格納する構成情報ファイルと、前記MPU
    の端子に供給する各種タイミング信号のデータを格納す
    る外部事象ファイルと、端末からの入力コマンド或いは
    端末への表示情報の処理を行うユーザインターフェース
    と、該ユーザインターフェースを介して入力されたコマ
    ンドに基づいてターゲットプログラムがロードされてい
    るメモリテーブルの内容の変更、表示、ターゲットプロ
    グラムの実行、停止等を指示するデバッガと、該デバッ
    ガからの指示に基づき前記構成情報ファイル及び外部事
    象ファイルからのデータを使用してシミュレーションの
    対象となるMPUに固有の構造にしたがってターゲット
    プログラムの実行をシミュレートするMPUモジュール
    とを備えたことを特徴とするMPUシミュレータ。 7、前記MPUモジュールをMPUの種類に対応して複
    数設けたことを特徴とする請求項6記載のMPUシミュ
    レータ。
JP63139673A 1988-06-06 1988-06-06 Mpuシミュレーション方法及びmpuシミュレータ Expired - Fee Related JP2803090B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63139673A JP2803090B2 (ja) 1988-06-06 1988-06-06 Mpuシミュレーション方法及びmpuシミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63139673A JP2803090B2 (ja) 1988-06-06 1988-06-06 Mpuシミュレーション方法及びmpuシミュレータ

Publications (2)

Publication Number Publication Date
JPH01307837A true JPH01307837A (ja) 1989-12-12
JP2803090B2 JP2803090B2 (ja) 1998-09-24

Family

ID=15250754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63139673A Expired - Fee Related JP2803090B2 (ja) 1988-06-06 1988-06-06 Mpuシミュレーション方法及びmpuシミュレータ

Country Status (1)

Country Link
JP (1) JP2803090B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03188535A (ja) * 1989-11-29 1991-08-16 Bull Hn Inf Syst Inc プログラム・エラー検出方法
JPH0721058A (ja) * 1993-06-30 1995-01-24 Nec Corp プログラム試験方式
JPH0769853B2 (ja) * 1990-05-09 1995-07-31 アプライド マイクロシステムズ コーポレイション 回路内エミュレータ
JP2018200495A (ja) * 2017-05-25 2018-12-20 ルネサスエレクトロニクス株式会社 情報処理装置並びにその制御方法及び制御プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5835647A (ja) * 1981-08-27 1983-03-02 Nec Corp マイクロコンピユ−タの評価装置
JPS6072038A (ja) * 1983-09-28 1985-04-24 Hitachi Ltd ソフトウェアの検査装置
JPS6142040A (ja) * 1984-08-03 1986-02-28 Nec Corp 論理シミユレ−タ
JPS63126043A (ja) * 1986-11-17 1988-05-30 Hitachi Ltd 論理シミユレ−タ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5835647A (ja) * 1981-08-27 1983-03-02 Nec Corp マイクロコンピユ−タの評価装置
JPS6072038A (ja) * 1983-09-28 1985-04-24 Hitachi Ltd ソフトウェアの検査装置
JPS6142040A (ja) * 1984-08-03 1986-02-28 Nec Corp 論理シミユレ−タ
JPS63126043A (ja) * 1986-11-17 1988-05-30 Hitachi Ltd 論理シミユレ−タ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03188535A (ja) * 1989-11-29 1991-08-16 Bull Hn Inf Syst Inc プログラム・エラー検出方法
JPH0769853B2 (ja) * 1990-05-09 1995-07-31 アプライド マイクロシステムズ コーポレイション 回路内エミュレータ
JPH0721058A (ja) * 1993-06-30 1995-01-24 Nec Corp プログラム試験方式
JP2018200495A (ja) * 2017-05-25 2018-12-20 ルネサスエレクトロニクス株式会社 情報処理装置並びにその制御方法及び制御プログラム

Also Published As

Publication number Publication date
JP2803090B2 (ja) 1998-09-24

Similar Documents

Publication Publication Date Title
CN117422026B (zh) 一种基于risc-v架构的处理器验证系统
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
JP2795244B2 (ja) プログラムデバッグシステム
US5715433A (en) Dynamic software model for emulating hardware
CN112765018B (zh) 一种仪器仪表调试系统及方法
US20250258763A1 (en) Co-simulation for System-on-Chip
CN117892661A (zh) 一种基于risc-v处理器验证的模拟器比对系统
US20030177471A1 (en) System and method for graphically developing a program
JPH01307837A (ja) Mpuシミュレーション方法及びmpuシミュレータ
Davidson High level microprogramming: Current usage, future prospects
CA2193466C (en) Game apparatus and method for debugging game program
JP2828590B2 (ja) マイクロプログラム検証方法
WO2025170967A1 (en) Co-debugging for system-on-chip having a cpu and an accelerator portion
Rose et al. N. mPc: a retrospective
Gladstone Comparing Microcomputer Development System Capabilities
Krummel et al. Advances in microcomputer development systems
JPH05250221A (ja) シミュレータ実行方式
Myers et al. The use of software simulators in the testing and debugging of microprogram logic
Gray A computer simulator for use in an introductory course on computer systems and assembly language programming
JPH07282093A (ja) 論理シミュレーション支援システム
JP2004145670A (ja) テストベンチ生成方法、テストベンチ生成装置、及びコンピュータプログラム
JP2939390B2 (ja) エミュレータ
Mitchell Manual and automatic vhdl/verilog test bench coding techniques
JPH04123143A (ja) 記録装置のシミュレータ
Sherwood A prototype engineering tester for microcode and hardware debugging

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees