JP2000284985A - デバッグシステム及び情報記憶媒体 - Google Patents
デバッグシステム及び情報記憶媒体Info
- Publication number
- JP2000284985A JP2000284985A JP11092428A JP9242899A JP2000284985A JP 2000284985 A JP2000284985 A JP 2000284985A JP 11092428 A JP11092428 A JP 11092428A JP 9242899 A JP9242899 A JP 9242899A JP 2000284985 A JP2000284985 A JP 2000284985A
- Authority
- JP
- Japan
- Prior art keywords
- information
- execution
- trace
- program
- instruction
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
トレースを実現し、絶対分岐発生以前に関してもトレー
ス情報の生成が可能で、絶対分岐発生のステータス情報
が絶対分岐命令実行によるものか割り込みによるものか
を判別可能なデバッグシステム及び情報記憶媒体を提供
することにある。 【解決手段】 本デバッグシステムのトレース情報生成
部27は実行開始アドレス及びターゲットのCPUで実
行されるプログラムの機械語命令列情報に基づき、絶対
分岐命令発生以前のトレース情報を生成することができ
る。またトリガポイントアドレス及び前記機械語命令列
を把握するための情報に基づき、絶対分岐命令発生以前
のトレース情報を生成することもできる。また当該絶対
分岐発生が割り込み発生によるものか否かを、プログラ
ムの機械語命令列を把握するための情報に基づき判別可
能である。
Description
及びデバッグシステムに用いる情報記憶媒体に関する。
ーム装置、カーナビゲーションシステム、プリンタ、携
帯情報端末などの電子機器に組み込まれ、高度な情報処
理を実現できるマイクロコンピュータに対する需要が高
まっている。このような組み込み型のマイクロコンピュ
ータは、通常、ターゲットシステムと呼ばれるユーザボ
ードに実装される。このターゲットシステムを動作させ
るソフトウェアの開発を支援するためにICE(In-Cir
cuit Emulator)と呼ばれるソフトウェア開発支援ツー
ルが広く使用されている。
図1に示すようなCPU置き換え型と呼ばれるICEが
主流を占めていた。このCPU置き換え型ICEでは、
デバッグ時にターゲットシステム300からマイクロコ
ンピュータ302を取り外し、その代わりにデバッグツ
ール304のプローブ306を接続する。そして、この
デバッグツール304に、取り外したマイクロコンピュ
ータ302の動作をエミュレートさせる。また、このデ
バッグツール304に、トレース情報の取得やデバッグ
のために必要な種々の処理を行わせる。
Eでは、マイクロコンピュータ302の内部動作周波数
が上がるとプローブ306やトレース情報を格納するバ
ッファで生じる信号の遅延によりリアルタイムトレース
が困難になる。
プ上でリアルタイムトレースを可能にするシステムの開
発が行われている。このとき、トレース情報としてアド
レスバス等の情報をリアルタイムにトレースバッファに
格納しようとすると数十本の専用端子が必要となる。こ
こにおいて、係る端子はデバッグ時のみ必要な物で、エ
ンドユーザーにとっては不要なものであるから、より少
ないほうが好ましい。
を実現するためのトレース情報を専用4端子に出力し、
このトレース情報からリアルタイムトレースを可能にす
るシステムを開発している。
テータス情報を3端子に出力し、また絶対分岐命令等に
より絶対分岐が発生すると続く27クロックサイクルで
分岐先のPC値をシリアルに1端子に出力する。絶対分
岐命令とはプログラムの実行中にレジスタの値等によっ
て分岐先のアドレスが決まる命令であり、命令コードか
らは分岐先を判断することができない命令である。従っ
て絶対分岐命令が発生するとプログラムの命令コードか
ら分岐先が分からないため分岐先のPC値を出力するこ
とでトレースが可能となる。
が発生するまでプログラムカウンタの値を出力しないた
め、この間のプログラムカウンタ値を把握できずにトレ
ース情報が生成できないという問題点があった。
ムはデバッグ用端子を極力少なくするため、絶対分岐命
令により絶対分岐が発生した場合と割り込みにより絶対
分岐が発生した場合とを区別せずに、いずれも絶対分岐
命令実行を示すステータス情報を出力していた。このた
め絶対分岐命令実行のステータス情報の場合、それが命
令実行によるものか割り込みによるものか区別できない
という問題点があった。
てなされたものであり、その目的とするところは、少な
い端子で量産チップ上でのリアルタイムトレースを実現
し、トレース情報の生成が可能なデバッグシステム及び
情報記憶媒体を提供することにある。より詳しくは絶対
分岐発生以前に関してもトレース情報の生成が可能なデ
バッグシステム及び情報記憶媒体を提供すること、また
絶対分岐発生のステータス情報が絶対分岐命令実行によ
るものか割り込みによるものかを判別可能なデバッグシ
ステム及び情報記憶媒体を提供することにある。
状態が通常命令実行、絶対分岐命令実行、相対分岐命令
実行のいずれに属するかを判別するためのステータス情
報と絶対分岐命令の分岐先アドレスを出力するターゲッ
トシステムのトレース情報を出力するデバッグシステム
であって、ターゲットシステムから前記ステータス情報
を受け取って上書きしないでメモリに蓄積する手段と、
当該デバッグシステムが有しているターゲットシステム
の実行開始アドレス及びターゲットのCPUで実行され
るプログラムの機械語命令列を把握するための情報に基
づき、絶対分岐命令発生以前のトレース情報を生成する
トレース情報生成手段と、を含むことを特徴とする。
を実現するための情報を含むことを特徴とする。
るプログラムの機械語命令列を把握するための情報と
は、2進法や16進法で表された機械語の命令コード列
でもよいし、機械語の命令コード列をニーモニックコー
ドで表した命令コード列でもよい。少なくともターゲッ
トシステムのCPUが実行する機械語の命令列が把握で
きるものであればよい。
ったステータス情報を上書きしないでトレースメモリに
蓄積する。このため、特に範囲指定トレース等を行わな
い場合には、実行開始からのステータス情報がトレース
メモリの先頭から蓄積されている。このため、当該デバ
ッグシステムはターゲットシステムの実行開始アドレス
及びターゲットシステムで実行されたプログラム内容に
基づき、前記メモリに蓄積開始後で絶対分岐命令発生以
前のトレース情報を生成することができる。
か有しないターゲットシステムのデバッグを行う際に
も、絶対分岐命令の実行以前のトレース情報が生成でき
ないといった制約を受けることなく、実行範囲全体のト
レース情報をえることができる。
いデバッグ情報からでも通常のICE等と同様のトレー
ス情報が作成可能であるため、ターゲットシステムのデ
バッグ用端子の削減を可能にし、ターゲットシステムの
コスト削減に貢献できるという効果も有する。
トシステムで実行されたプログラム内容は予めデバッグ
システム内に保持しておいてもよいし、後で取得しても
よい。
ステムの実行開始アドレスを指定して実行させるような
場合には、指定した実行開始アドレスを保持しておくよ
うにすることが好ましい。また、デバッグシステムから
ターゲットシステムに実行用のプログラムをロードする
ような場合には、ロードじたプログラム内容をデバッグ
システム内に保持しておくようにすることが好ましい。
行、絶対分岐命令実行、相対分岐命令実行のいずれに属
するか及びトリガポイントにマッチしたか否かを判別す
るためのステータス情報と絶対分岐命令の分岐先アドレ
スを出力するターゲットシステムのトレース情報を出力
するデバッグシステムであって、ターゲットシステムか
ら前記ステータス情報を受け取って、メモリに蓄積する
手段と、メモリに蓄積されたステータス情報がトリガポ
イントにマッチしていることを示している場合に、当該
デバッグシステムが有しているトリガポイントアドレス
及びターゲットが実行するプログラムの機械語命令列を
把握するための情報に基づき絶対分岐命令発生以前のト
レース情報を生成するトレース情報生成手段とを含むこ
とを特徴とする。
を実現するための情報を含むことを特徴とする。
ラムの機械語命令列を把握するための情報とは、2進法
や16進法で表された機械語の命令コード列でもよい
し、機械語の命令コード列をニーモニックコードで表し
た命令コード列でもよい。少なくともターゲットマシン
が実行する機械語の命令コード列が把握できるものであ
ればよい。
い。トリガポイントは出力する範囲を指定するために用
いられ、指定された範囲のステータス情報を出力する場
合でもよい。また範囲指定には関係なく、トリガポイン
トにマッチしたか否かの情報を出力する場合でもよい。
リガポイントにマッチしたか否かの情報が含まれてい
る。このため、当該デバッグシステムが有しているトリ
ガポイントアドレス及びターゲットシステムで実行され
たプログラム内容に基づき、前記メモリに蓄積開始後で
絶対分岐命令発生以前のトレース情報を生成することが
できる。
か有しないターゲットシステムのデバッグを行う際に
も、絶対分岐命令の実行以前のトレース情報が生成でき
ないといった制約を受けることなく、実行範囲全体のト
レース情報をえることができる。
いデバッグ情報からでも通常のICE等と同様のトレー
ス情報が作成可能であるため、ターゲットシステムのデ
バッグ用端子の削減を可能にし、ターゲットシステムの
コスト削減に貢献できるという効果も有する。
ーゲットシステムで実行されたプログラム内容は予めデ
バッグシステム内に保持しておいてもよいし、後で取得
してもよい。
ステムのトリガポイントアドレスを指定して実行させる
ような場合には、指定したトリガポイントアドレスを保
持しておくようにすることが好ましい。また、デバッグ
システムからターゲットシステムに実行用のプログラム
をロードするような場合には、ロードしたプログラム内
容をデバッグシステム内に保持しておくようにすること
が好ましい。
行、絶対分岐発生、相対分岐命令実行のいずれに属する
かを判別するためのステータス情報と絶対分岐命令の分
岐先アドレスを出力するターゲットシステムのトレース
情報を出力するデバッグシステムであって、ターゲット
システムから前記ステータス情報を受け取ってメモリに
蓄積する手段と、前記メモリに蓄積されたステータス情
報が絶対分岐発生を示していた場合に、当該絶対分岐発
生が割り込み発生によるものか否かを、プログラムの機
械語命令列を把握するための情報に基づき判別してトレ
ース情報を生成するトレース情報生成手段とを含むこと
を特徴とする。
を実現するための情報を含むことを特徴とする。
ラムの機械語命令列を把握するための情報とは、2進法
や16進法で表された機械語の命令コード列でもよい
し、機械語の命令コード列をニーモニックコードで表し
た命令コード列でもよい。少なくともターゲットマシン
が実行する機械語の命令コード列が把握できるものであ
ればよい。
た場合や割り込みがあった場合に発生する。ここにおい
て割り込みとはプログラム分岐の一種であるが分岐命令
によるものではなくコンピュータのハードウエアの信号
によって分岐するものである。本発明のターゲットシス
テムではデバッグ用の端子を減らすために、割り込みに
よって絶対分岐が起こった場合と分岐命令によって絶対
分岐が起こった場合とを区別せずにいずれも絶対分岐発
生のステータス情報を出力している。
レスのみからでは、絶対分岐命令が実行されたのか割り
込みが発生したのか判別できずトレース情報の生成が困
難である。
すステータスに対応したプログラムの機械語命令列が、
実際に絶対分岐命令であるか否かを自動的に調べて前記
判別を行うことで、トレース情報の生成を可能としてい
る。
か有しないターゲットシステムのデバッグを行う際に
も、絶対分岐命令と割り込みの発生の区別を行いトレー
ス情報を生成することができる。すなわち本発明のデバ
ッグシステムは少ないデバッグ情報からでも通常のIC
E等と同様のトレース情報が作成可能であるため、ター
ゲットシステムのデバッグ用端子の削減を可能にし、タ
ーゲットシステムのコスト削減に貢献できるという効果
も有する。
グラムの機械語命令列を把握するための情報は予めデバ
ッグシステム内に保持しておいてもよいし、後で取得し
てもよい。
ステムに実行用のプログラムをロードするような場合に
は、ロードしたプログラム内容をデバッグシステム内に
保持しておくようにすることが好ましい。
が実行するプログラムの機械語命令列を把握するための
情報を予め記憶しているプログラム情報記憶手段をさら
に含み、前記トレース情報生成手段が、プログラム情報
記憶手段に記憶された前記プログラムの機械語命令列を
把握するための情報を用いてトレース情報を生成する事
を特徴とする。
を実現するための情報を含むことを特徴とする。
ターゲットシステムのメモリを読む必要がないので、タ
ーゲットシステム実行中でもトレース情報の生成が可能
になる。またトレース情報の生成のための処理時間を大
幅に削減することができる。
ついて図面を用いて詳細に説明する。
ーゲットシステムであるマイクロコンピュータ10は、
CPU(中央処理ユニット)12、実行情報出力部1
4、内部メモリ16を含む。
ムトレースを実現するための実行情報を専用4端子に出
力する。具体的には毎クロック毎にCPUの命令実行ス
テータス情報を3端子(DST[2:0])に出力し、
PC絶対分岐実行が発生すると続く27クロックサイク
ルで分岐先のPC値(DPCO)をシリアルに1端子に
出力する。
ムで実行されるプログラム等が記憶されている。
は、ターゲットであるマイクロコンピュータに直接接続
されるデバッグツール21と、当該デバッグツールと接
続されたホストコンピュータ23で構成されている。
2,ターゲットメモリ書き込み部28を含み、ホストコ
ンピュータ23はプログラム情報記憶部26、トレース
情報生成部27,プログラム情報書き込み部29を含ん
でいる。
[2:0]と、分岐先のPC(プログラムカウンタ)値
を表すDPCOを内部のトレースメモリ24に格納す
る。トレース範囲が指定されている場合には、その範囲
のDST[2:0]とDPCOをトレースメモリに格納
する。
ずつシリアルに出力されるため、全ビット出力される前
に新たな絶対分岐が発生すると、絶対分岐先のアドレス
情報の一部しかを受けとれないことになる。
ゲットシステムの内部メモリ16にプログラムをロード
したり、ターゲットシステムのメモリのプログラムを書
き換えたりする機能を有し、TXD/RXDライン(双
方向通信ライン)を介してマイクロコンピュータ10の
内部メモリ14に書き込むデータを送信する。
システムの内部メモリ16に記憶されたプログラムと同
一のプログラムの機械語コード列を記憶する。
ステムから絶対分岐先アドレスの一部を受け取った場合
に、ターゲットシステムが実行するプログラムが存在す
るアドレス領域に関する情報及びターゲットシステムか
ら受けとったステータス情報の少なくとも一方に基づ
き、前記絶対分岐先アドレスの一部以外の部分を特定し
てトレース情報を生成する処理を行う。さらに受け取っ
た絶対分岐先のアドレス情報の一部を下位ビットとする
候補アドレス群を抽出し、ターゲットシステムから受け
取ったステータス情報の配列と、候補アドレス群に含ま
れる所与の候補アドレスにより特定される機械語コード
列から予測されるステータス情報の配列と比較して絶対
分岐先のアドレス情報を特定する処理を行う。
ーゲットシステムの実行開始アドレス及びターゲットの
CPUで実行されるプログラムの機械語コード列に基づ
き絶対分岐命令発生以前のトレース情報を生成する処理
を行う。
トリガポイントにマッチしていることを示している場合
には、当該デバッグシステムが有しているトリガポイン
トアドレス及びターゲットが実行するプログラムの機械
語コード列に基づき、絶対分岐命令発生以前のトレース
情報を生成する処理を行う。
絶対分岐発生を示していた場合には、当該絶対分岐発生
が割り込み発生によるものか否かを、プログラムの機械
語コード列に基づき判別してトレース情報を生成する処
理を行う。
ラム情報記憶部26に記憶されたプログラムの機械語コ
ード列を用いる。
ットシステムのメモリにロードしたプログラムと同一の
プログラムを前記プログラム情報記憶部26にロードし
たり、ターゲットシステムのメモリに記憶されているプ
ログラムコードを読み出して前記プログラム情報記憶部
26に書き込んだり、前記プログラム情報記憶部26に
記憶されたプログラムをターゲットシステムのプログラ
ムと同内容になるよう書き換えたりする処理を行う。
タス情報の内容 図3はDST[2:0]の出力値(以下DST情報とい
う)とCPUの命令実行状態の関係を表した図である。
ここにおいてPC相対分岐命令とはプログラム中に明示
的に記述されたアドレスに分岐する命令であり、命令コ
ードから分岐先を判断可能である。またPC絶対分岐命
令とはプログラムの実行中にレジスタの値によって分岐
先のアドレスが決まる命令であり、命令コードからは分
岐先を判断することができない。
が発生すると分岐先のPC値(DPCO)を出力するこ
とでトレースを可能としている。
の順番に実行している時(DST情報が000又は10
0である場合)には、プログラムカウンタがどこまで進
んだか分かるのでプログラムの命令コードからトレース
が可能である。また、マイクロプロセッサがPC相対分
岐命令を実行した時(DST情報が001又は101で
ある場合)にも、プログラムの命令コードから分岐先が
分かるのでトレースが可能である。
岐命令を実行した時(DST情報が010又は110で
ある場合)には、プログラムの命令コードから分岐先が
分からないため、DST情報のみではトレースができな
い。そこで、係る場合に分岐先のPC値(DPCO)を
出力することでトレースを可能としているのである。
に出力しているので、絶対分岐命令が連続又は数命令間
隔で実行されると、PC値の情報が途中で途切れてしま
いトレースができないという問題点があった。
情報しかえることが出来ない場合でも後述するマップ情
報と前記DST情報に基づき絶対分岐の分岐先PC値を
特定できるように、トレース情報生成部27は以下に説
明するような分岐先アドレスを特定するための処理を行
っている。
を特定するための候補アドレス群の抽出について説明す
るための図である。
得られたPC値の情報を16進数で表したものである。
PC値は下位のビットから1ビットずつ27ビット出力
されるが、この間に新たな絶対分岐が発生したら、そこ
で新たな絶対分岐先のPC値が出力されるため、先に出
力されていたPC値はそこで途切れてしまう。
PC値が途切れてしまい、上位のビット情報314、3
16が得られていない状態である。このような場合、先
頭の4ビット316(16進コードなので1桁)を0と
すると絶対分岐先の候補となるPC値は216=6553
6個となる(図4(A)320参照)。従って、実際の
PC値を特定することは困難である。
すようにターゲットシステムのCPUが接続されている
メモリのマップ情報330を、デバッグシステムのパラ
メタファイル340に格納しておく。マップ情報330
とはプログラムが存在するアドレスに関する情報であ
り、例えばマップ情報330は、ターゲットのCPUに
RAM1、IROM、RAM2が接続されており、RA
M1の0−7FF番地、IROMの80000−80F
FF番地、RAM2の90000−9FFFF番地にプ
ログラムが格納されていることを示している。
(A)と同じく802番地であるとすると、RAM1の
中には候補はなく、IROMでは80802番地が候補
となり、RAM2では90802〜9F802の16個
が候補となり、全部で候補数は17となる(図4(B)
の340参照)。
した候補群からの絶対分岐先のアドレスを特定する処理
について説明するための図である。図5(A)は、トレ
ースメモリ24に格納されている絶対分岐命令実行以降
のDST情報350を示している。
た候補群の一つである80802番地以降の命令コード
360と当該命令コードの命令の種類370と当該命令
コードが実行された場合に出力されるであろうDST情
報380を表している。
定された候補群の一つである90802番地以降の命令
コード390と当該命令コードの命令の種類400と当
該命令コードが実行された場合に出力されるであろうD
ST情報410を表している。他の候補群についても図
5(B)(C)と同様に出力が予想されるであろうDS
T情報列を生成して、図5(A)のトレースメモリ24
のDST情報350と比較処理を行う。そして同じであ
れば、当該候補が分岐先アドレスとして特定される。こ
こでは、図5(B)の80802番地以降の命令実行に
より出力されるDST情報列が図5(A)のトレースメ
モリ34のDST情報350と一致するので、8080
2番地を分岐先アドレスとして特定する。
で発生しDPCOからプログラムカウンタ値が全ビット
出力されない場合に分岐先アドレスを特定する処理の動
作例を示すフローチャート図である。
の全体の流れについて説明する。
まず候補PC値(ulWorkPc)、候補数(ulExpectNum)
の初期設定を行う(ステップS10)。
0)でパラメタファイルでマップ情報を定義してあるメ
モリの個数分、マップ情報を利用した候補PC検索処理
(ステップS30)を行う。例えば図4(B)において
は、パラメタファイル340において、RAM1、IR
OM、RAM2の3つのメモリのマップ情報が定義され
ているので、3回候補PC値検索処理を行うことにな
る。この候補PC値検索処理で、候補PC値(ulWorkP
c)、候補数(ulExpectNum)が更新される。
(ulExpectNum)が1か否か判断する。そして候補数(u
lExpectNum)=1であれば、1つのPC値に特定された
と判断し、候補PC値特定処理で更新された候補PC値
(ulWorkPc)を、実際にCPUが実行したアドレスと
し、トレースデータの生成処理を行う(ステップS5
0、S60)。
候補PC検索処理(図6のステップS30)の詳細な処
理例について説明する。
レスをDPCO信号の出力ビット数だけ右にシフトした
ものを、開始アドレス(ulMapTopAddr)にセットする。
また、マップ情報で定義されたメモリの終了アドレスを
DPCO信号の出力ビット数だけ右にシフトしたもの
を、終了アドレス(ulMapBottomAddr)にセットする。
DPCO信号の出力が12ビットである場合(図4
(A)の312参照)には、RAM2の先頭アドレス9
0000を12ビットだけ右にシフトした00090を
開始アドレス(ulMapTopAddr)にセットする。またRA
M2の最後尾アドレス9FFFFを12ビットだけ右に
シフトした0009Fを終了アドレス(ulMapBottomAdd
r)にセットする。なお、先頭アドレス90000、最
後尾アドレス9FFFFは16進数で表記しているた
め、一桁で4ビット分のDPCO信号を表している。
Addr)から終了アドレス(ulMapBottomAddr)まで以下
の処理を繰り返す(ステップS120〜S170)。例
えば図4(B)の場合、00090から0009Fまで
16回繰り返すことになる。
PCO信号の出力ビット数だけ左にシフトしたものに、
DPCOから得られた出力中のPC値を足したものを処
理対象PC値(ulPC)にセットする(ステップS13
0)。
PC)以降の命令値を取り出すためのワークアドレス(un
WorkAddr)に処理対象PC値(ulPC)をセットする(ス
テップS140)。
ドレス(ulMapTopAddr)をは、00090である。従っ
てこれをDPCO信号の出力ビット数である12ビット
だけ左にシフトさせると09000となる。これにDP
COから得られた出力中のPC値である000802を
足した090802が処理対象PC値(ulPC)としてセ
ットされる。
ST情報を利用したPC値特定処理を行う(ステップS
150)。
(ulMapTopAddr)を更新しておく(ステップS16
0)。図4(B)では開始アドレス(ulMapTopAddr)が
更新されて00091となる。
PC値特定処理(図7のステップS150)の詳細な処
理例について説明する。
け以下の処理を繰り返す(ステップS210〜S25
0)。本実施の形態では1クロック毎にDPCOが1ビ
ット出力されるので絶対分岐命令が発生してから概ねD
PCO信号の出力ビット数だけそれ以降の命令が実行さ
れているため、DPCO信号の出力ビット数だけそれ以
降の命令の実行状態を表すDST情報がトレースメモリ
に格納されることになるからである。
ビット数が12ビットであるので、ステップS220か
らS240までの処理が12回繰り返されることにな
る。
に、ワークアドレス(unWorkAddr)が指すプログラム上
の命令コードを実行した場合に出力されるであろうDS
T信号を代入する(ステップS220)。例えば図5
(B)においてワークアドレス1(362)は分岐無し
命令であるaddを指しているので、分岐無し命令が実行
された場合に出力されるであろうDST情報’000’
を比較対象DSTコード(ucKindCode)に代入する。
信号と前記比較対象DSTコードと(ucKindCode)比較
して一致していなければ当該処理対象PC値は求める絶
対分岐先のPC値ではないとしてループCを抜ける(ス
テップS230)。
命令コードを取り出すために、ワークアドレス(unWork
Addr)を次の命令コード位置に位置づける(ステップS
240)。αは次の命令に移行するための命令サイズで
ある。例えば図5(B)において1命令が2バイトの場
合、ワークアドレス1(362)からワークアドレス2
(364)に位置づける。
ープCが実行された場合には、候補PC値以降の命令コ
ードが実行された場合のDST信号とトレースメモリに
格納されたDST信号がすべて一致したことになるの
で、当該処理対象PC値(ulPC)が求める絶対分岐先の
アドレスであるとして、処理対象PC値(ulPC)を候補
PC値(ulWorkPc)にセットする。また候補数(ulExpe
ctNum)をインクリメントする(ステップS260)。
なくトレース機能を実現するための処理 本実施の形態ではターゲットシステムの実行を停止させ
ることなくトレース情報を生成するために、ターゲット
システムの内部メモリに記憶されたプログラムの機械語
命令列(以下プログラム情報という)をホストコンピュ
ータのプログラム情報記憶部26に記憶させている。
メモリ上のDST信号と比較する前記比較対象DSTコ
ード(ucKindCode)にを、プログラム情報記憶部26に
記憶されたプログラム情報から作成することができる。
従ってトレース情報を生成する際にターゲットシステム
の内部メモリ16を読む必要がないので、ターゲットシ
ステムの実行を停止させることなくトレース情報を生成
することができる。
6を読む必要がないのでトレース情報生成のための処理
時間を大幅に短縮することができる。
部メモリ16に記憶されたプログラム情報であってトレ
ースに使うものをホストコンピュータのプログラム情報
記憶部26に記憶させるために、プログラム情報書き込
み部29は以下のような処理を行っている。
プログラムをロードする場合の動作例を説明するための
フローチャート図である。
部メモリにプログラムをロードする際に、当該プログラ
ムのトレース予定がある場合にはターゲットシステムの
内部メモリにロードしたプログラム内容をプログラム情
報記憶部に書き込む(ステップS310、S320、S
330)。
ログラムを書き換える場合の動作例を説明するためのフ
ローチャート図である。
部メモリのプログラムを書き換える際に、当該プログラ
ムのトレース予定がある場合には前記プログラム情報記
憶部に記憶されたプログラムの対応箇所をターゲットシ
ステムのプログラムと同内容に書き換える(ステップS
410、S420、S430)。
にターゲットシステムの内部メモリにある場合の動作例
について説明するためのフローチャート図である。
は、マップ情報からプログラムが格納されているメモリ
のスタートアドレスとエンドアドレスを特定する(ステ
ップS510、S520)。そしてターゲットシステム
の内部メモリのスタートアドレス、エンドアドレスで特
定されている内容を読み込み、プログラム情報記憶部に
書き込む(ステップS530)。
ウンタ解析処理 図12は絶対分岐命令発生以前のプログラムカウンタ解
析処理について説明するための図である。図12は、タ
ーゲットシステムで命令i1、i2、…が実行されて、
そのステータス情報DST1〜DST12がトレースメ
モリに蓄積されている様子を表している。本実施の形態
ではターゲットシステムは絶対分岐命令を実行するまで
プログラムカウンタ値を出力しないので、命令i9が実
行されるまでプログラムカウンタ値は出力されない。従
って絶対分岐発生以前に実行された命令i1〜命令i8
については、実行位置の特定ができずトレース情報が作
成できないという問題点があった。
に蓄積された先頭ステータス情報DST1に対応する命
令実行の際のプログラムカウンタを特定するために以下
のような構成を採用している。
合には、例えばプログラムの実行開始位置を指定して実
行させる際に、デバッグシステムで実行開始アドレスを
取得しておく。そしてトレースメモリに上書きしないオ
ーバーライト無しモードにおいて、ターゲットシステム
から出力されるステータス情報を蓄積する。
い場合には、ターゲットシステムは実行したすべての命
令についてステータス情報であるDST情報を出力す
る。従ってトレースメモリの先頭に蓄積されているDS
T情報DST1は、前記実行開始アドレスに対応する命
令が出力したものと特定できる。
先頭アドレスとエンドアドレスをトリガアドレスとして
セットすることにより、先頭アドレスからエンドアドレ
スまでの命令に対応したステータス情報のみを出力させ
る範囲指定トレースを行うことができる。このときデバ
ッグシステムで、ターゲットシステムにセットしたトリ
ガアドレスをあらかじめ取得しておく。
レースメモリの先頭に蓄積されているDST情報DST
1は、先頭アドレスとして指定したトリガアドレスに対
応する命令が出力したものと特定できる。
る最も古いデータ出力時のプログラムカウンタを解析す
る処理の動作例を表したフローチャート図である。
C(ulPC)に先頭アドレスであるトリガアドレス1を
セットする(ステップS610、S620)。
レースメモリにオーバーライトしない場合には、候補P
C(ulPC)にトレース開始直前のプログラムカウンタ
値をセットする(ステップS630、S640)。な
お、トレース開始直前のプログラムカウンタ値には、こ
れから実行する命令のアドレス値がセットされている。
モリの最も古いステータス情報に対応した命令のアドレ
ス値として、トレース情報を生成する(ステップS65
0)。
令実行によるものかハードウエア割り込みによるものか
を判別する処理について説明するための図である。
モリに格納されているステータス情報が絶対分岐命令の
実行を示すものである場合には、通常の絶対分岐命令実
行によるものである場合とハードウエア割り込みによる
ものである場合がある。
記憶部に記憶されているプログラムの機械語命令列の情
報と比較して、前記ステータス情報が通常の絶対分岐命
令実行によるものであるかハードウエア割り込みによる
ものであるかを判別している。
情報に対応する命令の機械語命令列がi1、i2…とす
ると、1410のステータス情報が通常の絶対分岐命令
実行によるものである場合には対応する機械語命令は1
420のi3となる。このi3が絶対分岐命令でない場
合には、1410のステータス情報は通常の絶対分岐命
令実行によるものでなくハードウエア割り込みによるも
のであることが判別できることになる。
タス情報が命令実行によるものかハードウエア割り込み
によるものかを判別する処理の動作例について説明する
ためのフローチャート図である。
報の個数だけループAの処理を行う(ステップS710
〜S760)。
いる場合には、まず当該DST情報出力の際のプログラ
ムカウンタが示すアドレスを解析する(ステップS72
0,S730)。そして、解析結果のプログラムカウン
タが示すアドレスの命令コードが絶対分岐命令でない場
合にはハードウエア割り込み発生箇所とし、データに登
録する(ステップS740,S750)。
の構成例 図16に本実施形態のマイクロコンピュータ及びデバッ
グシステムの詳細な構成例を示す。図16に示すよう
に、マイクロコンピュータ1020は、CPU102
2、BCU(バス制御ユニット)1026、内部メモリ
(ミニモニタROM1042及びミニモニタRAM10
44以外の内部ROM及び内部RAM)1028、クロ
ック生成部1030、ミニモニタ部1040(第1のモ
ニタ手段)、実行情報出力部1050を含む。
行処理を行うものであり、内部レジスタ1024を含
む。内部レジスタ1024は、汎用レジスタであるR0
〜R15や、特殊レジスタであるSP(スタックポイン
タレジスタ)、AHR(積和結果データの上位レジス
タ)、ALR(積和結果データの下位レジスタ)などを
含む。
る。例えば、CPU1022に接続されるハーバードア
ーキテクチャのバス1031や、内部メモリ1028に
接続されるバス1032や、外部メモリ1036に接続
される外部バス1033や、ミニモニタ部1040、実
行情報出力部1050などに接続される内部バス103
4の制御を行う。
コンピュータ1020内で使用される各種のクロックを
生成するものである。クロック生成部1030はBCL
Kを介して外部のデバッグツール1060にもクロック
を供給している。
M1042、ミニモニタRAM1044、制御レジスタ
1046、SIO1048を含む。
ミニモニタプログラムが格納される。本実施形態では、
このミニモニタプログラムは、GO、リード、ライトな
どのシンプルでプリミティブなコマンドの処理のみを行
うようになっている。このため、ミニモニタROM42
のメモリ容量を例えば256バイト程度に抑えることが
でき、オンチップデバッグ機能を持たせながらマイクロ
コンピュータ1020を小規模化できるようになる。
モードへの移行時に(ユーザプログラムのブレーク発生
時に)、CPU1022の内部レジスタ1024の内容
が退避される。これにより、デバッグモードの終了後に
ユーザプログラムの実行を適正に再スタートできるよう
になる。また内部レジスタの内容のリード等を、ミニモ
ニタプログラムが持つプリミティブなリードコマンド等
で実現できるようになる。
処理を制御するためのレジスタであり、ステップ実行イ
ネーブルビット、ブレークイネーブルビット、ブレーク
アドレスビット、トレースイネーブルビットなどを有す
る。ミニモニタプログラムにより動作するCPU102
2が制御レジスタ1046の各ビットにデータをライト
したり、各ビットのデータをリードすることで、各種の
デバッグ処理が実現される。
1020の外部に設けられたデバッグツール1060と
の間でデータを送受信するためのものである。SIO1
048とデバッグツール1060との間は、TXD/R
XD(データ送受信ライン)で接続されている。
トレース機能を実現するためのものであり、CPUの実
行状態を表すステータス情報であるDST情報(DST
[2:0])及びPC絶対分岐が発生した際の分岐先の
PC(プログラムカウンタ)値(DPCO)を実行情報
として専用4端子を介して外部に出力する。
1060との間は、CPU1022の命令実行のステー
タス情報を出力する3本のDST[2:0]と、絶対分
岐先のPC(プログラムカウンタ)値をシリアルに1ビ
ットずつ出力する1本のDPCOという4本のラインで
接続されている。
1062、実行情報取得部1064を含み、パーソナル
コンピュータ等により実現されるホストシステム106
6に接続される。
1066から入力されるデバッグコマンドをプリミティ
ブコマンドに変換(分解)するための処理を行う。そし
て、メインモニタ部1062が、プリミティブコマンド
の実行を指示するデータをミニモニタ部1040に送信
すると、ミニモニタ部1040が、指示されたプリミテ
ィブコマンドを実行するための処理を行うことになる。
トのDST[2:0]と、分岐先のPC(プログラムカ
ウンタ)値を表すDPCOを内部のトレースメモリ11
04に格納する。トレース範囲が指定されている場合に
は、その範囲のDST[2:0]とDPCOをトレース
メモリに格納する。
らマイクロコンピュータの内部メモリにプログラムをロ
ードしたり、内部メモリの情報を書き換える構成につい
て説明する。
イクロコンピュータ1020が、CPU(中央処理ユニ
ット)1022及び本実施形態の要部であるミニモニタ
部(第1のモニタ手段)1040を含む。また、マイク
ロコンピュータ1020の外部にはメインモニタ部(第
2のモニタ手段)1062が設けられている。ここでメ
インモニタ部1062は、例えばホストコンピュータ1
066などが発行したデバッグコマンドをプリミティブ
コマンドに変換(分解)するための処理を行う。また、
ミニモニタ部1040は、メインモニタ部1062との
間でデータを送受信する。そして、ミニモニタ部104
0は、実行するプリミティブコマンドを、メインモニタ
部1062からの受信データに基づいて決定し、プリミ
ティブコマンドを実行するための処理を行う。
理の対象となるデバッグコマンドとしては、プログラム
ロード、GO、ステップ実行、メモリライト、メモリリ
ード、内部レジスタライト、内部レジスタリード、ブレ
ークポイント設定、ブレークポイント解除などのコマン
ドを考えることができる。メインモニタ部1062は、
これらの多様で複雑なデバッグコマンドを、例えばG
O、ライト(デバッグモード時におけるメモリマップ上
の所与のアドレスへのライト)、リード(メモリマップ
上の所与のアドレスからのリード)などの、シンプルで
プリミティブなコマンドに変換する処理を行う。このよ
うにすることで、ミニモニタ部1040の処理を行うミ
ニモニタプログラムの命令コードサイズを格段に小さく
することができる。
ロコンピュータの内部メモリにプログラムをロードした
り、内部メモリの情報を書き換えることができる。すな
わちターゲットシステムであるマイクロコンピュータに
プログラムロードを行う場合や、メモリライトを行う場
合には、ホストコンピュータから、これらのデバッグコ
マンドを発行することになる。
マンドをプリミティブコマンドへ変換する処理について
模式的に示す。
D・・・、SUB・・・、AND・・・、OR・・・、
XOR・・・、LD.W・・・)という12バイトのプ
ログラムを80010h番地にロードするというデバッ
グコマンドが発行されたとする。この場合、このプログ
ラムロードコマンドは、ライト(80010h、ADD
・・・、SUB)、ライト(80014h、AND・・
・、OR・・・)、ライト(80018h、XOR・・
・、LD.W・・・)という3つのプリミティブなライ
トコマンドに変換される。即ち、ミニモニタプログラム
が、この3つのプリミティブなライトコマンドを実行す
ることで、プログラムロードコマンドが実現されるよう
になる。
行コマンドというデバッグコマンドが発行されたとす
る。すると、このステップ実行コマンドは、図16の制
御レジスタ1046のステップ実行イネーブルビットへ
のライトコマンドとGOコマンドに変換される。即ち、
ミニモニタプログラムが、このプリミティブなライトコ
マンドとGOコマンドを実行することで、ステップ実行
コマンドが実現されるようになる。
タリードコマンドというデバッグコマンドが発行された
とする。すると、この内部レジスタリードコマンドは、
メモリマップ上のミニモニタRAM44(内部レジスタ
の内容の退避先)からのリードコマンドに変換される。
即ち、ミニモニタプログラムが、このプリミティブなリ
ードコマンドを実行することで、内部レジスタリードコ
マンドが実現されるようになる。内部レジスタライトコ
マンド、メモリリードコマンド、メモリライトコマンド
も同様にして実現される。
レスをブレークポイントとして設定するブレークポイン
ト設定コマンドというデバッグコマンドが発行されたと
する。すると、このブレークポイント設定コマンドは、
制御レジスタ1046のブレークイネーブルビット及び
ブレークアドレスビットへのライトコマンドに変換され
る。即ち、ミニモニタプログラムが、このプリミティブ
なライトコマンドを実行することで、ブレークポイント
設定コマンドが実現されるようになる。
デバッグコマンドが、プリミティブでシンプルなリー
ド、ライト、GOコマンドに変換される。そして、ミニ
モニタプログラムは、このプリミティブなリード、ライ
ト、GOコマンドを実行するだけでよいため、ミニモニ
タプログラムの命令コードサイズは非常に小さくなる。
この結果、ミニモニタROM1042のメモリ容量も小
さくでき、小さなハードウェア規模でオンチップデバッ
グ機能を実現できるようになる。
されるプログラムを実行したり、デバッグツール106
0の全体の制御を行うものである。送受信切替部109
2は、データの送信と受信とを切り替えるためのもので
ある。クロック制御部1094は、CPU1090のS
CLK端子、アドレスアップカウンタ1100、トレー
スメモリ1104に供給するクロックを制御するもので
ある。このクロック制御部1094には、マイクロコン
ピュータ1020(SIO1048)からのBCLKが
入力される。クロック制御部1094は周波数検出回路
1095、分周回路1096を含む。周波数検出回路1
095は、BCLKの周波数が属する周波数範囲を検出
して、その結果を制御レジスタ1098に出力する。ま
た分周回路1096での分周比は制御レジスタ1098
により制御される。即ちCPU1090により実行され
るメインモニタプログラム(メインモニタROM110
に格納)が、制御レジスタ1098からBCLKの周波
数範囲を読み出す。そして、メインモニタプログラム
は、この周波数範囲に応じた最適な分周比を決定し、こ
の分周比を制御レジスタ1098に書き込む。そして、
分周回路1096は、この分周比でBCLKを分周して
SMC2を生成し、CPU1090のSCLK端子に出
力する。
ースメモリのアドレスをカウントアップするためのもの
である。セレクタ1102は、ライン1122(アドレ
スアップカウンタ1100が出力するアドレス)とライ
ン1124(アドレスバス1120からのアドレス)の
いずれかを選択し、トレースメモリ1104のアドレス
端子にデータを出力する。またセレクタ1106は、ラ
イン1126(図16の実行情報出力部1050の出力
であるDST[2:0]、DPCO)とライン1128
(データバス1118)のいずれかを選択し、トレース
メモリ1104のデータ端子にデータを出力したり、デ
ータ端子からデータを取り出す。
10(図16のメインモニタ部1062に相当)を含
み、メインモニタROM1110には、メインモニタプ
ログラムが格納される。このメインモニタプログラム
は、図18(A)〜図18(D)で説明したように、デ
バッグコマンドをプリミティブコマンドに変換するため
の処理を行う。RAM1112は、CPU1090のワ
ーク領域となるものである。
パラレルインターフェース1116は、図16のホスト
コンピュータ1066とのインターフェースとなるもの
であり、ホストシステム1066からのデバッグコマン
ドはこれらのインターフェースを介してCPU1090
に入力されることになる。クロック生成部1118は、
CPU1090を動作させるクロックなどを生成するも
のである。
処理について簡単に説明する。本実施形態では、図16
のCPU1022の命令実行のステータス情報を表す3
ビットのDST[2:0]と、分岐先のPC値を表すD
PCOをトレースメモリ1104に蓄える。そして、ト
レースメモリ1104に蓄えられたデータと、ホストコ
ンピュータ1066のプログラム情報記憶部に記憶され
たユーザプログラムの機械語命令列の情報とに基づい
て、トレースデータを生成する。このようにすること
で、マイクロコンピュータ1020とデバッグツール1
060との間の接続ラインの本数を少なくしながら、リ
アルタイムトレース機能を実現することが可能になる。
ライン1122が選択され、セレクタ1102を介して
アドレスアップカウンタ1100の出力がトレースメモ
リ1104のアドレス端子に入力される。また、ライン
1126が選択され、セレクタ1106を介してDST
[2:0]、DPCOがトレースメモリ1104のデー
タ端子に入力される。ここでアドレスアップカウンタ1
100には、まず最初に、データバス1118、アドレ
スバス1120を用いてCPU1090により図20
(A)に示すようなスタートアドレスが設定される。ま
たアドレスアップカウンタ1100のST/SP(開始
/停止)端子には、トレース範囲を特定するDST
[2]のラインが接続される。そして図20(B)に示
すように、DST[2]のラインに第1のパルス130
が入力されると、アドレスアップカウンタ1100のア
ドレスアップカウントが開始する。そして、DST
[2]のラインに第2のパルス132が入力されると、
アドレスアップカウンタ1100のアドレスアップカウ
ントが停止し、トレース動作が停止する。このようにし
て、所望のトレース範囲でのデータ(DST[2:
0]、DPCO)をトレースメモリ1104に蓄えるこ
とが可能になる。
バッグモードに移行すると、ライン1124が選択さ
れ、セレクタ1102を介してアドレスバス1120か
らのアドレスがトレースメモリ1104のアドレス端子
に入力される。またライン1128が選択され、セレク
タ1106を介してトレースメモリ1104からのデー
タがデータバス1118に出力される。これにより、ト
レースメモリ1104に蓄えられたデータ(DST
[2:0]、DPCO)を、デバッグモード時にCPU
1090(メインモニタプログラム)が読み出すことが
可能になる。そして、読み出されたデータとユーザープ
ログラムの機械語命令列の情報とに基づいて、トレース
データを生成することが可能になる。
本発明の要旨の範囲内で種々の変形実施が可能である。
ムの機能を実現する手段がデバッグツールとホストコン
ピュータに分散して設けられている場合を例にとり説明
したががこれに限られない。デバッグツールとホストコ
ンピュータのいずれか一方にすべて機能を実現する手段
を設けてデバッグシステムを実現するようにしてもよ
い。
ムから分岐先のPC値が1ビットずつシリアルに出力さ
れる場合を例にとり説明したがこれに限られない。分岐
先PC出力用の端子を数ビット分用意しておいて数ビッ
トずつシリアルに出力するような場合でもよい。
スで範囲指定トレースを行う場合を例にとり説明したが
これに限られない。例えば、トリガポイントが一つまた
が3つ以上設定されている場合でもよいし、トリガポイ
ントによって範囲指定を行わない場合でもよい。
ルの構成も本実施形態で説明したものに限定されず、種
々の変形実施が可能である。
る。
ある。
状態の関係を表した図である。
スを特定するための候補アドレス群の抽出について説明
するための図である。
した候補群からの絶対分岐先のアドレスの特定処理につ
いて説明するための図である。
グラムカウンタ値が全ビット出力されない場合に分岐先
アドレスを特定する処理の動作例を示すフローチャート
図である。
グラムカウンタ値が全ビット出力されない場合に分岐先
アドレスを特定する処理の動作例を示すフローチャート
図である。
グラムカウンタ値が全ビット出力されない場合に分岐先
アドレスを特定する処理の動作例を示すフローチャート
図である。
をロードする場合の動作例を説明するためのフローチャ
ート図である。
ドを書き換える場合の動作例を説明するためのフローチ
ャート図である。
システムの内部メモリにある場合の動作例について説明
するためのフローチャート図である。
解析処理について説明するための図である。
ータ出力時のプログラムカウンタを解析する処理の動作
例を表したフローチャート図である。
令実行によるものかハードウエア割り込みによるものか
を判別する処理について説明するための図である。
令実行によるものかハードウエア割り込みによるものか
を判別する処理の動作例について説明するためのフロー
チャート図である。
構成例を示す機能ブロック図である。
行処理について説明するための図である。
マンドをプリミティブコマンドへ変換(分解)する処理
について説明するための図である。
ロック図である。
である。
Claims (8)
- 【請求項1】 CPUの実行状態が通常命令実行、絶対
分岐命令実行、相対分岐命令実行のいずれに属するかを
判別するためのステータス情報と絶対分岐命令の分岐先
アドレスを出力するターゲットシステムのトレース情報
を出力するデバッグシステムであって、 ターゲットシステムから前記ステータス情報を受け取っ
て上書きしないでメモリに蓄積する手段と、 当該デバッグシステムが有しているターゲットシステム
の実行開始アドレス及びターゲットのCPUで実行され
るプログラムの機械語命令列を把握するための情報に基
づき、絶対分岐命令発生以前のトレース情報を生成する
トレース情報生成手段と、 を含むことを特徴とするデバッグシステム。 - 【請求項2】 CPUの実行状態が通常命令実行、絶対
分岐命令実行、相対分岐命令実行のいずれに属するか及
びトリガポイントにマッチしたか否かを判別するための
ステータス情報と絶対分岐命令の分岐先アドレスを出力
するターゲットシステムのトレース情報を出力するデバ
ッグシステムであって、 ターゲットシステムから前記ステータス情報を受け取っ
て、メモリに蓄積する手段と、 メモリに蓄積されたステータス情報がトリガポイントに
マッチしていることを示している場合に、当該デバッグ
システムが有しているトリガポイントアドレス及びター
ゲットが実行するプログラムの機械語命令列を把握する
ための情報に基づき絶対分岐命令発生以前のトレース情
報を生成するトレース情報生成手段と、 を含むことを特徴とするデバッグシステム。 - 【請求項3】 CPUの実行状態が通常命令実行、絶対
分岐発生、相対分岐命令実行のいずれに属するかを判別
するためのステータス情報と絶対分岐命令の分岐先アド
レスを出力するターゲットシステムのトレース情報を出
力するデバッグシステムであって、 ターゲットシステムから前記ステータス情報を受け取っ
てメモリに蓄積する手段と、 前記メモリに蓄積されたステータス情報が絶対分岐発生
を示していた場合に、当該絶対分岐発生が割り込み発生
によるものか否かを、プログラムの機械語命令列を把握
するための情報に基づき判別してトレース情報を生成す
るトレース情報生成手段と、を含むことを特徴とするデ
バッグシステム。 - 【請求項4】 請求項1乃至3のいずれかにおいて、 ターゲットが実行するプログラムの機械語命令列を把握
するための情報を予め記憶しているプログラム情報記憶
手段をさらに含み、 前記トレース情報生成手段が、 プログラム情報記憶手段に記憶された前記プログラムの
機械語命令列を把握するための情報を用いてトレース情
報を生成する事を特徴とするデバッグシステム。 - 【請求項5】 CPUの実行状態が通常命令実行、絶対
分岐命令実行、相対分岐命令実行のいずれに属するかを
判別するためのステータス情報と絶対分岐命令の分岐先
アドレスを出力するターゲットシステムのトレース情報
を出力するデバッグシステムを制御するためのコンピュ
ータが読みとり可能な情報記憶媒体であって、 ターゲットシステムから前記ステータス情報を受け取っ
て上書きしないでメモリに蓄積する手段と、 当該デバッグシステムが有しているターゲットシステム
の実行開始アドレス及びターゲットのCPUで実行され
るプログラムの機械語命令列を把握するための情報に基
づき絶対分岐命令発生以前のトレース情報を生成するト
レース情報生成手段と、 を実現するために必要な情報を含むことを特徴とする情
報記憶媒体。 - 【請求項6】 CPUの実行状態が通常命令実行、絶対
分岐命令実行、相対分岐命令実行のいずれに属するか及
びトリガポイントにマッチしたか否かを判別するための
ステータス情報と絶対分岐命令の分岐先アドレスを出力
するターゲットシステムのトレース情報を出力するデバ
ッグシステムを制御するためのコンピュータが読みとり
可能な情報記憶媒体であって、 ターゲットシステムから前記ステータス情報を受け取っ
て、メモリに蓄積する手段と、 メモリに蓄積されたステータス情報がトリガポイントに
マッチしていることを示している場合に、当該デバッグ
システムが有しているトリガポイントアドレス及びター
ゲットが実行するプログラムの機械語命令列を把握する
ための情報に基づき絶対分岐命令発生以前のトレース情
報を生成するトレース情報生成手段と、 を実現するために必要な情報を含むことを特徴とする情
報記憶媒体。 - 【請求項7】 CPUの実行状態が通常命令実行、絶対
分岐発生、相対分岐命令実行のいずれに属するかを判別
するためのステータス情報と絶対分岐命令の分岐先アド
レスを出力するターゲットシステムのトレース情報を出
力するデバッグシステムを制御するためのコンピュータ
が読みとり可能な情報記憶媒体であって、 ターゲットシステムから前記ステータス情報を受け取っ
てメモリに蓄積する手段と、 前記メモリに蓄積されたステータス情報が絶対分岐発生
を示していた場合に、当該絶対分岐発生が割り込み発生
によるものか否かを、プログラムの機械語命令列を把握
するための情報に基づき判別してトレース情報を生成す
るトレース情報生成手段と、 を実現するために必要な情報を含むことを特徴とする情
報記憶媒体。 - 【請求項8】 請求項5乃至7のいずれかにおいて、 ターゲットが実行するプログラムの機械語命令列を把握
するための情報を予め記憶しているプログラム情報記憶
手段をさらに含み、 前記トレース情報生成手段が、 プログラム情報記憶手段に記憶された前記プログラムの
機械語命令列を把握するための情報を用いてトレース情
報を生成するために必要な情報を含むことを特徴とする
情報記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09242899A JP3775462B2 (ja) | 1999-03-31 | 1999-03-31 | デバッグシステム及び情報記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09242899A JP3775462B2 (ja) | 1999-03-31 | 1999-03-31 | デバッグシステム及び情報記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000284985A true JP2000284985A (ja) | 2000-10-13 |
JP3775462B2 JP3775462B2 (ja) | 2006-05-17 |
Family
ID=14054178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09242899A Expired - Fee Related JP3775462B2 (ja) | 1999-03-31 | 1999-03-31 | デバッグシステム及び情報記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3775462B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010123050A (ja) * | 2008-11-21 | 2010-06-03 | Renesas Technology Corp | 半導体装置 |
US7817293B2 (en) | 2005-01-07 | 2010-10-19 | Infoprint Solutions Company, Llc | Trace and debug tool for high speed printer systems |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020140380A (ja) | 2019-02-27 | 2020-09-03 | ローム株式会社 | 半導体装置及びデバッグシステム |
-
1999
- 1999-03-31 JP JP09242899A patent/JP3775462B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7817293B2 (en) | 2005-01-07 | 2010-10-19 | Infoprint Solutions Company, Llc | Trace and debug tool for high speed printer systems |
JP2010123050A (ja) * | 2008-11-21 | 2010-06-03 | Renesas Technology Corp | 半導体装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3775462B2 (ja) | 2006-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6922795B2 (en) | Microcomputer, electronic equipment, and debugging system | |
US6075941A (en) | Microcomputer | |
US6662314B1 (en) | Microcomputer including program for rewriting data in an internal flash memory | |
US6094730A (en) | Hardware-assisted firmware tracing method and apparatus | |
US20030046610A1 (en) | Microcomputer and debugging system | |
JPH11282720A (ja) | マイクロコンピュータ、電子機器及びデバッグシステム | |
US20060010282A1 (en) | Method and apparatus to boot a system by monitoring an operating status of a NAND flash memory | |
US20030093612A1 (en) | Microcomputer | |
US6708289B1 (en) | Microcomputer, electronic equipment and debugging system | |
US6760864B2 (en) | Data processing system with on-chip FIFO for storing debug information and method therefor | |
US20060075310A1 (en) | Microcomputer and trace control method capable of tracing desired task | |
US20050060690A1 (en) | Microprocessor system with software emulation processed by auxiliary hardware | |
JP2000284985A (ja) | デバッグシステム及び情報記憶媒体 | |
CN116737078A (zh) | 一种快速闪存读写系统、方法、设备及介质 | |
JPH1078887A (ja) | デバッグシステム及びデバッグ方法 | |
JPH11282714A (ja) | 情報処理装置及び電子機器 | |
US20050086454A1 (en) | System and methods for providing a debug function built-in type microcomputer | |
JP3741187B2 (ja) | デバッグシステム及び情報記憶媒体 | |
JP2000284984A (ja) | デバッグシステム及び情報記憶媒体 | |
CN114546746A (zh) | 一种芯片调试的方法、装置、电子设备及存储介质 | |
JP3741182B2 (ja) | マイクロコンピュータ、電子機器及びデバッグシステム | |
US20230314513A1 (en) | In-circuit emulator device | |
JP2005251217A (ja) | マイクロコンピュータ、電子機器及びデバッグシステム | |
JP2967741B2 (ja) | Cpu互換性テスト装置 | |
JP2009009201A (ja) | デバッグ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050803 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051026 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20051220 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051228 |
|
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: 20060201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060214 |
|
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: 20090303 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100303 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100303 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110303 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120303 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120303 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130303 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140303 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |