JP3565987B2 - エミュレータ装置 - Google Patents
エミュレータ装置 Download PDFInfo
- Publication number
- JP3565987B2 JP3565987B2 JP13376596A JP13376596A JP3565987B2 JP 3565987 B2 JP3565987 B2 JP 3565987B2 JP 13376596 A JP13376596 A JP 13376596A JP 13376596 A JP13376596 A JP 13376596A JP 3565987 B2 JP3565987 B2 JP 3565987B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- access
- read
- write
- microcomputer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
【発明の属する技術分野】
この発明は、マイクロコンピュータ等のプログラム開発を支援するエミュレータ装置に関するものである。
【0002】
【従来の技術】
マイクロコンピュータ等のプログラム開発では、開発途中のプログラムの誤りを発見して修正するためにエミュレータ装置が開発支援システムとして用いられる。
【0003】
図4は従来のエミュレータ装置を用いたプログラム開発システムの構成を示す図である。図において、10はホストコンピュータ、11はエミュレータ装置、12は開発の対象となるマイクロコンピュータを搭載したターゲットシステム、13はホストコンピュータ10とエミュレータ装置11との間でデータを送受信するための通信ケーブル、14はエミュレータ装置11をターゲットシステム12に電気的に接続するプローブをそれぞれ示している。なお、プローブの先端にはターゲットシステム12で動作するマイクロコンピュータ14aが設けられてターゲットシステム12のソケットに挿入して接続される。
【0004】
次に動作について説明する。
ホストコンピュータ10上でデバッグソフトウエアを起動し、そのソフトウエアを操作することによってエミュレータ装置11を制御する。なお、ホストコンピュータ10はエミュレータ装置11を制御する前にプログラムを作成するためにも使用する。
【0005】
マイクロプロセッサのプログラム開発では、プログラミング言語を使用してプログラムを記述する。プログラムの記述ではホストコンピュータ10上で動作するワードプロセッサを使用する。ワードプロセッサによって作成したデータファイルからマイクロプロセッサが直接実行可能な機械語情報を得るためにはコンパイラまたはアセンブラ等の翻訳用ソフトウエアツールを用いる。この翻訳用ソフトウエアツールはワードプロセッサによって作成したデータファイルを読み込み、プログラム記述に対応した機械語データを作成して出力する。
【0006】
エミュレータ装置11はマイクロコンピュータのプログラム開発において作成したプログラムの誤り等を発見するデバッグ作業をする場合に使用する。エミュレータ装置11の主要な機能には、プログラムの実行機能とプログラムのブレーク機能の2つの機能がある。
【0007】
まず、プログラムの実行機能について説明する。例えば、複写機、エアコン等のターゲットシステムではプログラムを最終的にリードオンリメモリ(以下、ROMと記す)に書き込んでマイクロコンピュータを動作させるが、エミュレータ装置ではプログラムをROMに書き込まずに作成したプログラムを実行させることができる。
【0008】
次に、プログラムのブレーク機能について説明する。上述したようにしてプログラムを実行した結果、ターゲットシステムが正しく動作しなかった場合、プログラムの間違った箇所を発見し、修正する必要がある。デバッグではプログラムの実行を途中で停止させるブレーク機能を用いる。ブレーク機能を用いてプログラムを少しずつ実行し、ターゲットシステムの動きやプログラムの実行アドレス等を確認することによってプログラムの間違った箇所が発見できる。ブレーク機能では特定のアドレスにリード、ライト、命令フェッチ等のバスアクセスが発生した際にブレークするようにブレーク条件が指定できる。
【0009】
図5は従来のエミュレータ装置の構成を示すブロック図である。図において、20はホストコンピュータ10から発せられたコマンドを解釈し、コマンドに応じた処理を実行するモニタ回路、21はホストコンピュータ10とモニタ回路20との間の通信インターフェイス、22はホストコンピュータ10から転送されてくるエミュレーションのためのプログラム情報を格納するエミュレーションメモリ、23はブレーク条件を満たすアクセスが発生したときにプログラムをブレークすることを判断しモニタ回路20に通知するブレーク回路、24はシステムバス25のアクセス制御をするバス制御回路である。
【0010】
なお、ブレーク回路23は、モニタ回路20から送られてきたブレーク条件のうちのアドレス情報を記憶し、システムバス25上に出力されたアドレスを毎回検出してブレーク条件に合致するか否かを比較するアドレス比較回路30、システムバス25のリード・ライト信号を検出することによってエミュレーションプログラムのアクセスがリードアクセスであるか、ライトアクセスであるかを判定するリードライト信号比較回路31と、アドレス比較回路30およびリードライト信号比較回路31の比較結果からブレーク信号をモニタ回路20に転送するフレーク判定回路32とを具備している。
【0011】
まず、ブレーク回路23にはモニタ回路20からブレーク条件が送られてくる。すなわち、所望のアドレスと所望のアクセスタイプが転送されてくる。アクセスタイプはリードアクセス、ライトアクセスがある。そして、ブレーク条件が設定されたアドレスに設定されたアクセスタイプのアクセスがあった場合にはブレーク回路23はマイクロコンピュータのエミュレーションプログラムの動作をブレークするためのブレーク信号をモニタ回路20に送出する。
【0012】
以上説明したような従来のエミュレータ装置では、初期化されていない大域変数の読み込みが行われても正常な動作とみなされ、ブレークすることができなかった。このように大域変数が初期化されていない状態で読み込まれた場合にはプログラムの実行時に、本来、意図した値ではなく、未確定な値をもとにプログラムが動作し、予期せぬ不具合を引き起こすことになる。
【0013】
【発明が解決しようとする課題】
従来のエミュレータ装置は以上のように構成されているので、初期化されていない大域変数の読み込みが行われても正常な動作とみなされ、ブレークすることができないという課題があった。
【0014】
この発明は以上のような課題を解決するためになされたもので、初期化されていない大域変数の読み込みが行われた場合にブレークできるエミュレータ装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
請求項1記載の発明に係るエミュレータ装置は、マイクロコンピュータのシステムバスに接続され、実行中のエミュレーションプログラムがリードアクセスをしたか、ライトアクセスをしたかを判別するリード・ライトアクセス判別手段と、リード・ライトアクセス判別手段による判別の結果、実行中のエミュレーションプログラムがマイクロコンピュータのメモリアドレスをライトアクセスした場合に、ライトアクセスしたアドレスと対応づけてライトアクセスがあったことを示す情報を格納するアクセス情報格納手段と、リード・ライトアクセス判別手段による判別の結果、実行中のエミュレーションプログラムがマイクロコンピュータのメモリアドレスをリードアクセスしたときに、リードアクセスされたアドレスにライトアクセスがあったことを示す情報がアクセス情報格納手段に格納されていない場合にはエミュレーションプログラムの実行をブレークするブレーク手段と、マイクロコンピュータのシステムバスに接続され、エミュレーションプログラムが実行中にマイクロコンピュータからシステムバスに出力されたデータの値が「0」であるか否かを判別するデータ判別手段とを具備し、アクセス情報格納手段が、リード・ライトアクセス判別手段による判別の結果、実行中のエミュレーションプログラムがマイクロコンピュータのメモリアドレスをライトアクセスした場合であって、データ判別手段の判別の結果、ライトアクセスによって書き込まれたデータの値が「0」である場合には、ライトアクセスしたアドレスと対応づけて、値が「0」のデータが前記ライトアクセスしたアドレスに書き込まれた回数に関する情報を格納し、ブレーク手段が、リード・ライトアクセス判別手段による判別の結果、実行中のエミュレーションプログラムがマイクロコンピュータのメモリアドレスをリードアクセスしたときに、アクセス情報格納手段に格納されている情報がリードアクセスされたアドレスに値が「0」のデータが1回しか格納されていないことを示す場合にはエミュレーションプログラムをブレークするものである。
【0016】
請求項2記載の発明に係るエミュレータ装置は、エミュレーションプログラムに規定された大域変数のアドレス範囲のアドレスに実行中のエミュレーションプログラムによってリードアクセスまたはライトアクセスが発生したか否かを判別するアドレス判別手段を有し、アクセス情報格納手段はアドレス判別手段が大域変数のアドレス範囲のアドレスに対してライトアクセスした場合に、ライトアクセスしたアドレスと対応づけてライトアクセスがあったことを示す情報を格納するように構成したものである。
【0017】
請求項3記載の発明に係るエミュレータ装置は、アクセス情報格納手段がマイクロコンピュータのメモリアドレスに1対1に対応したアドレスを有するアクセス情報メモリを含み、実行中のエミュレーションプログラムがマイクロコンピュータのメモリアドレスをライトアクセスした場合にライトアクセスしたアドレスに対応する、アクセス情報メモリのアドレスにライトアクセスがあったことを示す情報を格納するように構成したものである。
【0018】
請求項4記載の発明に係るエミュレータ装置は、アクセス情報格納手段がエミュレーションプログラムが規定する各々の大域変数が占めるアドレス領域毎にライトアクセスがあったことを示す情報を格納するように構成したものである。
【0020】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はこの発明の実施の形態1におけるエミュレータ装置の構成を示すブロック図である。なお、エミュレータ装置111は従来のエミュレータ装置11と同様に、図4に示すようにホストコンピュータ10に接続するとともに、ターゲットシステム12に、マイクロコンピュータ14aを有するプローブ14により接続して使用する。
【0021】
図において、120はホストコンピュータ10から発せられたコマンドを解釈し、コマンドに応じた処理を実行するモニタ回路、121はホストコンピュータ10とモニタ回路120との間の通信インターフェイスをとる通信インターフェイス回路、122はホストコンピュータ10から転送されてくるエミュレーションのためのプログラム情報を格納するエミュレーションメモリ、123はブレーク条件を満たすアクセスが発生したときにプログラムがブレークの実行を判断しモニタ回路120に通知するブレーク回路(ブレーク手段)、124はシステムバス125のアクセス制御をするバス制御回路である。
【0022】
なお、ブレーク回路123は、モニタ回路120から送られてきたブレーク条件のうちのアドレス情報を記憶し、システムバス125上に出力されたアドレスを検出してブレーク条件に合致するか否かを比較するアドレス比較回路(アドレス判別手段)201、システムバス125のリード・ライト信号を検出することによってエミュレーションプログラムのアクセスがリードアクセスであるか、ライトアクセスであるかを判定するリード・ライト信号比較回路(リード・ライトアクセス判別手段)202と、マイクロコンピュータ14aのメモリ空間のアドレスに対応づけられ1ビットの情報を格納するアクセス情報メモリ(アクセス情報格納手段)203と、このアクセス情報メモリ203のデータの書き込みの制御を行うアクセス情報リード・ライト回路(アクセス情報格納手段)204と、アドレス比較回路201、リード・ライト信号比較回路202の比較結果およびアクセス情報メモリ203に格納されている情報に基づいてブレークの判定を行うブレーク判定回路(ブレーク手段)205とを有している。
【0023】
アクセス情報メモリ203のアドレスはマイクロコンピュータ14aのメモリ空間のアドレスに1対1に対応して設けられている。例えば、マイクロコンピュータ14aの16ビットアドレス空間であるならばアクセス情報メモリ203は0000H番地からFFFFH番地に対応して64Kビットの情報の書き込みができるように構成されている。
【0024】
また、アクセス情報リード・ライト回路204の制御により、プログラムのリセットが行われたときに全てのアドレスに「0」を書き込み、マイクロコンピュータ14aのメモリ空間のあるアドレスに対して書き込み動作が発生した場合にアクセス情報メモリ203の対応のアドレスに「1」が書き込まれるように構成されている。
【0025】
次に動作について説明する。
まず、エミュレーションプログラムがエミュレータ装置111に転送されてきた場合やユーザが意図的にリセットした場合などプログラムのリセットが行われたときにはアクセス情報メモリ203の全てのアドレスに「0」を格納する。次に、プログラムが実行される前に、ユーザが設定した大域変数のメモリ領域範囲、すなわち、ユーザが設定した大域変数がマイクロコンピュータ14aのメモリ空間のどのアドレス範囲にあるかを示す情報がホストコンピュータ10からエミュレータ装置111に転送される。転送された情報は通信インターフェイス121を介してモニタ回路120に送られ、モニタ回路120の制御によりアドレス比較回路201に設定される。
【0026】
以上の初期設定後にエミュレーションプログラムが実行される。プログラム実行中はアドレス比較回路201とリード・ライト信号比較回路202がシステムバス125を監視し、アドレス比較回路201に設定されたアドレス範囲に対するリードアクセス、あるいはライトアクセスがあった場合にはブレーク判定回路205にその情報が転送される。ブレーク判定回路205では大域変数の領域範囲に書き込みがあった場合にはアクセス情報リード・ライト回路204によりアクセス情報メモリ203の対応するアドレスに「1」を格納する。例えば、マイクロコンピュータ14aのメモリ空間の「000FH」番地にデータの書き込みがあった場合にはアクセス情報メモリ203の「000FH」番地に「1」を書き込む。
【0027】
マイクロコンピュータ14aのメモリ領域の大域変数のアドレス範囲に対してデータの読み込み動作が行われた場合にはアクセス情報リード・ライト回路204の制御によってアクセス情報メモリ203の対応するアドレスのデータを読み込む。ブレーク判定回路205はこのデータが「0」であれば大域変数が初期化されずに読み込まれたと判断してモニタ回路120に対してブレーク信号を送出する。このブレーク信号を受けたモニタ回路120は現在実行中のプログラムをブレークする。さらに、ブレークしたアドレスはモニタ回路120、通信インターフェイス121を介してホストコンピュータ10に転送される。ホストコンピュータ10上で動作しているデバッガ等のエミュレーションコントロールソフトウエアは取得したアドレスがどの大域変数に相当するかを判断して表示する。
【0028】
一方、マイクロコンピュータ14aのメモリ領域の大域変数のアドレス範囲に対してデータの読み込み動作が行われた場合にアクセス情報メモリ203の対応するアドレスのデータが「1」であった場合には大域変数が初期化されていると判断してブレーク信号は送出しない。
【0029】
実施の形態2.
図2はこの発明の実施の形態2におけるエミュレータ装置の構成を示すブロック図である。なお、図1と同一部分には同一符号を付し重複する説明は省略する。図において、123aはこの実施の形態のブレーク回路、203aはアドレス「0」からアドレス「ADEND」までのアドレスを有し、各々のアドレスに1ビットのアクセス情報を書き込むことができるアクセス情報メモリである。204aはアクセス情報メモリ203aに格納するアクセス情報のリード・ライトの制御を行うアクセス情報リード・ライト回路、205aは大域変数のアドレス範囲毎に1ビットのアクセス情報を格納するためのアドレスを割り当てるとともに、アドレス比較回路201とリード・ライト信号比較回路202とからの比較結果、およびアクセス情報メモリ203aに格納されているアクセス情報に基づいてブレークの判定を行うブレーク判定回路である。
【0030】
次に動作について説明する。
まず、エミュレーションプログラムがエミュレータ装置111aに転送された場合やユーザが意図的にリセットした場合など、プログラムのリセットが行われたときには、アクセス情報リード・ライト回路204aはアクセス情報メモリ203aのすべてのアドレスに「0」を格納する。次にプログラムが実行される前にユーザが設定したそれぞれの大域変数に対して、大域変数の先頭アドレスと大域変数のデータの大きさ等の大域変数情報がホストコンピュータ10から通信インターフェイス121を介してモニタ回路120に転送される。この大域変数情報はさらにブレーク判定回路205aに転送される。また、ブレーク判定回路205aからアドレス比較回路201にも大域変数情報は転送される。ブレーク判定回路205aは大域変数情報に基づいて各々の大域変数毎にアクセス情報メモリ203aのアドレスに1ビットずつ対応させる。なお、配列変数の場合には配列の要素毎に1ビットをアクセス情報メモリ203aの各アドレスに割り当てる。
【0031】
以上の初期設定後にエミュレーションプログラムが実行される。プログラム実行中はアドレス比較回路201とリード・ライト信号比較回路202がシステムバス125を監視し、アドレス比較回路201に設定されたアドレス範囲に対するリードアクセス、あるいはライトアクセスがあった場合にはブレーク判定回路205aにその情報が転送される。ブレーク判定回路205aでは大域変数のアドレス範囲に書き込みがあった場合にはアクセス情報リード・ライト回路204aによりアクセス情報メモリ203aの、大域変数のアドレス範囲に割り当てられたアドレスに「1」を格納する。例えば、アクセスのあったアドレスが、ある大域変数のアドレス範囲内にあった場合、そのアドレス範囲に対応するアクセス情報メモリ203aのメモリアドレスに「1」を格納する。すなわち、アクセス情報メモリ203aではマイクロコンピュータ14aのメモリ空間のアドレス毎ではなく大域変数毎にアクセス情報を格納する。
【0032】
マイクロコンピュータ14aのメモリ領域の大域変数のアドレス範囲に対してデータの読み込み動作が行われた場合にはアクセス情報リード・ライト回路204aの制御によってアクセス情報メモリ203aの大域変数のアドレス範囲に対応するアドレスのデータを読み込む。ブレーク判定回路205aはこのデータが「0」であれば大域変数が初期化されずに読み込まれたと判断してモニタ回路120に対してブレーク信号を送出する。このブレーク信号を受けたモニタ回路120は現在実行中のプログラムをブレークする。さらに、ブレークしたアドレスはモニタ回路120、通信インターフェイス121を介してホストコンピュータ10に転送される。ホストコンピュータ10上で動作しているデバッガ等のエミュレーションコントロールソフトウエアは取得したアドレスがどの大域変数に相当するかを判断して表示する。
【0033】
一方、マイクロコンピュータ14aのメモリ領域の大域変数のアドレス範囲に対してデータの読み込み動作が行われた場合にアクセス情報メモリ203aの対応するアドレスのデータが「1」であった場合には大域変数が初期化されていると判断してブレーク信号は送出しない。
【0034】
すなわち、この実施の形態2では、マイクロコンピュータ14aの全てのアドレスに対して1ビットのメモリを予め割り当てておくのではなく、大域変数の先頭アドレスと大域変数の大きさとから大域変数毎に1ビットを割り当てて初期化されたか否かの判定を行うようにしている。このため、アクセス情報メモリ203aのメモリ容量を小さくすることが可能である。
【0035】
実施の形態3.
図3はこの発明の実施の形態3におけるエミュレータ装置の構成を示すブロック図である。なお、図1と同一部分には同一符号を付し重複する説明は省略する。図において、123bはこの実施の形態のブレーク回路、203bは0000HからFFFFHまでのアドレスを有し、各々のアドレスに1バイトのアクセス情報を書き込むことができるアクセス情報メモリである。204bはアクセス情報メモリ203bに格納するアクセス情報のリード・ライトの制御を行うアクセス情報リード・ライト回路、205bはアドレス比較回路201の比較結果、リード・ライト信号比較回路202の比較結果およびアクセス情報メモリ203bに格納されている情報に基づいてブレークの判定を行うブレーク判定回路、206はシステムバス125のうちのデータバスに出力しているデータの値が「0」であるか否かを比較して比較結果をブレーク判定回路205bに出力するデータ比較回路を示している。
【0036】
次に動作について説明する。
ユーザプログラムの初期化ファイル、すなわち、プログラムが1番最初に実行するルーチン中でデータ領域を「0」に初期化し、次に大域変数をプログラム中で任意の「0」以外の値に設定してからプログラムを動作させるような場合もある。このような場合、「0」がメモリに書き込まれた後では実施の形態1のエミュレータ装置111ではプログラム中で任意の値で初期化されたかどうかを検出することはできない。これは「0」で1度最初に初期化されているためである。このような場合、プログラム中での初期化がされていない変数を参照してプログラムが動作すると予期しない不具合が生じる可能性がある。そこで、この実施の形態3では、アクセス情報メモリ203bに格納する情報として実施の形態1で説明したマイクロコンピュータ14aの各々アドレスに対してライトアクセスがあったか否かを示す1ビットの情報の他に「0」で書き込まれた回数に関する2ビットの情報を付加するようにしている。
【0037】
まず、プログラムがエミュレータ装置111bに転送されてきた場合やユーザが意図的にリセットした場合などプログラムのリセットが行われたときにはアクセス情報メモリ203bの全てのアドレスに「0」を格納する。つぎに、プログラムが実行される前に、ユーザが設定した大域変数のメモリアドレス範囲、すなわち、ユーザが設定した大域変数がマイクロコンピュータ14aのメモリ空間のどのアドレス範囲にあるかを示す情報がホストコンピュータ10からエミュレータ装置111bに転送される。転送された情報は通信インターフェイス121を介してモニタ回路120に送られ、モニタ回路120の制御によりブレーク判定回路205bおよびアドレス比較回路201に転送される。
【0038】
以上の初期設定後にエミュレーションプログラムが実行される。プログラム実行中はアドレス比較回路201とリード・ライト信号比較回路202がシステムバス125を監視し、アドレス比較回路201に設定されたアドレス範囲に対するリードアクセス、あるいはライトアクセスがあった場合にはブレーク判定回路205bにその情報が転送される。ブレーク判定回路205bは、大域変数のアドレス範囲に書き込みがあった場合にはアクセス情報リード・ライト回路204bによりアクセス情報メモリ203bの対応するアドレスの第1ビットに「1」を格納する。例えば、マイクロコンピュータ14aのアドレス空間の「000FH」番地にデータの書き込みがあった場合にはアクセス情報メモリ203bの「000FH」番地の第1ビットに「1」を書き込む。
【0039】
また、大域変数のアドレス範囲に書き込みがあった場合であって、さらにデータ比較回路206によって書き込まれたデータが「0」であると判定された場合にはさらに「0」で書き込まれた回数に関する2ビットの情報をアクセス情報メモリ203bの対応するアドレスの第2、第3ビットに書き込む。すなわち、「0」で書き込まれた回数が1回目である場合にはアクセス情報メモリ203bの対応するアドレスの第2、第3ビットに「0」、「1」をそれぞれ書き込む。一方、「0」で書き込まれた回数が2回以上の場合には第2、第3ビットに「1」、「0」をそれぞれ書き込む。なお、大域変数のアドレス範囲に書き込みがあった場合であって、「0」以外の値でのみ書き込みがあった場合には第2、第3ビットは「0」、「0」のままである。
【0040】
マイクロコンピュータ14aのメモリ領域の大域変数の領域範囲に対してデータの読み込み動作が行われた場合にはアクセス情報リード・ライト回路204bの制御によってアクセス情報メモリ203bの対応するアドレスのデータを読み込む。ブレーク判定回路205bはこのデータの第1ビットが「0」であれば大域変数が初期化されずに読み込まれたと判断してモニタ回路120に対してブレーク信号を送出する。また、第1ビットが「1」であっても第2ビット、第3ビットがそれぞれ、「0」、「1」である場合には未初期化変数を参照しようとしたと判断して、モニタ回路に対してブレーク信号を送出する。このブレーク信号を受けたモニタ回路120は現在実行中のプログラムをブレークする。さらに、ブレークしたアドレスはモニタ回路120、通信インターフェイス121を介してホストコンピュータ10に転送される。ホストコンピュータ10上で動作しているデバッガ等のエミュレーションコントロールソフトウエアは取得したアドレスがどの大域変数に相当するかを判断して表示する。
【0041】
一方、マイクロコンピュータ14aのメモリ領域の大域変数のアドレス範囲に対してデータの読み込み動作が行われた場合に、アクセス情報メモリ203bの対応するアドレスデータの第1、第2、第3ビットがそれぞれ「1」、「1」、「0」、すなわち、「0」で2回以上書き込まれた場合、または、第1、第2、第3ビットがそれぞれ「1」、「0」、「0」、すなわち、「0」以外の値のみで書き込みが行われた場合には大域変数が初期化されていると判断してブレーク信号は送出しない。
【0042】
また、実施の形態3ではアクセス情報メモリ203bは実施の形態1のようにマイクロコンピュータ14aのメモリ空間のアドレスに1対1に対応するものであったが、実施の形態2で示したアクセス情報メモリ203aのように各々の大域変数のアドレス範囲毎に「0」でライトアクセスされた回数に関する情報を格納するようにしてもよい。さらに、メモリ管理の容易さからアクセス情報メモリ203bはアドレス毎に1バイト、すなわち、8ビットの領域を確保するようにしたが、アドレス毎に3ビットの領域を確保するようにしてもよい。
【0043】
【発明の効果】
以上のように、請求項1記載の発明によれば、実行中のエミュレーションプログラムがマイクロコンピュータのメモリアドレスをリードアクセスしたときに、リードアクセスされたアドレスにライトアクセスがあったことを示す情報がアクセス情報格納手段に格納されていない場合には、エミュレーションプログラムの実行をブレークするように構成したので、初期化していない変数をプログラムが参照していることをエミュレータ装置で認識することができる効果がある。また、ブレーク手段を、リード・ライトアクセス判別手段による判別の結果、実行中のエミュレーションプログラムがマイクロコンピュータのメモリアドレスをリードアクセスしたときに、アクセス情報格納手段に格納されている情報が、リードアクセスされたアドレスに値が「0」のデータが1回しか格納されていないことを示す場合には、エミュレーションプログラムをブレークするように構成したので、ユーザプログラムの初期化ファイルでデータ領域を「0」としてからプログラム中で大域変数の値を設定する場合であっても、大域変数が設定されずに読み出された場合にブレークすることができる効果がある。
【0044】
請求項2記載の発明によれば、アクセス情報格納手段をアドレス判別手段が大域変数のアドレス範囲のアドレスに対してライトアクセスした場合に、ライトアクセスしたアドレスと対応づけてライトアクセスがあったことを示す情報を格納するように構成したので、初期化していない大域変数をプログラムが参照していることをエミュレータ装置で認識することができる効果がある。
【0045】
請求項3記載の発明によれば、アクセス情報格納手段がマイクロコンピュータのメモリアドレスに1対1に対応したアドレスを有するアクセス情報メモリを含み、実行中のエミュレーションプログラムがマイクロコンピュータのメモリアドレスをライトアクセスした場合に、ライトアクセスしたアドレスに対応するアクセス情報メモリのアドレスにライトアクセスがあったことを示す情報を格納するように構成したので、マイクロコンピュータのメモリアドレスを変換する等の構成を必要とせずに初期化していない変数をプログラムが参照していることをエミュレータ装置で認識することができる効果がある。
【0046】
請求項4記載の発明によれば、アクセス情報格納手段をエミュレーションプログラムが規定する各々の大域変数が占めるアドレス領域毎にライトアクセスがあったことを示す情報を格納するように構成したので、アクセス情報格納手段のメモリ容量を小さくできる効果がある。
【図面の簡単な説明】
【図1】この発明の実施の形態1におけるエミュレータ装置の構成を示すブロック図である。
【図2】この発明の実施の形態2におけるエミュレータ装置の構成を示すブロック図である。
【図3】この発明の実施の形態3におけるエミュレータ装置の構成を示すブロック図である。
【図4】従来のエミュレータ装置を用いたプログラム開発システムの構成を示す図である。
【図5】従来のエミュレータ装置の構成を示すブロック図である。
【符号の説明】
14a マイクロコンピュータ、111,111a,111b エミュレータ装置、123,123a,123b ブレーク回路(ブレーク手段)、125 システムバス、201 アドレス比較回路(アドレス判別手段)、202 リード・ライト信号比較回路(リード・ライトアクセス判別手段)、203,203a,203b アクセス情報メモリ(アクセス情報格納手段)、204,204a,204b アクセス情報リード・ライト回路(アクセス情報格納手段)、205,205a,205b ブレーク判定回路(ブレーク手段)、206 データ比較回路(データ判別手段)。
Claims (4)
- ターゲットシステム上で動作するマイクロコンピュータのプログラム開発を行うためにエミュレーションプログラムによって前記マイクロコンピュータを動作させるエミュレータ装置において、
前記マイクロコンピュータのシステムバスに接続され、実行中の前記エミュレーションプログラムがリードアクセスをしたか、ライトアクセスをしたかを判別するリード・ライトアクセス判別手段と、
前記リード・ライトアクセス判別手段による判別の結果、実行中の前記エミュレーションプログラムが前記マイクロコンピュータのメモリアドレスをライトアクセスした場合に、ライトアクセスしたアドレスに対応づけてライトアクセスがあったことを示す情報を格納するアクセス情報格納手段と、
前記リード・ライトアクセス判別手段による判別の結果、実行中の前記エミュレーションプログラムが前記マイクロコンピュータのメモリアドレスをリードアクセスしたときに、リードアクセスされたアドレスにライトアクセスがあったことを示す情報が前記アクセス情報格納手段に格納されていない場合には前記エミュレーションプログラムの実行をブレークするブレーク手段と、
前記マイクロコンピュータのシステムバスに接続され、前記エミュレーションプログラムが実行中に前記マイクロコンピュータから前記システムバスに出力されたデータの値が「0」であるか否かを判別するデータ判別手段とを具備し、
前記アクセス情報格納手段は、
前記リード・ライトアクセス判別手段による判別の結果、実行中の前記エミュレーションプログラムが前記マイクロコンピュータのメモリアドレスをライトアクセスした場合であって、前記データ判別手段の判別の結果、前記ライトアクセスによって書き込まれたデータの値が「0」である場合には、ライトアクセスしたアドレスと対応づけて、値が「0」のデータが前記ライトアクセスしたアドレスに書き込まれた回数に関する情報を格納し、
前記ブレーク手段は、
前記リード・ライトアクセス判別手段による判別の結果、実行中の前記エミュレーションプログラムが前記マイクロコンピュータのメモリアドレスをリードアクセスしたときに、前記アクセス情報格納手段に格納されている情報が前記リードアクセスされたアドレスに値が「0」のデータが1回しか格納されていないことを示す場合には前記エミュレーションプログラムをブレークすることを特徴とするエミュレータ装置。 - エミュレーションプログラムに規定された大域変数のアドレス範囲のアドレスに実行中のエミュレーションプログラムによってリードアクセスまたはライトアクセスが発生したか否かを判別するアドレス判別手段を有し、アクセス情報格納手段は前記アドレス判別手段が前記大域変数の前記アドレス範囲のアドレスに対してライトアクセスした場合に、ライトアクセスしたアドレスと対応づけてライトアクセスがあったことを示す情報を格納することを特徴とする請求項1記載のエミュレータ装置。
- アクセス情報格納手段はマイクロコンピュータのメモリアドレスに1対1に対応したアドレスを有するアクセス情報メモリを含み、実行中のエミュレーションプログラムが前記マイクロコンピュータのメモリアドレスをライトアクセスした場合にライトアクセスしたアドレスに対応する、前記アクセス情報メモリのアドレスにライトアクセスがあったことを示す情報を格納することを特徴とする請求項1または請求項2記載のエミュレータ装置。
- アクセス情報格納手段はエミュレーションプログラムが規定する各々の大域変数が占めるアドレス範囲毎にライトアクセスがあったことを示す情報を格納することを特徴とする請求項1または請求項2記載のエミュレータ装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13376596A JP3565987B2 (ja) | 1996-05-28 | 1996-05-28 | エミュレータ装置 |
US08/747,049 US5838952A (en) | 1996-05-28 | 1996-11-12 | Emulator apparatus to break running program when variable is read without being initialized |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13376596A JP3565987B2 (ja) | 1996-05-28 | 1996-05-28 | エミュレータ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09319605A JPH09319605A (ja) | 1997-12-12 |
JP3565987B2 true JP3565987B2 (ja) | 2004-09-15 |
Family
ID=15112443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13376596A Expired - Fee Related JP3565987B2 (ja) | 1996-05-28 | 1996-05-28 | エミュレータ装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5838952A (ja) |
JP (1) | JP3565987B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6832186B1 (en) * | 2000-10-04 | 2004-12-14 | Hewlett-Packard Development Company, L.P. | Persistent emulated data storage using dedicated storage in a target mode disk emulator |
JP5441983B2 (ja) * | 2011-10-31 | 2014-03-12 | 三菱電機株式会社 | 動的解析装置、動的解析システム、動的解析方法、及びプログラム |
JP6252282B2 (ja) * | 2014-03-20 | 2017-12-27 | 富士通株式会社 | 制御プログラム、制御方法および制御装置 |
CN109086193B (zh) * | 2017-06-13 | 2022-01-21 | 阿里巴巴集团控股有限公司 | 监控方法、装置及*** |
CN108388522A (zh) * | 2018-05-10 | 2018-08-10 | 上海市信息网络有限公司 | 仿真器及断点实现方法 |
CN108647144A (zh) * | 2018-05-10 | 2018-10-12 | 上海市信息网络有限公司 | 仿真器及代码执行异常断点实现方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4847807A (en) * | 1986-09-11 | 1989-07-11 | Hughes Aircraft Company | Multiple disk memory access arrangement for gridded type data |
JPS63208953A (ja) * | 1987-02-26 | 1988-08-30 | Nec Corp | マイクロコンピユ−タ |
JPH04257932A (ja) * | 1991-02-13 | 1992-09-14 | Oki Electric Ind Co Ltd | ディジタルシグナルプロセッサのエミュレート用チップ |
US5321828A (en) * | 1991-06-07 | 1994-06-14 | Step Engineering | High speed microcomputer in-circuit emulator |
JPH0581087A (ja) * | 1991-09-25 | 1993-04-02 | Nec Corp | プロセサのモニタ方式 |
JPH05224985A (ja) * | 1992-02-14 | 1993-09-03 | Nec Corp | マイクロプログラム制御装置 |
DE69317149T2 (de) * | 1992-05-12 | 1998-10-08 | Nec Corp | Mikrocomputer mit Befehlsspeicher für Befehle zum Auslesen interner Bedingungen |
JPH08320808A (ja) * | 1995-05-24 | 1996-12-03 | Nec Corp | エミュレーション方式 |
-
1996
- 1996-05-28 JP JP13376596A patent/JP3565987B2/ja not_active Expired - Fee Related
- 1996-11-12 US US08/747,049 patent/US5838952A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09319605A (ja) | 1997-12-12 |
US5838952A (en) | 1998-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5491804A (en) | Method and apparatus for automatic initialization of pluggable option cards | |
US4663707A (en) | Multilevel bootstrap apparatus | |
US5768568A (en) | System and method for initializing an information processing system | |
US6463550B1 (en) | Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory | |
US6496945B2 (en) | Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory | |
US5694600A (en) | Methods and apparatus for booting a computer having a removable media disk drive | |
KR100341180B1 (ko) | 가상어드레싱버퍼회로,및어드레스번역방법,시스템bios의셰도잉방법,실제메모리최적화방법,실제메모리이용방법,cpu제어시스템에서의에뮬레이팅방법및cpu요청리디렉트방법 | |
EP0394502A1 (en) | Diagnostic mode for a cache | |
JPH07113907B2 (ja) | カード | |
US5813043A (en) | Method and system including memory patching utilizing a transmission control signal and circuit | |
JPH08202563A (ja) | コンピュータシステム | |
US6697971B1 (en) | System and method for detecting attempts to access data residing outside of allocated memory | |
JP2000105725A (ja) | チップイネーブル信号生成回路及びメモリ装置 | |
US7096351B2 (en) | Single-chip microcomputer and boot region switching method thereof | |
US4623962A (en) | Register control processing system | |
US5381544A (en) | Copyback memory system and cache memory controller which permits access while error recovery operations are performed | |
US20050207232A1 (en) | Access method for a NAND flash memory chip, and corresponding NAND flash memory chip | |
US5168559A (en) | Emulation system capable of complying with microcomputers having different on-chip memory capacities | |
JP3565987B2 (ja) | エミュレータ装置 | |
US20010020269A1 (en) | Method of loading initial program in processor system | |
EP0638864A1 (en) | Development support system for microcomputer with internal cache | |
JPH0212363A (ja) | コンピユータ・システムの初期設定方法及びその装置 | |
US20050086454A1 (en) | System and methods for providing a debug function built-in type microcomputer | |
JP2006293824A (ja) | 半導体装置 | |
KR20030055150A (ko) | 마이크로프로세서 및 마이크로프로세서의 처리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040401 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040511 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040609 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080618 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080618 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |