JP2009009201A - デバッグ装置 - Google Patents

デバッグ装置 Download PDF

Info

Publication number
JP2009009201A
JP2009009201A JP2007167480A JP2007167480A JP2009009201A JP 2009009201 A JP2009009201 A JP 2009009201A JP 2007167480 A JP2007167480 A JP 2007167480A JP 2007167480 A JP2007167480 A JP 2007167480A JP 2009009201 A JP2009009201 A JP 2009009201A
Authority
JP
Japan
Prior art keywords
function
trace
microcomputer
task
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.)
Withdrawn
Application number
JP2007167480A
Other languages
English (en)
Inventor
Yasuo Miyake
康雄 三宅
Yoshiro Naito
芳郎 内藤
Riyouji Miyazaki
亮児 宮崎
Chikao Uchino
稚賀男 内野
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2007167480A priority Critical patent/JP2009009201A/ja
Publication of JP2009009201A publication Critical patent/JP2009009201A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】トレース条件設定回路による回路の複雑化やトレースメモリの物理的規模の拡大を抑えてソースプログラムの関数ID又はOSによって管理されるタスクの処理順序を把握すること。
【解決手段】トレース制御中、マイクロコンピュータ(2)が実行するオブジェクトプログラムの命令アドレスに対応するソースプログラムの関数IDが変化したとき、変化した関数IDをトレースメモリ(5)に格納するように制御する。また、OSの管理の下でマイクロコンピュータが処理するタスクのタスクIDを監視し、タスクIDが変化したとき、変化したタスクIDをトレースメモリに格納するように制御する。これにより、変化した関数ID又はタスクIDがトレースメモリに逐次格納されるため、トレース結果からマイクロコンピュータが実行したソースプログラムの関数IDの処理順序又はマイクロコンピュータが実行したタスクIDの処理順序を容易に把握することができる。
【選択図】図1

Description

本発明は、プログラムの実行順序を把握するために用いるトレース制御システムに関し、例えばエミュレータ等に適用して有効な技術に関する。
ソースプログラムをコンパイルしたオブジェクトプログラムをマイクロコンピュータが実行してバス上に入出力する情報をトレースメモリに格納するトレース制御は一般的に行われている。トレースメモリには、バス上に現れた情報に基づいてトレースカウンタ、データ条件やアドレス条件等の情報が格納される。また、トレース条件を設定することにより、任意の情報をトレースメモリに格納することができる。例えば、特許文献1に記載されたトレース制御システムは、情報処理装置と、トレース条件設定部と、トレースポイント設定部と、予め設定されたトレースポイントを検出するトレースポイント検出手段とを設け、トレースポイントを検出したときにトレース制御を行うようになっている。
特開平06−4361号公報
トレース制御によって得られたトレース結果から、マイクロコンピュータが実行したオブジェクトプログラムの命令アドレスに対応するソースプログラムの関数の処理順序を把握するためには、例えば関数の先頭命令アドレスをトレース条件としてトレースすることができる。トレース条件として設定した先頭命令アドレスから始まる関数を処理しているとき、割り込み等を処理すると、マイクロコンピュータによる処理が別の関数に係る処理として変化され、トレース結果からは最早当該別の関数が処理されたことを把握することはできない。これを回避するには、全ての関数の先頭命令アドレスをトレースすれば良いが、設定できるトレース条件の数は高々10数個であり、実現的ではない。また、全ての命令アドレスを順次トレースしても良いが、トレースメモリの記憶容量は有限であり、トレースされる情報には限りがある。
また、オペレーティングシステム(以下OSと略す)が管理するタスクIDについても上記同様の事情がある。すなわち、割り込み等を考慮したときに全てのタスクIDをトレース条件にしようとすれば、トレース条件設定回路による回路の複雑化やトレースメモリの物理的規模の拡大に繋がってしまい、実現性に欠ける。
本発明の目的は、トレース条件設定回路による回路の複雑化やトレースメモリの物理的規模の拡大を抑えてソースプログラムの関数IDの処理順序を把握することができる。
本発明の別の目的は、トレース条件設定回路による回路の複雑化やトレースメモリの物理的規模の拡大を抑えて、OSによって管理されるタスクの処理順序を把握することができる。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、トレース制御中、マイクロコンピュータが実行するオブジェクトプログラムの命令アドレスに対応するソースプログラムの関数IDが変化したとき、変化した関数IDをトレースメモリに格納するように制御する。また、OSの管理の下でマイクロコンピュータが処理するタスクのタスクIDを監視し、タスクIDが変化したとき、変化したタスクIDをトレースメモリに格納するように制御する。
これにより、変化した関数ID又はタスクIDがトレースメモリに逐次格納されるため、トレース結果からマイクロコンピュータが実行したソースプログラムの関数IDの処理順序又はマイクロコンピュータが実行したタスクIDの処理順序を容易に把握することができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、トレース条件設定回路による回路の複雑化やトレースメモリの物理的規模の拡大を抑えてソースプログラムの関数の処理順序を把握することができる。
また、トレース条件設定回路による回路の複雑化やトレースメモリの物理的規模の拡大を抑えて、OSによって管理されるタスクの処理順序を把握することができる。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係るデバッグ装置(1)は、マイクロコンピュータ(2)と、エミュレーションバス(3)と、トレース制御部(4)とを有するものである。前記トレース制御部は、前記エミュレーションバス上に現れた情報に基づいてトレースメモリ(5)に情報を格納する制御を行う。また、前記トレース制御部は、前記マイクロコンピュータが実行するオブジェクトプログラムの命令の命令アドレスに対応するソースプログラムの関数を識別可能に付与した番号である関数IDが変化したとき、変化した当該関数IDを前記トレースメモリに格納する関数IDトレースモードを有する。上記関数IDトレースモードによってトレース制御を行えば、変化した関数IDが前記トレースメモリに格納される。従って、トレース制御されたトレース結果から、前記マイクロコンピュータが実行した前記命令アドレスに対応するソースプログラムの関数IDの処理順序を把握することができる。
具体的な一つの形態として、前記トレース制御部は、前記命令アドレスと当該命令アドレスに対応するソースプログラムの関数IDとを格納する記憶回路(6)と、命令フェッチサイクル毎に前記命令アドレスに対応する前記関数IDを前記記憶回路から読み出す読出制御回路(7)とを有する。更に、前記読出制御回路によって新たに読み出された関数IDがその直前に読み出された関数IDと相違するとき、前記新たに読み出された関数IDを前記トレースメモリに格納する書込み制御回路(8)を有する。従って、簡単な構成によって上記同様の作用を得ることができる。
具体的な一つの形態として、前記記憶回路は、ホスト装置(9)によって前記命令アドレスと前記命令アドレスに対応する関数IDが初期的に書込まれる。従って、エミュレーション実行範囲に応じた情報をプログラマブルに書込み可能であるから、前記記憶回路の記憶容量は然程大きくなくても済む。
別の具体的な形態として、前記読出制御回路は前記マイクロコンピュータによるバスアクセス状態に従って、前記エミュレーションバスに出力される命令フェッチ信号に基づいて命令フェッチサイクルを検出する。これによれば、命令フェッチサイクルの検出を比較的簡単に実現することができる。
別の具体的な形態として、前記書込み制御回路は、前記記憶回路から順次出力される関数IDを保持する直列2段のシフトレジスタ(10)と、前記シフトレジスタにおける前段(11)と後段(12)のレジスタに夫々保持された前記関数IDを比較する比較回路(13)と、前記比較回路による比較結果が相違したとき前記前段レジスタに保持された前記関数IDを前記トレースメモリに格納する書込み回路(14)とを有する。これによれば、変化した前記関数IDの判別を比較的簡単に実現することができる。
別の具体的な形態として、本発明に係る別のデバッグ装置(20)は、マイクロコンピュータ(21)と、エミュレーションバスと、トレース制御部(22)とを有し、前記トレース制御部は前記エミュレーションバス上に現れた情報に基づいてトレースメモリ(23)に情報を格納する制御を行う。また、前記トレース制御部は、OSの管理の下で前記マイクロコンピュータが処理するタスクのタスクIDを監視する。更に、前記トレース制御部は、前記タスクIDが変化したとき、変化した前記タスクIDを前記トレースメモリに格納する制御を行う。これによれば、変化した前記タスクIDが前記トレースメモリに格納される。従って、トレース制御されたトレース結果から、OSの管理の下で前記マイクロコンピュータが実行した前記タスクIDの処理順序を把握することができる。
別の具体的な形態として、前記トレース制御部は、前記マイクロコンピュータが処理する前記タスクID格納用記憶領域のアドレスが設定可能にされるアドレスレジスタ(24)を有し、前記アドレスレジスタのアドレスに対応する書込みアクセスで前記エミュレーションバスに現れるデータをタスクIDとして認識する。これによれば、前記エミュレーションバスに現れる情報から前記タスクIDを比較的簡単に識別することができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
図1には本発明に係るデバッグ装置の一例であるエミュレータ(EML)1の構成が示される。同図には、前記エミュレータ1とホスト装置(HST)9とターゲットシステム(TGTSYS)15とが示される。
前記エミュレータ1は、エミュレーション用のマイクロコンピュータ(EMP)2、エミュレーション制御部(EMCNT)16、モードレジスタ(MODREG)17、トレース制御部(TRCNT)4及びトレースメモリ(TRMEM)5を有する。前記マイクロコンピュータEMP2は前記ターゲットシステム15に備えられたマイクロコンピュータと同等の機能を示す。前記マイクロコンピュータ2は、例えばケーブルによって前記ターゲットシステム15と接続され、前記ターゲットシステム15の機能を代行制御する。また、前記ターゲットシステム15の代行制御によって、前記マイクロコンピュータ2と前記ターゲットシステム15との間で交わされる情報はエミュレーションバス(EBUS)3に供給される。前記エミュレーションバス3は、前記マイクロコンピュータ2がアクセスする命令やデータのアドレス(Addr)を伝達するアドレスバス(ABUS)、データ(Dat)や命令(Ist)を伝達するデータバス(DBUS)及びステータス信号(Stus)やストローブ信号等が伝達されるコントロールバスを有する。
前記エミュレーション制御部16は、前記ホスト装置9の制御に基づいて、前記マイクロコンピュータ2に前記代行制御用のオブジェクトプログラムを実行させる制御を行う。前記オブジェクトプログラムは、前記ターゲットシステム15を本来制御するターゲットマイクロコンピュータに実行させるための開発中のプログラムを意味する。前記オブジェクトプログラムは、高級言語で記述されたソースプログラムをコンパイルすることによって得られたプログラムである。エミュレーション用の前記マイクロコンピュータは少なくともターゲットマイクロコンピュータの機能を包含する。
前記モードレジスタ17には、前記ホスト装置9よって、ホストバス(HBUS)18を介して、前記エミュレーションバス3上に現れた情報に基づいて前記トレースメモリ5に情報を格納する動作モードが設定される。その一部の動作モードとして、前記オブジェクトプログラムの命令の命令アドレスAddr_Iに対応するソースプログラムの関数IDが変化したとき、変化した前記関数IDを前記トレースメモリに格納する関数IDトレースモードが設定される。
前記トレース制御部4は、前記モードレジスタ17の設定内容に従って前記トレースメモリ5に情報を格納する制御を行う。上記関数IDトレースモードが設定されると、前記トレース制御部4は、前記エミュレーションバス3に現れた前記命令アドレスAddr_Iに対応する前記関数IDが変化したとき、変化した前記関数IDを前記トレースメモリ5に順次格納する制御を行う。
以下、前記関数IDトレースモードによる処理内容について記述する。前記トレース制御部4は、記憶回路(IDMEM)6と読出制御回路(RCNT)7と書込み制御回路(WCNT)8を有する。前記記憶回路6には、前記ホスト装置9の制御によって、エミュレーションを実行しようとする範囲内の命令アドレスと前記命令アドレスに対応する前記関数IDとがプログラマブルに初期的に書込まれる。例えば、図2に示されるようにソースプログラムをコンパイルしたオブジェクトプログラムの命令の命令アドレスAddr_Iと前記命令アドレスAddr_Iに対応するソースプログラムの関数ID(F_ID)とが前記ホスト装置9によって書込まれる。尚、ここでの関数IDとは、ソースプログラムの夫々の関数を識別可能に付与した番号等である。
前記読出制御回路7は、前記マイクロコンピュータ2によって前記エミュレーションバス3上に出力されるステータス信号Stusと命令フェッチ信号(Istf)に基づいて命令フェッチサイクル(Istfcyc)の起動を発生するか否かを判別する。命令フェッチサイクルの起動を検出すると、前記読出制御回路7によって前記記憶回路6から前記関数IDが読み出される。前記命令フェッチサイクルの起動の検出は、命令フェッチ信号Istfから検出する。
前記書込み制御回路8はシフトレジスタ(SREG)10と比較回路(COMP)13と書込み回路(NT)14とを有する。前記シフトレジスタ10は直列接続された前段のレジスタ(SREG1)11と後段のレジスタ(SREG2)12を有し、前記シフトレジスタ10の入力端子には前記記憶回路6から出力された関数IDが供給され、供給される毎に保存している関数IDを前記後段のレジスタ12に送っていくように動作される。
前記比較回路13は、前記記憶回路6の読み出し動作毎に、前記シフトレジスタ10の前段のレジスタ11と後段のレジスタ12に保持された関数IDが相違するか否かを比較する。
前記書込み回路14は、前記比較回路13によって前記関数IDが相違したとき、前記前段のレジスタ11に保持されている関数IDを前記トレースメモリ5に順次格納する制御を行う。これによって、変化した関数IDが前記トレースメモリ5に格納される。
図3には、前記関数IDトレースモードによるトレース制御において、エミュレーション用の前記マイクロコンピュータ2と前記トレース制御部4の動作の一例であるタイミングチャートが示される。ここでは、図2に示される情報を前記記憶回路6に格納して用いることにする。図2ではソースプログラムにおける3個の関数に着目し、当該関数の関数ID(“0h”、“1h”、“2h”)と、これに対応するオブジェクトプログラムの命令の命令アドレスAddr_Iが対になって前記記憶回路6に格納されている。前記読出制御回路7は、命令アドレスに指定されるようなトレース開始条件を認識すると、前記関数IDトレースモードによってトレース制御動作を開始し、その動作はエミュレーション用の前記マイクロコンピュータ2と同様にクロック信号(CLK)に同期される。エミュレーション制御中の時刻t0に、前記マイクロコンピュータ2は命令アドレスAddr_I“001000h”をターゲットシステム15に出力し、命令フェッチサイクルを起動する。前記マイクロコンピュータ2の動作状態はステータス信号Stusに反映され、このステータス信号Stusと前記命令アドレスAddr_I“001000h”は前記エミュレーションバス3に供給される。このとき、ステータス信号Stusは命令フェッチサイクルのコードIstfcycを示す。前記読出制御回路7は、前記エミュレーションバス3上に現れたステータス信号Stusと命令フェッチ信号Istfに基づいて命令フェッチサイクルを検出すると、前記記憶回路6から前記エミュレーションバス3上の前記命令アドレスAddr_I“001000h”に対応するソースプログラムの関数ID“1h”を出力して、前記前段のレジスタ11にラッチさせ、元々前記前段のレジスタ11に格納されていたデータが前記後段のレジスタ12にラッチされる。ここでの説明では、エミュレーション用の前記マイクロコンピュータ2は時刻t0の直前に関数ID“0h”の命令を実行していたものとする。そのため、元々前記前段のレジスタ11に格納されていた値は“0h”とされており、その値は前記後段のレジスタ12に転送される。上記ラッチ動作が行われた時刻t1からt2までのサイクルにおいて、前記比較回路13は前記前段のレジスタ11と前記後段のレジスタ12の関数ID値を比較する。この場合、前記前段と後段のシフトレジスタにラッチされた関数IDが相違するため、関数ID検出信号(FID)がハイレベルに変化される。この変化を受ける前記書込み回路14は前記前段のレジスタ11にラッチされている関数ID“1h”を前記トレースメモリ5に格納する。このように、前記関数IDトレースモードにおけるトレース制御では、前記エミュレーションバス3上の情報に基づいて命令フェッチサイクルを検出すると、その次のクロックサイクルで、前記読出制御回路7によって読み出された関数IDに変化があるかを判別すると共に、変化する場合には当該変化した関数IDを前記トレースメモリ5に書込む制御を行う。時刻t1からt2のサイクルと時刻t2からt3のサイクルにおいても命令アドレスAddr_I“001002h”と“001004h”の命令フェッチサイクルが起動されるから、上記時刻t0からt1のサイクルと同様に前記読出制御回路7は前記記憶回路6から対応する関数IDを読み出して、比較動作を実行させるが、それら命令アドレスに対応する命令は関数ID“1h”の処理とされる。このため、前記関数ID検出信号FIDは時刻t4までローレベルにされる。時刻t3からt4におけるアドレスAddr“FF1000h”ではデータサイクルが起動される。従って、前記読出制御回路7による前記記憶回路6からの読み出しと前記比較回路13による比較動作は行われないから、時刻t5まで前記関数ID検出信号FIDはローレベルにされる。時刻t4からt5のサイクルでは、命令アドレスAddr_I“001006h”の命令フェッチサイクルが起動されるため、上記時刻t0からt1のサイクルおける処理と同様の処理が行われ、前記読出制御回路7は前記記憶回路6から対応する関数ID“2h”を読み出して、前記比較回路13によって比較動作が実行される。前記前段と後段のレジスタにラッチされた関数IDが異なるため、前記比較動作により前記関数ID検出信号FIDはハイレベルに変化される。これによって、前記書込み回路14は前記前段のレジスタ11にラッチされた関数ID“2h”を前記トレースメモリ5に格納する。
前記関数IDトレースモードによるトレース制御によれば、変化したときの関数IDが“1h”、“2h”の順序で前記トレースメモリ5に格納される。従って、トレース結果から前記マイクロコンピュータ2が実行したソースプログラムの関数IDの順序を把握することができる。
図4には、前記関数IDトレースモードによるトレース制御中に、割り込みが要求されたときの説明図である。前記マイクロコンピュータ2が関数ID“0h”の処理に対応する命令を最初に実行すると、前述のように前記前段と後段のレジスタにラッチされた関数ID値を比較して、相違する前記前段のレジスタ11にラッチされた前記関数ID“0h”が前記トレースメモリ5に格納される。前記マイクロコンピュータ2が前記関数ID“0h”の処理に対応する命令を実行しているとき、命令実行動作と非同期で割り込み要求がなされると、前記関数ID“0h”の処理に対応する命令の実行を中断して関数ID“1h”の処理に対応する命令の処理に移る。このとき、前述のように相違する前記前段のレジスタ11にラッチされた関数ID“1h”が前記トレースメモリ5に格納される。更に、前記関数ID“1h”の処理に対応する命令を実行しているとき、上記同様に命令実行動作と非同期で割り込み要求がなされると、前記マイクロコンピュータ2が実行している処理を中断して、関数ID“2h”の処理に対応する命令が実行され、前述のように相違する前記前段のレジスタ11にラッチされた関数ID“2h”が前記トレースメモリ5に格納される。前記マイクロコンピュータ2による前記関数ID“2h”の処理に対応する命令の実行処理が完了すると、前記マイクロコンピュータ2は前記関数ID“1h”の処理に対応する残りの命令の実行に復帰する。このとき、前記前段と後段のレジスタにラッチされる関数ID値が相違するため、前記トレースメモリ5には前記前段のレジスタ11にラッチされた関数ID“1h”が格納される。また、前記マイクロコンピュータ2による前記関数ID“1h”の処理に対応する命令の実行処理が完了すると、前記マイクロコンピュータ2は上記同様に前記関数ID“0h”の処理に対応する残りの命令の実行に復帰し、前記トレースメモリ5には関数ID“0h”が格納される。
従って、前記トレースメモリ5に格納された結果から、前記マイクロコンピュータ2が実行したソースプログラムの関数IDの順序は、“0h”“1h”“2h”“1h”“0h”となり、前記関数IDの順序を容易に把握することができ、割り込みが要求されたときにも対応できる。
ソースプログラムの全ての関数をトレース条件とする従来までのトレース制御において、割り込みが要求されたとき、前記マイクロコンピュータ2が実行する関数の処理順を把握するには、多くの情報を処理するための複雑なトレース条件設定回路やトレースメモリの記憶容量の拡大が必要とされる。そこで、本発明の前記関数IDトレースモードによれば、トレース条件設定回路による回路の複雑化やトレースメモリの物理的規模の拡大を抑制して処理することができる。
図5には、前記関数IDトレースモードによるトレース制御の説明図である。前記マイクロコンピュータ2によって、関数ID“0h”のソースプログラムの関数に対応する命令が実行さると、前述のように前記前段のレジスタ11にラッチされた前記関数ID“0h”が前記トレースメモリ5に格納される。前記関数ID“0h”の関数に対応する命令の実行処理が完了すると、前記マイクロコンピュータ2は次の前記関数ID“1h”の関数に対応する命令を実行し、前記トレースメモリ5には前記関数ID“1h”が格納される。また、上記同様に前記関数ID“1h”の関数に対応する命令の処理が完了すると、その次の前記関数ID“2h”の関数に対応する命令を実行し、前記トレースメモリ5には前記関数ID“2h”が格納される。
従って、前記マイクロコンピュータ2によってソースプログラムの関数IDが処理された順序は、トレース結果から“0h”“1h”“2h”となる。
図6には本発明に係るデバッグ装置の別の例であるエミュレータ(EML)20の構成が示される。この例では、本来ターゲットシステム28に搭載されるべきターゲットマイクロコンピュータはもとよりエミュレーション用のマイクロコンピュータ21もOSの管理の下でユーザプログラムを実行する。ここでは、ユーザプログラムがデバッグ対象のプログラムとされる。ユーザプログラムはエミュレーション用の前記マイクロコンピュータ21にとって一つのオブジェクトプログラムとなる。エミュレーション用の前記マイクロコンピュータ21はユーザプログラムによる処理を行うとき、OSの管理の下でその処理をタスク単位で実行していく。このとき、OSはタスクに固有のタスクID(T_ID)を付与してタスクの実行を管理する。エミュレーション用の前記マイクロコンピュータ21には実行可能にされるタスクのタスクIDが格納されるタスクIDレジスタ(TREG)25を有する。タスクIDレジスタ(TREG)25は、エミュレーション用の前記マイクロコンピュータ21の内蔵RAM領域に配置されていてもよい。タスクの処理順を把握するには、前記タスクIDレジスタ25に格納されたタスクIDの遷移を調べればよい。このエミュレータにおいては、前記タスクIDレジスタ25のタスクIDをトレース可能にするタスクIDトレースモードを有する。
上記タスクIDトレースモードは、ホスト装置9によってモードレジスタ26に設定される。上記タスクIDトレースモードが設定されると、前記トレース制御部22は、前記マイクロコンピュータ21が処理するタスクのタスクIDを監視し、前記タスクIDが変化したとき、変化した前記タスクIDを前記トレースメモリ23に順次格納する制御を行う。
前記トレース制御部22は、タスクID制御回路(TICNT)27と書込み制御回路(WCNT)8を有する。前記タスクID制御回路27は、タスクIDレジスタ25のマッピングアドレスが設定可能にされるアドレスレジスタ(AREG)24を有する。前記タスクID制御回路27は、前記アドレスレジスタ24が保持するアドレスに対する書込みアクセスを検出すると、前記エミュレーションバス3上に現れる情報をタスクIDとして認識し、前記タスクIDを前記前段のレジスタ11に供給する制御を行う。
前記書込み制御回路8は、前記タスクID制御回路27によってタスクIDが前記前段のレジスタ11に供給されると、元々前記前段のレジスタ11に格納されていたタスクIDが後段のレジスタ12にシフトされ、図1で説明した動作と同様に比較動作が行われる。前記比較動作によって、前記前段と後段のレジスタにラッチされたタスクIDの相違が判別されるとタスクID検出信号(TID)がハイレベルにされる。前記タスクID検出信号がハイレベルにされると、前記書込み回路14は前記前段のレジスタ11に保持されている前記タスクIDを前記トレースメモリ23に格納する制御を行う。前記タスクID検出信号TIDがローレベルのときは、前記書込み回路による書込み制御は行われない。
この他の構成は図1で説明した構成要素と同じであり、それに同一参照符号を付与して詳細な説明を省略する。
上記エミュレータ20によれば変化したタスクIDが前記トレースメモリ23に格納されるから、ホスト装置が前記トレースメモリを参照することにより、そのトレース結果から前記マイクロコンピュータ21によるタスクの実行順序を把握することができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
本発明のトレース結果の表示形態については特に説明していないが、通信インターフェースケーブル等を介してパソコンやディスプレイ等の表示機器にGUIを利用して表示させても良い。また、本発明は上記で説明したターゲットシステムに接続してエミュレーションを行うエミュレータに限定されず、例えば、ターゲットシステムをシミュレーション結果で代用する場合のプログラムデバッグ等にも適用することができる。
本発明に係るデバッグ装置の一例であるエミュレータの構成図である。 記憶回路に保持される命令アドレスとその命令アドレスに対応する関数IDを示した概略図である。 エミュレーション用のマイクロコンピュータ及びトレースメモリ制御部におけるトレース制御中の動作の一部を例示したタイミングチャートである。 関数IDトレースモードによるトレース制御中に、割り込みが要求されたときの説明図である。 関数IDトレースモードによるトレース制御の説明図である。 本発明に係るデバッグ装置の一例である別のエミュレータの構成図である。
符号の説明
1 エミュレータ
2 エミュレーション用のマイクロコンピュータ
3 エミュレーションバス
4 トレース制御部
5 トレースメモリ
6 記憶回路
7 読出制御回路
8 書込み制御回路
9 ホスト装置
10 シフトレジスタ
11 前段のレジスタ
12 後段のレジスタ
13 比較回路
14 書込み回路
15 ターゲットシステム
16 エミュレーション制御部
17 モードレジスタ
18 ホストバス
20 エミュレータ
21 エミュレーション用のマイクロコンピュータ
22 トレース制御部
23 トレースメモリ
24 アドレスレジスタ
25 タスクIDレジスタ
26 モードレジスタ
27 タスクID制御回路
28 ターゲットシステム

Claims (7)

  1. オブジェクトプログラムを実行するマイクロコンピュータと、
    前記マイクロコンピュータが入出力する情報を受けるエミュレーションバスと、
    前記エミュレーションバスに出現した情報に基づいてトレースメモリに情報を格納する制御を行うトレース制御部とを有するデバッグ装置であって、
    前記トレース制御部は、前記マイクロコンピュータが実行するオブジェクトプログラムの命令の命令アドレスに対応するソースプログラムの関数を識別可能に付与した番号である関数IDが変化したとき、前記変化した関数IDを前記トレースメモリに格納する関数IDトレースモードを有するデバッグ装置。
  2. オブジェクトプログラムを実行するマイクロコンピュータと、
    前記マイクロコンピュータが入出力する情報を受けるエミュレーションバスと、
    前記エミュレーションバスに出現した情報に基づいてトレースメモリに情報を格納する制御を行うトレース制御部とを有するデバッグ装置であって、
    前記トレース制御部は、
    前記マイクロコンピュータが実行するオブジェクトプログラムの命令の命令アドレスと当該命令アドレスに対応するソースプログラムの関数IDとを格納可能とする記憶回路と、
    命令フェッチサイクル毎に前記命令アドレスに対応する前記関数IDを前記記憶回路から読み出す読出制御回路と、
    前記読出制御回路によって新たに読み出された関数IDがその直前に読み出された関数IDと相違するとき、前記新たに読み出された関数IDを前記トレースメモリに格納する書込み制御回路とを有するデバッグ装置。
  3. 前記記憶回路は、ホスト装置によって、前記命令アドレスと前記命令アドレスに対応する関数IDが初期的に書込まれる請求項2記載のデバッグ装置。
  4. 前記読出制御回路は、前記マイクロコンピュータによるバスアクセス状態に従って、前記エミュレーションバスに出力される命令フェッチ信号に基づいて命令フェッチサイクルを検出する請求項2又は3記載のデバッグ装置。
  5. 書込み制御回路は、前記記憶回路から順次出力される関数IDを保持する直列2段のシフトレジスタと、前記シフトレジスタにおける前段と後段のレジスタに夫々保持された前記関数IDを比較する比較回路と、比較回路による比較結果が相違したとき前記前段レジスタに保持された前記関数IDを前記トレースメモリに格納する書込み回路とを有する請求項2乃至4の何れか1項に記載のデバッグ装置。
  6. オペレーティングシステムによるタスクの管理の下でオブジェクトプログラムを実行するマイクロコンピュータと、
    前記マイクロコンピュータが入出力する情報を受けるエミュレーションバスと、
    前記エミュレーションバスに現れた情報に基づいてトレースメモリに情報を格納する制御を行うトレース制御部とを有するデバッグ装置であって、
    前記トレース制御部は、前記オペレーティングシステムの管理の下で前記マイクロコンピュータが処理するタスクのタスクIDを監視し、前記タスクIDが変化したとき、前記変化したタスクIDを前記トレースメモリに格納するデバッグ装置。
  7. 前記トレース制御部は、前記マイクロコンピュータが処理するタスクのタスクID格納用記憶領域のアドレスが設定可能にされるアドレスレジスタを有し、前記アドレスレジスタのアドレスに対応する書込みアクセスで前記エミュレーションバスに現れるデータをタスクIDとして認識する請求項6記載のデバッグ装置。
JP2007167480A 2007-06-26 2007-06-26 デバッグ装置 Withdrawn JP2009009201A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007167480A JP2009009201A (ja) 2007-06-26 2007-06-26 デバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007167480A JP2009009201A (ja) 2007-06-26 2007-06-26 デバッグ装置

Publications (1)

Publication Number Publication Date
JP2009009201A true JP2009009201A (ja) 2009-01-15

Family

ID=40324245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007167480A Withdrawn JP2009009201A (ja) 2007-06-26 2007-06-26 デバッグ装置

Country Status (1)

Country Link
JP (1) JP2009009201A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097580A (ja) * 2011-10-31 2013-05-20 Mitsubishi Electric Corp 動的解析装置、動的解析システム、動的解析方法、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097580A (ja) * 2011-10-31 2013-05-20 Mitsubishi Electric Corp 動的解析装置、動的解析システム、動的解析方法、及びプログラム

Similar Documents

Publication Publication Date Title
JP4864163B2 (ja) 試験装置
US20020147965A1 (en) Tracing out-of-order data
US9086969B2 (en) Establishing a useful debugging state for multithreaded computer program
US20100153786A1 (en) Processor, multiprocessor, and debugging method
JP2513417B2 (ja) 情報処理装置
WO2015119793A1 (en) Memory systems and memory control methods
JP3260083B2 (ja) デバッグシステム及びデバッグ方法
US8468393B2 (en) Triggering diagnostic operations within a data processing apparatus
JP2009009201A (ja) デバッグ装置
JP5387521B2 (ja) 論理検証シナリオ生成装置、及び、論理検証シナリオ生成プログラム
JP2002288002A (ja) エミュレータ装置及びエミュレーション方法
JP5120103B2 (ja) デバッグ方法およびデバッグプログラム
US9032255B2 (en) Semiconductor device and control method thereof
JP2006107004A (ja) トレース制御回路、マイクロプロセッサ及びトレース制御方法
CN112802527B (zh) 嵌入式闪存高速编程的实现方法、嵌入式闪存的编程系统
TWI661208B (zh) 測試裝置及其測試電路板
KR100538282B1 (ko) 체크 포인트를 이용한 실시간 병렬 프로그램 디버깅 방법
JP2023150108A (ja) インサーキットエミュレータ装置
JP2520158B2 (ja) ディジタルシグナルプロセッサのデバッグ方式
JP2008310508A (ja) デバッグ装置
JPH0652013A (ja) トレース回路
JPH07281924A (ja) トレース装置及びこれを備えたエミュレータ
JP2967741B2 (ja) Cpu互換性テスト装置
JPH03252731A (ja) マイクロプロセッサ
JP2007213415A (ja) メモリ装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100514

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100907