(57)【要約】【課題】  従来のデバッグシステムでは、少ない端子でトレース・データをリアルタイムで受信することは困難であった。【解決手段】  デバッグシステムは、双方向通信を行うための通信ラインを介して接続されたエミュレータと当該エミュレータのデバッグ対象となる対象デバイスを含むデバッグシステムであって、前記エミュレータは、ホスト装置によって出力される制御信号をシリアルデータで送信するシリアル信号送信部と、前記対象デバイスから入力されるアナログ信号をデジタル信号に変換して出力するＡ／Ｄコンバータとを有し、前記対象デバイスは、前記シリアルデータを受信するシリアル信号受信部と、受信された前記制御信号に基づいて、前記対象デバイス内のトレース回路によって出力されるトレース情報をアナログ信号に変換して出力するＤ／Ａコンバータとを有する。【選択図】  図３
2008282154.tif 000002
【特許請求の範囲】
【請求項１】
双方向通信を行うための通信ラインを介して接続されたエミュレータと当該エミュレータのデバッグ対象となる対象デバイスを含むデバッグシステムであって、
前記エミュレータは、
前記対象デバイスに対する制御信号をシリアルデータで送信するシリアル信号送信部と、
前記通信ラインを介して前記対象デバイスから入力されるアナログ信号をデジタル信号に変換して出力するＡ／Ｄコンバータとを有し、
前記対象デバイスは、
前記シリアルデータを受信するシリアル信号受信部と、
受信した前記制御信号に基づいて、前記対象デバイス内のトレース回路によって出力されるトレース情報をアナログ信号に変換して出力するＤ／Ａコンバータとを有するデバッグシステム。
【請求項２】
前記エミュレータはさらに、前記対象デバイスの出力する最大電圧と、前記シリアル信号送信部によって出力されるデジタルデータの最大値とを対応づけて格納する記憶部を有することを特徴とする請求項１に記載のデバッグシステム。
【請求項３】
前記Ｄ／Ａコンバータは、アナログ信号に変換された前記トレース情報を分割して出力することを特徴とする請求項１に記載のデバッグシステム。
【請求項４】
前記エミュレータは、アナログ信号に変換された前記トレース情報の受信を強制的に終了することが可能であることを特徴とする請求項１に記載のデバッグシステム。
【請求項５】
前記トレース回路はＣＰＵであることを特徴とする請求項１に記載のデバッグ回路。
【請求項６】
対象デバイスに保持されたプログラムを通信ラインを介して外部からデバッグを行なうデバッグ方法であって、
前記通信ラインを介して前記対象デバイスに対する制御信号のシリアルデータを入力し、
前記対象デバイスのトレースデータに関するデジタル信号をアナログ信号に変換し、
前記アナログ信号を前記通信ラインを介して受信するデバッグ方法。
【請求項７】
前記デバッグ方法はさらに、
前記対象デバイスの出力する電圧の最大値とデジタル信号の最大値を対応させて、前記受信したアナログ信号をデジタルデータに変換することを特徴とする請求項６に記載のデバッグ方法。
【請求項８】
前記トレースデータに関するデジタル信号のアナログ信号への変換は、前記対象デバイス内で行われることを特徴とする請求項６あるいは７に記載のデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデバッグシステム及びデバッグ方法に関し、特にターゲットシステム上に対象デバイスを実装した状態でデバッグを行なうデバッグシステム及びデバッグ方法に関する。
【背景技術】
【０００２】
近年、マイクロコンピュータ（以下、マイコンと称す）に組込むプログラムを開発する手法として、ターゲットシステム上に対象デバイスを実装した状態でデバッグを行なうオンチップデバッグが知られている。このオンチップデバッグを実現するためには、対象デバイスに専用のデバッグ・インターフェースを設ける必要がある。このデバッグ・インターフェースは、対象デバイスの外部端子に割り当てられるため、ユーザにとって不要なデバッグ・インターフェース端子をできる限り少なくする必要がある。また、開発環境の低コスト化のためには、トレース・データをリアルタイムに取得する必要がある。
【０００３】
図７に特許文献１に記載のデバッグシステムを示す。デバッグシステム７０は、マイクロコンピュータ７１及びデバッグツール７２によって構成されている。マイコン内部のトレース情報出力部７３は、専用の４端子からトレース情報をデバッグツールへと出力している。このような構成によって、デバッグツール７２は、トレース・データをリアルタイムに取得することが可能である。また、特許文献２には、ユーザによって不要なデバッグ用の端子を１端子としてオンチップデバッグを実現している（図８参照）。なお、特許文献３には、アナログ伝送路を介して多値データを送信するアナログ伝送回路が記載されている（図９参照）。
【０００４】
しかしながら、特許文献１あるいは特許文献２に記載の技術では、デバッグ・インターフェースを少ない端子で実現し、かつトレース・データをリアルタイムに取得することは困難である。すなわち、特許文献１に記載のデバッグシステムでは、トレース・データをリアルタイムに取得するために、ユーザにとって不要なデバッグ・インターフェースを４端子以上確保する必要がある。一方、特許文献２に記載のデバッグシステムでは、１端子でのデバッグ・インターフェースを実現している。しかしながら、大量のデータ転送を必要とするトレース・データを受信することができない。また、特許文献３に記載のアナログ伝送回路では、双方向のデータ通信は行われていない。このため、双方向のデータ通信が必要であるオンチップデバッグを実現することは困難である。
【特許文献１】特開平１１−２８２７１３号公報
【特許文献２】特開２００６−２６８７２７号公報
【特許文献３】特開平６−１２０９２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記したように、従来のデバッグシステムでは、少ない端子でトレース・データをリアルタイムで受信することは困難であった。
【課題を解決するための手段】
【０００６】
本発明の１態様によるデバッグシステムは、双方向通信を行うための通信ラインを介して接続されたエミュレータと当該エミュレータのデバッグ対象となる対象デバイスを含むデバッグシステムであって、前記エミュレータは、ホスト装置によって出力される制御信号をシリアルデータで送信するシリアル信号送信部と、前記対象デバイスから入力されるアナログ信号をデジタル信号に変換して出力するＡ／Ｄコンバータとを有し、前記対象デバイスは、前記シリアルデータを受信するシリアル信号受信部と、受信された前記制御信号に基づいて、前記対象デバイス内のトレース回路によって出力されるトレース情報をアナログ信号に変換して出力するＤ／Ａコンバータとを有する。
【０００７】
本発明の１態様によるデバッグ方法は、デバッグ対象となる対象デバイスを双方向通信を行うための通信ラインを介してデバッグするデバッグ方法であって、制御信号を通信ラインを介して前記対象デバイスにシリアルデータで送信し、受信した前記制御信号に基づいて、前記対象デバイス内のトレース回路によって出力されるトレース情報をアナログ信号に変換し、前記アナログ信号を前記通信ラインを介して出力する。
【発明の効果】
【０００８】
本発明によれば、１端子でトレース・データをリアルタイムで受信することが可能である。
【発明を実施するための最良の形態】
【０００９】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の実施の形態１に関わるデバッグシステムを示すブロック図である。図１に示すように、本実施の形態のデバッグシステム１００は、ホストマシン１、オンチップデバッグエミュレータ（以下、ＯＣＤエミュレータと称す）２、ターゲットシステム４を有している。ターゲットシステム４内部には、デバッグ対象デバイス（例えば、マイコン）３が実装されている。
【００１０】
ホストマシン１は、例えばデバッグ用のソフトウェアなどがインストールされたコンピュータである。ＯＣＤエミュレータ２は、ターゲットシステム４上に実装されたデバッグ対象デバイス３の動作をエミュレートする。また、ＯＣＤエミュレータ２は、ホストインターフェース（以下、ホストＩ／Ｆと称す）を介して、ホストマシン１に接続されている。ターゲットシステム４は、オンチップデバッグインターフェース（以下、オンチップデバッグＩ／Ｆと称す）を介してＯＣＤエミュレータ２に接続されている。ターゲットシステム４は、デバッグ対象デバイス３以外のターゲットシステムに必要な構成を備えたシステムである。デバッグ対象デバイス３は、ターゲットシステム４上に実装される、例えばマイコンなどの半導体装置である。
【００１１】
図２は、図１に示すオンチップデバッグＩ／Ｆを介して接続されるエミュレータ２と対象デバイス３内部の構成をより詳細に示す図である。以下、図２及び図３を参照して、エミュレータ２及び対象デバイス３について詳細に説明する。
【００１２】
エミュレータ２は、エミュレータ側ＯＣＤ回路２１、Ａ／Ｄコンバータ２２、シリアル送信部２３、トレースメモリ２４、ホストＩ／Ｆ部２５を有している。
【００１３】
エミュレータＯＣＤ回路２１は、ホストＩ／Ｆ部２５を介してホストマシン１から出力される対象デバイスを制御するための制御信号をシリアル信号送信部２３へと出力する回路である。また、エミュレータＯＣＤ回路２１には、対象デバイス３によって出力されるトレース情報がＡ／Ｄコンバータ２２を介して入力される。
【００１４】
Ａ／Ｄコンバータ２２は、対象デバイス３によって出力されるトレース情報をアナログ信号で受信する。そして、アナログ信号をデジタル信号に変換して、エミュレータＯＣＤ回路へ出力する。
【００１５】
シリアル信号送信部２３は、エミュレータＯＣＤ回路２１から出力される制御信号をオンチップデバッグＩ／Ｆを介してシリアル信号受信部３３へ送信する。なお、シリアル信号送信部２３からシリアル信号受信部３３への制御信号の送信は、デジタル信号で行われる。
【００１６】
トレースメモリ２４は、エミュレータＯＣＤ回路２１を介して対象デバイス３から出力されたトレース情報をデジタルデータで格納する。
【００１７】
対象デバイス３は、対象デバイス側ＯＣＤ回路３１、Ｄ／Ａコンバータ３２、シリアル受信部３３、トレース回路（以下、ＣＰＵと称す）３４、抵抗Ｒを有している。
【００１８】
シリアル信号受信部３３は、オンチップデバッグＩ／Ｆを介してシリアル信号送信部２３からシリアルデータで送信された制御信号を受信し、対象デバイスＯＣＤ回路３１へ出力する。
【００１９】
対象デバイスＯＣＤ回路３１は、シリアル信号受信部３３によって出力される制御信号を入力する。そして、対象デバイスＯＣＤ回路３１は、入力した制御信号に基づいて、ＣＰＵ３４を制御する。また、対象デバイスＯＣＤ回路３１は、ＣＰＵ３４から出力されたトレース情報をＤ／Ａコンバータ３２へ出力する。
【００２０】
ＣＰＵ３４は、対象デバイスＯＣＤ回路３１によって出力された制御信号に基づいて、トレース情報を出力する。
【００２１】
Ｄ／Ａコンバータ３２は、デジタルデータで入力されたトレース情報をアナログ信号に変換する。アナログ信号に変換されたトレース情報は、オンチップデバッグＩ／Ｆを介してＯＣＤエミュレータ２のＡ／Ｄコンバータ２２へと出力される。また、Ｄ／Ａコンバータ３２と接地電位との間には、抵抗Ｒが接続されている。また、ＯＣＤエミュレータ２及び対象デバイス３は接地電位に接続されている。
【００２２】
以上のようにオンチップデバッグＩ／Ｆを介して接続されたＯＣＤエミュレータ２及び対象デバイス３の動作について、以下、図２、図３及び図４に示すタイミングチャートを参照して詳細に説明する。なお、図４に示すタイミングチャートは、オンチップデバッグＩ／Ｆの通信状態を示すものである。
【００２３】
まず、対象デバイスが通常の動作を行なう場合について説明する。この場合、ＯＣＤエミュレータ２と対象デバイス３との通信は行なわれない。このため、オンチップデバッグＩ／Ｆでは、アナログ信号あるいはデジタル信号の入出力は行われない（図４、Ｓ１参照）。
【００２４】
次に、対象デバイス３のデバッグを行なう場合について説明する。まず、ＯＣＤエミュレータ２は、対象デバイス３に対して特定のシリアルデータを送信する。このシリアルデータの送信に基づいて、対象デバイス３は、デバッグモードへ移行する。対象デバイス３がデバッグモードへ移行すると、アナログ通信ラインの誤差の検出が行なわれる。具体的には、アナログ通信の変換データの格納が行なわれる。この変換データの格納方法については後述する。このように、対象デバイス３がデバッグモードに移行する場合、シリアル信号及びアナログ信号で通信が行われる。従って、オンチップデバッグＩ／Ｆは、デジタル信号及びアナログ信号が混在した状態である（図４、Ｓ２参照）。
【００２５】
対象デバイス３がデバッグモードに移行すると、ＣＰＵはブレーク状態となる。ここでは、オンチップデバッグＩ／Ｆで信号の入出力は行われない（図４、Ｓ３参照）。
【００２６】
次に、実際にＣＰＵを動作させ、デバッグ作業を開始する。まず、エミュレータＯＣＤ回路２１は、ホストマシン１から出力される対象デバイスを制御するための制御信号を入力する。この制御信号は、シリアル信号送信部２３から対象デバイス３へオンチップデバッグＩ／Ｆを介してシリアルデータで送信される（図２参照）。すなわち、オンチップデバッグＩ／Ｆは、デジタル信号による通信が行なわれる（図４、Ｓ４参照）。なお、ＯＣＤエミュレータ２が対象デバイス３に対して特定のシリアルデータを送信する場合、Ａ／Ｄコンバータ２２及びＤ／Ａコンバータ３２は、ハイ・インピーダンス状態とする。このＡ／Ｄコンバータ２２及びＤ／Ａコンバータ３２に対するハイ・インピーダンス状態の制御はそれぞれ、エミュレータＯＣＤ回路２１、対象デバイスＯＣＤ回路２１によって行なわれる。
【００２７】
シリアル信号受信部３３は、シリアルデータで入力された制御信号を対象デバイスＯＣＤ回路３１へ出力する。この制御信号に基づいて、対象デバイスＯＣＤ回路３１は、ＣＰＵ３４にプログラムの実行を指示する。そして、対象デバイスＯＣＤ回路３１は、ＣＰＵ３４から出力されたトレース情報を取得する。このトレース情報は、例えば、分岐トレースあるいはアクセストレースである。
【００２８】
対象デバイスＯＣＤ回路３１に入力されたトレース情報は、Ｄ／Ａコンバータ３２へ出力される。Ｄ／Ａコンバータ３２は、デジタルデータであるトレース情報をアナログデータに変換して、オンチップデバッグＩ／Ｆを介してＯＣＤエミュレータ２のＡ／Ｄコンバータ２２へと出力する（図３参照）。
【００２９】
Ａ／Ｄコンバータ２２は、アナログデータで入力したトレース情報をデジタルデータに変換する。そして、このトレース情報は、エミュレータＯＣＤ回路２１へ出力される。エミュレータＯＣＤ回路２１は、トレース情報をトレースメモリ２４に出力する。トレースメモリ２４は、トレース情報をデジタルデータで格納する。
【００３０】
また、ＣＰＵ３４のトレース情報をアナログ信号でＯＣＤエミュレータ２に送信している間は、ＣＰＵ３４の強制ブレークを行なう必要があるこのため、ＯＣＤエミュレータ２は、一定の間隔でＣＰＵに対しブレークコマンドをシリアルデータで送信する。このＣＰＵ３４に対する強制ブレークは、例えば不具合が発生した場合にホストマシンによって実行される。従って、オンチップデバッグＩ／Ｆは、アナログ信号とデジタル信号が混在した状態である（図４、Ｓ５参照）。
【００３１】
対象デバイス３は、ＯＣＤエミュレータ２によって出力されたブレーク信号を受信すると、ＣＰＵはブレーク状態となる。このため、オンチップデバッグＩ／Ｆでは、通信は行われない（図４、Ｓ６参照）。
【００３２】
このように、ＯＣＤエミュレータ２は、対象デバイス３に対して、トレース情報を要求するための制御信号をオンチップデバッグＩ／Ｆを介してデジタルデータで送信する。そして、制御信号を受信した対象デバイス３は、ＣＰＵ３４から出力されたトレース情報をオンチップデバッグＩ／Ｆを介してアナログ信号で出力する。ＯＣＤエミュレータ２は、アナログ信号で受信したトレース情報をデジタル信号に変換する。そして、このトレース情報はトレースメモリ２４によって格納される。
【００３３】
最後に、アナログ通信の変換データの格納方法について、図５及び図６を参照して説明する。まず、ＯＣＤエミュレータ２のＡ／Ｄコンバータ２２は、最大電圧５Ｖの入力電圧を０ｘＦＦＦに変換すると仮定する。ここで、シリアル送信のパケット幅を８ビットとする。そして、ＯＣＤエミュレータ２から対象デバイス３に対して最大値の０ｘＦＦを送信する。
【００３４】
対象デバイス３は、最大値の０ｘＦＦを受信する。そして、アナログ信号出力の最大電圧をＯＣＤエミュレータ２へ出力する。ここで、対象デバイス３の最大電圧を２．５Ｖと仮定する。ＯＣＤエミュレータ２は、このアナログ電圧をデジタル変換した結果である０ｘ７ＦＦという受信データと、送信データの０ｘＦＦとを対応づけて格納する。
【００３５】
同様に、ＯＣＤエミュレータ２から対象デバイス３へ０ｘ０１を送信する。対象デバイス３は、０ｘ０１を受信する。そして、アナログ出力として１／２５６（８ビット）×リファレンス電圧をエミュレータ側へ出力する。対象デバイス３のリファレンス電圧は２．５Ｖと仮定しているため、０．００９８Ｖを出力する。ＯＣＤエミュレータ２は、入力したアナログ電圧をデジタル電圧に変換する。そして変換したデジタル電圧値を保持する。以降、ＯＣＤエミュレータ２は、０ｘ０２〜０ｘＦＥまでを繰り返す。そして、全ての変換を行い変換データを対応づけて格納する。
【００３６】
なお、アナログラインの通信データが下位何ビットまで信頼できるのかを検証する必要が生じる。今回の仮定では、シリアルデータの最大値０ｘＦＦに対して、エミュレータ側の最大値が０ｘ７ＦＦという結果が生じる。よって、この結果から期待値を事前に求め、エミュレータ側ＯＣＤ回路と比較して、一致性を確認する。
【００３７】
以上に示したように、本実施の形態では、ＯＣＤエミュレータは、対象デバイスのデバッグ作業を行う。このデバッグ作業において、ＯＣＤエミュレータ及び対象デバイスは、オンチップデバッグＩ／Ｆを介して通信が行なわれる。このオンチップデバッグＩ／Ｆでの通信は、デジタル信号及びアナログ信号を混在して行われる。すなわち、ＯＣＤエミュレータが対象デバイスに対してトレース情報の取得のために送信する制御信号は、デジタルデータで送信される。一方、対象デバイスが入力されたデジタルデータに基づいて、ＯＣＤエミュレータに出力するトレース情報は、アナログデータで送信される。
【００３８】
このように、本発明ではデバッグＩ／Ｆにアナログ信号を取り入れた。従って、デバッグ・インターフェースの端子数を１端子にすることが可能となった。このため、ユーザによって不要なデバッグ専用の端子を削減することが可能となった。
【００３９】
また、リアルタイムなトレース・データを取得することが可能となった。従って、デバッグの効率を向上させることが可能となった。
【００４０】
また、リアルタイムなトレース・データの取得が可能となるため、高コストなインサーキット・エミュレータ（ＩＣＥ）が不要となった。従って、開発環境の低コスト化が可能となった。
【００４１】
また、エミュレータから対象デバイスに送信するデータは、コマンドレベルのデータであるため、アナログ出力を行う必要はない。すなわち、エミュレータをデジタル化することにより、回路規模を抑制することが可能となる。
【図面の簡単な説明】
【００４２】
【図１】本実施の形態１に関わるデバッグシステム１００を示す図である。
【図２】本実施の形態１に関わるデバッグシステムの詳細を示す図である。
【図３】本実施の形態１に関わるデバッグシステムの詳細を示す図である。
【図４】本実施の形態１に関わるデバッグ・インターフェースのタイミングチャートを示す図である。
【図５】本実施の形態１に関わる変換データの格納について示す図である。
【図６】本実施の形態１に関わる変換データの格納について示す図である。
【図７】従来のデバッグシステムを示す図である。
【図８】従来のデバッグシステムを示す図である。
【図９】従来のデバッグシステムを示す図である。
【符号の説明】
【００４３】
１００                  デバッグシステム
１                      ホストマシン
２                      ＯＣＤエミュレータ
３                      対象デバイス
４                      ターゲットシステム
２１                    エミュレータＯＣＤ回路
２２                    Ａ／Ｄコンバータ
２３                    シリアル信号送信部
２４                    トレースメモリ
２５                    ホストＩ／Ｆ部
３１                    対象デバイスＯＣＤ回路
３２                    Ｄ／Ａコンバータ
３３                    シリアル信号受信部
３４                    ＣＰＵ
【図１】
2008282154.tif 000003
【図２】
2008282154.tif 000004
【図３】
2008282154.tif 000005
【図４】
2008282154.tif 000006
【図５】
2008282154.tif 000007
【図６】
2008282154.tif 000008
【図７】
2008282154.tif 000009
【図８】
2008282154.tif 000010
【図９】
2008282154.tif 000011