JP3260083B2 - デバッグシステム及びデバッグ方法 - Google Patents

デバッグシステム及びデバッグ方法

Info

Publication number
JP3260083B2
JP3260083B2 JP23330996A JP23330996A JP3260083B2 JP 3260083 B2 JP3260083 B2 JP 3260083B2 JP 23330996 A JP23330996 A JP 23330996A JP 23330996 A JP23330996 A JP 23330996A JP 3260083 B2 JP3260083 B2 JP 3260083B2
Authority
JP
Japan
Prior art keywords
debug
information
target system
address
output
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
JP23330996A
Other languages
English (en)
Other versions
JPH1078887A (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.)
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 JP23330996A priority Critical patent/JP3260083B2/ja
Priority to US08/922,378 priority patent/US5930470A/en
Publication of JPH1078887A publication Critical patent/JPH1078887A/ja
Application granted granted Critical
Publication of JP3260083B2 publication Critical patent/JP3260083B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータの応用製品のソフトウェア、ハードウェアを開発、
デバッグするための開発ツールに適用されるデバッグシ
ステム及びデバッグ方法に関する。
【0002】
【従来の技術】従来のマイクロコンピュータの開発ツー
ルは、ユーザの操作するホストマシンからのコマンドの
入力を受けて開発ツール全体の動作を制御するコントロ
ーラの部分と、デバッグ対象システムの各CPU毎に作
られるターゲットCPU、及びターゲットCPUの動作
を制御する制御回路を内蔵する部分(以下、「POD」
と呼ぶ)と、ターゲットCPU単体と同じ端子配置でデ
バッグ対象システム上のCPUを接続する箇所に接続し
てPODから出力された信号をデバッグ対象システムに
出力するプローブ部分とからなっている。
【0003】このような開発ツールを使用する場合に
は、ユーザはデバッグ対象システムからCPUを抜き、
代わりに上記プローブ部分をデバッグ対象システムのC
PUが接続してあった箇所に接続して動作させることに
より、ターゲットCPU内部のレジスタの値を参照した
り、メモリ内に格納された変数の値を参照、書き換えを
行うというデバッグ動作を行うことができる。ただし、
CPU内部のレジスタの値やメモリの内容を参照した
り、レジスタの値やメモリの値を変更したりする場合に
は、一度ターゲットCPUで実行中のユーザ・プログラ
ムを停止し、ターゲットCPUにレジスタの内容やメモ
リの内容を表示変更させるためのプログラム(以下、こ
の動作をするプログラムを「スチールプログラム」と呼
ぶ)を実行させることによって、これらの動作を行う必
要があった。
【0004】したがって、制御系のプログラムのデバッ
グを行う場合に、I/O操作を行なう場合や、プログラ
ムの処理の途中においてレジスタの内容やメモリの内容
を確認しようとする場合には、このスチールプログラム
を実行させるための余分な時間がかかっていた。このた
め、プログラムが実際の実行時間でデバッグできないだ
けでなく、確認のたびにデバッグ対象システム、例えば
プリンタやモータ等の動作を不用意に停止、中断させる
ことにより、デバッグ対象システムに接続された機器を
傷めたり、接続された機器やデバッグ対象システム全体
を破壊してしまう可能性があった。
【0005】
【発明が解決しようとする課題】以上説明したように、
上述したような従来のデバッグシステムにおいては、タ
ーゲットCPUのレジスタやメモリの内容を確認又は操
作する場合には、特定のプログラムを実行するための時
間が必要となり、リアルタイムでデバッグ対象システム
のデバッグを行うことができなかった。また、特定のプ
ログラムを実行してターゲットCPUのレジスタやメモ
リの内容を確認又は操作する際に、デバッグ対象システ
ムの動作を中断させなければならないため、デバッグ対
象システムに悪影響を与えるおそれがあった。
【0006】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、デバッグ対象
システムを停止させることなくデバックに必要な情報を
容易に収集することができるデバッグシステム及びデバ
ッグ方法を提供することにある。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、請求項1記載の発明は、マイクロコンピュータを備
えたデバッグ対象システムのデバッグ処理を行うために
必要な情報をホストマシンとの間で入出力するホスト通
信部と、前記デバッグ対象システムの動作クロック信号
よりも高速で非同期な動作クロック信号に同期して、前
記デバッグ対象システムのI/O装置からのデータ入力
時を除いて前記デバッグ対象システムのユーザプログラ
ムを前記デバッグ対象システムより先行してターゲット
CPUが実行し、実行時のアドレスバス情報、データバ
ス情報ならびにマシンサイクル情報を出力する制御回路
部と、前記デバッグ対象システムの動作クロック信号
と、前記制御回路部から出力されたアドレスバス情報、
データバス情報ならびにマシンサイクル情報を受けて、
マシンサイクル情報に基づいて前記デバッグ対象システ
ムの各種制御信号を生成して前記デバッグ対象システム
の動作クロック信号に同期してアドレスバス情報、デー
タバス情報ならびに各種制御信号を前記デバッグ対象シ
ステムに供給するPOD部とを備え、前記デバッグ対象
システムと前記制御回路部のターゲットCPUとのユー
ザプログラムの実行時間の差を利用して、前記デバッグ
対象システムの動作クロック信号に同期して前記デバッ
グ対象システムを動作させながらデバッグ情報の収集出
力又は操作を行うように構成される。
【0008】請求項2記載の発明は、請求項1記載のデ
バッグシステムにおいて、前記制御回路部は、前記デバ
ッグ対象システムのユーザプログラムを格納し、命令の
置き換えを指示するタグビットを備えたエミュレーショ
ンメモリと、前記エミュレーションメモリに格納された
ユーザプログラムならびにデバッグ情報の収集出力又は
操作を行うプログラムを実行するターゲットCPUと、
ユーザプログラムの実行により前記ターゲットCPUか
ら出力されるアドレスバス情報、データバス情報ならび
に各種制御信号に基づいてマシンサイクル情報を生成
し、アドレスバス情報、データバス情報ならびにマシン
サイクル情報を前記POD部に出力するデコード回路
と、前記エミュレーションメモリ、前記ターゲットCP
U、前記デコード回路ならびに前記制御回路部全体の動
作を制御する制御回路とを有して構成される。
【0009】請求項3記載の発明は、請求項2記載のデ
バッグシステムにおいて、前記POD部は、前記デコー
ド回路から出力されるマシンサイクル情報を格納する記
憶部と、マシンサイクルの記憶位置を示す記憶位置カウ
ンタと、マシンサイクルの実行出力位置を示す出力位置
カウンタと、前記記憶位置カウンタと前記出力位置カウ
ンタの差を保持し、前記記憶部の記憶可能容量を前記デ
コード回路に出力する差分値レジスタと、前記デバッグ
対象システムにアドレスを供給するアドレス出力回路
と、前記デバッグ対象システムとの間でデータの入出力
を行うデータ入出力回路と、前記記憶部に記憶された内
容に基づいて前記デバッグ対象システムの各種制御信号
を生成して前記デバッグ対象システムに供給する制御信
号生成回路とを有して構成される。
【0010】請求項4記載の発明は、請求項1,2又は
3記載のデバッグシステムにおいて、前記デバッグ対象
システムのI/O装置からデバッグ情報を前記POD部
を介して前記制御回路部に入力して収集する場合に、I
/O命令のアドレスを予め指定し、該I/O命令の実行
直前に該I/O命令をセルフジャンプ命令に置き換えて
前記ターゲットCPUがI/O命令を実行するのを遅ら
せ、前記I/O装置からデバッグ情報の入力とともに前
記ターゲットCPUがI/O命令を実行してデバッグ情
報を収集するように構成される。
【0011】請求項5記載の発明は、請求項1,2又は
3記載のデバッグシステムにおいて、前記デバッグ対象
システムのI/O装置からデバッグ情報を前記POD部
を介して前記制御回路部に入力して収集する場合に、I
/O命令のアドレス読み出しによりI/O命令を判別
し、前記ターゲットCPUにウェイトをかけてI/Oサ
イクルを引き伸し、前記I/O装置からデバッグ情報の
入力とともに前記ターゲットCPUのウェイトを解除し
てI/O命令を実行しデバッグ情報を収集するように構
成される。
【0012】請求項6記載の発明は、マイクロコンピュ
ータを備えたデバッグ対象システムの動作クロック信号
よりも高速で非同期な動作クロック信号に同期して、前
記デバッグ対象システムのI/O装置からのデータ入力
時を除いて前記デバッグ対象システムのユーザプログラ
ムを前記デバッグ対象システムより先行してターゲット
CPUで実行し、実行時のアドレスバス情報、データバ
ス情報ならびにマシンサイクル情報を記憶し、記憶され
たマシンサイクル情報に基づいて前記デバッグシステム
の各種制御信号を生成し、前記デバッグ対象システムの
動作クロック信号に同期してアドレスバス情報、データ
バス情報ならびに各種制御信号を前記デバッグ対象シス
テムに供給し、前記デバッグ対象システムと前記ターゲ
ットCPUとのユーザプログラムの実行時間の差を利用
して、前記デバッグ対象システムの動作クロック信号に
同期して前記デバッグ対象システムを動作させながらデ
バッグ情報の収集出力又は操作を行うことを特徴とす
る。
【0013】
【発明の実施の形態】以下、図面を用いてこの発明の一
実施形態を説明する。
【0014】図1はこの発明の一実施形態に係るデバッ
グシステム及びデバッグ方法を実現する構成を示す図で
ある。
【0015】図1において、デバッグシステムは、ホス
ト通信部1、制御回路部2及びPOD部3を備えて構成
される。
【0016】ホスト通信部1は、ホストマシン(図示せ
ず)と本体の制御回路部2をインターフェースするもの
であり、ホストマシンからのコマンドを受け取り、これ
を解析した結果を制御回路部2に出力する。また、制御
回路部2から受け取った画面表示のための情報をホスト
マシンへ送る。
【0017】制御回路部2は、図2に示すように、デバ
ッグ対象システムより高速かつ非同期で動作しているク
ロック信号を供給するクロック信号供給回路20と、こ
のクロック信号供給回路20から供給されるクロック信
号を受けてデバッグ対象システムより高速に動作するタ
ーゲットCPU21と、タグ(TAG)付きのエミュレ
ーションメモリ22と、ターゲットCPU21の動作を
監視してターゲットCPU21がアドレスバスに出力す
るアドレス、データバスに出力するデータ、各制御信号
からマシンサイクル情報を生成してPOD部3へマシン
サイクル情報を送り、このマシンサイクル情報とPOD
部3の状態とをデコードして、I/O読み出しのサイク
ルでターゲットCPU21をウェイト状態にしたり、タ
ーゲットCPU21にセルフジャンプをさせるための制
御信号を生成するデコード回路23と、I/O読み出し
の際にターゲットCPU21にウェイトをかけるための
回路、メモリのアドレスバス、データバス、各制御信号
線をターゲットCPU21から切り離して操作するため
の回路や命令の置き換えを行う回路を含むCPUメモリ
制御回路24と、ホスト通信部1からの入力によって制
御回路部2全体を制御し、表示データをホストに送出す
る制御回路25と、CPUメモリ制御回路24からのア
ドレスセレクト信号に基づいてCPUメモリ制御回路2
4から与えられるモニタ用アドレス又はターゲットCP
U21から与えられるアドレスを選択してエミュレーシ
ョンメモリ22に与えるセレクタ26と、CPUメモリ
制御回路24からのデータセレクト信号に基づいてCP
Uメモリ制御回路24から与えられるジャミング用デー
タ又はターゲットCPU21から与えられるデータ又は
エミュレーションメモリ22から与えられるデータを選
択して、CPUメモリ制御回路24又ターゲットCPU
21又はエミュレーションメモリ22に与えるセレクタ
27と、CPUメモリ制御回路24からのRD(読み出
し制御),WD(書き込み制御)信号に基づいてターゲ
ットCPU21から出力されるRD信号及びWD信号の
エミュレーションメモリ22への供給を制御するゲート
28を備えて構成される。
【0018】制御回路2内のターゲットCPU21のク
ロック信号は、デバッグ対象システムのクロック信号よ
り高速に設定されている。また、ユーザ・プログラム
は、エミュレーションメモリ22から読み出されターゲ
ットCPU21によってデバッグ対象システムより高速
に実行される。このエミュレーションメモリ22のビッ
ト数は、ターゲットCPU21のデータバスのビット数
に1ビット加えたビット数になっている(この部分をタ
グと呼ぶ)。I/O入力命令の書いてあるアドレスタグ
のビットを「1」に設定することによりI/O命令の置
き換えを行い、外部からの入力と同期を取るために利用
する。
【0019】デコード回路23は、ターゲットCPU2
1から出力される信号をデコードし、どのようなマシン
サイクルを実行しているのかというマシンサイクル情報
を生成し、POD部3に送る。ユーザ・プログラムがサ
ブルーチンの呼び出し、復帰、分岐などを行ないプログ
ラムの命令フェッチのアドレスが連続でない場合と、メ
モリ、I/Oに対してデータの読み書きを行う場合に
は、アドレスバス上に出力される信号の値もPOD部3
に送られて記憶される。また、メモリ、I/Oにデータ
を書き込む場合も、この書き込むデータの値がPOD部
3に送られて記憶される。
【0020】このように、制御回路部2内のターゲット
CPU21はI/Oからの入力を行う時を除いて、常に
デバッグ対象システムより先行してユーザプログラムを
実行している。このため、何マシンサイクル分か、実際
の実行時間より余裕ができることになり、その余った時
間を利用して制御回路部2内のターゲットCPU21
は、ユーザプログラムを実行する途中途中で、レジスタ
の値や、I/Oから入力された値などをホストマシンへ
送るためのプログラムを実行したり、メモリの値を表
示、変更することができる。
【0021】また、デコード回路23は、デバッグ情報
をホストマシンへ送るための動作をターゲットCPU2
1が実行している時の信号はデコードしないため、この
部分のマシンサイクル情報はPOD部3には送られな
い。このため、デバッグ対象のシステムから見ればター
ゲットCPU21が単体で動作しているのと全く同じ信
号がデバッグ対象のシステムに供給されることになり、
デバッグ対象のシステムの動作に影響を与えることな
く、ターゲットCPU21内部のレジスタの内容を読み
出すこと等ができる。
【0022】POD部3は、図3に示すように、制御回
路部2から送られてくるマシンサイクル情報を蓄える記
憶部30と、マシンサイクル情報の記憶位置を示すカウ
ンタ31と、マシンサイクルの出力実行位置を示すカウ
ンタ32と、この両カウンタの値の差を保持するレジス
タ33と、制御回路部2から送られて記憶部30を介し
て与えられる命令フェッチアドレスを保持する命令フェ
ッチアドレス保持レジスタ34と、命令フェッチアドレ
ス保持レジスタ34の値をインクリメントして命令フェ
ッチアドレス保持レジスタ34に与えるインクリメンタ
35と、デバッグ対象システムから供給される動作クロ
ック信号に基づいて、命令フェッチアドレス保持レジス
タ34から与えられるアドレスを受けてデバッグ対象シ
ステムにアドレスを出力するアドレス出力回路36と、
デバッグ対象システムから供給される動作クロック信号
に基づいて、POD部3とデバッグ対象システムとの間
でデータの入出力を行うデータ入出力回路37と、記憶
部30から出力されるマシンサイクル情報ならびにデバ
ッグ対象システムから供給される動作クロック信号に基
づいて、各制御信号を生成してデバッグ対象システムに
出力する制御信号生成回路38と、制御回路部2のデコ
ード回路23から与えられるPOD読み出し信号に基づ
いて、データ入出力回路37から与えられるデータをデ
コード回路23を介してターゲットCPU21に入力す
る入力データバッファ39を備えて構成される。
【0023】POD部3は、制御回路部2のデコード回
路23から出力されたマシンサイクルの情報を順次、内
部の記憶回路30に記憶し、デバッグ対象システムから
要求されるクロック信号に従って、ターゲットCPU2
1から出力された順序通りにアドレスバスの信号、各種
の制御信号(メモリ読み出し/書き込み,他、I/O読
み出し/書き込み,他)を模して出力する。
【0024】記憶回路30はNマシンサイクル(Nは整
数)を記憶できるだけ用意されており、現在送られてき
たマシンサイクル情報を記憶する位置を示す記憶位置カ
ウンタ31と、現在信号を出力しているマシンサイクル
の記憶されている位置を示す出力位置カウンタ32と、
その2つの位置の差を示す差分値レジスタ33とは、記
憶部30への入力、記憶部30からの出力がある毎に常
に更新される。差を示す差分値レジスタ33の値を調べ
てマシンサイクルの記憶数が(N−2)となりオーバフ
ローしそうになった場合には、これ以上マシンサイクル
情報が送られないようにするためにストップ信号をアク
ティブにする。ストップ信号がアクティブになると制御
回路部2はターゲットCPU21に、その命令の書いて
あるアドレスへのプログラムカウンタJump命令(セ
ルフジャンプ)を実行させる。このセルフジャンプはデ
コードを行わないため、POD部3内の記憶部30に送
るマシンサイクル情報にはならない。
【0025】このために、この間はPOD部3からの既
記憶分の各マシンサイクルの信号の出力だけとなり、記
憶部30内に記憶されたマシンサイクルの記憶数は減少
する。このように、デバッグ情報を出力することができ
るだけのマシンサイクル情報を残す程度まで、ターゲッ
トCPU21はセルフジャンプを実行することにより記
憶部30のオーバフローを防ぐようにしている。このよ
うに、ターゲットCPU21は、後述するI/O入力の
時を除いて、常に何クロックかデバッグ対象システムに
出力されるタイミングより先の部分を実行している。
【0026】このような構成において、制御回路部2内
でユーザ・プログラムを実行するターゲットCPU21
を高速に動作させ、一方、POD部3からデバッグ対象
システムに出力される信号をPOD部3内に記憶し、出
力すべきマシンサイクルの種類を示すデータに基づいて
デバッグ対象システムから供給されるクロック信号に同
期させてPOD部3により生成して出力する。これによ
り、ターゲットCPU21とデバッグ対象システムとの
間で実行時間の差を作り、この時間差を利用して、デバ
ッグ対象システムに与えられる信号に影響を与えること
なくターゲットCPU21の内部からデバッグ用の情報
を取り出すことができる。
【0027】従来では、POD部にターゲットCPU2
1を備え、このターゲットCPU21から出力されるア
ドレスバス信号、制御信号、データバス上のデータをバ
ッファを介してデバッグ対象システムとの間で入出力し
ていたが、POD部3から出力されるアドレスバス信
号、データバスに書かれるデータ、制御信号等はPOD
部3の制御信号生成回路38で擬似的に生成されて出力
される。この制御信号生成回路38によって、制御回路
部2のデコード回路23から受け取ったマシンサイクル
情報をもとにデバッグ対象システムから供給されたクロ
ック信号に同期してターゲットCPU21の各マシンサ
イクルが再現される。
【0028】メモリへの書込みは、まずエミュレーショ
ンメモリ22に書き込まれ、その後POD部3が出力す
る信号を生成するタイミングでデバッグ対象のメモリに
書き込まれる。メモリの読み出しはエミュレーションメ
モリ22に対して行われる。POD部3ではメモリ読み
出しサイクルを再現するが、この読み出した値はターゲ
ットCPU21に入力されることはない。
【0029】I/Oへの書込みは、POD部3で信号を
生成する時に書込みが行われる。I/Oの読み出しを行
う場合のみ、POD部3の記憶部30に記憶されている
マシンサイクル出力を全て行い、デバッグ対象システム
と同期を取ってデバッグ対象システムからの値をターゲ
ットCPU21が受け取る。
【0030】次に、この実施形態の動作を具体的に説明
する。
【0031】まず、通常動作時には、実行前にユーザプ
ログラムと全データをエミュレーションメモリ22にロ
ードしておく。ユーザプログラムはPOD部3を介して
デバッグ対象システムから受けとることもでき、あるい
はホストマシンからダウンロードをすることもできるよ
うになっている。デバッグを行なっている間はプログラ
ム、データは全てこの内部のエミュレーションメモリ2
2から読み書きされる。
【0032】リセット後、内部のターゲットCPU21
が動作を始めると、このターゲットCPU21がどのマ
シンサイクルを実行しているのかをデコード回路23が
デコードし、アドレスバス情報、データバス情報ととも
にマシンサイクルの種類を示すマシンサイクル情報をP
OD部3に出力する。POD部3の記憶部30に命令フ
ェッチアドレスが入力された場合には、命令フェッチア
ドレス保持レジスタ34にもアドレス情報が保持され
る。そして、命令フェッチが連続する場合は、続くクロ
ックからは、先に保持したアドレスをインクリメンタ3
5でインクリメントした値が出力される。条件/無条件
分岐、サブルーチンコールなどが行われ、命令フェッチ
のアドレスが不連続になった場合には、また新たにデコ
ード回路23から命令フェッチを行ったアドレスが命令
フェッチアドレス保持レジスタ34に送られる。
【0033】POD部3は送られてきたマシンサイクル
情報を記憶部30に順に記憶し、デバッグ対象システム
のクロック信号に同期して、この記憶されたマシンサイ
クル情報に従ってアドレスバス、データバス、その他の
制御信号を出力する。この実施形態では、マシンサイク
ル情報はターゲットCPU21のクロック信号の立ち上
がりに同期してデコードされ、POD部3に送られる。
【0034】次に、レジスタの値の読み出しとレジスタ
の値の変更を行う場合、ここでは、ターゲットCPU2
1内部のレジスタを読み出す場合の動作を、図4に示す
タイミングチャートを参照して説明する。
【0035】レジスタの値をデバッグ情報として取り出
す場合は、制御回路部2は常に命令をフェッチしている
アドレスと比較器に書かれたユーザから指定されたアド
レスとを比較している。そして、比較結果から実行して
いるプログラムのアドレスと指定されたアドレスが一致
した場合には、ターゲットCPU21のデータバス上
に、インデックスレジスタを利用してレジスタをメモリ
に書き込む命令(LD(IX),REG)を実行させ
る。この命令を実行した次のマシンサイクルでデータバ
ス上にレジスタの値が出力される。ただし、内部のエミ
ュレーションメモリ22のWR信号はアクティブになら
ないようにゲート28で禁止しており、メモリの値が書
き換えられることはない。
【0036】CPUメモリ制御回路24は、WR信号が
アクティブな間にデータバス上に出力されたデータを、
そのレジスタの値として取り込む。このロード命令を実
行することにより、プログラムカウンタがずれるため、
その次にプログラムのアドレスを本来のユーザプログラ
ムのアドレスに戻すためのプログラムカウンタ相対Ju
mp命令をデータバス上に出力し実行させる。これら一
連の動作をしている間は、デコード回路23は動作せ
ず、この動作に対する各信号はPOD部3からは出力さ
れない。
【0037】一方、レジスタの値を書き換える時は、上
記の命令をインデックスレジスタの示すアドレスからレ
ジスタへ読み込む命令(LD REG,(IX))に置
き換えればよい。その他はレジスタの読み出し動作と同
様である。
【0038】ただし、内部のターゲットCPU21がP
OD部3から出力される信号に影響を与えることなく上
記の動作を行うために必要なマシンサイクル数は予め判
明しており、内部のターゲットCPU21がそのマシン
サイクル数の分以上にプログラムを先行していないと、
この動作は実行できない。そこで、POD部3の記憶部
30にどれだけマシンサイクルが蓄えられているか調べ
るために記憶位置とPOD部3から信号出力を行ってい
る位置との差を示す差分値レジスタ33の値を参照し、
蓄えられたマシンサイクル情報がこの動作を行える程度
にまで蓄えられていない時には、ターゲットCPU21
内部のレジスタの読み出し、書込みが実行できないよう
になっている。
【0039】次に、内部のターゲットCPU21がI/
Oへ出力する時は、I/O出力時であるというマシンサ
イクル情報とともに、I/Oのアドレスと出力データが
POD部3内の記憶部30へ送られ、このタイミングの
信号をPOD部3が信号生成することによって書込みが
行われる。
【0040】一方、I/Oからの入力をターゲットCP
U21に与えるには2つ手法を用意した。いずれの場合
でも、外部の入力が確定するまで内部のターゲットCP
U21が外部入力を待つことになる。
【0041】まず、第1の方法を図5に示すタイミング
チャートを参照して説明する。
【0042】第1の方法は、I/O命令のあるアドレス
を指定した場合である。この場合には、このアドレスを
デバッグ実行前にユーザが指定しておくと、エミュレー
ションメモリ22の指定アドレスのタグの部分が「1」
にセットされる。エミュレーションメモリ22上のプロ
グラムを実行する際、タグが「1」にセットされたアド
レスの命令を実行する直前に、CPUメモリ制御回路2
4ではこの命令を命令が書かれているアドレスへのプロ
グラムカウンタ相対Jump命令に置き換え、POD部
3がI/O命令実行のサイクルにくるまでその命令を実
行し続ける。そして、POD部3からの入力が確定する
タイミングに同時にターゲットCPU21でもデータを
受け取ることができる。
【0043】次に、第2の方法を図6に示すタイミング
チャートを参照して説明する。
【0044】第2の方法は、I/O命令があるアドレス
を指定しなかった場合である。この場合には、I/Oの
読み出しサイクルを実行することにより、デコード回路
23は読み出されるアドレスがI/Oのアドレスである
ことが判明するので、ターゲットCPU21にウェイト
をかけ、I/Oサイクルの引き伸ばしを行う。I/Oサ
イクルを引き伸ばしたまま、POD部3から出力される
信号がI/Oサイクルを実行するのを待ち、デバッグ対
象システムからデータをPOD部3とほぼ同時に受け取
ることができる。
【0045】いずれの場合においても、I/O入力サイ
クルの次のマシンサイクルはターゲットCPU21の動
作のデコードが間に合わないため、この1マシンサイク
ルだけは、命令フェッチサイクルであるとして、命令フ
ェッチアドレス保持レジスタ34の値をインクリメント
した値を用い、命令フェッチサイクルの信号を発生させ
る。
【0046】このように、上記実施形態においては、従
来の技術では不可能であった、実際のターゲットCPU
を用いた場合の処理時間と同じ実行時間で処理中に、デ
バッグ対象システムを停止させることなくデバッグに必
要な情報をターゲットCPUから容易に取り出すことが
できるようになり、マイクロコンピュータ応用製品の開
発が容易にできる環境を提供できるようになる。
【0047】また、従来の開発ツールではPOD部内の
ターゲットCPUがスチールプログラムを実行する際に
アドレスバス、データバス等の各信号線に、このプログ
ラムが動作する際の信号が出力されており、これらの信
号線がターゲットCPUから出力されてもデバッグ対象
システムに誤動作をさせないようにするために、ターゲ
ットCPUが出力する各信号をバッファ経由でデバッグ
対象システムに出力して、不要な信号線の動作をデバッ
グ対象システムから切り離し、システムが誤動作をしな
いようにする必要があったが、この誤動作防止のための
回路を経由せずに信号を出力できるため、デバッグ対象
システムから出力される各信号の遅延時間が少なくな
り、高速動作するCPUをデバッグするデバッグ対象シ
ステムの開発を容易に行うことができる。
【0048】さらに、将来ソフトウェアエミュレーショ
ンの動作スピードが速くなった場合には、ターゲットC
PU21とデコード回路23とエミュレーションメモリ
22の部分をソフトウェアエミュレーションで置き換え
ることも可能である。
【0049】
【発明の効果】以上説明したように、この発明によれ
ば、デバッグ対象システムとターゲットCPUとのユー
ザプログラムの実行時間の差を利用して、デバッグ情報
の収集出力又は操作を行うようにしているので、デバッ
グ対象システムを停止させることなくデバッグ対象シス
テムからデバッグ情報を収集出力又は操作することがで
きる。これにより、マイクロコンピュータ応用製品の開
発を容易に行うことができるようになる。
【図面の簡単な説明】
【図1】この発明の一実施形態に係るデバッグシステム
の構成を示す図である。
【図2】図1に示す制御回路部の構成を示す図である。
【図3】図1に示すPOD部の構成を示す図である。
【図4】図1に示すシステムの非同期動作とレジスタの
値の出力時のタイミングチャートである。
【図5】図1に示すシステムのI/O入力時のタイミン
グチャートである。
【図6】図1に示すシステムのI/O入力時の他のタイ
ミングチャートである。
【符号の説明】
1 ホスト通信部 2 制御回路部 3 POD部 20 クロック信号供給回路 21 ターゲットCPU 22 エミュレーションメモリ 23 デコード回路 24 CPUメモリ制御回路 25 制御回路 26,27,28 セレクタ 30 記憶部 31 記憶位置カウンタ 32 出力位置カウンタ 33 差分値レジスタ 34 命令フェッチアドレス保持レジスタ 35 インクリメンタ 36 アドレス出力回路 37 データ入出力回路 38 制御信号生成回路 39 入力データバッファ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平7−93180(JP,A) 特開 平3−102435(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 11/22 340 G06F 11/34

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 マイクロコンピュータを備えたデバッグ
    対象システムのデバッグ処理を行うために必要な情報を
    ホストマシンとの間で入出力するホスト通信部と、 前記デバッグ対象システムの動作クロック信号よりも高
    速で非同期な動作クロック信号に同期して、前記デバッ
    グ対象システムのI/O装置からのデータ入力時を除い
    て前記デバッグ対象システムのユーザプログラムを前記
    デバッグ対象システムより先行してターゲットCPUが
    実行し、実行時のアドレスバス情報、データバス情報な
    らびにマシンサイクル情報を出力する制御回路部と、 前記デバッグ対象システムの動作クロック信号と、前記
    制御回路部から出力されたアドレスバス情報、データバ
    ス情報ならびにマシンサイクル情報を受けて、マシンサ
    イクル情報に基づいて前記デバッグ対象システムの各種
    制御信号を生成して前記デバッグ対象システムの動作ク
    ロック信号に同期してアドレスバス情報、データバス情
    報ならびに各種制御信号を前記デバッグ対象システムに
    供給するPOD部とを備え、 前記デバッグ対象システムと前記制御回路部のターゲッ
    トCPUとのユーザプログラムの実行時間の差を利用し
    て、前記デバッグ対象システムの動作クロック信号に同
    期して前記デバッグ対象システムを動作させながらデバ
    ッグ情報の収集出力又は操作を行うことを特徴とするデ
    バッグシステム。
  2. 【請求項2】 前記制御回路部は、 前記デバッグ対象システムのユーザプログラムを格納
    し、命令の置き換えを指示するタグビットを備えたエミ
    ュレーションメモリと、 前記エミュレーションメモリに格納されたユーザプログ
    ラムならびにデバッグ情報の収集出力又は操作を行うプ
    ログラムを実行するターゲットCPUと、 ユーザプログラムの実行により前記ターゲットCPUか
    ら出力されるアドレスバス情報、データバス情報ならび
    に各種制御信号に基づいてマシンサイクル情報を生成
    し、アドレスバス情報、データバス情報ならびにマシン
    サイクル情報を前記POD部に出力するデコード回路
    と、 前記エミュレーションメモリ、前記ターゲットCPU、
    前記デコード回路ならびに前記制御回路部全体の動作を
    制御する制御回路とを有することを特徴とする請求項1
    記載のデバッグシステム。
  3. 【請求項3】 前記POD部は、 前記デコード回路から出力されるマシンサイクル情報を
    格納する記憶部と、 マシンサイクルの記憶位置を示す記憶位置カウンタと、 マシンサイクルの実行出力位置を示す出力位置カウンタ
    と、 前記記憶位置カウンタと前記出力位置カウンタの差を保
    持し、前記記憶部の記憶可能容量を前記デコード回路に
    出力する差分値レジスタと、 前記デバッグ対象システムにアドレスを供給するアドレ
    ス出力回路と、 前記デバッグ対象システムとの間でデータの入出力を行
    うデータ入出力回路と、前記記憶部に記憶された内容に
    基づいて前記デバッグ対象システムの各種制御信号を生
    成して前記デバッグ対象システムに供給する制御信号生
    成回路とを有することを特徴とする請求項2記載のデバ
    ッグシステム。
  4. 【請求項4】 前記デバッグ対象システムのI/O装置
    からデバッグ情報を前記POD部を介して前記制御回路
    部に入力して収集する場合に、I/O命令のアドレスを
    予め指定し、該I/O命令の実行直前に該I/O命令を
    セルフジャンプ命令に置き換えて前記ターゲットCPU
    がI/O命令を実行するのを遅らせ、前記I/O装置か
    らデバッグ情報の入力とともに前記ターゲットCPUが
    I/O命令を実行してデバッグ情報を収集することを特
    徴とする請求項1,2又は3記載のデバッグシステム。
  5. 【請求項5】 前記デバッグ対象システムのI/O装置
    からデバッグ情報を前記POD部を介して前記制御回路
    部に入力して収集する場合に、I/O命令のアドレス読
    み出しによりI/O命令を判別し、前記ターゲットCP
    UにウェイトをかけてI/Oサイクルを引き伸し、前記
    I/O装置からデバッグ情報の入力とともに前記ターゲ
    ットCPUのウェイトを解除してI/O命令を実行しデ
    バッグ情報を収集することを特徴とする請求項1,2又
    は3記載のデバッグシステム。
  6. 【請求項6】 マイクロコンピュータを備えたデバッグ
    対象システムの動作クロック信号よりも高速で非同期な
    動作クロック信号に同期して、前記デバッグ対象システ
    ムのI/O装置からのデータ入力時を除いて前記デバッ
    グ対象システムのユーザプログラムを前記デバッグ対象
    システムより先行してターゲットCPUで実行し、 実行時のアドレスバス情報、データバス情報ならびにマ
    シンサイクル情報を記憶し、 記憶されたマシンサイクル情報に基づいて前記デバッグ
    システムの各種制御信号を生成し、 前記デバッグ対象システムの動作クロック信号に同期し
    てアドレスバス情報、データバス情報ならびに各種制御
    信号を前記デバッグ対象システムに供給し、 前記デバッグ対象システムと前記ターゲットCPUとの
    ユーザプログラムの実行時間の差を利用して、前記デバ
    ッグ対象システムの動作クロック信号に同期して前記デ
    バッグ対象システムを動作させながらデバッグ情報の収
    集出力又は操作を行うことを特徴とするデバッグ方法。
JP23330996A 1996-09-03 1996-09-03 デバッグシステム及びデバッグ方法 Expired - Fee Related JP3260083B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP23330996A JP3260083B2 (ja) 1996-09-03 1996-09-03 デバッグシステム及びデバッグ方法
US08/922,378 US5930470A (en) 1996-09-03 1997-09-03 Debugging system and debugging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23330996A JP3260083B2 (ja) 1996-09-03 1996-09-03 デバッグシステム及びデバッグ方法

Publications (2)

Publication Number Publication Date
JPH1078887A JPH1078887A (ja) 1998-03-24
JP3260083B2 true JP3260083B2 (ja) 2002-02-25

Family

ID=16953112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23330996A Expired - Fee Related JP3260083B2 (ja) 1996-09-03 1996-09-03 デバッグシステム及びデバッグ方法

Country Status (2)

Country Link
US (1) US5930470A (ja)
JP (1) JP3260083B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311326B1 (en) * 1999-01-04 2001-10-30 Emc Corporation Online debugging and tracing system and method
US6397382B1 (en) * 1999-05-12 2002-05-28 Wind River Systems, Inc. Dynamic software code instrumentation with cache disabling feature
JP3289704B2 (ja) * 1999-06-03 2002-06-10 日本電気株式会社 マイクロコンピュータ
US6961928B2 (en) * 2001-10-01 2005-11-01 International Business Machines Corporation Co-ordinate internal timers with debugger stoppage
US7216259B2 (en) * 2004-04-28 2007-05-08 Via Telecom Co., Ltd. Increment power saving in battery powered wireless system with software configuration
GB2459741B (en) * 2008-05-08 2012-05-02 Icera Inc Debugging system and method
KR20140005526A (ko) * 2012-07-04 2014-01-15 삼성전자주식회사 재구성 가능 프로세서의 소스 레벨 디버깅 장치 및 방법
CN103092746B (zh) * 2013-02-05 2015-12-02 上海大唐移动通信设备有限公司 线程异常的定位方法及系统
CN104133751A (zh) * 2014-08-06 2014-11-05 浪潮(北京)电子信息产业有限公司 一种对芯片进行调试的方法和芯片
US10579501B2 (en) * 2018-04-04 2020-03-03 International Business Machines Corporation Testing and reproduction of concurrency issues

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5047926A (en) * 1989-03-15 1991-09-10 Acer Incorporated Development and debug tool for microcomputers

Also Published As

Publication number Publication date
US5930470A (en) 1999-07-27
JPH1078887A (ja) 1998-03-24

Similar Documents

Publication Publication Date Title
KR100350568B1 (ko) 디버그기능을수행하기위한데이타처리시스템및방법
US5978902A (en) Debug interface including operating system access of a serial/parallel debug port
JP2752592B2 (ja) マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US7197671B2 (en) Generation of trace elements within a data processing apparatus
US5630102A (en) In-circuit-emulation event management system
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US6026503A (en) Device and method for debugging systems controlled by microprocessors
US6014512A (en) Method and apparatus for simulation of a multi-processor circuit
GB2413418A (en) Selective generation of trace elements
US20100153786A1 (en) Processor, multiprocessor, and debugging method
JP3260083B2 (ja) デバッグシステム及びデバッグ方法
JP2513417B2 (ja) 情報処理装置
GB2389931A (en) Selective generation of trace elements
KR0177742B1 (ko) 마이크로 콘트롤러의 칩내에 합체 가능한 마이크로 콘트롤러 디벨롭먼트 시스템
JP2563708B2 (ja) マイクロプロセッサ装置およびそれを用いたエミュレータ装置
JP2808757B2 (ja) デバッグ用マイクロプロセッサ
JP2002108647A (ja) トレースメモリを内蔵した半導体装置及びプロセッサ開発支援装置
JP2001014161A (ja) プログラマブルコントローラ
US7404069B2 (en) Branch tracing generator device and method for a microprocessor supporting predicated instructions and expanded instructions
JP3097602B2 (ja) データ処理装置
JP2666737B2 (ja) トレースメモリ内蔵マイクロプロセッサおよびトレース方法
KR100538282B1 (ko) 체크 포인트를 이용한 실시간 병렬 프로그램 디버깅 방법
JP2711159B2 (ja) プロセッサ動作状態調整方法
KR100658485B1 (ko) 마이크로프로세서 개발시스템
JPH07281924A (ja) トレース装置及びこれを備えたエミュレータ

Legal Events

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