JP2007080292A - デバッグシステム - Google Patents

デバッグシステム Download PDF

Info

Publication number
JP2007080292A
JP2007080292A JP2006319203A JP2006319203A JP2007080292A JP 2007080292 A JP2007080292 A JP 2007080292A JP 2006319203 A JP2006319203 A JP 2006319203A JP 2006319203 A JP2006319203 A JP 2006319203A JP 2007080292 A JP2007080292 A JP 2007080292A
Authority
JP
Japan
Prior art keywords
data
cpu
bus
memory
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.)
Pending
Application number
JP2006319203A
Other languages
English (en)
Inventor
Masahiko Nakagawa
昌彦 中川
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006319203A priority Critical patent/JP2007080292A/ja
Publication of JP2007080292A publication Critical patent/JP2007080292A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】実機を使用して外部機器からの入力信号や入力データをトレースメモリを利用して記録し、外部機器が接続されていない状態でもトレースメモリのデータを使用して外部機器が接続されていた状態をリアルタイムに再現することができるデバッグシステムを提供する。
【解決手段】インサーキットエミュレータ11は、記録モードでは、単一もしくは複数の特定のアドレスのI/O3からCPU2が読み出したデータとそのアドレスをトレースメモリ14に書き込むデータ入力手段15と、再生モードでは、トレースメモリ14に書き込まれたデータのアドレスをCPU2が出力するアドレスバスと比較して、一致するとトレースメモリ14内のデータを順次データバスに出力する機能を有するデータ出力手段17を備え、エバリューションチップ1はデータ出力手段17がデータを出力する場合にCPU2のデータバスをデータ出力手段17と接続するバス切替手段4を備えた。
【選択図】図1

Description

本発明は、プログラムの開発およびデバッグに使用するインサーキットエミュレータを備えたデバッグシステムに関するもので、応用分野としては、開発支援ツールが挙げられる。
特開2001−136232公報「通信制御装置のトレース方式および方式」には、クロックごとに信号の状態をラッチして、変化を認識すると信号の状態と時間をメモリに書きこむ技術が開示されている。上記技術は中央処理装置上の上位装置と通信回線を使用して回線インターフェース信号を制御する通信制御装置に限定したものである。
特開平7−325765号公報「情報処理装置」には、通信データを蓄積し、蓄積した通信データを再生して解析を行う技術が示されている。上記技術はモデムを有する情報処理装置に関するものである。但し通信データに限定したものである。
特開平8−147191号公報である「エミュレータおよびそれを用いたマイクロコンピュータ」には、トレース情報をバスに出力することで動作を再現する技術が開示されている。上記技術は全てのトレース情報を取り込み、再生時には全ての情報を出力するものである。
特開2001−136232公報 特開平7−325765号公報 特開平8−147191号公報
プログラムの開発・デバッグにおいては外部機器からの入力信号や入力データを必要とするため、実機を使用できない場合はI/Oからのデータ読み出し命令を実行した直後でプログラムを停止してレジスタの値をデバッグから書き換えてプログラムを継続して実行したり、割り込み処理のデバッグは、プログラムカウンタの値を書き換えて実行するなど、データや信号が入力されたと仮定してのデバッグを行っている。このため、データ量が多い場合などの検証は困難であり、実機での確認をせざるを得ない。また、実機を使用した場合でも外部機器の操作やボタンなどの操作を行う必要があり、操作のタイミングによっては不具合が発生したりしなかったりということもありデバッグの効率が非常に悪い。
またマイクロコンピュータのプログラムでは、周辺回路および外部装置からの情報をI/Oから読み出して処理を行うため、プログラムの単体テストや必要とする外部装置が接続されていない状態では、デバッグによりマイクロコンピュータによるプログラムの実行・停止を制御して、I/Oからの読み出しを行った直後でプログラムを停止して、手動でレジスタの値を書き換えてはプログラムを継続して実行するという手法を取るが、プログラムを停止する必要があるためリアルタイム性が損なわれる上に、操作が煩雑になるため大量のデータを処理するデバッグは不可能である。
このため、大量のデータを処理するプログラムのデバッグは、外部装置を接続した実機上で行うことになるが、外部機器の操作が必要であったり、操作のタイミングによって不具合となる現象が発生したりしなかったりするため、効率的なデバッグができない。また実機となる試作機は高価であったり、設置スペースを必要とするため、複数の人員で共有しての作業を行う必要があり、効率的ではない。また、従来技術としてバスの情報を全て取り込み、再生時に全ての情報をバスに出力する方式もあるが、全てのバス情報をトレースメモリに記録しなければならず、長時間の動作を記録・再生することができない。
本発明は、実機を使用して外部機器からの入力信号や入力データをトレースメモリを利用して記録し、外部機器が接続されていない状態でもトレースメモリのデータを使用して外部機器が接続されていた状態をリアルタイムに再現することを可能とするデバッグシステムを提供することを目的とするものである。
具体的には、請求項1は、割り込み信号や入力バスとしての入力端子の状態を記録・再生することで実機上でのプログラムおよびエバリュエーションチップの動作を再現することが可能なデバッグシステムを提供することを目的とする。
請求項2は、再生に使用するデータをホストコンピュータ上で生成してインサーキットエミュレータ上のメモリに書き込み、そのデータを使用してプログラムを動作させることで、実機上でのデータの記録を必要とせず、実機完成前でもデバッグが可能なデバッグシステムを提供することを目的とする。
上記目的を達成するために、請求項1記載の発明は、割り込み信号や外部装置からの入力バスとして外部端子から入力される入力信号により、CPUに割り込みを発生させたり外部装置からのデータを入力可能とする周辺回路を備えたエバリュエーションチップと、CPUのバス情報を取り込みトレースメモリに書き込むと共に、CPUによるプログラムの実行開始からの時間をカウントする時間測定手段を少なくとも備えたインサーキットエミュレータから構成されるデバッグシステムにおいて、インサーキットエミュレータは、入力信号の変化を監視し変化すると入力信号の状態と時間測定手段のカウント値をトレースメモリに記録するデータ入力手段と、プログラムを実行すると時間測定手段のカウント値をトレースメモリに記録されたカウント値と比較して、一致したカウント値のデータを順次出力するデータ出力手段とを備えたデバッグシステムを最も主要な特徴とする。
請求項2記載の発明は、請求項1に記載のデバッグシステムにおいて、メモリに書き込むデータをホストコンピュータ上で作成するメモリデータ生成手段を備えたデバッグシステムを主要な特徴とする。
請求項1のデバッグシステムにおいては、実機を使用した記録を行う必要が無く、実機の完成を待たずにリアルタイムのデバッグを行うことが可能になる。
請求項2のデバッグシステムにおいては、外部からの入力信号を再生することで、割り込みなどの動作も含めて動作の記録・再生を可能とし、実機上の動作を忠実に再現することが可能になる。
以下、図面により本発明の実施の形態を詳細に説明する。図1は本発明の第1の実施の形態に係るデバッグシステムの構成図である。その構成を動作と併せて説明する(以下の実施の形態でも同様とする)。
エバリュエーションチップ1のCPU2はI/O3を通じて外部装置10とデータの通信を行ったり、エバリュエーションチップ1内の周辺回路からフラグ等の情報を取得してプログラムを実行する。通常のデバッグにおいてはインサーキットエミュレータ11のデバッグ手段12からCPU2のプログラムの実行・停止を制御し、CPU2がアクセスするアドレスバスおよびデータバスの情報を、トレースデータ入力手段13を介してトレースメモリ14に書き込む。
次に、I/Oデータ記録モードの動作を説明する。実機を使用し、オペレータが外部装置10の操作も含めて実動作を行う。オペレータはトレースメモリ14に記録するI/O3のアドレス(複数可)をあらかじめインサーキットエミュレータ11のデータ入力手段15に設定しておく。
オペレータがデバッグ手段12を通じてCPU2にプログラムの実行を指示すると、エバリュエーションチップ1のバス切替手段4はCPU2とI/O3とデータ入力手段15のデータバスを接続した状態となる。CPU2はプログラムを実行し、ROM5、RAM6、I/O3に対して読み書きを行う。
データ入力手段15はアドレスバスを監視して、記録するように設定されたI/O3のアドレスからの読み出しサイクルのみのアドレスとデータをトレースメモリ14に順次書き込み、オペレータからプログラ停止が指示されるまでトレースメモリ14への書き込みが行われる。オペレータはプログラム停止後、インサーキットエミュレータ11のトレースデータ転送手段16により、トレースメモリ14に書き込まれたデータをホストコンピュータ30にアップロードする。
次に、I/Oデータ再生モードの動作を説明する。実機を使用せず、外部装置10は接続されていないものとする。オペレータはトレースデータ転送手段16により、ホストコンピュータ30に保存されたデータをトレースメモリ14にダウンロードする。
オペレータがデバッグ手段12を介してCPU2にプログラムの実行を指示すると、CPU2はプログラムを実行し、ROM5、RAM6、I/O3に対して読み書きを行う。バス切替手段4はインサーキットエミュレータ11のデータ出力手段17からの要求が無ければI/O3をCPU2のデータバスに接続し、データ出力手段17からの要求があればデータ出力手段17をCPU2のデータバスに接続する。
CPU2がI/O3からの読み出しを行うためにアドレスバスにアドレスを出力すると、データ出力手段17はアドレスバスのアドレスとトレースメモリ14に書き込まれている最初のデータのアドレスを比較し、アドレスが一致するとトレースメモリ14の最初のデータをデータバスに出力し、次にトレースメモリ14から読み出すポインタを進めて、データ出力手段17とCPU2のデータバスを接続するようにバス切替手段4に要求する。
アドレスが一致しない場合はバス切替手段4はCPU2とI/O3のデータバスを接続する。この結果、CPU2がI/O3からデータを読み出す場合は、トレースメモリ14に記録されているデータのみトレースメモリ14から読み出し、それ以外はI/O3からデータを読み出す。このようにして、実機を使用したプログラムの実行結果を再現することが可能となる。
図2は本発明の第2の実施の形態に係るデバッグシステムの構成図である。I/Oデータ記録モードの動作を説明する。実機を使用し、オペレータが外部装置10の操作も含めて実動作を行う。オペレータはあらかじめインサーキットエミュレータ11のメモリ18の各ブロックに記録するI/O3のアドレス(複数可)をデータ入力手段15に設定しておく。
オペレータがデバッグ手段12を通じてCPU2にプログラムの実行を指示すると、バス切替手段4はCPU2とI/O3とデータ入力手段15のデータバスを接続する。CPU2はプログラムを実行し、ROM5、RAM6、I/O3に対して読み書きを行う。
データ入力手段15はアドレスバスを監視して、記録するように設定されたI/O3のアドレスからの読み出しサイクルのみのアドレスとデータをメモリ18に書き込むことを決定し、インサーキットエミュレータ11のブロック選択手段19を通じて、対応するメモリ18のブロックに順次書き込みを行う。オペレータはプログラム停止後、インサーキットエミュレータ11のメモリデータ転送手段20により、メモリ18に書き込まれたデータをホストコンピュータ30にアップロードする。
次に、I/Oデータ再生モードの動作を説明する。実機を使用せず、外部装置10は接続されていないものとする。オペレータはメモリデータ転送手段20により、ホストコンピュータ30に保存されたデータをメモリ18にダウンロードする。
オペレータがデバッグ手段12を介してCPU2にプログラムの実行を指示すると、CPU2はプログラムを実行し、ROM5、RAM6、I/O3に対して読み書きを行う。バス切替手段4はデータ出力手段17からの要求が無ければI/O3をCPU2のデータバスに接続し、データ出力手段17からの要求があればデータ出力手段17をCPU2のデータバスに接続する。
CPU2がI/O3からの読み出しを行うためにアドレスバスにアドレスを出力すると、データ出力手段17はアドレスバスのアドレスがメモリ18に書き込まれているアドレスかどうかを判定し、該当するアドレスであれば対応するブロックの最初のデータをデータバスに出力し、次にメモリ18の対応するブロックから読み出すポインタを進めて、データ出力手段17とCPU2のデータバスを接続するようにバス切替手段4に要求する。
アドレスが一致しない場合はバス切替手段4はCPU2とI/O3のデータバスを接続する。この結果、CPU2がI/O3からデータを読み出す場合は、メモリ18に記録されているデータのみメモリ18から読み出し、それ以外はI/O3からデータを読み出す。
メモリ18のブロック1をパラレルインターフェース、ブロック2をシリアルインターフェースに割り当てた場合にプログラムの変更によりパラレルインターフェースとシリアルインターフェースのI/Oから読み出す順番を変更しても、各ブロックから読み出すI/O3のアドレスが変わらなければ記録した時のデータを使用してプログラムの実行が可能となる。このようにして、プログラムの変更によるI/O3の読み出しの順番が変わっても、記録したデータを使用してプログラムの実行を可能とする。
図3は本発明の第3の実施の形態に係るデバッグシステムの構成図である。入力信号記録モードの動作を説明する。実機を使用し、オペレータが外部装置の操作も含めて実動作を行う。トレースメモリ14は通常CPU2のプログラムの実行結果としてアドレスとデータをトレースデータ入力手段13を通じて書き込むが、入力信号を記録するためのメモリとして使用する。
オペレータがデバッグ手段12を通じてCPU2にプログラムの実行を指示すると、インサーキットエミュレータ11の時間測定手段21がカウントアップを開始する。データ入力手段15は入力信号を監視し、信号の状態が変化すると信号の情報(LOWまたはHIGH)と時間測定手段21のカウント値をトレースメモリ14に書き込む。オペレータはプログラム停止後、トレースデータ転送手段16により、トレースメモリ14に書き込まれたデータをホストコンピュータ30にアップロードする。
次に、入力信号再生モードの動作を説明する。実機を使用せず、外部装置10は接続されていないものとする。オペレータはトレースデータ転送手段16により、ホストコンピュータ30に保存されたデータをトレースメモリ14にダウンロードする。
オペレータがデバッグ手段12を介してCPU2にプログラムの実行を指示すると、CPU2はプログラムを実行し、時間測定手段21はカウントアップを開始する。データ出力手段17はトレースメモリ14の先頭に記録されている時間測定手段21のカウント値と時間測定手段21の実カウント値を比較し、一致するとトレースメモリ14に書き込まれている先頭のデータを入力信号バスに出力し、トレースメモリ14から次に比較するデータのポインタをインクリメントする。以降、時間測定手段21とトレースメモリ14の時間を比較して、一致するたびに順番にデータを入力信号バスに出力する。
キー入力などの変化が遅い入力信号の記録はCPU2が動作するクロックを使用することで対応可能であるが、シリアル通信等の高速なものについては時間測定手段21やデータ入力手段15、データ出力手段17のクロックとして外部のクロックを使用することで対応可能である。このようにして、入力信号を記録したときと同じタイミングで再生してプログラムの実行結果を再現することが可能となる。
図4は本発明の第4の実施の形態に係るデバッグシステムの構成図である。オペレータはメモリデータ生成手段31により、メモリ18にダウンロードするデータをあらかじめ生成しておく。次に、オペレータはメモリデータ転送手段20により、作成したデータをメモリ18にダウンロードする。
オペレータがデバッグ手段12を介してCPU2にプログラムの実行を指示すると、CPU2はプログラムを実行し、ROM5、RAM6、I/O3に対して読み書きを行う。バス切替手段4はデータ出力手段17からの要求が無ければI/O3をCPU2のデータバスに接続し、データ出力手段17からの要求があればデータ出力手段17をCPU2のデータバスに接続する。
CPU2がI/O3からの読み出しを行うためにアドレスバスにアドレスを出力すると、データ出力手段17はアドレスバスのアドレスがメモリ18に書き込まれているアドレスかどうかを判定し、該当するアドレスであればメモリ18の対応するブロックの最初のデータをデータバスに出力し、次にメモリ18の対応するブロックから読み出すポインタを進めて、データ出力手段17とCPU2のデータバスを接続するようにバス切替手段4に要求する。アドレスが一致しない場合はバス切替手段4はCPU2とI/O3のデータバスを接続する。
この結果、CPU2がI/O3からデータを読み出す場合は、メモリ18に記録されているデータのみメモリ18から読み出し、それ以外はI/O3からデータを読み出す。このようにして、実機を使用してデータを記録することなく、ホストコンピュータ30上で作成したデータを使用してのプログラム実行が可能であるため、実機の完成を待たずプログラムのデバッグを可能とする。
図5は本発明の第5の実施の形態に係るデバッグシステムの構成図である。記録モードの動作については第1の実施の形態と同じであるため省略する。I/Oデータ再生モードの動作を説明する。オペレータはトレースデータ転送手段16により、ホストコンピュータ30に保存されたデータをトレースメモリ14にダウンロードする。
オペレータがデバッグ手段12を介してCPU2にプログラムの実行を指示すると、バス切替手段4はCPU2側のアドレスバスとデータバスをインサーキットエミュレータ11側のアドレスバスとデータバスから切り離し、エバリュエーションチップ1のデータ出力手段8からの要求が無ければI/O3のデータバスをCPU2側のデータバスに接続する。
データ出力手段8はトレースメモリ14に対して最初のデータを要求し、インサーキットエミュレータ11側のアドレスバスとデータバスを介してアドレスとデータを取り込む。CPU2がプログラムの実行を開始すると、データ出力手段8はCPU2側のアドレスバスとトレースメモリ14から取り込んだアドレスの比較を行い、トレースメモリ14から取り込んでいたデータをバス切替手段4に渡し、CPU2側のデータバスに出力するように要求する。同時にトレースメモリ14に対して次のデータを要求する。
バス切替手段4はI/O3のデータバスをCPU2側のデータバスから切り離してデータ出力手段8から渡されたデータをCPU2側のデータバスに出力する。このようにして、データ出力手段8をエバリュエーションチップ1内に配置することで、エバリュエーションチップ1とインサーキットエミュレータ11間のプローブによる遅延の影響を受けることなく高速な動作が可能となる。
本発明の第1の実施の形態に係るデバッグシステムの構成図である。 本発明の第2の実施の形態に係るデバッグシステムの構成図である。 本発明の第3の実施の形態に係るデバッグシステムの構成図である。 本発明の第4の実施の形態に係るデバッグシステムの構成図である。 本発明の第5の実施の形態に係るデバッグシステムの構成図である。
符号の説明
1 エバリュエーションチップ、2 CPU、3 I/O、4 バス切替手段、10 外部装置、11 インサーキットエミュレータ、14 トレースメモリ、15 データ入力手段、17 データ出力手段

Claims (2)

  1. 割り込み信号や外部装置からの入力バスとして外部端子から入力される入力信号により、CPUに割り込みを発生させたり外部装置からのデータを入力可能とする周辺回路を備えたエバリュエーションチップと、CPUのバス情報を取り込みトレースメモリに書き込むと共に、CPUによるプログラムの実行開始からの時間をカウントする時間測定手段を少なくとも備えたインサーキットエミュレータから構成されるデバッグシステムにおいて、
    前記インサーキットエミュレータは、入力信号の変化を監視し変化すると入力信号の状態と時間測定手段のカウント値をトレースメモリに記録するデータ入力手段と、プログラムを実行すると時間測定手段のカウント値をトレースメモリに記録されたカウント値と比較して、一致したカウント値のデータを順次出力するデータ出力手段とを備えたことを特徴とするデバッグシステム。
  2. 請求項1に記載のデバッグシステムにおいて、メモリに書き込むデータをホストコンピュータ上で作成するメモリデータ生成手段を備えたことを特徴とするデバッグシステム。
JP2006319203A 2006-11-27 2006-11-27 デバッグシステム Pending JP2007080292A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006319203A JP2007080292A (ja) 2006-11-27 2006-11-27 デバッグシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006319203A JP2007080292A (ja) 2006-11-27 2006-11-27 デバッグシステム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002081412A Division JP4484417B2 (ja) 2002-03-22 2002-03-22 デバッグシステム

Publications (1)

Publication Number Publication Date
JP2007080292A true JP2007080292A (ja) 2007-03-29

Family

ID=37940470

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006319203A Pending JP2007080292A (ja) 2006-11-27 2006-11-27 デバッグシステム

Country Status (1)

Country Link
JP (1) JP2007080292A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116878A (ja) * 2007-11-05 2009-05-28 Advantest Corp 試験装置のシミュレーションシステム、方法、及びプログラム製品
JP2009116876A (ja) * 2007-11-05 2009-05-28 Advantest Corp 試験装置のシミュレーションシステム、方法、及びプログラム製品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116878A (ja) * 2007-11-05 2009-05-28 Advantest Corp 試験装置のシミュレーションシステム、方法、及びプログラム製品
JP2009116876A (ja) * 2007-11-05 2009-05-28 Advantest Corp 試験装置のシミュレーションシステム、方法、及びプログラム製品

Similar Documents

Publication Publication Date Title
US20220252665A1 (en) On-chip Debugging Device and Method
US7058855B2 (en) Emulation interface system
US6145099A (en) Debugging system
KR0149891B1 (ko) 버스상태분석기 및 그 내부버스시험방법
US20040117690A1 (en) Method and apparatus for using a hardware disk controller for storing processor execution trace information on a storage device
TWI270769B (en) Trace, debug method and system for a processor
JP2008033849A (ja) 障害解析システム
JP2006507586A (ja) 埋め込みシステムの解析装置及び方法
JP2007080292A (ja) デバッグシステム
JP4484417B2 (ja) デバッグシステム
US7231568B2 (en) System debugging device and system debugging method
JP2005165825A (ja) トレース情報記録装置
JPS6265147A (ja) バストレ−ス方式
JPH0713806A (ja) マイクロプロセッサのバストレース装置
WO2017149737A1 (ja) 高位合成装置、高位合成方法及び高位合成プログラム
JP2004348635A (ja) プログラム開発方法
JP2002132536A (ja) Lsiデバッグシステム
JP2023150107A (ja) インサーキットエミュレータ装置
JP2014174588A (ja) 情報記録再生装置及び情報記録再生方法
JP2006171810A (ja) デバッグ制御システム及びその制御方法
JP2009193604A (ja) 半導体情報処理装置
JP2010231818A (ja) デバッグシステム
JPH02150931A (ja) 情報処理装置
JPS62137626A (ja) トレ−ス装置
JPH0326416B2 (ja)

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070925

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080318