JP2005222446A - オンボードデバッグ装置および半導体回路装置 - Google Patents
オンボードデバッグ装置および半導体回路装置 Download PDFInfo
- Publication number
- JP2005222446A JP2005222446A JP2004031776A JP2004031776A JP2005222446A JP 2005222446 A JP2005222446 A JP 2005222446A JP 2004031776 A JP2004031776 A JP 2004031776A JP 2004031776 A JP2004031776 A JP 2004031776A JP 2005222446 A JP2005222446 A JP 2005222446A
- Authority
- JP
- Japan
- Prior art keywords
- information
- time
- board
- unit
- debugging
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】従来のオンボードデバッグ装置は、プログラムの評価、解析における時間精度が低いという課題があった。
【解決手段】半導体回路装置101から出力される実行時情報を受信するシリアルレジスタ122と、実行時情報の出力タイミングを示すトリガ信号106に応じてタイマカウント値127を出力するタイマ回路部125と、タイマカウント値を順に記憶するタイムスタンプ用FIFOバッファ126とを備えている。このように構成すれば、データ受信部における実行時情報の受信完了を待たずに、時間計測部で計測した時間計測値を実行時情報と関連付けて記憶することが可能となるので、時間誤差の少ないタイムスタンプ値を取得できる。
【選択図】図1
【解決手段】半導体回路装置101から出力される実行時情報を受信するシリアルレジスタ122と、実行時情報の出力タイミングを示すトリガ信号106に応じてタイマカウント値127を出力するタイマ回路部125と、タイマカウント値を順に記憶するタイムスタンプ用FIFOバッファ126とを備えている。このように構成すれば、データ受信部における実行時情報の受信完了を待たずに、時間計測部で計測した時間計測値を実行時情報と関連付けて記憶することが可能となるので、時間誤差の少ないタイムスタンプ値を取得できる。
【選択図】図1
Description
本発明は、半導体回路装置および該装置から少数の端子を介してデバッグ情報を受信するオンボードデバッグ装置とに係わり、特にデバッグ情報とタイムスタンプを関連付けて記録するトレース機能に関する。
近年、携帯電話などに代表されるモバイル機器や、DVD( Digital Video Disc )などに代表されるデジタル家電の普及が目覚ましい。その一要因として、これら製品において高機能化と低価格化・低消費電力化などがバランスよく実現されていることがあげられる。これは、半導体の微細加工技術の飛躍的な進展により、従来は複数の半導体回路装置で構成されていたシステムを1個の半導体回路装置上にシステムLSIとして実現できるようになったためであり、モバイル機器やデジタル家電の普及に伴って、システムLSIは今後さらに発展していくと期待されている。
ところで、システムLSIはシステムを制御するためのCPUとCPUを制御するプログラムが書き込まれたメモリを同一の半導体回路装置上に集積した組込み型マイクロコンピュータを搭載している場合が多い。その場合、複雑な機能をハードウェアだけで実現しようとすると半導体回路装置の回路規模が非常に大きくなり、結果としてコストが高くなるため、多くの機能がソフトウェアにより実現されている。従って、プログラムの規模が非常に大きくなってきており、組込み型マイクロコンピュータ上で動作するプログラムが正常に動作しているかを確認するためのデバッグがますます重要になってきている。
従来、このような組込み型マイクロコンピュータのデバッグには、インサーキットエミュレータ(ICE)が用いられてきた。ICEとは、組込み型マイクロコンピュータを含む半導体回路装置上に、デバッグに必要な機能をあらかじめ搭載し、組込み型マイクロコンピュータのデバッグに必要なデバッグ情報を、複数のデバッグ専用端子を介してデバッグ装置と入出力することで、組込み型マイクロコンピュータの実行時情報を得ることで、ソフトウェアのデバッグ・解析などを行うエミュレータの一種である。
しかし、ICEにおいては複数のデバッグ専用端子が必要であり、組込み型マイクロコンピュータを含む半導体回路装置のコストを悪化させる要因となる。例えば、32ビットのアドレスと32ビットのデータを有する組込み型マイクロコンピュータの場合、アドレス空間とデータ空間の各々をモニタする必要があり、メモリアクセス用の制御端子も必要であることを考えると、140本程度のデバッグ専用端子を半導体回路装置上に通常必要な端子とは別個に設ける必要があるためである。
これに対して、デバッグに使用される半導体回路装置にのみデバッグ専用端子を搭載しておき、量産段階ではデバッグ専用端子を削除するなどの対応がとられてきた。しかし、デバッグした半導体回路装置と量産される半導体回路装置とで信号間のタイミングが相違することにより、量産時になってソフトウェアを含めたシステムLSIの動作の不具合が発覚することがあった。システムLSIの規模が大きくなるに従い、このタイミングの相違はより顕著になり、ICEを用いたデバッグを正常に実行することは困難となりつつある。
これに対して近年、ICEと比較してより少数のデバッグ専用端子を半導体回路装置上に備えておき、少数のデバッグ専用端子を介してデバッグ装置とシリアルにデバッグ情報をやり取りすることで、組込み型マイクロコンピュータのデバッグを行うオンボードデバッグ装置が用いられるようになってきている(例えば、特許文献1、特許文献2を参照。)。
上述したように、オンボードデバッグ装置に対応したシステムLSIにおいては、少数の端子がデバッグ専用端子として割り当てられる。ここで、「少数」とは少なくとも1本のことを意味しており、アドレスとデータが同じ条件である場合に、ICEで使用される複数のデバッグ専用端子数未満であれば良い。但し、デバッグ専用端子の数がICEと同程度である場合は、上記と同様の問題が生じるので、通常は2〜3本のものが割り当てられている。従って、オンボードデバッグを行うためのオンボードデバッグシステムでは、少数のデバッグ専用端子を介してシリアルにデバッグ情報を入出力するため、ICEと比較してデバッグ情報の入出力に時間を要するが、ICEにおけるデバッグ時と量産時とでの半導体回路装置が相違することに起因する問題は解決される。
ところで、ICEとオンボードデバッグとで共通に使用され、デバッグに欠かせない機能としてトレース機能がよく知られている。トレース機能とは、プログラム実行履歴を確認する機能であり、実行履歴を示す情報として、例えば、プログラムの実行命令、データアクセス等のプログラム実行時情報と、それらのデータを取得した時間に対応したタイムスタンプ値とをトレース用のトレースメモリに関連付けて格納しておき、トレースメモリに格納された情報を外部のパソコンなどでモニタし、解析することで、プログラムのデバッグ、評価、解析などに行えるようにする機能である。
ここで、プログラム実行時情報とは、例えばプログラムカウンタなどの実行命令やデータアクセス等のプログラムにおける発生箇所を示すものである場合や、その際のメモリアクセスへの制御信号の状態を示すものである場合などが想定される。従来のオンボードデバッグシステムにおけるトレース機能は、図2又は図3に示すようなシステムで実現されている。
図2は、従来のオンボードデバッグシステム200の構成を表す図である。オンボードデバッグシステム200において、201はシステムLSI(図示せず)上に集積されたマイクロコンピュータである。また、102はCPUであり、メモリ(図示せず)上に展開されたプログラムで指定されるシーケンスに従ってシステムLSIを制御する。また、103はCPU102から出力されるプログラム実行時情報を受け取るとともに、タイマ回路部125にトリガ信号106を出力するトレース入力部である。125はタイムスタンプを出力するタイマ回路部であり、トリガ信号106の入力に応じてタイムスタンプとなるタイマカウント値127を出力する。123はトレース入力部103から出力される実行時情報を受信すると同時に、タイマ回路部125からタイムスタンプを取得し、実行時情報と共にFIFOバッファ104に出力するトレース出力部である。また、104はプログラム実行時情報およびタイムスタンプからなるパケットデータをP/S(Parallel/Serial)変換部105を介してデバッグ装置221に転送するまで、一時的に待避するFIFOバッファである。105はFIFOバッファ104から受け取ったパケットデータを少数のシリアル端子111、112を介して出力できるデータに変換するP/S変換部であり、パケットデータの少なくとも一部を少数のシリアル端子111、112を介してシリアルデータとして送信するように変換する。一方、オンボードデバッグ装置221は、S/P(Serial/Parallel)変換部122とトレースメモリ124とで構成される。S/P変換部122は、P/S変換部105から受信したシリアルデータを元のパケットデータ、即ち実行時情報およびタイムスタンプに復号化する。また、トレースメモリ124は、実行時情報およびタイムスタンプを関連付けて格納しておき、パソコン(図示せず)などを用いて外部よりアクセスし、内容が解析される。
図3は、図2の構成とはまた別のオンボードデバッグシステム300の構成を表す図である。図3で図2と同じ構成のものには、同じ符号を付して詳細な説明は省略する。オンボードデバッグシステム300において、301はシステムLSI(図示せず)上に集積されたマイクロコンピュータである。マイクロコンピュータ301が、図2におけるマイクロコンピュータ201と相違するのは、タイマ回路部125とトレース出力部123が削除されている点である。従って、トレース入力部303は、トレース入力部103におけるトリガ信号106を出力する機能を備えておらず、またFIFOバッファ104はトレース入力部303から出力される実行時情報のみを受け取る。また、P/S変換部105は、FIFOバッファ104に蓄積された実行時情報のみをデバッグ装置321に少数のデバッグ専用端子111、112を介して転送する。一方、オンボードデバッグ装置321は、オンボードデバッグ装置221に搭載していた機能に加えて、タイマ回路部125とトレース出力部123を備えている。従って、S/P変換部322は、S/P変換部122で有していたP/S変換部105から少数のデバッグ専用端子111、112を介して受信したシリアルデータを元の実行時情報に復号化する機能に加えて、タイマ回路部125に対して、シリアルデータの受信を示すトリガ信号106を出力する機能を有する。また、タイマ回路部125は、トリガ信号106の入力に応じてタイムスタンプとなるタイマカウント値127を出力し、トレース出力部123はS/P変換部322から出力される実行時情報を受信すると同時に、タイマ回路部125からタイムスタンプを取得し、実行時情報と共にトレースメモリ124に出力する。
特開平11−282713号公報
特開2001−249823号公報
図2のオンボードデバッグシステム200においては、マイクロコンピュータ201上(あるいはシステムLSI上)にタイマ回路部125を備えている。仮にこのタイマ回路部125が、デバッグ専用のものであるとすると、量産時には必要の無いタイマ機能をシステムLSI上に集積していることとなり、システムLSIのコストを高くする要因となる。
これに対する対策として、タイマ回路部125について、システムLSI上に通常機能として集積しているタイマ機能を流用することが想定できる。しかし、この場合、通常タイマの動作周波数はマイクロコンピュータの動作周波数から生成するため、タイムスタンプの値(すなわちタイマ回路部のカウント値)が、マイクロコンピュータの動作周波数に依存することになる。従って、システムLSIの低電力化等を目的として、動作周波数を頻繁に変化させるシステムでは、タイムスタンプにおける単位時間の一貫性が維持されないため、デバッグ情報として活用できなくなるという課題があった。
一方、図3のオンボードデバッグシステム300は、オンボードデバッグシステム200における上記の課題を解決するものである。これは、タイムスタンプ用のタイマ回路部125をオンボードデバッグ装置321側に搭載しているためである。しかし、オンボードデバッグシステム300にはまた別の課題が存在する。以下、図4および図5を用いて、オンボードデバッグシステム300の課題について説明する。
図4は、マイクロコンピュータ301で実行されるプログラムの一例であり、その処理の流れを示すフローチャートである。図4において、S401は転送命令や演算命令などから構成される連続した命令群を示す第1処理、S402は間接分岐命令を示す第1分岐、S403は転送命令や演算命令などから構成される連続した命令群を示す第2処理、S404は転送命令や演算命令などから構成される連続した命令群を示す第3処理、S405は間接分岐命令を示す第2分岐、S406は転送命令や演算命令などから構成される連続した命令群を示す第4処理、S407は転送命令や演算命令などから構成される連続した命令群を示す第5処理である。もちろん、第1処理S401、第2処理S403、第3処理S404、第4処理S406または第5処理S407は、単数の転送命令または演算命令で構成されていても良い。
図5は、図4におけるフローチャートにおいて、第1分岐S402において第3処理S404に分岐し、第2分岐S405において第5処理S407に分岐した場合に、プログラムの各サブルーチンの実行時間を計測し、命令アドレスとタイムスタンプ値を記録した例を示すイメージ図である。このイメージ図は実際には、トレースメモリ124からパソコンなどにより読み出されたパケットデータを整理したイメージに相当する。図5において、項目1にはプログラムの流れを示す情報が記載されている。項目2には、それぞれの処理が開始されるアドレスが実行時情報として記録されている。ここで、項目2に記録される実行時情報は、32ビット幅のアドレスであるものとする。項目3は、各処理が実行を開始したときの実際の実行時間を示しており、実際のトレースメモリ124に記録されないデータである。項目4は、タイマ回路部125によって計測されたタイムスタンプ値が記録されている。
ここで、項目4におけるタイムスタンプは、オンボードデバッグ装置321のS/P変換部322において実行時情報を受信した時点でのタイマ回路部125のタイマカウント値127である。タイマカウント値127は、CPU102が処理を実行した時間と、マイクロコンピュータ301とオンボードデバッグ装置321との間の通信に要した通信時間とを加算した値である。いま、マイクロコンピュータ301とオンボードデバッグ装置321との間の通信手段を、10Mbpsの調歩同期式シリアル通信の1系統とする場合、32ビット幅のアドレスの転送に要する通信時間として約4000nsec必要であるとする。
そこで、図5を用いて第1分岐S402と第2分岐S405間の処理に要した時間、即ち第3処理S404に要する時間を計測したい場合に、実際の処理時間が項目3に示されるような数値であったとする。しかし、項目4に示されるタイムスタンプ値は、第1分岐S402に対しては、32ビット幅のアドレスの転送に要する通信時間として約4000nsecを加算した9000nsecが記録される。
次に、第2分岐S405に対するタイムスタンプ値を記録するのであるが、第2分岐S405に対応する命令アドレスの転送は、P/S変換部105とS/P変換部322とで転送中であるので、FIFOバッファ104上でウェイト状態にされる。P/S変換部105とS/P変換部322の転送は、上述の通り9000nsecで完了するので、そこからさらに4000nsec後、即ち13000nsecが、第2分岐S405に対応するタイムスタンプ値として項目4に記録される。従って、第3処理に要する時間は実際には2000nsecであるのに対して、項目4に記録されるタイムスタンプ値からは、(13000−9000)=4000nsecと誤った情報が導かれることになる。ここで、マイクロコンピュータとオンボードデバッグ装置間の通信速度は、マイクロコンピュータの動作周波数から生成される場合が多く、特に、動作周波数の低いマイクロコンピュータほど、通信時間の誤差がより大きくなり、さらに時間精度が低下する。
本発明は、システムLSIのコストを増加させずに、マイクロコンピュータの実行時情報と極力誤差を低減したタイムスタンプ値を関連付けて記録するトレース機能を実現するオンボードデバッグ装置を提供することを目的とする。
本発明のオンボードデバッグ装置は、ターゲットとなる半導体回路装置の実行時情報を少数のデバッグ用端子を介して受信し、前記実行時情報と前記実行時情報の実行時間とを関連付けた情報をデバッグに利用するオンボードデバッグ装置であって、前記少数のデバッグ用端子を介して前記半導体回路装置から前記実行時情報を受信するデータ受信部と、前記データ受信部における前記実行時情報の受信完了以前に、前記半導体回路装置から前記実行時情報の実行時間と関連付けて出力される指示を受信し、前記指示に応じて時間計測値を出力する時間計測部と、前記受信部により受信される前記実行時情報と、前記時間計測部により出力される前記時間計測値とを関連付けて記憶する情報記憶部とを備えている。
このように構成すれば、データ受信部における実行時情報の受信完了を待たずに、時間計測部で計測した時間計測値を実行時情報と関連付けて記憶することが可能となるので、時間誤差の少ないタイムスタンプ値を取得できる。
本発明のオンボードデバッグ装置によれば、ターゲットシステムの端子数を最小限に抑えるとともに、時間的誤差のない実行履歴を取得できる。よって、プログラムのデバッグ、性能評価、動作解析における時間精度を向上することが可能である。
また、本発明のオンボードデバッグ装置において、前記指示を、前記少数のデバッグ用端子とは別の端子を介して受信することも好ましい。
また、本発明のオンボードデバッグ装置において、前記指示は、前記半導体回路装置における前記実行時情報の出力と同時に出力されるものであっても良い。
このように構成すれば、デバッグに必要な端子数は1本増加するが、半導体回路装置における実行時情報の出力と略同じタイミングでタイムスタンプを取得することで、時間精度をさらに向上することが可能である。
また、本発明のオンボードデバッグ装置において、前記実行時情報は、前記少数のデバッグ用端子を介して、複数の単位に分割されて前記データ受信部により受信されるものであり、前記指示は、前記半導体回路装置における前記実行時情報の出力タイミング毎に、前記実行時情報の前記複数の単位毎に付与されるものであることも好ましい。
このように構成すれば、デバッグに必要な端子数を増加せずに、従来よりも時間精度を向上したオンボードデバッグ装置を提供することが可能である。
さらに、本発明のオンボードデバッグ装置において、前記情報記憶部は、前記時間計測部が出力した順に前記時間計測値を記憶し、前記データ受信部における前記実行時情報の完了に応じて記憶した順に前記時間計測値が読み出される先入れ先出しバッファと、前記データ受信部に受信された前記実行時情報と、前記実行時情報の完了に応じて前記先入れ先出しバッファから読み出された前記時間計測値とを関連付けて記憶するよう制御されるトレースメモリとを備えていても良い。
このように構成すれば、簡単な回路構成で時間精度の良いオンボードデバッグ装置を構築できる。
また、本発明のオンボードデバッグ装置において、前記データ受信部は、シリアルレジスタにより構成され、前記指示は、複数の単位に分割された前記実行時情報が前記シリアルレジスタにより受信される毎に付与される、所定のビット情報として受信されることも好ましい。
このように構成すれば、シリアルレジスタを1ビット増加させるだけで、時間精度の良いオンボードデバッグ装置を構築できる。
以下に、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図1は、本発明の実施の形態1におけるオンボードデバッグシステム100の概略構成を示すブロック図である。ここで、従来例を示す図2および図3において説明したと実質的に同等の機能を有するものには同一の符号を付して説明を省略する。
図1は、本発明の実施の形態1におけるオンボードデバッグシステム100の概略構成を示すブロック図である。ここで、従来例を示す図2および図3において説明したと実質的に同等の機能を有するものには同一の符号を付して説明を省略する。
図1において、101はシステムLSI(図示せず)上に集積されたマイクロコンピュータである。マイクロコンピュータ101が、図3におけるマイクロコンピュータ301と相違するのは、トレース入力部103が時間計測部として機能するタイマ回路部125へのトリガ信号106を出力する機能を有しており、トリガ信号106がデバッグ専用端子113、114を介してオンボードデバッグ装置121上に搭載されたタイマ回路部125に入力されていることのみである。一方、オンボードデバッグ装置121において、図3におけるオンボードデバッグ装置321と異なるのは、時間計測部として機能するタイマ回路部125へのトリガ信号106が、データ入力部として機能するS/P変換部122からではなく、上述のデバッグ専用端子113、114を介して入力されていることと、タイマ回路部125から出力されるタイムカウント値127がトレース出力部123に直接に入力されるのではなく、タイムスタンプ用FIFOバッファ126を介して入力されている点である。ここで、タイムスタンプ用FIFOバッファ126は、トレース出力部123およびトレースメモリ124とあわせて、情報記憶部として機能する。また、タイムスタンプ用FIFOバッファ126の詳細な動作については以下で説明する。
図7(a)、図8(a)、図9(a)は、マイクロコンピュータ101上のFIFOバッファ104の一実施の形態を示す図である。本実施の形態では、FIFOバッファ104は、32ビット幅のデータを保持する5段の記憶領域701〜705を備えるものとする。同じく、図7(b)、図8(b)、図9(b)は、オンボードデバッグ装置121上のタイムスタンプ用FIFOバッファ126の一実施の形態を示す図である。本実施の形態では、タイムスタンプ用FIFOバッファ126は、FIFOバッファ104と同様に、32ビット幅のデータを保持する5段の記憶領域706〜710を備えるものとする。尚、FIFOバッファ104とタイムスタンプ用FIFOバッファ126について、データ幅および記憶領域の段数は適宜に変更されるものであって良い。例えば、FIFOバッファ104の2段の記憶領域が転送された際に、タイムスタンプ用FIFOバッファ126の1段が使用される場合なども想定できるが、FIFOバッファ104とタイムスタンプ用FIFOバッファ126の記憶領域の段数が関連付けて設計されていれば良い。
以下、図4に示すプログラムにおいて第3処理S404の実行時間を検証する場合を実施の形態として説明する。
ここで、第3処理S404の実行時間は、トレース機能により分岐命令実行時の分岐先アドレスおよびタイムスタンプを実行履歴として記録し、第1分岐S402で第3処理S404の先頭アドレスに分岐した際のタイムスタンプと、第2分岐S405で第5処理S407の先頭アドレスに分岐した際のタイムスタンプとの時間差を測定することにより検出される。
いま、CPU102において第1分岐S402が実行されたとする。このとき、トレース入力部103は、CPU102から出力された実行時情報を検出し、第1分岐S402の分岐先アドレス(第3処理S404の先頭アドレス0x10000000)を実行時情報としてマイクロコンピュータ101のFIFOバッファ104の記憶領域701に格納すると同時に、トリガ信号106をデバッグ専用端子113、114を介してオンボードデバッグ装置121のタイマ回路部125に出力する。P/S変換部105では、マイクロコンピュータ101のFIFOバッファ104の先頭である記憶領域701に格納されたデータを読出し、シリアルデータに変換した後、オンボードデバッグ装置121のS/P変換部122に送信する。タイマ回路部125では、トリガ信号106の入力を受け、現在のタイマ値(0x00001388)をタイムスタンプ用FIFOバッファ126の記憶領域706へラッチする。
ここで、第1分岐S402の分岐先アドレス(第3処理S404の先頭アドレス0x10000000)を示す32ビットの実行時情報をP/S変換部105からS/P変換部122に送信する間に要する時間は、シリアル通信の特性を10Mbpsの調歩同期式とした場合、約4000nsecである。
第1分岐S402の実行終了後2000nsecが経過した時点で、プログラムの処理が進行し、第2分岐S405が実行されたとする。このとき、トレース入力部103は、CPU102から出力された実行時情報を検出し、第2分岐S405の分岐先アドレス(第5処理S407の先頭アドレス0x20000000)を実行時情報としてマイクロコンピュータ101のFIFOバッファ104に格納する。ここで、FIFOバッファ104の先頭である記憶領域701には、シリアル送信待ち状態にある第1分岐S402の分岐先アドレスを示す実行時情報が格納されているため、第2分岐S405の分岐先アドレスを示す実行時情報は、次の記憶領域702に格納される。また、実行時情報の格納と同時にトリガ信号106をオンボードデバッグ装置121のタイマ回路部125に出力する。タイマ回路部125では、トリガ信号106の入力を受け、現在のタイマ値(0x00001B58)をタイムスタンプ用FIFOバッファ126へラッチする。ここで、タイムスタンプ用FIFOバッファ126の先頭である記憶領域706には、シリアル受信待ち状態にある第1分岐S402が実行された時間を示すタイムスタンプが格納されているため、第2分岐S405が実行された時間を示すタイムスタンプは、次の記憶領域707に格納される。
第2分岐S405の実行終了後さらに2000nsecが経過(第1分岐S402の実行からは4000nsecが経過)した時点で、S/P変換部122において第1分岐S402の実行時情報の受信が完了し、受信した実行時情報がトレース出力部123に出力される。このとき、タイムスタンプ用FIFOバッファ126に格納されている2つのタイムスタンプ値のうち、先に格納された記憶領域706にあるタイムスタンプ値がトレース出力部123に出力される。このような動作によって、トレース入力部103に出力された第1分岐S402の実行時情報が、タイムスタンプと共にトレース出力部123を経由して、最終的にトレースメモリ124に保存される。
また、マイクロコンピュータ101上のFIFOバッファ104では、実行時情報の送信完了に伴い、先頭である記憶領域701に格納されているデータを破棄し、記憶領域702以降に格納されているデータをバッファの先頭に向かって順次シフトする。
同様に、オンボードデバッグ装置121上のタイムスタンプ用FIFOバッファ126では、タイムスタンプの読出し完了に伴い、先頭である記憶領域706に格納されているデータを破棄し、記憶領域707以降に格納されているデータをバッファの先頭に向かって順次シフトする。
前述した第1分岐S402の実行履歴の取得からさらに4000nsec経過した時点で、S/P変換部122において第2分岐S405の実行時情報の受信が完了し、受信した実行時情報がトレース出力部123に出力される。このとき、タイムスタンプ用FIFOバッファ126に格納されているタイムスタンプ値128がトレース出力部123に出力される。このような動作によって、トレース入力部103から出力された第2分岐S405の実行時情報が、タイムスタンプと共にトレース出力部123を経由して、最終的にトレースメモリ124に保存される。
以上の処理により、トレースメモリ124には実行時情報および図6の項目4に示すタイムスタンプ値が関連付けて格納される。外部のパソコンなどを使用して、これら格納された実行時情報およびタイムスタンプを読み出すことにより、第1分岐S402が実行された時間(実時間、タイムスタンプともに5000nsec)、第2分岐S405が実行された時間(実時間、タイムスタンプともに7000nsec)および、第2分岐S405が実行された時間と第1分岐S402が実行された時間との時間差によって示される第3処理S404の実行時間(実時間、タイムスタンプによる測定値ともに2000nsec)が測定できる。
以上のように、本発明によれば、実行時情報の転送に必要な少数のデバッグ専用端子にトリガ出力を転送する1本のデバッグ専用端子を加えただけで、実際に処理が行われた時間と誤差の少ないタイムスタンプを付加した実行履歴を取得し、時間情報の精度が高い検証を行うことが可能となる。
(実施の形態2)
実施の形態1で説明したオンボードデバッグシステム100において、トリガ信号106を転送するためのデバッグ専用端子113、114を追加せずに、システムを構築することも可能である。以下では図10〜図13を用いてその詳細を説明する。
実施の形態1で説明したオンボードデバッグシステム100において、トリガ信号106を転送するためのデバッグ専用端子113、114を追加せずに、システムを構築することも可能である。以下では図10〜図13を用いてその詳細を説明する。
図10は、本発明の実施の形態2におけるオンボードデバッグシステム1000の概略構成を示すブロック図である。ここで、実施の形態1における構成と実質的に同等の機能を有するものには同一の符号を付して説明を省略する。
図10において、1001はシステムLSI(図示せず)上に集積されたマイクロコンピュータである。マイクロコンピュータ1001が、図1におけるマイクロコンピュータ101と相違するのは、トレース入力部103がトレース入力部1003に、FIFOバッファ104がFIFOバッファ1004に、P/S変換部105がP/S変換部1005に変更されている点である。一方、オンボードデバッグ装置1021が図1のオンボードデバッグ装置121と異なるのは、S/P変換部122がS/P変換部1022に変更されている点である。以下にそれらの変更点について詳細に説明する。
まず、トレース入力部1003は、トレース入力部103が有していたCPU102からの実行時情報を受け取る機能に加えて、CPU102から実行時情報を受け取ったタイミングを示すトリガ出力要求信号1007を出力する機能を有する。また、FIFOバッファ1004はトレース入力部1003からの32ビットからなる実行時情報1006を受け取るが、内部で32ビットからなる実行時情報1006を細かい単位に分割して、P/S変換部1005に出力する。さらに、P/S変換部1005は、FIFOバッファ1004から出力される細かい単位に分割された実行時情報を、トリガ出力要求信号1007の入力に応じて制御し、少数のデバッグ専用端子111に出力する。以下に、図11を用いて、FIFOバッファ1004とP/S変換部1005について、さらに詳細に説明する。
図11は、FIFOバッファ1004とP/S変換部1005の詳細な接続を示した図である。まず、FIFOバッファ1004は、32ビットからなる実行時情報1006を各々が8ビットで構成される4つのレジスタ1110に入力する。また、P/S変換部1005は、トリガ出力設定部1107とシリアルレジスタ1101から構成される。ここで、シリアルレジスタ1101は、FIFOバッファ1004から出力される8ビットのデータを転送するためのデータ部1104の他に、一度のシリアルデータ転送の最初を示すスタートビット部1105と最後を示すエンドビット部1102とトリガ信号106のタイミングを示すトリガビット部1103を備えている。トリガビット部1103は、トリガ出力設定部1107により8ビットのシリアルデータ転送毎に設定されるビットである。
次に、トリガ出力設定部1107の動作について説明する。トリガ出力設定部1107は、バイナリカウンタ1108とトリガ出力判定部1109により構成されている。まず、バイナリカウンタ1108の動作であるが、トレース入力部1003から出力されるトリガ出力要求信号1007に応じて1つインクリメントされ、スタートビット部1105にデータがセットされるたびに信号1106により1つデクリメントされるよう構成されている。また、トリガ出力判定部1109は、バイナリカウンタ1108の値が1以上、即ちトリガ出力要求がキューイングされていれば、トリガビット部1103をセットし、バイナリカウンタ1108の値が0であれば、トリガビット部1103をリセットする。これは8ビットの4つのレジスタ1110から8ビットのシリアルデータが、送信されるたびに実施される。すなわち、従来は32ビットの実行時情報1006の転送単位でしかトリガ出力のタイミングをタイマ回路部125に通知できなかったものと比較して、実行時情報の転送途中でもタイマ回路部125にタイムスタンプのタイミングを通知することが可能となる。
図12は、S/P変換部1022の詳細な構成図である。S/P変換部1022は、P/S変換部1005の出力から少数のデバッグ専用端子112を介して入力される11ビットのシリアルデータを受信する11ビットのシリアルレジスタ1201と、シリアルレジスタ1201で受信した実行時情報をバッファする各々が8ビットで構成されるレジスタ1206、1207、1208、1209とを備えている。
まず、シリアルレジスタ1201は、8ビット単位に分割された実行時情報をラッチするデータ部1204に加えて、スタートビットをラッチするスタートビット部1205とエンドビットをラッチするエンドビット部1202と、トリガビット部1103によって指定されるトリガ信号をラッチするトリガビット部1203とで構成されている。ここで、データ部1204で受信された分割された実行時情報は、レジスタ1206、1207、1208、1209に順次転送されることで、4回のシリアル転送が終了した段階で、元の32ビットからなる実行時情報1006が復元され、トレース出力部123に出力される。また、トリガビット部1203で指定されるトリガ信号106は、分割されたシリアルデータ送信毎に設定されているため、タイマ回路部125へのトリガ出力の送信について、従来の32ビット単位で転送している場合よりも遅延を少なくすることが可能である。
具体的な例として、CPUから2つの32ビットデータ0x01234567、0x89ABCDEFを連続してトレースへ出力する場合について説明する。以降の説明では、データを出力する前の段階では、バイナリカウンタ1108の値は0になっており、FIFOバッファ1004やシフトレジスタ1101および1201は空であるとする。
まず、CPUから1つ目のデータである0x01234567がトレース入力部1003へ出力されると、FIFOバッファ1004に0x01234567が格納されると同時に、バイナリカウンタ1108が1つインクリメントされる。次に、FIFOバッファ1004に格納されたデータのうち、最下位の8ビットに相当する0x67だけがシフトレジスタ1101の中のデータ部1104に格納される。ここで、バイナリカウンタ1108の値が1以上であるため、トリガ出力判定部1109は、トリガビット部1103をセットする。次にスタートビットには0を、エンドビットに1を設定した後に、シフトレジスタ1101は1ビットずつデータを右シフトしてオンボードデバッグ装置1021へデータを送信する。このとき同時にバイナリカウンタ1108が1つデクリメントされる。
なお、この段階でシフトレジスタ1101から出力されるデータ列を時間軸で示したものが図13(a)の波形図である。ここで、図13において、IDLEはシリアルデータを送信していないタイミングを示す。時間T0および時間T12が相当する。また、スタートビットは時間T1にて送出されている。同じくエンドビットは時間T11にて送出されている。時間T2〜T9の間では分割された実行時情報が送出されており、図13(a)では0x67が送信されている。
次に、CPUから2つ目のデータである0x89ABCDEFがトレース入力部1003へ出力されると、FIFOバッファ1004に0x89ABCDEFが格納されると同時に、バイナリカウンタ1108が1つインクリメントされる。ここで、FIFOバッファ1004には先ほど格納された1つ目のデータの上位24ビット(0x012345)がまだ残っている状態である。シフトレジスタ1104の11ビットのデータ列が全て(32ビット+3×4ビット=44ビット)送信されるまでこの状態は続き、44ビットが全て送信された時点でCPUから送出された2つ目のデータにおける8ビット分の送信が開始される。
具体的には、FIFOバッファ1004に残されている1つ目のデータの上位24ビット中の下位8ビットに相当する0x45がシフトレジスタ1101の中のデータ部1104に格納される。さらにバイナリカウンタ1108は先ほどの2つ目のデータ受入れによって値が1以上になっているため、トリガ出力判定部1109はトリガビット部1103をセットする。次にスタートビットに0を、エンドビットに1を設定し、シフトレジスタ1101は再び1ビットずつデータを右シフトしてオンボードデバッグ装置1021へデータを送信する。このとき同時にバイナリカウンタ1108は1つデクリメントされる。なお、この段階でシフトレジスタ1101から出力されるデータ列を時間軸で示したものが図13(b)である。
次に、CPU102からは特にデータが送出されない状態で、シフトレジスタ1101の全11ビット分のシフト作業が終わると、次の8ビット分のデータ送信を続けて行なう。具体的にはFIFOバッファ1004に格納されている1つ目のデータの上位16ビット(0x0123)のうち下位8ビットに当たる0x23がシフトレジスタ1101の中のデータ部1104に格納される。ここで、バイナリカウンタ1108はリセットされているので、トリガ出力判定部1109はトリガビット部1103をリセットする。次にスタートビットに0、エンドビットに1を設定し、シフトレジスタ1101は再び1ビットずつデータを右シフトしてオンボードデバッグ装置1021へデータを送信する。このときバイナリカウンタ1108に対してカウント値を1つデクリメントする要求が出されるが、バイナリカウンタ1108は既に値が0となっているため、実際には何も変化しない。なお、この段階でシフトレジスタ1101から出力されるデータ列を時間軸で示したものが図13(c)である。なお、上記の動作はFIFOバッファ1004が空になるまで繰り返される。
一方、上記で説明したデータを受信するS/P変換部1022の動作について説明すると、まず1つ目のデータの下位8ビットである0x67とスタートビット、エンドビットおよびトリガビットの全11ビットがシフトレジスタ1201に格納される。これと同時に、データ部1204に格納されている値0x67は8ビットレジスタ1206に保存される。ここで、トリガビット部1203がセットされているため、トリガ信号106が出力され、このタイミングで図10のタイマ回路部125からタイムスタンプ用FIFOバッファ126へその時点でのタイムスタンプ値128が退避される。
次に、シフトレジスタ1201は、1つ目のデータの中の次の下位8ビットにあたる0x45を受信する。今度は8ビットレジスタ1206に保存されていた先ほどの0x67が次の8ビットレジスタ1207に保存されてから、データ部1204に格納されている値0x45を8ビットシフトレジスタ1206に保存する。同時にトリガビット部1203がセットされているため、トリガ信号106が出力され、このタイミングで図10のタイマ回路部125からタイムスタンプ用FIFOバッファ126に、その時点でのタイムスタンプ値128が退避される。この時点でタイムスタンプ用FIFOバッファ126には、先ほどのタイムスタンプ値も含め2つのタイムスタンプ値が溜められた状態にある。
次に、シフトレジスタ1201は、1つ目のデータの中の次の下位8ビットにあたる0x23を受信する。上述の場合と同じように8ビットレジスタ1207および1206に保存されていた0x67と0x45はそれぞれ次の8ビットレジスタ1208および1207に転送され、データ部1204に格納されている値0x23を8ビットレジスタ1206に保存する。今回はトリガビット部1203がリセットされているため、タイマ回路部125に対してはトリガ信号106が出力されず、何も指示されない状態となる。最後にシフトレジスタ1201に、1つ目のデータの最後の8ビットにあたる0x01が送り込まれ、4つある8ビットレジスタ1206〜1209にはそれぞれ0x01、0x23、0x45、0x67が格納される形になる。4つの8ビットデータが揃ったところで、1つの32ビットデータとしてトレース出力部123に実行時情報として出力される。このとき、タイムスタンプ用FIFOバッファ126に格納されている2つのタイムスタンプ値のうち、先に格納された方のタイムスタンプ値が同時にトレース出力部123に出力される。このような動作によって、トレース入力部1003に出力された実行時情報が、タイムスタンプと共にトレース出力部123を経由して、最終的にトレースメモリ124に保存される。
本実施の形態2におけるポイントは、図11のシフトレジスタ1101の中に8ビット分のデータ部1104とトリガビット部1103を混在させて、オンボードデバッグ装置1021へ情報を伝えることである。これにより、トレース入力部1003が受けた実行時情報32ビット分のデータをオンボードデバッグ装置1021へ送信し終わるまでの間に、少なくとも4回のタイムトリガビット情報を送ることが可能であり、先の実施の形態1で示したようなタイムスタンプの発行を要求する検出信号を使わずに、タイムスタンプ記録における時間遅延を減少させることができる。
なお、本発明は上記の実施の形態に限定されず、本発明の趣旨の範囲内で種々の変形実施が可能である。
例えば、本発明の実施の形態1では、記録する実行時情報として分岐命令の分岐先アドレスを示す32ビットデータを例にとり説明したが、マルチタスクシステムにおけるタスク遷移を示すイベント情報の記録など、データサイズの異なる他の実行時情報を記録する場合にも本発明は適用可能である。
また、以上の実施の形態の説明において、半導体回路装置とオンボードでバッグ装置間の実行時情報の送受信に、FIFOバッファを用いていたが、これ以外の方法によっても良い。例えば、メモリに蓄積するデータとアドレス(アドレスとなるポインタ)を関連付けて記憶するソフトウェアによる制御などであっても良い。
本発明のオンボードデバッグ装置によれば、データ受信部における実行時情報の受信完了を待たずに、時間計測部で計測した時間計測値を実行時情報と関連付けて記憶することで時間誤差の少ないタイムスタンプ値を取得することが可能となり、半導体回路装置から少数の端子を介してデバッグ情報を受信するオンボードデバッグ装置におけるデバッグ情報とタイムスタンプとを関連付けて記録するトレース機能として有用である。
101、1001 マイクロコンピュータ
103、1003 トレース入力部
104、1004 FIFOバッファ
105、1005 P/S変換部
111、112 少数のデバッグ専用端子
113、114 デバッグ専用端子
121、1021 オンボードデバッグ装置
122、1022 S/P変換部
123 トレース出力部
124 トレースメモリ
125 タイマ回路部
126 タイムスタンプ用FIFOバッファ
1107 トリガ出力設定部
1101、1201 シリアルレジスタ
1103、1203 トリガビット部
1104、1204 データ部
103、1003 トレース入力部
104、1004 FIFOバッファ
105、1005 P/S変換部
111、112 少数のデバッグ専用端子
113、114 デバッグ専用端子
121、1021 オンボードデバッグ装置
122、1022 S/P変換部
123 トレース出力部
124 トレースメモリ
125 タイマ回路部
126 タイムスタンプ用FIFOバッファ
1107 トリガ出力設定部
1101、1201 シリアルレジスタ
1103、1203 トリガビット部
1104、1204 データ部
Claims (9)
- ターゲットとなる半導体回路装置の実行時情報を少数のデバッグ用端子を介して受信し、前記実行時情報と前記実行時情報の実行時間とを関連付けた情報をデバッグに利用するオンボードデバッグ装置において、
前記少数のデバッグ用端子を介して前記半導体回路装置から前記実行時情報を受信するデータ受信部と、
前記データ受信部における前記実行時情報の受信完了以前に、前記半導体回路装置から前記実行時情報の実行時間と関連付けて出力される指示を受信し、前記指示に応じて時間計測値を出力する時間計測部と、
前記受信部により受信される前記実行時情報と、前記時間計測部により出力される前記時間計測値とを関連付けて記憶する情報記憶部とを備えたことを特徴とするオンボードデバッグ装置。 - 前記指示を、前記少数のデバッグ用端子とは別の端子を介して受信することを特徴とする、請求項1に記載のオンボードデバッグ装置。
- 前記指示は、前記半導体回路装置における前記実行時情報の出力と同時に出力されるものであることを特徴とする、請求項1に記載のオンボードデバッグ装置。
- 前記実行時情報は、前記少数のデバッグ用端子を介して、複数の単位に分割されて前記データ受信部により受信されるものであり、
前記指示は、前記半導体回路装置における前記実行時情報の出力タイミング毎に、前記実行時情報の前記複数の単位毎に付与されるものであることを特徴とする、請求項1に記載のオンボードデバッグ装置。 - 前記情報記憶部は、
前記時間計測部が出力した順に前記時間計測値を記憶し、前記データ受信部における前記実行時情報の完了に応じて記憶した順に前記時間計測値が読み出される先入れ先出しバッファと、
前記データ受信部に受信された前記実行時情報と、前記実行時情報の完了に応じて前記先入れ先出しバッファから読み出された前記時間計測値とを関連付けて記憶するよう制御されるトレースメモリとを備えていることを特徴とする、請求項1に記載のオンボードデバッグ装置。 - 前記データ受信部は、シリアルレジスタにより構成され、
前記指示は、複数の単位に分割された前記実行時情報が前記シリアルレジスタにより受信される毎に付与される、所定のビット情報として受信されることを特徴とする、請求項1に記載のオンボードデバッグ装置。 - 少数のデバッグ用端子を介してオンボードデバッグ装置に実行時情報を出力し、前記オンボードデバッグ装置を介してモニタされる前記実行時情報に基づいて、プログラムの動作がデバッグされる半導体回路装置において、
前記実行時情報の実行タイミングを示す指示を前記少数のデバッグ用端子とは異なる別の端子を介して前記オンボードデバッグ装置に伝達することを特徴とする半導体回路装置。 - 少数のデバッグ用端子を介してオンボードデバッグ装置に実行時情報を出力し、前記オンボードデバッグ装置を介してモニタされる前記実行時情報に基づいて、プログラムの動作がデバッグされる半導体回路装置において、
前記実行時情報を複数の単位に分割するデータ分割部と、
前記データ分割部により分割された前記複数の単位毎に、前記少数のデバッグ端子を介して前記オンボードデバッグ装置に転送するデータ送信部とを備え、
前記データ送信部における前記複数の単位の転送毎に、前記実行時情報の実行タイミングを示す指示を付与して、前記少数のデバッグ端子を介して前記オンボードデバッグ装置に前記指示を伝達することを特徴とする半導体回路装置。 - 前記データ送信部は、シリアルレジスタにより構成され、
前記指示は、前記シリアルレジスタが転送するビットとして付与されることを特徴とする、請求項8に記載の半導体回路装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004031776A JP2005222446A (ja) | 2004-02-09 | 2004-02-09 | オンボードデバッグ装置および半導体回路装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004031776A JP2005222446A (ja) | 2004-02-09 | 2004-02-09 | オンボードデバッグ装置および半導体回路装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005222446A true JP2005222446A (ja) | 2005-08-18 |
Family
ID=34998004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004031776A Pending JP2005222446A (ja) | 2004-02-09 | 2004-02-09 | オンボードデバッグ装置および半導体回路装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005222446A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007086150A1 (ja) * | 2006-01-24 | 2007-08-02 | Matsushita Electric Industrial Co., Ltd. | メモリ破壊検出方法および装置 |
JP2010128681A (ja) * | 2008-11-26 | 2010-06-10 | Renesas Electronics Corp | タイムスタンプ取得回路及びタイムスタンプ取得方法 |
GB2490390A (en) * | 2012-03-29 | 2012-10-31 | Renesas Mobile Corp | Latency measurement for logic unit transactions over on-chip interconnect |
US8656220B2 (en) | 2010-05-11 | 2014-02-18 | Samsung Electronics Co., Ltd. | System-on-chip and debugging method thereof |
JP2015095061A (ja) * | 2013-11-12 | 2015-05-18 | 日立オートモティブシステムズ株式会社 | 車載用制御装置のロギングシステム |
CN108628780A (zh) * | 2018-04-28 | 2018-10-09 | 上海与德科技有限公司 | 一种数据通信方法、系统及电动车 |
WO2019003863A1 (ja) * | 2017-06-28 | 2019-01-03 | 日立オートモティブシステムズ株式会社 | 演算装置、ログ記録装置、ログ記録システム |
-
2004
- 2004-02-09 JP JP2004031776A patent/JP2005222446A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007086150A1 (ja) * | 2006-01-24 | 2007-08-02 | Matsushita Electric Industrial Co., Ltd. | メモリ破壊検出方法および装置 |
JP2010128681A (ja) * | 2008-11-26 | 2010-06-10 | Renesas Electronics Corp | タイムスタンプ取得回路及びタイムスタンプ取得方法 |
US8656220B2 (en) | 2010-05-11 | 2014-02-18 | Samsung Electronics Co., Ltd. | System-on-chip and debugging method thereof |
GB2490390A (en) * | 2012-03-29 | 2012-10-31 | Renesas Mobile Corp | Latency measurement for logic unit transactions over on-chip interconnect |
US8401821B1 (en) | 2012-03-29 | 2013-03-19 | Renesas Mobile Corporation | Method, apparatus and computer program for latency measurement |
GB2490390B (en) * | 2012-03-29 | 2014-01-29 | Renesas Mobile Corp | Method, apparatus and computer program for latency measurement |
JP2015095061A (ja) * | 2013-11-12 | 2015-05-18 | 日立オートモティブシステムズ株式会社 | 車載用制御装置のロギングシステム |
WO2019003863A1 (ja) * | 2017-06-28 | 2019-01-03 | 日立オートモティブシステムズ株式会社 | 演算装置、ログ記録装置、ログ記録システム |
JP2019008687A (ja) * | 2017-06-28 | 2019-01-17 | 日立オートモティブシステムズ株式会社 | 演算装置、ログ記録装置、ログ記録システム |
CN108628780A (zh) * | 2018-04-28 | 2018-10-09 | 上海与德科技有限公司 | 一种数据通信方法、系统及电动车 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6665821B1 (en) | Microcomputer, electronic equipment, and debugging system | |
JP4138021B2 (ja) | プロセッサベースのデバイス、ソフトウェア性能プロファイリング情報をもたらす方法およびソフトウェア性能プロファイリング情報を生成し分析するためのソフトウェア開発システム | |
US5724505A (en) | Apparatus and method for real-time program monitoring via a serial interface | |
US6145122A (en) | Development interface for a data processor | |
US8527812B2 (en) | Information processing device | |
US6961872B2 (en) | Microcomputer and debugging system | |
KR20010006188A (ko) | 마이크로프로세서 기반 장치용 트레이스 캐시 | |
JP2011013867A (ja) | データ処理装置、性能評価解析システム | |
US8819496B2 (en) | Apparatus for collecting trace information and processing trace information, and method for collecting and processing trace information | |
JP2007066336A (ja) | 集積回路内の診断データ取り込み | |
US20090182798A1 (en) | Method and apparatus to improve the effectiveness of system logging | |
US6484273B1 (en) | Integrated EJTAG external bus interface | |
JPWO2008053709A1 (ja) | 半導体集積回路選別試験装置および方法 | |
US20130097462A1 (en) | Embedded logic analyzer | |
JP2005222446A (ja) | オンボードデバッグ装置および半導体回路装置 | |
CN101651839B (zh) | 时间戳添加设备以及时间戳添加方法 | |
US7360117B1 (en) | In-circuit emulation debugger and method of operation thereof | |
JP2001142733A (ja) | 内部信号観測装置 | |
JP2011028308A (ja) | 半導体装置及びソフトウェア開発支援装置 | |
JP4305389B2 (ja) | 時間追跡可能メッセージを送信することによるマイクロプロセッサプログラムの監視 | |
CN117217143A (zh) | 基于硬件仿真加速器和fpga芯片的混合验证方法和装置 | |
JP2020154699A (ja) | 半導体装置および半導体装置をデバッグするためのプログラム | |
JPH0736735A (ja) | デバッグ装置 | |
JP2003015909A (ja) | オンボードデバッグシステムおよびオンボードデバッグ方法 |