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

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

Info

Publication number
JP2803090B2
JP2803090B2 JP63139673A JP13967388A JP2803090B2 JP 2803090 B2 JP2803090 B2 JP 2803090B2 JP 63139673 A JP63139673 A JP 63139673A JP 13967388 A JP13967388 A JP 13967388A JP 2803090 B2 JP2803090 B2 JP 2803090B2
Authority
JP
Japan
Prior art keywords
mpu
command
data
execution
target program
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
Application number
JP63139673A
Other languages
English (en)
Other versions
JPH01307837A (ja
Inventor
徹次 佐藤
聡 高岡
洋一 永里
康人 金子
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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、MPU(マイクロプロセッサユニット)によ
り制御される機器を開発する際に使用されるシミュレー
タ装置に関し、特に、制御プログラムのデバッグを行う
ためのシミュレーション方法及びシミュレータに関す
る。
〔従来の技術〕
近年、MPUにより電気機器等を制御することが一般的
に行われている。MPUは、論理演算ユニット,プログラ
ムメモリ,データメモリ,レジスタ,インターフェース
等が同一チップ内に形成された集積回路であり、プログ
ラムを変えることにより種々の制御を行うことができ
る。
このMPUにより制御される機器は、基本的には三つの
部分に分けられる。たとえば、複写機を例に挙げて説明
すると、第27図に示されるように、複写機本体201、MPU
202及びこの両者間のインターフェースを行う電気回路
基板203とから構成されている。
複写機本体201には、複写動作状態を検出するための
センサ及ビコントロールパネルからの指示を入力するた
めのスイッチ等が設けられており、これらのセンサ,ス
イッチ等からの入力は、一旦電気回路基板203に供給さ
れ、ここで所定の信号処理が行われたのちMPU202に入力
データとして供給される。また、入力のなかの或るもの
は割込信号としてMPU202に供給される。MPU202で所定の
処理が行われた出力データは、電気回路基板203に供給
され、この電気回路基板203からは、複写機本体201に設
けられたモータ,ソレノイド等の駆動部品を制御するた
めの信号を出力する。
このようなMPU202により制御される複写機を開発する
際には、複写機本体201の設計、すなわち、機構設計及
び電気回路設計に並行してソフトウェア開発、すなわ
ち、当該機器のMPUで実行されるターゲットプログラム
の開発が行われる。
第28図はMPUにより制御される機器を開発する場合の
一般的な開発手順を示したもので、製品が企画される
と、基本的な仕様が設計され、この仕様に基づいて機構
設計,電気回路設計及びソフトウェア開発が並行して行
われる。
ここで、従来のソフトウェア開発に関して説明する。
先ず、開発の対象となる複写機で使用されるMPU、す
なわち、ターゲットMPUのソフトウェアの仕様が作成さ
れる。そして、この仕様に基づいてソースプログラムが
作成される。このソースプログラムの作成及び編集に際
しは、開発ツールとして、たとえば、ミニコンピュータ
上のエディタが使用される。そして、このソースプログ
ラムが、開発ツールのコンパイラ或いはアセンブラによ
りオブジェクトプログラムに変換される。この後に、こ
のオブジェクトプログラムに対してデバッグを行う必要
がある。
このため、従来はデバッグ用の開発ツールとして一般
にインサーキットエミュレータが使用される。このイン
サーキットエミュレータは、前記MPUに置換して接続さ
れ、MPUの動作をシミュレートするもので、1ステップ
毎の動作,レジスタ内容等の表示等が可能となってい
る。
〔発明が解決しようとする課題〕
しかしながら、従来のインサーキットエミュレータ
は、実際の電気回路基板203に接続されて使用されるも
のであり、この電気回路基板203の試作が完成するまで
は、デバッグ作業を開始することができずデバッグ作業
が遅れてしまう。このため、設計期間の制約等から完全
なデバッグが行われる前に、次の実機デバッグの工程に
送られる。この実機デバッグでは、ターゲットMPUが実
際の電気回路或いは機構部分と組み合わされソフトウェ
アが検査されるが、この段階で多数のバグが発見される
いう不都合が生じる。また、この段階で発見されるトラ
ブルは原因追及及び対策に非常に手間がかかり、このた
めシステム全体としての開発効率が著しく低下するとい
う問題があった。
また、デバッグの対象とすることができるMPUは1種
類のみであり、MPUの種類が変わった場合は別のインサ
ーキットエミュレータを使用する必要があった。更に
は、従来のインサーキットエミュレータにおいては、MP
Uの入力端子に供給される信号は予め決められた静的な
電圧であり、実際の動作時のように入力端子に供給され
る信号を動的に変化させてシミュレーションを行うこと
はできなかった。
本発明は、上述の問題点を解決するために案出された
ものであって、ソフトウェア開発に際してソフトウェア
単体でのデバッグを可能にすると共に、複数のMPUに容
易に対応できるようにすることを目的とする。
〔課題を解決するための手段〕
本発明のMPUシミュレーション方法は、前記目的を達
成するため、電気機器の動作を制御するMPUであって、
少なくとも前記電気機器の動作状態を示す信号が入力さ
れるMPUの動作を制御するターゲットプログラムの実行
をシミュレートするMPUシミュレーション方法であっ
て、シミュレーションの対象となるMPUのハードウェア
構成情報及び前記MPUの端子に供給する前記電気機器の
動作状態を示す信号を含む各種タイミング信号をファイ
ルデータとして読み込むと共に、デバッグの対象となる
ダーゲットプログラムのデータを読み込み、これらのデ
ータを使用してシミュレーションの対象となるMPUに固
有の命令実行構造にしたがってターゲットプログラムの
実行をシミュレートすることを特徴とする。
また、本発明のMPUシミュレータは、前記目的を達成
するため、電気機器の動作を制御するMPUであって、少
なくとも前記電気機器の動作状態を示す信号が入力され
るMPUの動作を制御するターゲットプログラムの実行を
シミュレーションするMPUシミュレータであって、シミ
ュレーションの対象となるMPUのハードウェア構成情報
を格納する構成情報ファイルと、前記MPUの端子に供給
する前記電気機器の動作状態を示す信号を含む各種タイ
ミング信号のデータを格納する外部事象ファイルと、端
末からの入力コマンド或いは端末への表示情報の処理を
伴うユーザインターフェースと、該ユーザインターフェ
ースを介して入力されたコマンドに基づいてターゲット
プログラムがロードされているメモリテーブルの内容の
変更,表示,ターゲットプログラムの実行,停止等を指
示するデバッガと、該デバッガからの指示に基づき前記
構成情報ファイル及び外部事象ファイルからのデータを
使用してシミュレーションの対象となるMPUに固有の構
造にしたがってターゲットプログラムの実行をシミュレ
ートするMPUモジュールとを備えたことを特徴とする。
〔作用〕
本発明の作用を第1図を参照して具体的に例を挙げて
説明する。
本発明においては、MPUシミュレータが起動される
と、構成情報が格納されたコンフィグレーションファイ
ルCFからシミュレーションの対象となるMPUのハードウ
ェア環境のデータがロードされると共に、MPUの端子に
供給されるべき各種タイミング信号が外部事象ファイル
EPFからテストデータとしてロードされる。更に、デバ
ッグの対象となるターゲットプログラムTPがメモリテー
ブルMRYTにロードされる。この状態でターゲットプログ
ラムTPの実行を指示すると、ダバッガDBGからMPUモジュ
ールMMにMPUのインストラクションの実行,停止等が指
示され、MPUモジュールMMにおいてMPUのインストラクシ
ョンの実行がシミュレートされる。したがって、略実機
のものと同じハードウェア環境のもとでオブジェクトプ
ログラムが実行される。
このMPUのシミュレーションに際しては、ユーザイン
ターフェースUIFを介してキーボード等からデバッガDBG
に各種コマンドが入力され、デバッガDBGからの指示に
基づきMPUモジュールMMにおいてMPUインストラクション
の実行がシミュレートされる。実行結果はユーザインタ
ーフェースUIFを介してディスプレイ等に表示される。
プログラムの実行中にトラブルが生じた場合、このトラ
ブルは、端末のディスプレイ等に表示されるので、ユー
ザはそのトラブルの原因をデバッガDBGのコマンドを使
用して解析し、修正する。
前記MPUモジュールMMは、MPUの種類に応じてそれぞれ
設けられており、MPUシミュレータ起動時の指示に基づ
いてシミュレーションの対象となるMPUに対応したMPUモ
ジュールMMが選択される。したがって、MPUの種類が異
なった場合でも、デバッガDBG,ユーザインターフェース
UIF等を共通に使用することができる。すなわち、MPUモ
ジュールMMを切り換えるだけで、多数種のMPUに容易に
対応が可能となる。
〔実施例〕
以下、図面を参照しながら実施例に基づいて本発明の
特徴を具体的に説明する。なお、本実施例においては、
MPUで制御される複写機の制御プログラムを開発する場
合を例に挙げて説明する。
第2図は本発明のMPUシミュレータを含む複写機シミ
ュレータ全体のソフトウェア構成の階層構造例を示す説
明図、第3図は本発明のMPUシミュレータのソフトウェ
ア構成例の概略を示す説明図である。
第2図に示すように、本実施例のMPUシミュレータMS
は、複写機の動作をシミュレートする複写機シミュレー
タCSを構成する複数のプログラムブロックの一つとして
位置している。
すなわち、複写機シミュレータCSは、MPUのハードウ
ェア設定に関する情報を生成するコンフィグレーション
生成部CG,MPUの入力端子への信号の変化状態を示すテス
トデータを生成する外部事象データ生成部EPDG及びMPU
のシミュレーションを行うMPUシミュレータMSから構成
されている。
MPUシミュレータMSは、UNIX(登録商標)と呼ばれる
オペレーティングシステムの管理下でMPUのシミュレー
ションを実行するもので、第3図に示すように、ツリー
構造を有する5個のサブシステムから構成されている。
すなわち、プログラムを起動させるためのシミュレー
タSIM,後述するユーザインターフェースUIFからのコマ
ンドを受けてそれに応じた処理を行うデバッガDBG,MPU
の1インストラクションの実行等を行うMPUモジュールM
M,端末のキーボード等からのコマンドを解析してデバッ
ガDBGが理解できる形式に変換して渡すと共に処理結果
を端末のディスプレイ等に返すユーザインターフェース
UIF及びターゲットプログラムTPをMPUの仮想メモリ空
間、たとえば、メモリテーブルMRYTにロードするローダ
LDRから構成されている。
これらのサブシステムの詳細については後述するが、
各サブシステムは互いに独立性が高く、後述するよう
に、たとえば、MPUモジュールMMを切り換えることによ
り種々のMPUのシミュレーションが可能となっている。
また、それぞれのサブシステムは、他のサブシステムか
ら呼び出される関数を有するエントリーモジュールと、
種々の内部処理を行うサブモジュールから構成されてい
る。
第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,MPUモ
ジュールMM,ユーザインターフェースUIF及びローダLDR
の5個のサブシステムから構成されている。
そして、これらのサブシステムに対して、ターゲット
プログラムTP,コンフィグレーションファイルCF,外部事
象ファイルEPF,トレースファイルTF等の外部ファイルが
設けられる。
また、外部テーブルとして、コンフィグレーションテ
ーブルCFGT,外部事象テーブルEPT,コマンドテーブルCMD
T,レジスタ情報テーブルRIT,端子機能テーブルTFT,MPU
実行スタータステーブルMEST,メモリテーブルMRYT,メッ
セージテーブルMSGTが設けられる。更に、外部バッファ
としてメッセージバッファMBが設けられる。
以下、各ファイル及びテーブルの構成の概略について
説明する。なお、項目の詳細については、後述する。
ターゲットプログラムTPは、ユーザがシミュレータ上
で動作させたい、すなわち、デバッグの対象となるヘキ
サフォーマットファイル形式のプログラムであってディ
スクファイルである。なお、ここでディスクファイルと
は、第4図に示すディスク装置6内に格納されるファイ
ルを意味する。
コンフィグレーションファイルは、シミュレーション
の対象となるMPUに対応して、MPU動作クロック,外部事
象ファイルのデフォルトのファイル名,増設RAMやROMの
容量及びアドレス,シリアルクロクの周波数,MPUの種別
等のMPUハードウェアデータを格納するディスクファイ
ルであり、シキュレータSIMの起動に先立って、第2図
に示すコンフィグレーション生成部CGにより必要データ
が生成され、コンフィグレーションファイルCFに格納さ
れる。
また、コンフィグレーションテーブルCFGTは、コンフ
ィグレーションファイルCFに対応するメモリファイルで
ある。このコンフィグレーションテーブルCFGTは、ユー
ザが定義したコンフィグレーションファイルCFを解析し
て生成されるもので第6図に示す構成を有しており、そ
の内容を第1表に示す。
なお、ID番号はMPUの種別を示す8ビットのデータで
あって、たとえば、A/D変換器を内蔵した日本電気株式
会社製の8ビットのMPUであるμPD7810には、「0」を
割り当て、μPD7810のプログラム内蔵型であるμPD7811
には「1」を割り当てる。同様に他の種別のMPUに対し
てもそれぞれ異なったID番号を割り当てる。
外部事象ファイルEPFは、MPUの端子に供給される信号
の性質、たとえば、論理信号名,端子機能名,属性,入
出力種別,開始時間,繰り返し回数,データ自体等を格
納するディスクファイルであって、シミュレータSIMの
起動に先立って、第2図に示す外部事象データ生成部EF
DGによりデータ文として作成される。
論理信号名は、ユーザが任意につける信号名であっ
て、入力を省略したときは以下に説明する端子機能名と
同一になる。
端子機能名は、MPUの端子又は端子群についての名称
であり、後述するように予め決められた名称を使用す
る。
また、属性はデータの属性を指定するもので、「d」
は8ビットデータを意味する。また、「s」は1ビット
データすなわち2値の信号データであることを意味す
る。なお、この属性は端子機能名と対になっている。
入力/出力種別は、入力,出力を区別するもので、
「i」はMPUへの入力を意味し、「o」はMPUからの出力
を意味する。
開始時間は、データの開始時間をMPUのクロック数で
指定するもので、シミュレータが後述する「ラン(ru
n)」又は「ステップ(step)」コマンドにより実行を
開始してからの積算クロックが指定のクロックに達した
時点でデータが有効となる。
繰り返し回数は、指定のデータの繰り返し回数を指定
するものである。
データは、属性にしたがってデータ自体を定義するも
ので、8ビットデータの場合は16進2桁で指定され、信
号データの場合は「h」又は「l」で指定される。
この外部事象ファイルEPFにおけるデータ文の例を以
下に示す。
data sidata,rxd,d,i,150,3,“30,1f" このデータ文で定義された信号は、論理信号名が「si
data」の入力8ビットデータであって、積算クロックが
150の時点から、端子機能名が「rxd」の端子に「30」,
「1f」のデータが3回繰り返して供給されることを示し
ている。
data adata0,pa0,s,i,10,3,“h,l,l,l" また、このデータ文で定義された信号は、論理信号名
が「adata0」の入力信号データであって、積算クロック
が10の時点から、端子機能名が「pa0」の端子ハイレベ
ル,ローレベル,ローレベル,ローレベルの信号が3回
繰り返して供給されることを示している。
また、外部事象テーブルEPTは、デバッガDBGから知ら
される上述の外部事象ファイルEPFのデータをフォーマ
ット変換して一時的に格納するメインメモリ2上のテー
ブルである。この外部事象テーブルEPTの構成の一例を
第7図に示し、その内容を第2表に示す。
また、レジスタ情報テーブルRITは、MPUの各レジスタ
に関する情報を格納するメインメモリ2上のテーブルで
あって第8図に示す構成を有しており、その内容を第3
表に示す。このレジスタ情報テーブルRITは、各MPUに対
応して複数組設けられている。
前述のμPD7811の場合のレジスタの一例を第4表に示
す。なお、第4表(a)は一般レジスタ,同表(b)は
特殊レジスタ,同表(c)はリクエストレジスタを示し
ている。
なお、このμPD7811の各レジスタの詳細については、
日本電気株式会社発行の「μCOM−87AD μPD7811ユー
ザーズ・マニュアル(IEM768G)」に記載があるので、
ここではレジスタの種類を挙げるにとどめ詳細な説明は
省略する。
端子機能テーブルTFTは、MPUの端子機能に関する情報
を格納するメインメモリ2上のテーブルであり、第9図
に示す構成を有しており、その内容を第5表に示す。端
子機能テーブルTFTも各MPUに対応して複数組設けられて
いる。
端子機能名は、MPUの端子又は端子群についての名称
であり、予め決められた名称を使用する。ターゲットの
MPUとしてμPD7811を使用する場合の端子機能名の一例
を第6表に示す。なお、表中、入力出力種別の欄のIは
入力,Oは出力,I/Oは入出力を示している。
上述のμPD7811自体のハードウェア構成の概略を第10
図に示す。なお、このμPD7811自体の構成については、
前述の「μCOM−87AD μPD7811ユーザーズ・マニュア
ル(IEM768G)」に詳細に述べられていので、ここで
は、概略を説明するにとどめる。
第10図に示されるMPUにおいて、実行すべきプログラ
ムはプログラムメモリPMに格納されている。プログラム
の実行に際しては、レジスタ部RBのプログラムカウンタ
ICにより指示されたアドレスの命令がインストラクショ
ンレジスタIRに格納され、インストラクションデコーダ
IDで解釈される。そして、この解釈結果に基づき、内部
データ或いは外部から入力されたデータに対して必要な
処理を行う。命令及びデータは、内部データバスIDB内
を流れており、演算が必要なデータは、ラッチLTC1,LTC
2を介して算術論理回路ALUに供給され、指定された演算
が行われる。この際、実行に必要な外部データは、シリ
アル入出力SIO、割り込み制御部INTC,タイマTIMER,タイ
マ/イベントカウンタTEC,A/D変換器ADC,ポート部PB等
から入力される。演算後のフラグの状態はプログラムス
テータスワード部PSWに格納される。
演算後のデータは、レジスタ部RB内の所定のレジスタ
或いはデータメモリDMに格納される。また、必要に応じ
てシリアル入出力部SIO、タイマTIMER,タイマ/イベン
トカウンタTEC,ポート部PB等を介して、MPUの外部に出
力される。
以下、、第5図に戻って説明する。
メモリテーブルMRYTは、ターゲットプログラムTPがロ
ードされる64Kバイトのアドレス空間を有するメインメ
モリ2上のテーブルである。
コマンドテーブルCMDTは、ユーザインターフェースUI
FとデバッガDBGとの中間にあり、ユーザから正しい入力
があった場合に、ユーザインターフェースUIFがデータ
をセットするメインメモリ2上のテーブルであり、第11
図に示す構成を有しており、その内容を第7表に示す。
デバッガDBGはセットされたコマンド番号及びパラメ
ータに応じて処理を行う。
また、メッセージテーブルMSGTはディスプレイ5に出
力するためのメッセージを格納したメインメモリ2上の
テーブルである。
次に、MPU実行ステータステーブルMESTは、MPUの実行
動作に関する情報を有するメインメモリ2上のテーブル
であり、MPUモジュールMMからデバッガDBGへ、命令実行
中に起きたエラー等を報告するためのものであり。この
MPU実行ステータステーブルMESTは、第12図に示す構成
を有しており、その内容例を第8表に示す。
各項目について説明すると、先ず、リセット信号継続
は、MPUのリセット端子への入力がローレベルのままハ
イレベルにならない場合に、MPUモジュールMMによって
セットされるものである。リセット信号有無は、MPUの
リセット端子へローレベルの入力があった場合に、MPU
モジュールMMによってセットされるものである。ホール
ト命令実行有無は、ホールト命令すなわち、MPUの停止
命令があったかどうかを示している。ポートアクセスエ
ラーは、MPUのポートに不当なアクセスがあったかどう
かを示しており、たとえば、入力端子へデータを書き込
もうとした命令があった場合にセットされる。アドレス
アクセスエラーは、不当なアドレスがアクセスされたこ
とを示しており、たとえば、コンフィグレーションファ
イルCFで定義されていないアドレス領域がアクセスされ
たような場合にセットされる。インストラクション実行
エラーは、インストラクション実行中にエラーが生じた
ことを示すもので、たとえば、定義されていないインス
トラクションがあったような場合にセットされる。演算
エラーは、演算中にエラーが発生したことを示すもの
で、たとえば、0で除算した場合、或いは、桁溢れが生
じたような場合にセットされる。最後のメモリマップエ
ラーは、メモリへのアクセスが不当であることを示して
おり、たとえば、ROM領域にデータを書き込もうとした
命令があった場合にセットされる。
次に、各サブシステムの内部テーブルについて説明す
る。
デバッガDBGには、内部テーブルとして、デバッガス
テータステーブルDST,ブレークポイントテーブルBPT,ト
レースモードテーブルTMT,ラインバッファLB及びメッセ
ージ編集テーブルMET等が設けられている。
デバッガステータステーブルDSTは、デバッガDBGの実
行動作に関する各種情報を格納するメインメモリ2の上
のテーブルであり、第13図に示す構成を有しており、そ
の内容を第9表に示す。
なお、このデバッガステータステーブルDSTの初期状
態は、シミュレーションモード,ターゲットプログラム
無,外部事象ファイル無に設定されている。また、MPU
状態は、第12図に示すMPU実行ステータステーブルMEST
(第8表参照)の内容を複写したもので、1ステップ実
行が終了するたびに外部テーブルのMPU実行ステータス
テーブルMESTから読み込まれて更新される。
ブレークポイントテーブルBPTは、ブレークポイント
の情報を格納するメインメモリ2上のテーブルであり、
たとえば、第14図に示すように5個のブレークポイント
の設定が可能な構成を有している。ブレークポイントの
設定例を第10表に示す。
第10表の例では、a090番地,bb12番地及び0210番地
(いずれも16進表示)の3ヵ所でプログラムが一旦停止
する。なお、表中の−1はブレークポイントが未設定で
あることを示している。
トレースモードテーブルTMTは、トレース実行の各種
のモードを格納するメインメモリ2上のテーブルであ
り、第15図に示す構成を有しており、その内容を第11表
に示す。
なお、初期状態では、トレース無,ファイルクローズ
となっている。
ラインバッファLBは、ユーザインターフェースUIFか
ら1行の入力を受け取るメモリバッファであり、たとえ
ば、キャラクタデータを256個格納する容量を有してい
る。
メッセージ編集テーブルMETは、メッセージ編集用の
メモリバッファであり、たとえば、キャラクタデータを
256個格納する容量を有している。
次に、MPUモジュールMMの内部テーブルについて説明
する。
MPUモジュールMMには、内部テーブルとして、レジス
タテーブルRT,端子テーブルTT,MPUステータステーブルM
ST,ベースクロックテーブルBCT,実行タイマテーブルET
T,命令セットテーブルIST及び命令解析テーブルIATが設
けられている。
レジスタテーブルRTは、全てのレジスタを実際のMPU
のレジスタと同じサイズで持ち、実情報を格納するメイ
ンメモリ2上のテーブルであり、第16図に示すように、
一般レジスタテーブル,特殊レジスタテーブル,リクエ
ストレジスタテーブル及びプログラムステータスワード
テーブルから構成されている。この一般レジスタテーブ
ル,特殊レジスタテーブル及びリクエストレジスタテー
ブル、先に述べた第4表(a),(b)及び(c)に記
載の各レジスタに対応している。また、プログラムステ
ータスワードテーブルは、MPUのプログラムステータス
ワード部(第10図においてPSWで示す)と同じ機能を有
するメインメモリ2上のテーブルであり、ゼロフラグ,
スキップフラグ,ハーフキャリフラグ,L1フラグ,L0フラ
グ,キャリフラグ等の領域がある。
端子テーブルTTは、端子機能に関する実情報を格納す
るメインメモリ2上のテーブルであり、第17図に示す構
成を有しており、その内容を第12表に示す。
MPUステータスステーブルMSTは、MPUの実行動作モー
ドに関する情報を持つメインメモリ2上のテーブルであ
り、第18図に示す構成を有しており、その内容を第13表
に示す。
なお、リセット情報は、リセット端子へのローレベル
入力をクロック換算したもので、ここでは、クロック数
が60を超えるとMPUのリセットを行うようになってい
る。また、EIは割り込み受付可能状態を示し、DIは割り
込み受付不可能状態を示す。
ベースクロックテーブルBCTは、クロック動作に関す
る情報を持つメインメモリ2上のテーブルであり、第19
図に示す構造を有しており、レベル0がハイレベルであ
るかローレベルであるか,レベル0の時間間隔,レベル
1がハイレベルであるかローレブルであるか,レベル1
の時間間隔,1クロックの時間間隔,現在のレベルがハイ
レベルであるかローレベルであるか,1クロック相対時
間,クロックカウント数及び合計クロック数の情報を有
している。
実行タイマテーブルETTは、実行時間に関する情報を
持つメモリ上のテーブルであり、第20図に示す構造を有
しており、1基本クロック時間,合計実行時間,合計実
行クロック数,1命令時間,1命令ステート数,1クロック
数,合計ステップ数,割り込みクロック数及び割り込み
時間から構成されている。
命令セットテーブルISTは、命令毎にオペレーション
コード,分類コード,実行時に要するステート数等に関
する情報を持つメモリ上のテーブルであり、後述する命
令解析の際に参照される。
最後の命令解析テーブルIATは、メモリテーブルMRYT
から読み込まれたターゲットプログラムのオブジェクト
を解析して実行するための各種の情報を持つメインメモ
リ2上のテーブルであり、第21図に示す構造を有してお
り、命令コード番号,第1オペランド,第2オペラン
ド,命令コード長,第1ステート数,第2ステート数の
情報を有している。
上述のベースクロックテーブルBCT,実行タイマテーブ
ルETT,命令解析テーブルIATがどのように参照されるか
については、後述する。
更に、ユーザインターフェースUIFには、コマンド分
類テーブルCDT,コマンドセットテーブルCST,コマンドチ
ェックテーブルCCT等が設けられている。
コマンド分類テーブルCDTは、ユーザのコマンド入力
毎に、コマンドラインの内容を、コマンド,区切り記
号,パラメータに分類してセットするテーブルである
(第22図参照)。また、コマンドセットテーブルCSTに
は、コマンド毎にコマンド番号,コマンド文字列,パラ
メータのデフォルト値及び入力形式がコード化して登録
されている(第23図参照)。更に、コマンドチェックテ
ーブルCCTは、ユーザのコマンド入力毎に、コマンドセ
ットテーブルCSTの中から該当コマンドの登録内容が複
写されるテンポラリテーブルである。ユーザが入力した
コマンドの文字列がコマンドセットテーブルCSTの文字
列の内容と一致すると、このテーブルが作成され、ユー
ザ入力が正しいものかどうかが調べられる。
この結果、そのコマンドが正しければ、外部テーブル
として設けられたコマンドテーブルCMDTにセットされ
る。
第24図はこれらのコマンド分類テーブルCDT,コマンド
セットテーブルCST及びコマンドチェックテーブルCCTの
関係を模式的に図示したものである。
次に、MPUモジュールMMの各エントリーモジュールに
ついて説明する。
MPUモジュールMMとしては、下記の機能が求められ
る。
(i)MUPの1命令(インストラクション)を実行す
る。
(ii)デバッガDBGの求めにより、MPUのステータス情
報,レジスタ,メモリ内容等を通知する。
(iii)デバッガDBGの指定したレジスタ,メモリ領域の
値を設定する。
(iv)デバッガDBGから外部入力が知らされ、また、逆
に外部出力の内容をデバッガDBGに知らせる。
これらの機能を実現するため、MPUモジュールMMは以
下の複数のエントリー関数を有している。
c−initial:レジスタテーブルRT,端子テーブルTT等に
アクセスして、MPUの状態をハードウェアにおけるリセ
ット状態にする関数 c−asmadrs:アセンブラステートメント入力時の開始ア
ドレスを格納する関数 c−asm:アセンブラステートメントをオブジェクトコー
ドに変換し、メモリテーブルMRYT内の所定のメモリ空間
に格納する関数 c−disasm:命令解析テーブルIATを参照して指定のメモ
リ範囲を逆アセンブライメージでメッセージバッファMB
に書き込む関数 c−memprint:指定のメモリ範囲を指定形式の表示イメ
ージでメッセージバッファMBに書き込む関数 c−regprint:指定されたレジスタの内容を指定形式の
表示イメージでメッセージバッファMBに書き込む関数 c−memwrite:指定のアドレスへ指定のデータを書き込
む関数 c−regwrite:指定のレジスタへ指定のデータを書き込
む関数 c−memfill:指定のメモリ範囲を指定のデータで埋める
関数 c−inpadrs:16進データを連続入力する開始アドレスを
格納する関数 c−input:入力した16進データを前記関数 「c−inpadrs」で指定したアドレスから順次書き込
む関数 c−exec:現在のプログラムカウンタが指すアドレスの
1ステップを実行する関数 なお、この関数「c−exec」では、基本的には以下に
示す順序で処理が行われる。
第25図を参照して説明する。先ず、実行に先立って実
行ステータスフラグがクリアされる(ステップ51)。
(1) 命令解析 命令毎にオペレーションコード,分類コード,実行時
に要するステート数等が登録されているMPUモジュールM
M内の命令セットテーブルISTを参照して、実行内容,実
行に要する時間等を解析し、解析内容を命令解析テーブ
ルIATへセットする。
(2) 命令実行 命令解析テーブルIATの内容により命令を実行する。
また、この命令によりレジスタテーブルRT,メモリテー
ブルMRYT,端子テーブルTT等へアクセスする。更に、ホ
ールト命令や,メモリアクセスエラーがあると、MPU実
行ステータステーブルMESTへその内容を書き込む(以
上、ステップ52)。
(3) 実行時間更新 実行時間に関する各種情報が格納されている実行タイ
マテーブルETTを更新する。
(4) ベースクロック更新 タイマ,イベント機能等の機能実行の際に参照される
ベースクロックテーブルBCTを更新する。
(5) 機能実行 MPUのタイマ,イベント,シリアルインターフェース
機能等を実行する。この機能実行の際には、ベースクロ
ックテーブルBCTが参照され、また、端子テーブルTT,レ
ジスタテーブルRTがアクセスされる(以上、ステップ5
3)。
(6) トレース実行 MPUステータステーブルMST内のトレースの設定によ
り、内部トレース,外部トレースの処理を行い、処理結
果をトレースファイルTFへ書き込む(ステップ54〜5
7)。
(7) 割り込み解析実行 レジスタテーブルRT内フラグを参照し、割り込みがあ
ったかどうか判定する。割り込みがあった場合は、レジ
スタテーブルRT内のプログラムカウンタICを、割り込み
プログラムのスタートアドレスに書き換える(ステップ
58)。
(8) 外部事象取り込み MPUステータステーブルMST内の実行モードがシミュレ
ーションモードであるときは、実行タイマテーブルETT
を参照しながら、外部事象テーブルEPTから外部事象を
取り込み、端子テーブルTT等をセットする(ステップ5
9)。
そして、最後にリターンする。
以上が、関数「c−exec」の説明である。
以下、関数の説明を続ける。
c−time:実行タイマテーブルETTを参照して直前の実行
時間を知らせる関数 c−status:MPUステータステーブルMSTを参照して現在
のステータスを返す関数 c−exin:外部事象テーブルEPTを参照して外部入力事象
を取り込む関数 c−exout:外部事象入力を知らせる関数 c−config:MPUステータステーブルMSTを参照してMPU動
作環境の設定を行う関数 c−opbyte:は、現在のプログラムカウンタの指す命令
の命令バイト数を返す関数 次に、ユーザインターフェースUIFにおける関数につ
いて説明する。
ユーザインターフェースUIFは、キーボード4,ディス
プレーイ5等の端末の入出処理を行うもので、デバッガ
DBGからの要求により下記の機能が果たす必要がある。
(i)デバッガDBGからの出力をディスプレイ5に表示
する。
(ii)キーボード4からのコマンドラインを入力して解
析し、デバッガDBGが理解できる形式に変換する。この
とき、文法エラーのチェックを行う。
(iii)キーボード4からの入力1行をそのままデバッ
ガDBGに渡す。
(iv)キーボード4からの入力1文字をそのままデバッ
ガDBGに渡す。
これらの機能を実現するため、ユーザインターフェー
スUIFは以下に説明する複数のエントリー関数を有して
いる。
u−display:与えられた文字列データを端末のディスプ
レイ5に表示する関数 u−comin:入力されたコマンドに対してコマンドテーブ
ルCMDT,レジスタ情報テーブルRIT,端子機能テーブルTFT
等を参照して文法チェックを行うと共に、文法的に正し
ければコマンドテーブルCMDTに所定のコマンド番号及び
パラメータをセットしてデバッガDBGへリターンする関
数 u−getline:キーボード4の改行キーが押されるまでの
1行の文字列を受け取り、ファイルポインタにより指定
されたテンポラリメモリバッファ(図示せず)のアドレ
スにその内容を書き込む関数 u−getchar:キーボード4から1文字を受け取り、その
文字をそのまま関数値としてデバッガDBGへ返す関数 次に、各サブシステムの機能の詳細について、第5図
のサブシステム関連図及び第26図のフローチャートを参
照して、操作の手順に従って説明する。なお、以下の説
明において特に注記している箇所を除いて各ステップの
処理はデバッガDBGにより行われる。
なお、シミュレータSIMの起動に先立って、第2図に
示すコンフィグレーション生成部CGにより、使用するMP
Uに対応して必要なデータを生成してコンフィグレーシ
ョンファイルCFに格納しておく。同様に、外部事象デー
タ生成部EPDGにより、必要なテストデータを生成し、こ
れを外部事象ファイルEPFに格納しておく。
シミュレータSIMは、前記UNIXのコマンドレベルの所
定の起動コマンドにより起動され、ターゲットプログラ
ムTPを読み込むベきことをデバッガDBGに知らせる。た
とえば、シミュレーションの対象となるMPUが、前述の
μPD7811であり、デバッグすべきターゲットプログラム
TPのファイル名が「test」である場合は、第4図に示さ
れるキーボード4から、「mpu7811 test」と入力する。
このようにシミュレータSIMが起動されると、先ず、
コンフィグレーションファイルCFがロードされ(ステッ
プ101)、次いでデハッガDBG,MPUモジュールMMの内部テ
ーブルが初期化される(ステップ102)。
また、デバッガDBGはローダLDRを呼び出してターゲッ
トプログラムTPをメモリテーブルMRYTにロードする(ス
テップ103)。次いで、外部事象ファイルEPFがロードさ
れ(ステップ104)、デバッガDBGからユーザインターフ
ェースUIFが呼び出され、デバッガコマンドの入力待ち
となり(ステップ105)ユーザの入力を受け付ける(ス
テップ106)。なお、これらのステップ105,106はユーザ
インターフェースUIFにより行われる。
すなわち、ステップ105になると、デバッガDBGからユ
ーザインターフェースUIFが call u−comin( ) の形式で呼び出され、キーボード4からシミュレータSI
Mのコマンドを待つ。そして、ユーザが1行入力した時
点でコマンドテーブルCMDTを参照した文法エラーのチェ
ックを行なう。文法エラーがあった場合は、ユーザイン
ターフェースUIFの関数「u−display」を呼び出してエ
ラーメッセージを表示させ、関数値を0としてデバッガ
DBGにリターンする。また、文法的に正しければ、コマ
ンドテーブルCMDTに必要なパラメータをセットすると共
に、関数値にコマンド番号をセットしてデバッガDBGに
リターンする。なお、この関数「u−comin」が呼ばれ
たときは、ディスプレイ5にプロンプトとして「(mp
u)」を表示する。
デバッガコマンドの一例を以下に示す。
アセンブルコマンド「asm」は、メモリ内容をアセン
ブラニーモニックにより変更するコマンドである。この
「asm」コマンドを受けると、デバッガDBGは起点アドレ
スのチェックをしたのち、MPUモジュールMMの関数「c
−asmadrs」を呼び出し、アセンブラ入力の起点アドレ
スを通知する。その後、アセンブラニーモニックの入力
モードになったことをユーザインターフェースUIFの関
数「u−display」の通じてユーザに知らせる。アセン
ブラニーモニックの入力モードになると、ユーザインタ
ーフェースUIFの関数「u−getline」が呼び出される。
この関数「u−getline」は、入力に対して文法エラー
のチェックを行うことなく改行キー入力までの1行文の
入力をそのまま返す。デバッガDBGはこれをMPUモジュー
ルMMにそのまま渡し、MPUモジュールMMはこのステート
メントを解析し、オブジェクトに変換したのち所定番地
に格納する。通常時には、MPUモジュールMMはそのまま
次の入力を待つが、異常時にはその旨のエラーメッセー
ジを表示したのち入力を待つ。なお、入力が改行キーの
みであるときは、アセンブラニーモニックの入力モード
が解除され、関数「u−comin」が呼び出されてコマン
ド入力モードとなる。
たとえば、メモリの0215番地以降のプログラム内容を
「mvi a,00h」に対応するデータに変更する場合「(mp
u)」のプロンプトが表示されている状態で、「0215」
とアドレスを入力して改行キーを押すと、この入力され
たアドレスがプロンプトとなって入力待ちとなり、次い
で、「mvi a,00h」と入力して改行キーを押すと、入力
されたアセンブラステートメント、すなわち、「mvi a,
00h」がオブジェクトに変換されて、0215番地に「69」
が、0216番地に「00」が格納される。なお、「mvi a,00
h」は、16進数の「00」をAレジスタに入れるμPD7810
及びμPD7811の命令である。
ブレークコマンド「break」は、最大5個のブレーク
ポイントを設定するコマンドであり、このコマンドを受
けるとデバッガDBGはブレークポイントテーブルBPTの内
容を書き換える。なお、デバッガDBGは、1ステップ実
行前にMPUモジュールMMに対してプログラムカウンタ値
及び命令バイト数を問い合わせ、ブレークポイントがこ
れから実行しようとするプログラムのアドレス空間に含
まれる場合は、ブレークポイントでプログラムの実行を
停止する。
クリアコマント「clear」は、上記「break」コマンド
で設定したブレークポイントを解除するコマンドであ
る。
デバッグコマンド「debug」は、シミュレータを初期
化するコマンドであり、ターゲットプログラムが指定さ
れている場合、このプログラムがメモリテーブルMRYT上
にロードされる。
ディスアセンブルコマンド「disasemble」は、メモリ
の内容をディスアセンブルして、アセンブラニーモーニ
ックで表示するコマンドである。このコマンドは、起点
アドレス及びワード数をパラメータにしてMPUモジュー
ルMMの関数「c−disasm」を呼び出す。MPUモジュールM
Mは逆アセンブルの結果を表示イメージで作成してメッ
セージバッファMBに格納したのちデバッガDBGにリター
ンする。デバッガDBGはその結果をユーザインターフェ
ースUIFを介してディスプレイ5に表示する。
外部事象ロードコマンド「external」は、指定の外部
事象ファイルEPFの内容をメモリテーブユMRYT上にロー
ドするコマンドである。
フィルコマンド「fill」は、メモリテーブルMRYTの指
定範囲のアドレス空間を指定データで埋めるコマンドで
ある。
ヘルプコマンド「help」は、MPUシミュレータの全て
のコマンドの一覧表を表示するコマンドである。
インプットコマンド「input」は、指定アドレスから
連続して16進データをセットするコマンドである。
モードコマンド「mode」は、シミュレータの実行モー
ドの指定・変更を行うコマンドである。本実施例のシミ
ュレータの実行モードは、プログラムモードとシミュレ
ーションモードの2通りあり、プログラムモードではタ
ーゲットプログラムTPの実行動作のみを行い、シミュレ
ーションモードでは外部事象を含めたシミュレーション
を行う。シミュレーション起動時には、自動的にシミュ
レーションモードとなるが、この「mode」コマンドによ
り実行モードを変更することができる。
プリントコマンド「print」は、MPUのレジスタ,メモ
リ通の内容を表示するコマンドであり、起点アドレス及
びワード数或いはレジスタ名及び表示形式をパラメータ
にしてMPUモジュールMMの関数「c−memprint」或いは
「c−regprint」を呼び出す。MPUモジュールMMは指定
アドレス空間或いは指定レジスタのデータを表示イメー
ジで作成してメッセージバッファMBに格納したのちデバ
ッガDBGにリターンする。デバッガDBGはその結果をユー
ザインターフェースUIFを介してディスプレイ5に表示
する。
終了コマンド「quit」は、シミュレーションを終了す
るコマンドであって、このコマンドの入力により前記UN
IXのコマンドレベルに戻る。
ランコマンド「run」は、ターゲットプログラムTPを
指定のアドレスから実行するコマンドである。このコマ
ンドを受けると、デバッガDBGはMPUモジュールMMに対し
て実行を命じる。MPUモジュールMMでは、レジスタテー
ブルRTのプログラムカウンタの値を指定されたアドレス
に書き換えたのち、プログラムを1ステップごとに実行
する。1ステップの実行においては、デバッガDBGは、
デバッガステータステーブルDSTにより現在の設定ステ
ータスを参照する。
ブレークポイント表示コマンド「show break」は、現
在のブレークポイント全てについて設定状況の一覧表を
表示するコマンドである。
ステップコマンド「step」は、現在のプログラムカウ
ンタが指すアドレスを1ステップだけ実行したのち停止
するコマンドである。
ステータコマンド「status」は、現在のシミュレータ
動作環境等を表示するコマンドで、たとえば、デバッガ
ステータステーブルDSTを参照して、シミュレータ実行
モード,MPU種別,MPU動作クロック,ターゲットプログラ
ム名,外部事象ファイル名,現在のプログラムカウンタ
の値,トレースモード設定状況を表示する。
トレースコマンド「trace」は、内部或いは外部事象
の発生をトレースし、その内容をディスプレイ5に表示
すると共にトレースファイルTFに格納するコマンドであ
る。
書き込みコマンド「write」は、指定のメモリ或いは
レジスタに値をセットするコマンドである。
なお、上述の「run」コマンド実行中にコントロール
Cとすると、実行中のターゲットプログラムは停止し、
コマンド待ちとなる。なお、コントロールCとは、キー
ボード4のコントロールキーを押しながら「C」のキー
を押すことを意味する。
本実施例のMPUシミュレータを使用してソフトウェア
単体のデバッグを行う際の基本的な流れとしては、プロ
グラムの実行に先立ち、入力データをセットし、デバッ
グの対象となるプログラムユニットの出口にブレークポ
イントを設定したのち、プログラムユニットの先頭から
実行する。そして、ブレークポイントで止まった時点で
出力データを参照し、予め想定していたデータを一致す
るかどうか検査する。不一致があった場合は、どこにバ
グが存在しているかをデバッガコマンドを使用して見つ
け出す。
キーボード4から入力されたコマンドラインは、ユー
ザインターフェースUIFにより解析され、デバッガDBGが
理解できる形式に変換される。
ユーザの入力が終了コマンド、すなわち、「quit」で
あったときは、MPUシミュレータの動作を終了させる
(ステップ107)。また、「quit」以外のコマンドであ
り且つMPUインストラクション実行コマンドでない場
合、たとえば、「write」,「print」,「break」等で
あった場合、それぞれのコマンドが実行される(ステッ
プ108,117)。そして、その実行結果がユーザインター
フェースUIFに通知され(ステップ118)、ユーザインタ
ーフェースUIFにより実行結果がディスプレイ5に表示
される(ステップ119)。
また、ユーザの入力がMPUインストラクション実行コ
マンド、すなわち、「run」,「step」コマンドであっ
たときは(ステップ108)、シミュレーションモードで
あるかどうかデバッガステータステーブルDSTを参照し
て判別し(ステップ109)、シミュレーションモードで
あるときは、外部事象ファイルEPFから外部入力データ
をセットする(ステップ110)。次いで、MPUモジュール
MMによりMPUインストラクション実行のシミュレーショ
ンが行われた(ステップ111)のち、タイマ,タイマ/
イベントカウンタ処理等のMPUの内部機能が実行され
(ステップ112)、更に、インストラクション実行結果
のデバッガDBGへの通知等が行われる(ステップ113)。
なお、シミュレーションモードでないとき、すなわち、
プログラムモードのときは、ターゲットプログラムの実
行動作のみを行い外部入力データは不要であるので、外
部入力データのセット(ステップ110)はスキップされ
る。なお、ステップ111,112,113は、デバッガDBGではな
く、MPUモジュールMMにより実行される。
インストラクション実行結果は、更にユーザインター
フェースUIFへ通知され(ステップ114)、このユーザイ
ンターフェースUIFにより実行結果の表示が第4図に示
されるディスプレイ5により行われる(ステップ11
5)。
たとえば、a090番地にブレークポイントがセットされ
ている場合、a090番地を含むアドレス空間でプログラム
を実行すると途中でターゲットプログラムの実行が停止
し、 「break at break1(a090)」 という表示が行われる。この表示は、ターゲットプログ
ラムの実行が、第1ブレークポイントのアドレスである
a090番地で停止したことを意味している。この状態で
「print」コマンドを使用してレジスタやメモリの内容
を表示させ、予期した値と一致するかどうか検査する。
一致した場合、コマンドとして「run a090」を入力
し、このブレークポイントからターゲットプログラムの
実行を再開させ、次のブレークポイントまでプログラム
を実行させる。
この操作をブレークポイント毎に行う。
出力されたレジスタやメモリの内容が予期した値と一
致しない場合は、たとえば、「trace」コマンドにより
ブレークポイントに至るまでのレジスタやメモリの変化
を、MPUのインストラクション毎に表示させてバグの位
置を探す。このトレースモードにおいては、デバッガDB
GのトレースモードテーブルTMTが参照され、指定された
トレースモードに応じて,内部トレース,外部トレース
或いは両方のトレースが行われ、トレース結果がディス
プレイ5に表示されると共にトレースファイルTFに格納
される。なお、内部トレースの場合は、MPUの実行によ
るレジスタ,メモリ,内部機能トレースする。また、外
部トレースの場合は、外部事象ファイルEPFから取り込
んだ外部入力、及び、MPUからのポート出力,シリアル
出力等をトレースする。そして、バグが発見されたら、
ターゲットプログラムをオブジェクトレベルで修正す
る。たとえば、「asm」コマンドにより、該当番地のメ
モリ内容をアセンブラニーモニックにより変更する。
なお、このデバッグ作業のためには、「berak」,「p
rint」,「trace」,「asm」コマンドの他に、先に述べ
た各種デバッガコマンドが使用される。
上述の作業の繰り返しによりデバッグ作業が行われ
る。
ターゲットプログラムの複数ステップにわたる実行の
シミュレーションが指示された場合、指定された全イン
ストラクションの実行が終了するまでは、ステップ116
からステップ109に戻る。全インストラクションの実行
が終了するとデバッガコマンドの入力待ちに戻る(ステ
ップ116,105)。
上述のように、本実施例のシミュレータにおいては、
シミュレーション実行の際には、ローダLDRによりター
ゲットプログラムTPがメモリテーブルMRYTにロードさ
れ、コンフィグレーションファイルCF及び外部事業ファ
イルEPFのデータに基づいてMPUモジュールMMでMPU動作
のシミュレーションを行う。すなわち、設定されたハー
ドウェア環境のもとでテストデータに応じてターゲット
プログラムTPが実行される。そして、シミュレーション
の結果は、ディスプレイ5(第4図参照)に表示され
る。
ユーザは、このシミュレーションの結果をチェック
し、トラブルが発生した場合は、デバッガコマンドによ
り原因を解析する。トラブル解析の結果、バグが発見さ
れた場合は、デバッガコマンドによりターゲットプログ
ラムを修正する。
上記作業を各種条件、例えば、テストデータを変更し
ながら繰り返すことによりデバッグが終了し、バグのな
いオブジェクトプログラムが得られる。
このとき、MPUに固有な情報の部分、すなわち、レジ
スタ構造,端子構造及びインストラクション体系等に関
係する部分は独立したモジュール、すなわち、レジスタ
情報テーブルRIT,端子機能テーブルTFT及びMPUモジュー
ルMMとなっているので、シミュレーションの対象となる
MPUに応じてこれらのテーブル及びモジュールを切り換
えればよい。
〔発明の効果〕
以上述べたように、本発明によれば、MPUを使用した
機器のソフトウェアを開発する際に、ハードウェア環境
及び外部事象のデータをファイル化しておき、このファ
イルのデータに基づいてシミュレーションを行う。した
がって、実際の装置を使用することなくソフトウェア単
体でのデバッグが可能となりデバッグ効率を高めること
ができる。このとき、MPUモジュールを独立して設け、
このMPUモジュールにMPU固有の処理を受け持たせてい
る。したがって、MPUの種別が変更となっても、デバッ
ガ本体,ユーザインターフェース等を変更する必要はな
く、MPUモジュールを切り換えればこれに対応すること
ができる。これにより従来のように、各MPUに対してそ
れぞれ独立のシミュレータを用意する必要がなくなりソ
フトウェアの開発費用を抑えることができる。
【図面の簡単な説明】
第1図は本発明のMPUシミュレータを説明するための原
理図、第2図はMPUシミュレータと複写機シミュレータ
全体との階層関係を示すブロック図、第3図はMPUシミ
ュレータのソフトウェア構造を示す説明図、第4図はMP
Uシミュレータのハードウェア構成を示すブロック図、
第5図はMPUシミュレータを構成する各サブシステムと
ファイル及びテーブルとの関係を示す説明図、第6図は
コンフィグレーションテーブルの構成を示す説明図、第
7図は外部事象テーブルの構成を示す説明図、第8図は
レジスタ情報テーブルの構成を示す説明図、第9図は端
子機能テーブルの構成を示す説明図、第10図はシミュレ
ーションの対象となるMPUの構造の一例を示す概略ブロ
ック図、第11図はコマンドテーブルの構成を示す説明
図、第12図はMPU実行ステータステーブルの構成を示す
説明図、第13図はデバッグステータステーブルの構成を
示す説明図、第14図はブレークポイントテーブルの構成
を示す説明図、第15図はトレースモードテーブルの構成
を示す説明図、第16図はレジスタテーブルの構成を示す
説明図、第17図は端子テーブルの構成を示す説明図、第
18図はMPUステータステーブルの構成を示す説明図、第1
9図はベースクロックテーブルの構成を示す説明図、第2
0図は実行タイマテーブルの構成を示す説明図、第21図
は命令解析テーブルの構成を示す説明図、第22図はコマ
ンド分類テーブルの構成を示す説明図、第23図はコマン
ドセットテーブルの構成を示す説明図、第24図はコマン
ド関連テーブル間の関係を示す説明図、第25図はMPUモ
ジュールにおける関数の処理の流れの一例を示すフロー
チャート、第26図は本実施例のMPUシミュレータにおけ
るシミュレーション動作の流れを説明するためのフロー
チャートである。また、第27図はMPUにより制御される
複写機の概略を示す説明図、第28図はMPUにより制御さ
れる機器を開発する際の一般的な手順を示す工程図であ
る。 CF:コンフィグレーションファイル DBG:デバッガ EPF:外部事象ファイル MM:MPUモジュール MRYT:メモリテーブル TP:ターゲットプログラム UIF:ユーザインターフェース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 金子 康人 神奈川県海老名市本郷2274番地 富士ゼ ロックス株式会社海老名事業所内 (56)参考文献 特開 昭60−72038(JP,A) 特開 昭61−42040(JP,A) 特開 昭63−126043(JP,A) 特開 昭58−35647(JP,A) 特開 昭59−68034(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 11/22 - 11/34

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】電気機器の動作を制御するMPUであって、
    少なくとも前記電気機器の動作状態を示す信号が入力さ
    れるMPUの動作を制御するターゲットプログラムの実行
    をシミュレートするMPUシミュレーション方法であっ
    て、 シミュレーションの対象となるMPUのハードウェア構成
    情報及び前記MPUの端子に供給する前記電気機器の動作
    状態を示す信号を含む各種タイミング信号をファイルデ
    ータとして読み込むと共に、デバッグの対象となるダー
    ゲットプログラムのデータを読み込み、これらのデータ
    を使用してシミュレーションの対象となるMPUに固有の
    命令実行構造にしたがってターゲットプログラムの実行
    をシミュレートすることを特徴とするMPUシミュレーシ
    ョン方法。
  2. 【請求項2】前記ハードウェア構成情報は、構成情報フ
    ァイルに格納され、前記各種タイミング信号は、外部事
    象ファイルに格納されていることを特徴とする請求項1
    記載のMPUシミュレーション方法。
  3. 【請求項3】前記ターゲットプログラムはシミュレーシ
    ョンに先立ち、メモリテーブルにロードされることを特
    徴とする請求項1記載のMPUシミュレーション方法。
  4. 【請求項4】MPUの種類ごとに前記ターゲットプログラ
    ムの実行のシミュレーションを行うMPUモジュールを設
    けると共に、該MPUモジュールに対するコマンドの入力
    及び該MPUモジュールからの出力の表示を行うユーザイ
    ンターフェースを設けたことを特徴とする請求項1記載
    のMPUシミュレーション方法。
  5. 【請求項5】前記ユーザインターフェースを介して入力
    されたコマンドに基づいて、前記ターゲットプログラム
    がロードされているメモリテーブルの内容の変更,表
    示,ターゲットプログラムの実行,停止等を前記MPUモ
    ジュールに指示するデバッガを設けたことを特徴とする
    請求項4記載のMPUシミュレーション方法。
  6. 【請求項6】電気機器の動作を制御するMPUであって、
    少なくとも前記電気機器の動作状態を示す信号が入力さ
    れるMPUの動作を制御するターゲットプログラムの実行
    をシミュレートするMPUシミュレータであって、 シミュレーションの対象となるMPUのハードウェア構成
    情報を格納する構成情報ファイルと、前記MPUの端子に
    供給する前記電気機器の動作状態を示す信号を含む各種
    タイミング信号のデータを格納する外部事象ファイル
    と、端末からの入力コマンド或いは端末への表示情報の
    処理を行うユーザインターフェースと、該ユーザインタ
    ーフェースを介して入力されたコマンドに基づいてター
    ゲットプログラムがロードされているメモリテーブルの
    内容の変更,表示,ターゲットプログラムの実行,停止
    等を指示するデバッガと、該デバッガからの指示に基づ
    き前記構成情報ファイル及び外部事象ファイルからのデ
    ータを使用してシミュレーションの対象となるMPUに固
    有の構造にしたがってターゲットプログラムの実行をシ
    ミュレートするMPUモジュールとを備えたことを特徴と
    するMPUシミュレータ。
  7. 【請求項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 JPH01307837A (ja) 1989-12-12
JP2803090B2 true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5132972A (en) * 1989-11-29 1992-07-21 Honeywell Bull Inc. Assembly language programming potential error detection scheme sensing apparent inconsistency with a previous operation
US5228039A (en) * 1990-05-09 1993-07-13 Applied Microsystems Corporation Source-level in-circuit software code debugging instrument
JP2546157B2 (ja) * 1993-06-30 1996-10-23 日本電気株式会社 プログラム試験方式

Family Cites Families (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 論理シミユレ−タ

Also Published As

Publication number Publication date
JPH01307837A (ja) 1989-12-12

Similar Documents

Publication Publication Date Title
JP2795244B2 (ja) プログラムデバッグシステム
US5978584A (en) Debugging apparatus for debugging a program by changing hardware environments without changing program operation state
US7584456B1 (en) Method and apparatus for debugging embedded systems having read only memory
Pohl et al. vMAGIC—automatic code generation for VHDL
Klein Miami: a hardware software co-simulation environment
JP2803090B2 (ja) Mpuシミュレーション方法及びmpuシミュレータ
CN109144849B (zh) 一种嵌入式软件调测方法
US20180357150A1 (en) System for development and emulation of embedded systems
CN112765018B (zh) 一种仪器仪表调试系统及方法
JP2828590B2 (ja) マイクロプログラム検証方法
JPH05250221A (ja) シミュレータ実行方式
Currie et al. PSoC Creator
Goldberg et al. The PRIM System: An alternative architecture for emulator development and use
JP3424548B2 (ja) 組み込み機器用ソフトウエア論理シミュレータ
JP2001216337A (ja) Cpuコアの開発支援システムとその開発支援方法及び開発支援用プログラムを記録した記録媒体
JP2924080B2 (ja) 論理シミュレーション支援システム
KR20240009757A (ko) 오토사 스택 가상화를 통한 윈도우 기반의 차량용 소프트웨어 시뮬레이션 장치 및 방법
McCann et al. Microprocessor product design: The role of the development system
JP2887515B2 (ja) 記録装置のシミュレータ
Gladstone Comparing Microcomputer Development System Capabilities
Kapur et al. Software development tools for embedded systems
JP2002366378A (ja) プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体
KR20240009783A (ko) 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치 및 방법
CN117422026A (zh) 一种基于risc-v架构的处理器验证系统
JP2006350676A (ja) 組込みシステムのプログラムデバッグ方法

Legal Events

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