JP2003076577A - デバッグ装置 - Google Patents
デバッグ装置Info
- Publication number
- JP2003076577A JP2003076577A JP2001266827A JP2001266827A JP2003076577A JP 2003076577 A JP2003076577 A JP 2003076577A JP 2001266827 A JP2001266827 A JP 2001266827A JP 2001266827 A JP2001266827 A JP 2001266827A JP 2003076577 A JP2003076577 A JP 2003076577A
- Authority
- JP
- Japan
- Prior art keywords
- trace
- trace memory
- address
- information
- memory
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】複数のトレースメモリに記録された事象の発生
時間の前後関係をより少ないハードウェアの追加によっ
て、その発生頻度に関わらず知ることができるデバッグ
装置を提供する。 【解決手段】間欠的にトレース情報を出力する複数の非
同期又は同期して動作するCPUを搭載するシステムに
おけるデバッグ装置であって、トレースメモリ113、
123にCPU111、121のトレース情報117、
127を書き込む時に、トレースメモリa113に、ト
レースメモリ123のアドレス124をトレース情報1
17とともに書き込むことによって、トレースメモリa
113の情報とトレースメモリb123の情報の発生前
後の関係を特定する。
時間の前後関係をより少ないハードウェアの追加によっ
て、その発生頻度に関わらず知ることができるデバッグ
装置を提供する。 【解決手段】間欠的にトレース情報を出力する複数の非
同期又は同期して動作するCPUを搭載するシステムに
おけるデバッグ装置であって、トレースメモリ113、
123にCPU111、121のトレース情報117、
127を書き込む時に、トレースメモリa113に、ト
レースメモリ123のアドレス124をトレース情報1
17とともに書き込むことによって、トレースメモリa
113の情報とトレースメモリb123の情報の発生前
後の関係を特定する。
Description
【0001】
【発明の属する技術分野】本発明は、複数のCPUを備
えたシステムにおいて、それぞれのCPUのトレース情
報を記憶するトレースメモリを具備するデバッグ装置に
関するものである。
えたシステムにおいて、それぞれのCPUのトレース情
報を記憶するトレースメモリを具備するデバッグ装置に
関するものである。
【0002】
【従来の技術】図7は、従来の複数CPUを持つ装置に
おけるデバッグ装置を示す。同図においてターゲットシ
ステム6は第一のCPUa11と、CPUa11とは非
同期または同期して動作する第2のCPUb21を備え
る。デバッグ装置5は、CPUa11のトレース情報1
7を記憶するトレースメモリa13と、CPUb21の
トレース情報27を記録するトレースメモリb23を備
える。
おけるデバッグ装置を示す。同図においてターゲットシ
ステム6は第一のCPUa11と、CPUa11とは非
同期または同期して動作する第2のCPUb21を備え
る。デバッグ装置5は、CPUa11のトレース情報1
7を記憶するトレースメモリa13と、CPUb21の
トレース情報27を記録するトレースメモリb23を備
える。
【0003】図8は図7に時間計測カウンタ57を追加
して、その出力58をトレースメモリa63とトレース
メモリb73にトレース情報67,トレース情報77と
共に書き込むようにしたものである。なお、55はデバ
ッグ装置、56はターゲット装置、61はCPUa、7
1はCPUbである。
して、その出力58をトレースメモリa63とトレース
メモリb73にトレース情報67,トレース情報77と
共に書き込むようにしたものである。なお、55はデバ
ッグ装置、56はターゲット装置、61はCPUa、7
1はCPUbである。
【0004】
【発明が解決しようとする課題】CPUのトレース情報
が分岐発生時のみ出力されるような間欠的出力の場合、
図7のように複数のCPUを備えたシステムにおいて
は、トレースメモリa13とトレースメモリb23への
書き込みは独立的かつ非同期に行われるため、トレース
メモリa13とトレースメモリb23に記録された情報
の発生時間の前後関係を知ることができない。
が分岐発生時のみ出力されるような間欠的出力の場合、
図7のように複数のCPUを備えたシステムにおいて
は、トレースメモリa13とトレースメモリb23への
書き込みは独立的かつ非同期に行われるため、トレース
メモリa13とトレースメモリb23に記録された情報
の発生時間の前後関係を知ることができない。
【0005】また、図8のように時間計測カウンタを追
加した従来例では、トレースメモリ63、73への書込
の際、カウンタ57の値が同時に書き込まれるため、ト
レースメモリa63とトレースメモリb73に記録され
た事象の時間差を確認することが出来るが、長時間にわ
たるトレースに対応するには非常にビット幅の広いカウ
ンタと、トレースメモリ63、73が必要になり回路規
模が非常に大きくなる。時間計測カウンタ57のカウン
ト間隔を長くすればビット数を減らすことが出来るが、
トレースメモリa63とトレースメモリb73に書き込
むタイミングが時間的に時間計測カウンタ57のカウン
トアップ時間よりも短い場合、前後関係を判定すること
が出来なくなる。いずれの方法を用いても分岐命令等の
発生頻度が低く、トレースメモリ63、73への書き込
み間隔が長くなった場合には時間計測カウンタ57がオ
ーバーフローしてトレースメモリ63、73に記録され
た事象の前後関係を把握することができなくなる。
加した従来例では、トレースメモリ63、73への書込
の際、カウンタ57の値が同時に書き込まれるため、ト
レースメモリa63とトレースメモリb73に記録され
た事象の時間差を確認することが出来るが、長時間にわ
たるトレースに対応するには非常にビット幅の広いカウ
ンタと、トレースメモリ63、73が必要になり回路規
模が非常に大きくなる。時間計測カウンタ57のカウン
ト間隔を長くすればビット数を減らすことが出来るが、
トレースメモリa63とトレースメモリb73に書き込
むタイミングが時間的に時間計測カウンタ57のカウン
トアップ時間よりも短い場合、前後関係を判定すること
が出来なくなる。いずれの方法を用いても分岐命令等の
発生頻度が低く、トレースメモリ63、73への書き込
み間隔が長くなった場合には時間計測カウンタ57がオ
ーバーフローしてトレースメモリ63、73に記録され
た事象の前後関係を把握することができなくなる。
【0006】本発明は、かかる課題に鑑み複数のトレー
スメモリに記録された事象の発生時間の前後関係をより
少ないハードウェアの追加によって、その発生頻度に関
わらず知ることができるデバッグ装置を提供することを
目的とする。
スメモリに記録された事象の発生時間の前後関係をより
少ないハードウェアの追加によって、その発生頻度に関
わらず知ることができるデバッグ装置を提供することを
目的とする。
【0007】
【課題を解決するための手段】この課題を解決するため
本発明のデバッグ装置は、例えば複数のトレースメモリ
にその発生順序を特定するための情報を書き込み、その
情報をデバッグソフトウェアで解析して表示すること
で、複数のトレースメモリの事象の発生順序を特定する
ことを可能とする。
本発明のデバッグ装置は、例えば複数のトレースメモリ
にその発生順序を特定するための情報を書き込み、その
情報をデバッグソフトウェアで解析して表示すること
で、複数のトレースメモリの事象の発生順序を特定する
ことを可能とする。
【0008】請求項1記載のデバッグ装置は、間欠的に
トレース情報を出力する複数の非同期又は同期して動作
するCPUを搭載するシステムにおけるデバッグ装置で
あって、それぞれのCPUのトレース情報を記憶する各
マイコン用の独立したトレースメモリと、トレースメモ
リの一部または全部に同期用TAG情報を書き込ませる
同期用TAG生成手段と、トレースメモリに書き込まれた
同期用TAG情報によって、それぞれのCPUのトレー
ス情報の元となった事象の発生順序を特定する順序特定
手段を備えたものである。
トレース情報を出力する複数の非同期又は同期して動作
するCPUを搭載するシステムにおけるデバッグ装置で
あって、それぞれのCPUのトレース情報を記憶する各
マイコン用の独立したトレースメモリと、トレースメモ
リの一部または全部に同期用TAG情報を書き込ませる
同期用TAG生成手段と、トレースメモリに書き込まれた
同期用TAG情報によって、それぞれのCPUのトレー
ス情報の元となった事象の発生順序を特定する順序特定
手段を備えたものである。
【0009】請求項1記載のデバッグ装置によれば、T
AG情報から事象の発生順序を特定することが可能とな
り、しかもTAG情報をトレースメモリに追加するビッ
ト幅は小規模で可能である。
AG情報から事象の発生順序を特定することが可能とな
り、しかもTAG情報をトレースメモリに追加するビッ
ト幅は小規模で可能である。
【0010】請求項2記載のデバッグ装置は、請求項1
において、CPU及びトレースメモリがそれぞれ二つの
場合に、同期用TAG生成手段として、一方のCPUトレ
ースデータ書き込み時に、もう一方のトレースメモリの
示しているトレースメモリのアドレスを書き込むもので
ある。
において、CPU及びトレースメモリがそれぞれ二つの
場合に、同期用TAG生成手段として、一方のCPUトレ
ースデータ書き込み時に、もう一方のトレースメモリの
示しているトレースメモリのアドレスを書き込むもので
ある。
【0011】請求項2記載のデバッグ装置によれば、請
求項1と同様の効果がある。
求項1と同様の効果がある。
【0012】請求項3記載のデバッグ装置は、請求項1
において、同期用TAG生成手段として、いずれかのトレ
ースメモリへの書き込みが発生するたびにインクリメン
トされるカウンタを具備し、それぞれのトレースメモリ
への情報書き込み時に、カウンタの出力を同時に書き込
むものである。
において、同期用TAG生成手段として、いずれかのトレ
ースメモリへの書き込みが発生するたびにインクリメン
トされるカウンタを具備し、それぞれのトレースメモリ
への情報書き込み時に、カウンタの出力を同時に書き込
むものである。
【0013】請求項3記載のデバッグ装置によれば、請
求項1と同様の効果があり、CPUおよびトレースメモ
リを二つ以上備える場合にも適用できる。
求項1と同様の効果があり、CPUおよびトレースメモ
リを二つ以上備える場合にも適用できる。
【0014】請求項4記載のデバッグ装置は、請求項2
において、順序特定手段が、トレースメモリに書き込ま
れたもう一方のトレースメモリアドレスの情報を解析し
て、二つのトレースメモリに書き込まれた事象の発生順
序を判定し、その発生順序を表示するものである。
において、順序特定手段が、トレースメモリに書き込ま
れたもう一方のトレースメモリアドレスの情報を解析し
て、二つのトレースメモリに書き込まれた事象の発生順
序を判定し、その発生順序を表示するものである。
【0015】請求項4記載のデバッグ装置によれば、請
求項2と同様な効果がある。
求項2と同様な効果がある。
【0016】請求項5記載のデバッグ装置は、請求項3
において、順序特定手段が、それぞれのトレースメモリ
に書き込まれたカウンタの情報を解析して、それぞれの
トレースメモリに書き込まれた事象の発生順序を判定
し、その発生順序を表示するものである。
において、順序特定手段が、それぞれのトレースメモリ
に書き込まれたカウンタの情報を解析して、それぞれの
トレースメモリに書き込まれた事象の発生順序を判定
し、その発生順序を表示するものである。
【0017】請求項5記載のデバッグ装置によれば、請
求項3と同様な効果がある。
求項3と同様な効果がある。
【0018】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図1から図5を用いて説明する。
て、図1から図5を用いて説明する。
【0019】図1に、本発明の第1の実施の形態におけ
るブロック図を示す。図1においてターゲットシステム
106は非同期又は同期して動作するCPUa111と
CPUb121の二つのCPUを備える。デバッグ装置
105は、それぞれのCPU111、121のトレース
情報を記憶する各マイコン用の独立したトレースメモリ
113、123と、トレースメモリ113、123の一
方(図1ではトレースメモリ113)に同期用TAG 情報
として、他方のトレースメモリのアドレス (図1では
トレースメモリ123のアドレス124)を書き込ませ
る同期用TAG 生成手段と、トレースメモリ113、12
3の一方(図1ではトレースメモリ113)に書き込ま
れた同期用TAG 情報によって、それぞれのCPU11
1、121のトレース情報の元となった事象の発生順序
を特定する順序特定手段を備える。
るブロック図を示す。図1においてターゲットシステム
106は非同期又は同期して動作するCPUa111と
CPUb121の二つのCPUを備える。デバッグ装置
105は、それぞれのCPU111、121のトレース
情報を記憶する各マイコン用の独立したトレースメモリ
113、123と、トレースメモリ113、123の一
方(図1ではトレースメモリ113)に同期用TAG 情報
として、他方のトレースメモリのアドレス (図1では
トレースメモリ123のアドレス124)を書き込ませ
る同期用TAG 生成手段と、トレースメモリ113、12
3の一方(図1ではトレースメモリ113)に書き込ま
れた同期用TAG 情報によって、それぞれのCPU11
1、121のトレース情報の元となった事象の発生順序
を特定する順序特定手段を備える。
【0020】同期用TAG生成手段は、トレースアドレス
生成回路112、122を有し、CPUa111のトレ
ース情報117と、トレースアドレス生成回路b122
で生成されたトレースメモリb123のトレースメモリ
アドレス124をデータ入力とし、トレースアドレス生
成回路a112で生成されたトレースメモリアドレス1
14をアドレス入力とするトレースメモリa113と、
CPUb121のトレース情報127をデータ入力と
し、トレースアドレス生成回路b122で生成されたト
レースメモリアドレス124をアドレス入力とするトレ
ースメモリb123から構成される。
生成回路112、122を有し、CPUa111のトレ
ース情報117と、トレースアドレス生成回路b122
で生成されたトレースメモリb123のトレースメモリ
アドレス124をデータ入力とし、トレースアドレス生
成回路a112で生成されたトレースメモリアドレス1
14をアドレス入力とするトレースメモリa113と、
CPUb121のトレース情報127をデータ入力と
し、トレースアドレス生成回路b122で生成されたト
レースメモリアドレス124をアドレス入力とするトレ
ースメモリb123から構成される。
【0021】以上のように構成された本発明のデバッグ
装置の同期用TAG生成手段の動作を説明する。
装置の同期用TAG生成手段の動作を説明する。
【0022】図1に示すブロック図のシステムにおい
て、図2(a)のような順序でCPUa111の事象
(事象a1〜事象a4)およびCPUb121の事象
(事象b1〜事象b5)が発生したとする。トレースメ
モリのアドレスは次に書き込まれるアドレスを指し示す
とする。図2(b)に示すように事象b1発生後に、事
象a1が発生した時点でトレースメモリb123のアド
レスはnb+1(次に書き込まれるアドレスはnb+
1)であるため、トレースメモリa113には事象a1
と共にトレースメモリb123のアドレスnb+1がT
AG情報として書き込まれる。次に事象b2が発生しこ
れがトレースメモリb123に書き込まれるためトレー
スメモリb123のアドレスはnb+2になる。同様に
事象b3の発生でトレースメモリb123のアドレスは
nb+3になる。次に事象a2が発生するとトレースメ
モリa113には事象a2と共にnb+3が書き込まれ
る。事象a3が続けて発生したとき、トレースメモリb
123のアドレスはnb+3のままで変化していないた
め、事象a3と共にnb+3が書き込まれる。次に事象
b4が発生しトレースメモリb123のアドレスはnb
+4になる。次に事象a4が発生するとトレースメモリ
a113には事象4と共にnb+4が書き込まれる。
て、図2(a)のような順序でCPUa111の事象
(事象a1〜事象a4)およびCPUb121の事象
(事象b1〜事象b5)が発生したとする。トレースメ
モリのアドレスは次に書き込まれるアドレスを指し示す
とする。図2(b)に示すように事象b1発生後に、事
象a1が発生した時点でトレースメモリb123のアド
レスはnb+1(次に書き込まれるアドレスはnb+
1)であるため、トレースメモリa113には事象a1
と共にトレースメモリb123のアドレスnb+1がT
AG情報として書き込まれる。次に事象b2が発生しこ
れがトレースメモリb123に書き込まれるためトレー
スメモリb123のアドレスはnb+2になる。同様に
事象b3の発生でトレースメモリb123のアドレスは
nb+3になる。次に事象a2が発生するとトレースメ
モリa113には事象a2と共にnb+3が書き込まれ
る。事象a3が続けて発生したとき、トレースメモリb
123のアドレスはnb+3のままで変化していないた
め、事象a3と共にnb+3が書き込まれる。次に事象
b4が発生しトレースメモリb123のアドレスはnb
+4になる。次に事象a4が発生するとトレースメモリ
a113には事象4と共にnb+4が書き込まれる。
【0023】図3は、本発明の第1の実施の形態におけ
るデバッグ装置の順序特定手段に対応したデバッグソフ
トウェアのフローチャートを示す。デバッグソフトウェ
アは、トレースメモリに書き込まれたもう一方のトレー
スメモリアドレスの情報を解析して、二つのトレースメ
モリに書き込まれた事象の発生順序を判定し、その発生
順序を表示する。
るデバッグ装置の順序特定手段に対応したデバッグソフ
トウェアのフローチャートを示す。デバッグソフトウェ
アは、トレースメモリに書き込まれたもう一方のトレー
スメモリアドレスの情報を解析して、二つのトレースメ
モリに書き込まれた事象の発生順序を判定し、その発生
順序を表示する。
【0024】デバッグソフトウェアは図3に示すアルゴ
リズムによって、トレースメモリa113に書き込まれ
たTAG情報からトレースメモリa113とトレースメ
モリb123に格納された事象の発生順序に従って表示
することができる。図3において、処理S101は、ト
レースメモリa、トレースメモリbの処理アドレスS
a、Sbをそれぞれのトレース開始アドレスSastart 、
Sbstart で初期化する。Sastart,Sbstart はアドレス0
とは限らず、トレースメモリに格納されたデータで一番
過去のデータが格納されているアドレスになる。また、
トレースメモリa、トレースメモリbの処理終了フラグ
enda、enabを初期化する。
リズムによって、トレースメモリa113に書き込まれ
たTAG情報からトレースメモリa113とトレースメ
モリb123に格納された事象の発生順序に従って表示
することができる。図3において、処理S101は、ト
レースメモリa、トレースメモリbの処理アドレスS
a、Sbをそれぞれのトレース開始アドレスSastart 、
Sbstart で初期化する。Sastart,Sbstart はアドレス0
とは限らず、トレースメモリに格納されたデータで一番
過去のデータが格納されているアドレスになる。また、
トレースメモリa、トレースメモリbの処理終了フラグ
enda、enabを初期化する。
【0025】処理S102は、トレースメモリaの処理
が終了しているかを確認する。終了していれば処理S1
03でトレースメモリbの処理終了を確認する。終了し
ていなければS104へ移行する。
が終了しているかを確認する。終了していれば処理S1
03でトレースメモリbの処理終了を確認する。終了し
ていなければS104へ移行する。
【0026】処理S103は、トレースメモリbの処理
が終了しているかを確認する。終了していればすべての
処理が終了する。
が終了しているかを確認する。終了していればすべての
処理が終了する。
【0027】処理S104は、トレースメモリaの処理
アドレスSaに書き込まれたTAG 情報TAGa(Sa)がトレー
スメモリbの処理アドレスSbと同じか否か判断する。同
じで有ればトレースメモリaのアドレスSaに格納された
トレース情報EVa(Sa) がトレースメモリbのアドレスSb
に格納されたトレース情報EVb(Sb) より先に発生したこ
とになり、処理S105でEVa(Sa) を表示する。なぜな
らば、トレースメモリのアドレスは次に書き込むトレー
スメモリのアドレスを指しているため、Saに書き込ま
れたTAG 情報がSbで有ると言うことは、このTAG 情報
を書き込んだときには、まだSbに書き込まれた事象は
発生していない(発生していればトレースメモリbのア
ドレスは次のアドレスになっている)ことが判る。処理
S104においてEVa(Sa) とSbが同じでなければトレー
スメモリbに格納されたトレース情報EVb(Sb) が発生し
た順番と言うことであるので、処理S106に進みEVb
(Sb) を表示する。
アドレスSaに書き込まれたTAG 情報TAGa(Sa)がトレー
スメモリbの処理アドレスSbと同じか否か判断する。同
じで有ればトレースメモリaのアドレスSaに格納された
トレース情報EVa(Sa) がトレースメモリbのアドレスSb
に格納されたトレース情報EVb(Sb) より先に発生したこ
とになり、処理S105でEVa(Sa) を表示する。なぜな
らば、トレースメモリのアドレスは次に書き込むトレー
スメモリのアドレスを指しているため、Saに書き込ま
れたTAG 情報がSbで有ると言うことは、このTAG 情報
を書き込んだときには、まだSbに書き込まれた事象は
発生していない(発生していればトレースメモリbのア
ドレスは次のアドレスになっている)ことが判る。処理
S104においてEVa(Sa) とSbが同じでなければトレー
スメモリbに格納されたトレース情報EVb(Sb) が発生し
た順番と言うことであるので、処理S106に進みEVb
(Sb) を表示する。
【0028】処理S107は、EVa(Sa) 表示後Saがトレ
ースメモリaの最大アドレスか(トレースメモリaの最
後か)を調べ、最後で有れば処理S108でSaに0を
セットしてS102に戻り処理を続ける。トレースメモ
リa、トレースメモリbはリングメモリであるため、最
終番地の次のデータは0番地から継続して書き込まれ
る。
ースメモリaの最大アドレスか(トレースメモリaの最
後か)を調べ、最後で有れば処理S108でSaに0を
セットしてS102に戻り処理を続ける。トレースメモ
リa、トレースメモリbはリングメモリであるため、最
終番地の次のデータは0番地から継続して書き込まれ
る。
【0029】処理S109は、トレースメモリaの処理
アドレスSaが処理を開始したアドレスSastart の一つ
手前のアドレスで有れば、処理が終わりなので、処理S
111でトレースメモリaの処理終了フラグendaをセッ
トする。トレースメモリaの処理アドレスSaが処理を
開始したアドレスSastart の一つ手前のアドレスで無け
れば、処理S110でSaに1を足して次のアドレスに
して処理S102に戻り処理を続ける。
アドレスSaが処理を開始したアドレスSastart の一つ
手前のアドレスで有れば、処理が終わりなので、処理S
111でトレースメモリaの処理終了フラグendaをセッ
トする。トレースメモリaの処理アドレスSaが処理を
開始したアドレスSastart の一つ手前のアドレスで無け
れば、処理S110でSaに1を足して次のアドレスに
して処理S102に戻り処理を続ける。
【0030】処理S112は、トレースメモリaの場合
と同様、EVb(Sb) 表示後Sbがトレースメモリbの最大ア
ドレスか(トレースメモリbの最後か)を調べ、最後で
有れば処理S113でSbに0をセットして処理S10
2に戻り処理を続ける。
と同様、EVb(Sb) 表示後Sbがトレースメモリbの最大ア
ドレスか(トレースメモリbの最後か)を調べ、最後で
有れば処理S113でSbに0をセットして処理S10
2に戻り処理を続ける。
【0031】処理S114は、トレースメモリbの処理
アドレスSbが処理を開始したアドレスSbstart の一つ
手前のアドレスで有れば、処理が終わりなので、処理S
116でトレースメモリbの処理終了フラグend bをセ
ットする。トレースメモリbの処理アドレスSbが処理
を開始したアドレスSbstart の一つ手前のアドレスで無
ければ、処理S115でSbに1を足して次のアドレス
にしてS102に戻り処理を続ける。
アドレスSbが処理を開始したアドレスSbstart の一つ
手前のアドレスで有れば、処理が終わりなので、処理S
116でトレースメモリbの処理終了フラグend bをセ
ットする。トレースメモリbの処理アドレスSbが処理
を開始したアドレスSbstart の一つ手前のアドレスで無
ければ、処理S115でSbに1を足して次のアドレス
にしてS102に戻り処理を続ける。
【0032】図4は、本発明の第2の実施の形態におけ
るブロック図を示す。図4では第2の実施の形態として
CPUおよびトレースメモリが3つの場合を示す。図4
においてターゲットシステム206は非同期または同期
して動作するCPUa211とCPUb221とCPU
c231とを備える。デバッグ装置205は、トレース
メモリa213の書き込み制御信号218と、トレース
メモリb223の書き込み制御信号228と、トレース
メモリc233の書き込み制御信号238の論理和信号
207をクロック入力とするカウンタ209と、トレー
スメモリa213、トレースメモリb223、トレース
メモリc233とそれぞれのトレースメモリのトレース
アドレス生成回路(トレースアドレス生成回路a21
2、およびトレースアドレス生成回路b222、および
トレースアドレス生成回路c232)と、各トレースメ
モリの書込信号生成回路(トレースメモリ書込信号生成
a216、およびトレースメモリ書込信号生成b22
6、およびトレースメモリ書込信号生成c236)から
構成される。
るブロック図を示す。図4では第2の実施の形態として
CPUおよびトレースメモリが3つの場合を示す。図4
においてターゲットシステム206は非同期または同期
して動作するCPUa211とCPUb221とCPU
c231とを備える。デバッグ装置205は、トレース
メモリa213の書き込み制御信号218と、トレース
メモリb223の書き込み制御信号228と、トレース
メモリc233の書き込み制御信号238の論理和信号
207をクロック入力とするカウンタ209と、トレー
スメモリa213、トレースメモリb223、トレース
メモリc233とそれぞれのトレースメモリのトレース
アドレス生成回路(トレースアドレス生成回路a21
2、およびトレースアドレス生成回路b222、および
トレースアドレス生成回路c232)と、各トレースメ
モリの書込信号生成回路(トレースメモリ書込信号生成
a216、およびトレースメモリ書込信号生成b22
6、およびトレースメモリ書込信号生成c236)から
構成される。
【0033】同期用TAG生成手段は、各トレースメモ
リ213、223、233が各CPUのトレース情報2
17、227、237とともにカウンタ209の出力2
08をデータ入力とし、トレースアドレス生成回路21
2、222、232で生成されたトレースメモリアドレ
ス214、224、234をアドレスとして、トレース
メモリ書込信号生成回路216、226、236で作ら
れた書き込み制御信号218、228、238でデータ
を書き込む構成である。
リ213、223、233が各CPUのトレース情報2
17、227、237とともにカウンタ209の出力2
08をデータ入力とし、トレースアドレス生成回路21
2、222、232で生成されたトレースメモリアドレ
ス214、224、234をアドレスとして、トレース
メモリ書込信号生成回路216、226、236で作ら
れた書き込み制御信号218、228、238でデータ
を書き込む構成である。
【0034】以上のように構成された本発明のデバッグ
装置の同期用TAG生成手段の動作を説明する。カウン
タ209はトレース開始時にφで初期化され、いずれか
のトレースメモリ213、223、233に対して書込
が発生するたびにインクリメントされる。このカウンタ
209の情報は各CPU211、221、231のトレ
ース情報と共にトレースメモリ213、223、233
にTAG情報として書き込まれる。
装置の同期用TAG生成手段の動作を説明する。カウン
タ209はトレース開始時にφで初期化され、いずれか
のトレースメモリ213、223、233に対して書込
が発生するたびにインクリメントされる。このカウンタ
209の情報は各CPU211、221、231のトレ
ース情報と共にトレースメモリ213、223、233
にTAG情報として書き込まれる。
【0035】具体的な例として図5(a)のような順序
でCPUa211の事象(事象a1〜a4)およびCP
Ub221の事象(事象b1〜事象b4)およびCPU
c321の事象(事象c1〜事象c2)が発生したとす
る。カウンタ209の出力は最初nを示しているが、ト
レースメモリ213、223、233への書込が発生す
るたびにインクリメントされるため、各トレースメモリ
213、223、233のTAG情報部には図5(b)で
示されるような値が書き込まれる。
でCPUa211の事象(事象a1〜a4)およびCP
Ub221の事象(事象b1〜事象b4)およびCPU
c321の事象(事象c1〜事象c2)が発生したとす
る。カウンタ209の出力は最初nを示しているが、ト
レースメモリ213、223、233への書込が発生す
るたびにインクリメントされるため、各トレースメモリ
213、223、233のTAG情報部には図5(b)で
示されるような値が書き込まれる。
【0036】図6は本発明の第2の実施の形態における
デバッグ装置の順序特定手段に対応したデバッグソフト
ウェアのフローチャートを示す。デバッグソフトウェア
はそれぞれのトレースメモリ213、223、233に
書き込まれたカウンタ209の情報を解析して、それぞ
れのトレースメモリに書き込まれた事象の発生順序を判
定し、その発生順序を表示する。図6に示すアルゴリズ
ムによって、トレースメモリa213、トレースメモリ
b223、トレースメモリc233に書き込まれたTA
G情報から各トレースメモリに格納された事象の発生順
序に従って表示することができる。
デバッグ装置の順序特定手段に対応したデバッグソフト
ウェアのフローチャートを示す。デバッグソフトウェア
はそれぞれのトレースメモリ213、223、233に
書き込まれたカウンタ209の情報を解析して、それぞ
れのトレースメモリに書き込まれた事象の発生順序を判
定し、その発生順序を表示する。図6に示すアルゴリズ
ムによって、トレースメモリa213、トレースメモリ
b223、トレースメモリc233に書き込まれたTA
G情報から各トレースメモリに格納された事象の発生順
序に従って表示することができる。
【0037】図6において、処理S201は、トレース
メモリa、トレースメモリb、トレースメモリcの処理
アドレスSa、Sb、Scをそれぞれのトレース開始ア
ドレスSastart,Sbstart,Scstart で初期化する。Sastar
t,Sbstart,Scstart はアドレス0とは限らず、トレース
メモリに格納されたデータで一番過去のデータが格納さ
れているアドレスになる。また、トレースメモリa、ト
レースメモリb、トレースメモリcの処理終了フラグen
da,enab,endcを初期化する。また、内部カウンタ変数c
を0で初期化する。
メモリa、トレースメモリb、トレースメモリcの処理
アドレスSa、Sb、Scをそれぞれのトレース開始ア
ドレスSastart,Sbstart,Scstart で初期化する。Sastar
t,Sbstart,Scstart はアドレス0とは限らず、トレース
メモリに格納されたデータで一番過去のデータが格納さ
れているアドレスになる。また、トレースメモリa、ト
レースメモリb、トレースメモリcの処理終了フラグen
da,enab,endcを初期化する。また、内部カウンタ変数c
を0で初期化する。
【0038】処理S202は、トレースメモリaの処理
が終了しているかを確認する。終了していれば処理S2
03でトレースメモリbの処理終了を確認する。終了し
ていなければS205へ移行する。
が終了しているかを確認する。終了していれば処理S2
03でトレースメモリbの処理終了を確認する。終了し
ていなければS205へ移行する。
【0039】処理S203は、トレースメモリbの処理
が終了しているかを確認する。終了していれば処理S2
04でトレースメモリcの処理終了を確認する。終了し
ていなければS213へ移行する。
が終了しているかを確認する。終了していれば処理S2
04でトレースメモリcの処理終了を確認する。終了し
ていなければS213へ移行する。
【0040】処理S204は、トレースメモリcの処理
が終了しているかを確認する。終了していればすべての
処理が終了する。終了していなければ処理S220へ移
行する。
が終了しているかを確認する。終了していればすべての
処理が終了する。終了していなければ処理S220へ移
行する。
【0041】処理S205は、トレースメモリaの処理
アドレスSaに書き込まれたTAG 情報TAGa(Sa)が内部カ
ウンタ変数cと同じか判断する。同じで有ればトレース
メモリaのアドレスSaに格納されたトレース情報EVa(S
a) が次に発生したことになり、処理S206でEVa(Sa)
を表示する。なぜならば、図4におけるカウンタ20
9は、トレース開始時に0で初期化され、トレースメモ
リへの書き込みが発生するたびに+1される。従って、
トレースメモリにTAG 情報として書き込まれたカウンタ
の値が、それぞれのトレースメモリに格納された事象の
発生順序と同じになる。内部カウンタ変数cは図6に示
す処理S201でゼロクリアされており、以後の処理の
なかで+1される。つまりcと同じTAG 情報を持つもの
が、次に表示すべき内容となる。
アドレスSaに書き込まれたTAG 情報TAGa(Sa)が内部カ
ウンタ変数cと同じか判断する。同じで有ればトレース
メモリaのアドレスSaに格納されたトレース情報EVa(S
a) が次に発生したことになり、処理S206でEVa(Sa)
を表示する。なぜならば、図4におけるカウンタ20
9は、トレース開始時に0で初期化され、トレースメモ
リへの書き込みが発生するたびに+1される。従って、
トレースメモリにTAG 情報として書き込まれたカウンタ
の値が、それぞれのトレースメモリに格納された事象の
発生順序と同じになる。内部カウンタ変数cは図6に示
す処理S201でゼロクリアされており、以後の処理の
なかで+1される。つまりcと同じTAG 情報を持つもの
が、次に表示すべき内容となる。
【0042】処理S207は、EVa(Sa) 表示後Saがトレ
ースメモリaの最大アドレスか(トレースメモリaの最
後か)を調べ、最後で有れば処理S208でSaに0を
セットして処理S212に進む。トレースメモリa,ト
レースメモリb、トレースメモリcはリングメモリであ
るため、最終番地の次のデータは0番地から継続して書
き込まれる。
ースメモリaの最大アドレスか(トレースメモリaの最
後か)を調べ、最後で有れば処理S208でSaに0を
セットして処理S212に進む。トレースメモリa,ト
レースメモリb、トレースメモリcはリングメモリであ
るため、最終番地の次のデータは0番地から継続して書
き込まれる。
【0043】処理S209は、トレースメモリaの処理
アドレスSaが処理を開始したアドレスSastart の一つ
手前のアドレスで有れば、処理が終わりなので、処理S
211でトレースメモリaの処理終了フラグendaをセッ
トし、処理S212に進む。トレースメモリaの処理ア
ドレスSaが処理を開始したアドレスSastart の一つ手
前のアドレスで無ければ、処理S210でSaに1を足
して次のアドレスにして、処理S212に進む。
アドレスSaが処理を開始したアドレスSastart の一つ
手前のアドレスで有れば、処理が終わりなので、処理S
211でトレースメモリaの処理終了フラグendaをセッ
トし、処理S212に進む。トレースメモリaの処理ア
ドレスSaが処理を開始したアドレスSastart の一つ手
前のアドレスで無ければ、処理S210でSaに1を足
して次のアドレスにして、処理S212に進む。
【0044】処理S212は、内部カウンタ変数を+1
して、S202に戻り処理を続ける。
して、S202に戻り処理を続ける。
【0045】処理S213〜S219は、トレースメモ
リaの処理S205〜S211と同様にトレースメモリ
bの処理を行う。
リaの処理S205〜S211と同様にトレースメモリ
bの処理を行う。
【0046】処理S220〜S226は、トレースメモ
リaの処理S205〜S211と同様にトレースメモリ
cの処理を行う。
リaの処理S205〜S211と同様にトレースメモリ
cの処理を行う。
【0047】S220において結果が一致しなかった場
合は、エラー処理を行う。
合は、エラー処理を行う。
【0048】以上のように本発明の第1の実施の形態
は、CPUが二つの場合に適応することが可能となり、
トレースメモリに追加するTAG情報ビットの幅はトレー
スメモリのアドレス幅と同じでよい。また本発明の第二
の実施の形態は、CPUが二つ以上の場合に適応するこ
とが可能となり、トレースメモリに追加するTAG情報ビ
ットの幅は、トレースメモリのアドレス幅に、2のn乗
≧CPUの数を満たすnの最小値を足したビット幅で良
い。このように小規模のトレースメモリの幅の追加と、
回路の追加によって、事象の発生間隔に関わりなく、そ
れぞれのCPUの事象の発生順序を特定することが可能
となる。
は、CPUが二つの場合に適応することが可能となり、
トレースメモリに追加するTAG情報ビットの幅はトレー
スメモリのアドレス幅と同じでよい。また本発明の第二
の実施の形態は、CPUが二つ以上の場合に適応するこ
とが可能となり、トレースメモリに追加するTAG情報ビ
ットの幅は、トレースメモリのアドレス幅に、2のn乗
≧CPUの数を満たすnの最小値を足したビット幅で良
い。このように小規模のトレースメモリの幅の追加と、
回路の追加によって、事象の発生間隔に関わりなく、そ
れぞれのCPUの事象の発生順序を特定することが可能
となる。
【0049】
【発明の効果】請求項1記載のデバッグ装置によれば、
TAG情報から事象の発生順序を特定することが可能と
なり、しかもTAG情報をトレースメモリに追加するビ
ット幅は小規模で可能である。
TAG情報から事象の発生順序を特定することが可能と
なり、しかもTAG情報をトレースメモリに追加するビ
ット幅は小規模で可能である。
【0050】請求項2記載のデバッグ装置によれば、請
求項1と同様の効果がある。
求項1と同様の効果がある。
【0051】請求項3記載のデバッグ装置によれば、請
求項1と同様の効果があり、CPUおよびトレースメモ
リを二つ以上備える場合にも適用できる。
求項1と同様の効果があり、CPUおよびトレースメモ
リを二つ以上備える場合にも適用できる。
【0052】請求項4記載のデバッグ装置によれば、請
求項2と同様な効果がある。
求項2と同様な効果がある。
【0053】請求項5記載のデバッグ装置によれば、請
求項3と同様な効果がある。
求項3と同様な効果がある。
【図1】本発明の第1の実施の形態におけるデバッグ装
置の構成を示すブロック図である。
置の構成を示すブロック図である。
【図2】本発明の第1の実施の形態におけるデバッグ装
置の動作例を示す図である。
置の動作例を示す図である。
【図3】本発明の第1の実施の形態におけるトレースデ
ータからプログラムの実行順序を判断し表示するための
フローチャートである。
ータからプログラムの実行順序を判断し表示するための
フローチャートである。
【図4】本発明の第2の実施の形態におけるデバッグ装
置の構成を示すブロック図である。
置の構成を示すブロック図である。
【図5】本発明の第2の実施の形態におけるデバッグ装
置の動作例を示す図である。
置の動作例を示す図である。
【図6】本発明の第2の実施の形態におけるトレースデ
ータからプログラムの実行順序を判断し表示するための
フローチャートである。
ータからプログラムの実行順序を判断し表示するための
フローチャートである。
【図7】従来例のブロック図である。
【図8】別の従来例のブロック図である。
5 デバッグ装置
6 ターゲット装置
11 CPUa
13 トレースメモリa
17 CPUaのトレース情報
21 CPUb
23 トレースメモリb
27 CPUbのトレース情報
55 デバッグ装置
56 ターゲット装置
57 時間計測カウンタ
58 時間計測カウンタ出力
61 CPUa
63 トレースメモリa
67 CPUaのトレース情報
71 CPUb
73 トレースメモリb
77 CPUbのトレース情報
105 デバッグ装置
106 ターゲット装置
111 CPUa
112 トレースアドレス生成回路a
113 トレースメモリa
114 トレースメモリaのアドレス(トレースアドレ
ス生成回路a112の出力) 117 CPUaのトレース情報 121 CPUb 122 トレースアドレス生成回路b 123 トレースメモリb 124 トレースメモリbのアドレス(トレースアドレ
ス生成回路b122の出力) 127 CPUbのトレース情報 205 デバッグ装置 206 ターゲット装置 207 カウンタカウントアップ信号 208 カウンタ出力 209 カウンタ 211 CPUa 212 トレースアドレス生成回路a 213 トレースメモリa 214 トレースメモリaのアドレス(トレースアドレ
ス生成回路a212の出力) 216 トレースメモリaの書き込み制御信号生成回路 217 CPUaのトレース情報 218 トレースメモリaの書き込み制御信号 221 CPUb 222 トレースアドレス生成回路b 223 トレースメモリb 224 トレースメモリbのアドレス(トレースアドレ
ス生成回路b222の出力) 226 トレースメモリbの書き込み制御信号生成回路 227 CPUbのトレース情報 228 トレースメモリbの書き込み制御信号 231 CPUc 232 トレースアドレス生成回路c 233 トレースメモリc 234 トレースメモリcのアドレス(トレースアドレ
ス生成回路c232の出力) 236 トレースメモリcの書き込み制御信号生成回路 237 CPUcのトレース情報 238 トレースメモリcの書き込み制御
ス生成回路a112の出力) 117 CPUaのトレース情報 121 CPUb 122 トレースアドレス生成回路b 123 トレースメモリb 124 トレースメモリbのアドレス(トレースアドレ
ス生成回路b122の出力) 127 CPUbのトレース情報 205 デバッグ装置 206 ターゲット装置 207 カウンタカウントアップ信号 208 カウンタ出力 209 カウンタ 211 CPUa 212 トレースアドレス生成回路a 213 トレースメモリa 214 トレースメモリaのアドレス(トレースアドレ
ス生成回路a212の出力) 216 トレースメモリaの書き込み制御信号生成回路 217 CPUaのトレース情報 218 トレースメモリaの書き込み制御信号 221 CPUb 222 トレースアドレス生成回路b 223 トレースメモリb 224 トレースメモリbのアドレス(トレースアドレ
ス生成回路b222の出力) 226 トレースメモリbの書き込み制御信号生成回路 227 CPUbのトレース情報 228 トレースメモリbの書き込み制御信号 231 CPUc 232 トレースアドレス生成回路c 233 トレースメモリc 234 トレースメモリcのアドレス(トレースアドレ
ス生成回路c232の出力) 236 トレースメモリcの書き込み制御信号生成回路 237 CPUcのトレース情報 238 トレースメモリcの書き込み制御
Claims (5)
- 【請求項1】 間欠的にトレース情報を出力する複数の
非同期又は同期して動作するCPUを搭載するシステム
におけるデバッグ装置であって、それぞれのCPUの前
記トレース情報を記憶する各マイコン用の独立したトレ
ースメモリと、前記トレースメモリの一部または全部に
同期用TAG情報を書き込ませる同期用TAG生成手段
と、前記トレースメモリに書き込まれた前記同期用TA
G情報によって、それぞれのCPUの前記トレース情報
の元となった事象の発生順序を特定する順序特定手段を
備えたデバッグ装置。 - 【請求項2】 CPU及びトレースメモリがそれぞれ二
つの場合に、同期用TAG生成手段として、一方のCPU
トレースデータ書き込み時に、もう一方のトレースメモ
リの示しているトレースメモリのアドレスを書き込む請
求項1記載のデバッグ装置。 - 【請求項3】 同期用TAG生成手段として、いずれかの
トレースメモリへの書き込みが発生するたびにインクリ
メントされるカウンタを具備し、それぞれのトレースメ
モリへの情報書き込み時に、前記カウンタの出力を同時
に書き込む請求項1記載のデバッグ装置。 - 【請求項4】 順序特定手段は、トレースメモリに書き
込まれたもう一方のトレースメモリアドレスの情報を解
析して、二つのトレースメモリに書き込まれた事象の発
生順序を判定し、その発生順序を表示する請求項2記載
のデバッグ装置。 - 【請求項5】 順序特定手段は、それぞれのトレースメ
モリに書き込まれたカウンタの情報を解析して、それぞ
れのトレースメモリに書き込まれた事象の発生順序を判
定し、その発生順序を表示する請求項3記載のデバッグ
装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001266827A JP2003076577A (ja) | 2001-09-04 | 2001-09-04 | デバッグ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001266827A JP2003076577A (ja) | 2001-09-04 | 2001-09-04 | デバッグ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003076577A true JP2003076577A (ja) | 2003-03-14 |
Family
ID=19093046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001266827A Pending JP2003076577A (ja) | 2001-09-04 | 2001-09-04 | デバッグ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003076577A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012070137A1 (ja) * | 2010-11-25 | 2012-05-31 | トヨタ自動車株式会社 | プロセッサ、電子制御装置、作成プログラム |
US8527812B2 (en) | 2010-05-20 | 2013-09-03 | Renesas Electronics Corporation | Information processing device |
-
2001
- 2001-09-04 JP JP2001266827A patent/JP2003076577A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8527812B2 (en) | 2010-05-20 | 2013-09-03 | Renesas Electronics Corporation | Information processing device |
WO2012070137A1 (ja) * | 2010-11-25 | 2012-05-31 | トヨタ自動車株式会社 | プロセッサ、電子制御装置、作成プログラム |
JP5532144B2 (ja) * | 2010-11-25 | 2014-06-25 | トヨタ自動車株式会社 | プロセッサ、電子制御装置、作成プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050257102A1 (en) | Masking within a data processing system having applicability for a development interface | |
JPS61208167A (ja) | ヒストグラムデータ発生装置 | |
US5740449A (en) | Method and apparatus for managing interrupts in a data processing system | |
JP2002163127A (ja) | トレース制御回路 | |
US8056088B1 (en) | Using scan chains for context switching | |
JP2000132430A (ja) | 信号処理装置 | |
JP2003076577A (ja) | デバッグ装置 | |
JP2847310B2 (ja) | 論理シミュレーション方法 | |
JPS6141017B2 (ja) | ||
JP2007058450A (ja) | 半導体集積回路 | |
JP2723843B2 (ja) | デュアルポートメモリ制御回路 | |
CN112286466B (zh) | 电子装置及空间复用方法 | |
JP3284949B2 (ja) | 記憶装置へのバストレース格納装置と方法および記録媒体 | |
JP2006293538A (ja) | 演算システム | |
JP2002181857A (ja) | 信号処理装置 | |
JP2808303B2 (ja) | Icデバイステスト装置 | |
JP2001005789A (ja) | マルチコアdsp回路 | |
JPH11191080A (ja) | メモリ試験装置 | |
JP3004669B2 (ja) | 論理シミュレータ | |
JP2852050B2 (ja) | 画像処理装置 | |
CN118245312A (zh) | 时序数据处理方法、多主机兼容方法、装置和计算机设备 | |
JPH0666055B2 (ja) | ヒストリメモリの制御方式 | |
JP3366235B2 (ja) | データ読み出し制御装置 | |
JP2777952B2 (ja) | 動作状態設定方式 | |
JP2003141897A (ja) | メモリの検査装置および方法およびプログラム記憶媒体およびプログラム |