(57)【要約】      （修正有）【課題】ＣＰＵ及びデバッグ用のピンと機能を量産チップ上に実装する集積回路装置において、エンドユーザーにとっては不要な端子をより節約すること。【解決手段】省ピン型のデバッグツール１１０と通信を行いオンチップデバッグを行う集積回路装置２０であって、第１の通信ライン２１０を、省ピン型のデバッグツール１１０とオンチップデバッグを行う際にやり取りする送信用デバッグデータに対応したシリアルデータ信号の送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用する。また第２の通信ライン２２０を、省ピン型のデバッグツールとオンチップデバッグを行う際に必要な同期用クロックの送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するように構成してもよい。【選択図】      図５
2006268727.tif 000002
【特許請求の範囲】
【請求項１】
省ピン型のデバッグツールと通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュールとＣＰＵを内蔵する集積回路装置であって、
第１の通信ラインが接続される第１のデバッグ端子と、
前記第１の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際にやり取りする送信用デバッグデータに対応したシリアルデータ信号の送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第１の共用制御処理部と、
を含むことを特徴とする集積回路装置。
【請求項２】
請求項１において、
前記第１のデバッグ端子には、前記第１の通信ラインとしてデバッグ用のデータを半２重の双方向通信で送受信を行うための１本の通信ラインが接続され、
第１の共用制御処理部は、
前記第１の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際にやり取りする双方向の送受信用デバッグデータに対応したシリアルデータ信号の送受信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行うことを特徴とする集積回路装置。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記第１の通信ラインを介してデバッグツールから強制ブレーク入力を受信するように構成され、
第１の共用制御処理部は、
第１の通信ラインを介して入力された受信データから強制ブレーク入力信号を検出する回路を含み、強制ブレーク入力が検出されると、ＣＰＵをブレーク状態に移行させることを特徴とする集積回路装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
第１の共用制御処理部は、
ＣＰＵがｒｕｎ状態の場合には前記第１の通信ラインが第１のレベルに保持されるように制御し、ＣＰＵがブレーク状態である場合には前記第１の通信ラインが第２のレベルに保持され、
デバッグ用のシリアルデータ送信時には、前記第１の通信ラインからデバッグ用のシリアルデータに対応したパルスが送信されるように制御する回路を含むことを特徴とする集積回路装置。
【請求項５】
請求項１乃至３のいずれかにおいて、
第１の共用制御処理部は、
ＣＰＵがブレーク状態に移行すると前記第１の通信ラインから所定のブレークパルスが送信されるように制御する手段を含むことを特徴とする集積回路装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
第１の共用制御処理部は、
前記第１の通信ラインを第１のレベルにプルアップ又はプルダウンする回路と、
ＣＰＵがｒｕｎ状態にあるかブレーク状態にあるかに応じて前記プルアップ又はプルダウンする回路のＯＮ／ＯＦＦを切り替えるためのイネーブル信号を生成する回路を含むことを特徴とする集積回路装置。
【請求項７】
請求項６において、
第１の共用制御処理部は、
前記プルアップ又はプルダウンする回路がＯＦＦ状態である場合には、前記第１の通信ラインを第２のレベルにするために第２のレベルに対応した値を出力する強制出力回路を含むことを特徴とする集積回路装置。
【請求項８】
省ピン型のデバッグツールと同期通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュールとＣＰＵを内蔵する集積回路装置であって、
第２の通信ラインが接続される第２のデバッグ端子と、
第２の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際に必要な同期用クロックの送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第２の共用制御処理部とを含むことを特徴とする集積回路装置。
【請求項９】
請求項８において、
前記第２の共用制御処理部は、
ＣＰＵがブレーク状態である場合には、前記第２の通信ラインに同期用のクロックを出力し、ＣＰＵがｒｕｎ状態である場合には前記第２の通信ラインへの同期用のクロックの出力をマスクするクロック出力制御回路を含むことを特徴とする集積回路装置。
【請求項１０】
省ピン型のデバッグツールと、当該デバッグツールのデバッグ対象となるターゲットシステムを含むデバッグシステムであって、
前記ターゲットシステムは、ＣＰＵ、省ピン型のデバッグツールと通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュールとを内蔵する集積回路装置を含み、
前記集積回路装置は、
第１の通信ラインが接続される第１のデバッグ端子と、
前記第１の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際にやり取りする送信用デバッグデータに対応したシリアルデータ信号の送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第１の共用制御処理部と、を含み、
前記デバッグツールは、
第１の通信ラインが接続される第１’のデバッグ端子と、
前記第１の通信ラインを、集積回路装置とオンチップデバッグを行う際にやり取りする送信用デバッグデータに対応したシリアルデータ信号の送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の受信とに共用するための制御を行う第１’の共用制御処理部と、
を含むことを特徴とするデバッグシステム。
【請求項１１】
請求項１０において、
前記第１のデバッグ端子には、前記第１の通信ラインとしてデバッグ用のデータを半２重の双方向通信で送受信を行うための１本の通信ラインが接続され、
前記集積回路装置の第１の共用制御処理部は、
前記第１の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際にやり取りする双方向の送受信用デバッグデータに対応したシリアルデータ信号の送受信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行い、
前記デバッグツールの第１’の共用制御処理部は、
前記第１の通信ラインを、集積回路装置のオンチップデバッグを行う際にやり取りする双方向の送受信用デバッグデータに対応したシリアルデータ信号の送受信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の受信とに共用するための制御を行うことを特徴とするデバッグシステム。
【請求項１２】
請求項１１において、
前記集積回路装置は、
前記第１の通信ラインを介してデバッグツールから強制ブレーク入力を受信するように構成され、
前記集積回路装置の第１の共用制御処理部は、
第１の通信ラインを介して入力された受信データから強制ブレーク入力信号を検出する回路を含み、強制ブレーク入力が検出されると、ＣＰＵをブレーク状態に移行させ、
前記デバッグツールの第１’の共用制御処理部は、
集積回路装置をブレーク状態にするための強制ブレーク入力信号を前記第１’のデバッグ端子を介して前記第１の通信ラインに出力する強制ブレーク出力制御部を含むことを特徴とするデバッグシステム。
【請求項１３】
請求項１０乃至１２のいずれかにおいて、
前記集積回路装置の第１の共用制御処理部は、
ＣＰＵがｒｕｎ状態の場合には前記第１の通信ラインが第１のレベルに保持されるように制御し、ＣＰＵがブレーク状態である場合には前記第１の通信ラインが第２のレベルに保持され、
デバッグ用のシリアルデータ送信時には、前記第１の通信ラインからデバッグ用のシリアルデータに対応したパルスが送信されるように制御する回路を含み、
前記デバッグツールは、
前記第１の通信ラインが第１のレベルであれば集積回路装置のＣＰＵがｒｕｎ状態にあると判断し、前記第１の通信ラインが第２のレベルであればＣＰＵがブレーク状態であると判断し、前記第１の通信ラインからパルスを受信したらデバッグ用のシリアルデータであると判断することを特徴とするデバッグシステム。
【請求項１４】
請求項１０乃至１３のいずれかにおいて、
前記集積回路装置の第１の共用制御処理部は、
ＣＰＵがブレーク状態に移行すると前記第１の通信ラインから所定のブレークパルスが送信されるように制御する手段を含み、
前記デバッグツールは、
前記第１の通信ラインの受信信号から前記所定のブレークパルスを検出する手段と、
所定のブレークパルスが検出される集積回路装置がブレーク状態に移行したと判断する手段とを、含むことを特徴とするデバッグシステム。
【請求項１５】
請求項１０乃至１４のいずれかにおいて、
前記集積回路装置の第１の共用制御処理部は、
前記第１の通信ラインを第１のレベルにプルアップ又はプルダウンする回路と、
ＣＰＵがｒｕｎ状態にあるかブレーク状態にあるかに応じて前記プルアップ又はプルダウンする回路のＯＮ／ＯＦＦを切り替えるためのイネーブル信号を生成する回路を含み、
前記デバッグツール又はターゲットシステムのボードは、
前記第１の通信ラインを第２のレベルにプルアップ又はプルダウンする回路を含むことを特徴とするデバッグシステム。
【請求項１６】
請求項１５において、
前記集積回路装置の第１の共用制御処理部は、
前記プルアップ又はプルダウンする回路がＯＦＦ状態である場合には、前記第１の通信ラインを第２のレベルにするために第２のレベルに対応した値を出力する強制出力回路を含むことを特徴とするデバッグシステム。
【請求項１７】
省ピン型のデバッグツールと、当該デバッグツールのデバッグ対象となるターゲットシステムを含むデバッグシステムであって、
前記ターゲットシステムは、ＣＰＵ、省ピン型のデバッグツールと同期通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュールとを内蔵する集積回路装置を含み、
前記集積回路装置は、
第２の通信ラインが接続される第２のデバッグ端子と、
第２の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際に必要な同期用クロックの送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第２の共用制御処理部とを含み、
前記デバッグツールは、
前記第２の通信ラインを、集積回路装置とオンチップデバッグを行う際に必要な同期用クロックの送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の受信とに共用するための制御を行う第２’の共用制御処理部と、
を含むことを特徴とするデバッグシステム。
【請求項１８】
請求項１７において、
前記集積回路装置の第２の共用制御処理部は、
ＣＰＵがブレーク状態である場合には、前記第２の通信ラインに同期用のクロックを出力し、ＣＰＵがｒｕｎ状態である場合には前記第２の通信ラインへの同期用のクロックの出力をマスクするクロック出力制御回路を含み、
前記デバッグツールは、
前記第２の通信ラインから同期用のクロックを受信している場合には前記集積回路装置のＣＰＵがブレーク状態であると判断し、同期用のクロックを受信していない状態では前記集積回路装置のＣＰＵがｒｕｎ状態であると判断する手段を、含むことを特徴とするデバッグシステム。
【請求項１９】
請求項１乃至９のいずれかに記載の集積回路装置を含むマイクロコンピュータ。
【請求項２０】
請求項１９に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力源と、
前記マイクロコンピュータにより処理されたデータを出力するための出力装置とを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置、デバッグシステム、マイクロコンピュータ、及び電子機器に関する。
【背景技術】
【０００２】
近年、ゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末などの電子機器に組み込まれ、高度な情報処理を実現できるマイクロコンピュータに対する需要が高まっている。このような組み込み型のマイクロコンピュータは、通常、ターゲットシステムと呼ばれるユーザボードに実装される。そして、このターゲットシステムを動作させるソフトウェアの開発を支援するためにＩＣＥ（In-Circuit Emulator）等の省ピン型のデバッグツール（ソフトウェア開発支援ツール）が広く使用されている。
【０００３】
さて、このようなＩＣＥとしては、従来、図１６に示すようなＣＰＵ置き換え型と呼ばれるＩＣＥが主流を占めていた。このＣＰＵ置き換え型ＩＣＥでは、デバッグ時にターゲットシステム３００からマイクロコンピュータ３０２を取り外し、その代わりにデバッグツール３０４のプローブ３０６を接続する。そして、このデバッグツール３０４に、取り外したマイクロコンピュータ３０２の動作をエミュレートさせる。また、このデバッグツール３０４に、デバッグのために必要な種々の処理を行わせる。
【０００４】
しかしながら、このＣＰＵ置き換え型ＩＣＥには、プローブ３０６のピン数が多くなると共にプローブ３０６の線３０８が増えるという欠点があった。このため、マイクロコンピュータ３０２の高周波数動作をエミュレートすることが困難になる（例えば３３ＭＨＺ程度が限界）。またターゲットシステム３００の設計も困難になる。更に、マイクロコンピュータ３０２を実装して動作させる実動作時とデバッグツール３０４でマイクロコンピュータ３０２の動作をエミュレートするデバッグモード時とで、ターゲットシステム３００の動作環境（信号のタイミング、負荷条件）が変化してしまう。またこのＣＰＵ置き換え型ＩＣＥには、マイクロコンピュータが異なれば、たとえそれが派生品であっても、設計が異なるデバッグツールや、ピン数やピンの位置が異なるプローブを使用しなければならないという問題もあった。
【０００５】
一方、このようなＣＰＵ置き換え型ＩＣＥの欠点を解消するものとして、ＩＣＥと同じ機能を実現するためのデバッグ用のピンと機能を量産チップ上に実装するタイプのＩＣＥが知られている。例えばこのようなデバッグ機能実装型ＩＣＥとして、省ピン型のデバッグツール（ＩＣＥ等）とクロック同期通信を行いデバッグツールから入力されたデバッグコマンドを実行するためのオンチップデバッグ機能を有する内部デバッグモジュールを内蔵するマイクロコンピュータが知られている。
【０００６】
かかる場合マイクロコンピュータは、デバッグツールとクロック同期通信でデバッグを行っていた。
【０００７】
かかる場合には、デバッグツールとマイクロコンピュータの間で、デバッグツールからマイクロコンピュータへのブレーク入力、マイクロコンピュータからデバッグツールへのブレーク／ｒｕｎの状態出力、デバッグツールからマイクロコンピュータへのデータ（デバッグコマンド等）通信、マイクロコンピュータからデバッグツールへのデータ通信、入力デバッグツールとマイクロコンピュータ間での通信用同期クロック、マイクロコンピュータからデバッグツールへのトレース等の付加情報の通信が複数ピン、入力デバッグツールとマイクロコンピュータ間でのグランドライン等の端子（ピン）が必要となる。
【特許文献１】特開平８−２５５０９６号
【特許文献２】特開平１１−２８２７１９号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
かかる端子（ピン）を積算していくとデバッグ用の端子（ピン）がどんどん増加するが、デバッグ時にのみ必要でエンドユーザーにとっては不要な端子はできるかぎり少ないほうが好ましい。またマイクロコンピュータのＰＫＧの端子（ピン）数が増加すると、ＩＣのコストアップ等につながる。
【０００９】
さらにボードとデバッグツールの間のピン数が増加し、ボードの設計難易度が上がり、このため信頼性が低下し、ボードやシステムの開発コストの増加や開発期間の増加を招く。
【００１０】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、デバッグ用のピンと機能を量産チップ上に実装するタイプのターゲットシステムにおいて、エンドユーザーにとっては不要な端子をより節約した集積回路装置、デバッグシステム、マイクロコンピュータ等を提供することにある。
【課題を解決するための手段】
【００１１】
（１）本発明は、
省ピン型のデバッグツールと通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュールとＣＰＵを内蔵する集積回路装置であって、
第１の通信ラインが接続される第１のデバッグ端子と、
前記第１の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際にやり取りする送信用デバッグデータに対応したシリアルデータ信号の送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第１の共用制御処理部と、
を含むことを特徴とする。
【００１２】
第１の通信ラインを介して行われる通信は同期通信でも良いし、非同期通信でもよい。また第１の通信ラインは集積回路装置からデバッグツールへのデバッグデータのシリアル送信が行えるものであればよく、例えば全２重通信における送信ラインでもよいし、半２重通信における送受信ラインでもよい。
【００１３】
ＣＰＵの状態がｒｕｎ状態であるとは例えばＣＰＵが通常のプログラムの実行を行っている状態（ユーザーモード）であり、ＣＰＵの状態がブレーク状態であるとは例えばＣＰＵの状態がデバッグプログラムの実行を行っている状態（デバッグモード）である。
【００１４】
例えば第１の共用制御処理部として、デバッグ用の送信データに対応したシリアルデータ信号とｒｕｎ／ブレーク状態信号をマージして出力信号を生成する回路を有し、当該出力信号を第１のデバッグ端子を介して第１の通信ラインに出力するようにしてもよい。
【００１５】
本発明によればＣＰＵのｒｕｎ／ブレーク状態信号の送信線とデバッグ用のデータの送信とを第１の通信ライン１本を共用して行うので、ｒｕｎ／ブレーク状態信号を出力するためのデバッグ用端子を個別に設ける必要がない。
【００１６】
従ってＣＰＵ内蔵の集積回路装置においてデバッグモードでのみ使用され、ユーザーモード（ユーザープログラム）では使用されない端子（ピン）を減らすことができるので、集積回路装置のコストの増加を防止することができる。
【００１７】
（２）本発明の集積回路装置は、
前記第１のデバッグ端子には、前記第１の通信ラインとしてデバッグ用のデータを半２重の双方向通信で送受信を行うための１本の通信ラインが接続され、
第１の共用制御処理部は、
前記第１の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際にやり取りする双方向の送受信用デバッグデータに対応したシリアルデータ信号の送受信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行うことを特徴とする。
【００１８】
本発明によればデバッグ時のデバッグデータの送受信を半２重の双方向通信で行う。従って１本の通信ラインで、デバッグデータの送受信とｒｕｎ／ブレーク状態信号の送信が行えるため、デバッグ用端子の削減をはかることができる。
【００１９】
（３）本発明の集積回路装置は、
前記第１の通信ラインを介してデバッグツールから強制ブレーク入力を受信するように構成され、
第１の共用制御処理部は、
第１の通信ラインを介して入力された受信データから強制ブレーク入力信号を検出する回路を含み、強制ブレーク入力が検出されると、ＣＰＵをブレーク状態に移行させることを特徴とする。
【００２０】
本発明によれば第１の通信ラインを介してデバッグツールから強制ブレーク入力を受信するように構成されるので、強制ブレーク入力用の端子を別個に設ける必要がない。
【００２１】
（４）本発明の集積回路装置は、
第１の共用制御処理部は、
ＣＰＵがｒｕｎ状態の場合には前記第１の通信ラインが第１のレベルに保持されるように制御し、ＣＰＵがブレーク状態である場合には前記第１の通信ラインが第２のレベルに保持され、
デバッグ用のシリアルデータ送信時には、前記第１の通信ラインからデバッグ用のシリアルデータに対応したパルスが送信されるように制御する回路を含むことを特徴とする。
【００２２】
第１のレベルは例えばＬレベルでもよいし、Ｈレベルでもよい。第１のレベルは第１のレベルと逆のレベルであり、第１のレベルがＬレベルであれば第２のレベルはＨレベルであり、第１のレベルがＨレベルであれば第２のレベルはＬレベルである。
【００２３】
本発明によればデバッグ用のシリアルデータ送信時には、前記第１の通信ラインからデバッグ用のシリアルデータに対応したパルスが送信され、それ以外のとき（例えばｒｕｎ状態の時やデバッグ状態であるがデバッグ用のデータの送受信が行われていない時）は、ＣＰＵがｒｕｎ状態の場合には前記第１の通信ラインが第１のレベルに保持され、ＣＰＵがブレーク状態である場合には前記第１の通信ラインが第２のレベルに保持される。
【００２４】
従ってデバッグツール側は、前記第１の通信ラインが第１のレベルであれば集積回路装置のＣＰＵがｒｕｎ状態にあると判断し、前記第１の通信ラインが第１のレベルであればＣＰＵがブレーク状態であると判断し、前記第１の通信ラインからパルスを受信したらデバッグ用のシリアルデータであると判断することができる。
【００２５】
（５）本発明の集積回路装置は、
第１の共用制御処理部は、
ＣＰＵがブレーク状態に移行すると前記第１の通信ラインから所定のブレークパルスが送信されるように制御する手段を含むことを特徴とする。
【００２６】
例えばＣＰＵがｒｕｎ状態（ユーザーモード）からブレーク状態（デバッグモード）に移行する際に所定のブレークパルスを生成する回路を含むようにしても良い。またＣＰＵがｒｕｎ状態（ユーザーモード）からブレーク状態（デバッグモード）に移行する際にソフト的にブレークパルスに対応する信号を生成するようにしてもよい。
【００２７】
（６）本発明の集積回路装置は、
第１の共用制御処理部は、
前記第１の通信ラインを第１のレベルにプルアップ又はプルダウンする回路と、
ＣＰＵがｒｕｎ状態にあるかブレーク状態にあるかに応じて前記プルアップ又はプルダウンする回路のＯＮ／ＯＦＦを切り替えるためのイネーブル信号を生成する回路を含むことを特徴とする。
【００２８】
例えばｒｕｎ／ブレーク状態信号がｒｕｎ状態においてＬレベル、ブレーク状態においてＨレベルを出力する仕様であるならば、前記第１の通信ラインをＬレベルにプルダウンする回路と、ＣＰＵがｒｕｎ状態にある場合前記プルダウンする回路をＯＮに、ブレーク状態でＯＦＦになるように切り替えるためのイネーブル信号を生成する回路を含むように構成してもよい。
【００２９】
なお本発明はｒｕｎ／ブレーク状態信号がｒｕｎ状態においてＨレベル、ブレーク状態においてＬレベルを出力する仕様でも実現可能である。またプルダウン回路ではなくてプルアップ回路を用いる構成でもよいし、ｒｕｎ状態／ブレーク状態に置けるＯＮ／ＯＦＦの切り替えは上記と逆でもよい。
【００３０】
（７）本発明の集積回路装置は、
第１の共用制御処理部は、
前記プルアップ又はプルダウンする回路がＯＦＦ状態である場合には、前記第１の通信ラインを第２のレベルにするために第２のレベルに対応した値を出力する強制出力回路を含むことを特徴とする。
【００３１】
例えばｒｕｎ／ブレーク状態信号がｒｕｎ状態においてＬレベル、ブレーク状態においてＨレベルを出力する仕様であるならば、前記第１の通信ラインをＬレベルにプルダウンする回路がＯＦＦ状態である場合に、第１の通信ラインをＨレベルにするためにＨレベルに対応した値を出力する強制出力回路を含むようにしてもよい。
【００３２】
なお本発明はｒｕｎ／ブレーク状態信号がｒｕｎ状態においてＨレベル、ブレーク状態においてＬレベルを出力する仕様でも実現可能である。またプルダウン回路ではなくてプルアップ回路を用いる構成でもよいし、ｒｕｎ状態／ブレーク状態に置けるＯＮ／ＯＦＦの切り替えは上記と逆でもよい。
【００３３】
（８）本発明の集積回路装置は、
省ピン型のデバッグツールと同期通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュールとＣＰＵを内蔵する集積回路装置であって、
第２の通信ラインが接続される第２のデバッグ端子と、
第２の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際に必要な同期用クロックの送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第２の共用制御処理部とを含むことを特徴とする。
【００３４】
ＣＰＵの状態がｒｕｎ状態であるとは例えばＣＰＵが通常のプログラムの実行を行っている状態（ユーザーモード）であり、ＣＰＵの状態がブレーク状態であるとは例えばＣＰＵの状態がデバッグプログラムの実行を行っている状態（デバッグモード）である。
【００３５】
例えば第２の共用制御処理部として、デバッグ用の同期クロックとｒｕｎ／ブレーク状態信号をマージして出力信号を生成する回路を有し、当該出力信号を第２のデバッグ端子を介して第２の通信ラインに出力するようにしてもよい。
【００３６】
本発明によればＣＰＵのｒｕｎ／ブレーク状態信号の送信線とデバッグ用の同期クロックの送信とを第２の通信ライン１本を共用して行うので、ｒｕｎ／ブレーク状態信号を出力するためのデバッグ用端子を個別に設ける必要がない。
【００３７】
従ってＣＰＵ内蔵の集積回路装置においてデバッグモードでのみ使用され、ユーザーモード（ユーザープログラム）では使用されない端子（ピン）を減らすことができるので、集積回路装置のコストの増加を防止することができる。
【００３８】
（９）本発明の集積回路装置は、
前記第２の共用制御処理部は、
ＣＰＵがブレーク状態である場合には、前記第２の通信ラインに同期用のクロックを出力し、ＣＰＵがｒｕｎ状態である場合には前記第２の通信ラインへの同期用のクロックの出力をマスクするクロック出力制御回路を含むことを特徴とする。
【００３９】
本発明によれば、ＣＰＵがブレーク状態である場合には、前記第２の通信ラインに同期用のクロックが出力され、ＣＰＵがｒｕｎ状態である場合には前記第２の通信ラインへは同期用のクロックは出力されないが、ｒｕｎ状態においてはデバッグツール側で同期用のクロックは必要ないので問題はない。
【００４０】
前記デバッグツール側では、前記第２の通信ラインから同期用のクロックを受信している場合にはＣＰＵがブレーク状態（デバッグモード）であると判断し、同期用のクロックを受信していない状態ではＣＰＵがｒｕｎ状態（ユーザーモード）であると判断することができる。
【００４１】
（１０）本発明は、
省ピン型のデバッグツールと、当該デバッグツールのデバッグ対象となるターゲットシステムを含むデバッグシステムであって、
前記ターゲットシステムは、ＣＰＵ、省ピン型のデバッグツールと通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュールとを内蔵する集積回路装置を含み、
前記集積回路装置は、
第１の通信ラインが接続される第１のデバッグ端子と、
前記第１の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際にやり取りする送信用デバッグデータに対応したシリアルデータ信号の送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第１の共用制御処理部と、を含み、
前記デバッグツールは、
第１の通信ラインが接続される第１’のデバッグ端子と、
前記第１の通信ラインを、集積回路装置とオンチップデバッグを行う際にやり取りする送信用デバッグデータに対応したシリアルデータ信号の送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の受信とに共用するための制御を行う第１’の共用制御処理部と、
を含むことを特徴とする。
【００４２】
（１１）本発明のデバッグシステムは、
前記第１のデバッグ端子には、前記第１の通信ラインとしてデバッグ用のデータを半２重の双方向通信で送受信を行うための１本の通信ラインが接続され、
前記集積回路装置の第１の共用制御処理部は、
前記第１の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際にやり取りする双方向の送受信用デバッグデータに対応したシリアルデータ信号の送受信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行い、
前記デバッグツールの第１’の共用制御処理部は、
前記第１の通信ラインを、集積回路装置のオンチップデバッグを行う際にやり取りする双方向の送受信用デバッグデータに対応したシリアルデータ信号の送受信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の受信とに共用するための制御を行うことを特徴とする。
【００４３】
（１２）本発明のデバッグシステムは、
前記集積回路装置は、
前記第１の通信ラインを介してデバッグツールから強制ブレーク入力を受信するように構成され、
前記集積回路装置の第１の共用制御処理部は、
第１の通信ラインを介して入力された受信データから強制ブレーク入力信号を検出する回路を含み、強制ブレーク入力が検出されると、ＣＰＵをブレーク状態に移行させ、
前記デバッグツールの第１’の共用制御処理部は、
集積回路装置をブレーク状態にするための強制ブレーク入力信号を前記第１’のデバッグ端子を介して前記第１の通信ラインに出力する強制ブレーク出力制御部を含むことを特徴とする。
【００４４】
（１３）本発明のデバッグシステムは、
前記集積回路装置の第１の共用制御処理部は、
ＣＰＵがｒｕｎ状態の場合には前記第１の通信ラインが第１のレベルに保持されるように制御し、ＣＰＵがブレーク状態である場合には前記第１の通信ラインが第２のレベルに保持され、
デバッグ用のシリアルデータ送信時には、前記第１の通信ラインからデバッグ用のシリアルデータに対応したパルスが送信されるように制御する回路を含み、
前記デバッグツールは、
前記第１の通信ラインが第１のレベルであれば集積回路装置のＣＰＵがｒｕｎ状態にあると判断し、前記第１の通信ラインが第２のレベルであればＣＰＵがブレーク状態であると判断し、前記第１の通信ラインからパルスを受信したらデバッグ用のシリアルデータであると判断することを特徴とする。
【００４５】
（１４）本発明のデバッグシステムは、
前記集積回路装置の第１の共用制御処理部は、
ＣＰＵがブレーク状態に移行すると前記第１の通信ラインから所定のブレークパルスが送信されるように制御する手段を含み、
前記デバッグツールは、
前記第１の通信ラインの受信信号から前記所定のブレークパルスを検出する手段と、
所定のブレークパルスが検出される集積回路装置がブレーク状態に移行したと判断する手段とを、含むことを特徴とする。
【００４６】
例えばＣＰＵがｒｕｎ状態（ユーザーモード）からブレーク状態（デバッグモード）に移行する際に所定のブレークパルスを生成する回路を含むようにしても良い。またＣＰＵがｒｕｎ状態（ユーザーモード）からブレーク状態（デバッグモード）に移行する際にソフト的にブレークパルスに対応する信号を生成するようにしてもよい。
【００４７】
前記第１の通信ラインの受信信号から前記所定のブレークパルスを検出する手段は専用の回路を設けハードウエア的に処理する構成でも良いし、ＣＰＵ等でソフトウエア的に判断するようにしても良い。
【００４８】
また所定のブレークパルスが検出される集積回路装置がブレーク状態に移行したと判断する手段は、例えばＣＰＵ等でソフトウエア的に判断するようにしても良い。
【００４９】
（１５）本発明のデバッグシステムは、
前記集積回路装置の第１の共用制御処理部は、
前記第１の通信ラインを第１のレベルにプルアップ又はプルダウンする回路と、
ＣＰＵがｒｕｎ状態にあるかブレーク状態にあるかに応じて前記プルアップ又はプルダウンする回路のＯＮ／ＯＦＦを切り替えるためのイネーブル信号を生成する回路を含み、
前記デバッグツール又はターゲットシステムのボードは、
前記第１の通信ラインを第２のレベルにプルアップ又はプルダウンする回路を含むことを特徴とする。
【００５０】
例えばｒｕｎ／ブレーク状態信号がｒｕｎ状態においてＬレベル、ブレーク状態においてＨレベルを出力する仕様であるならば、前記第１の通信ラインをＬレベルにプルダウンする回路と、ＣＰＵがｒｕｎ状態にある場合前記プルダウンする回路をＯＮにブレーク状態でＯＦＦになるように切り替えるためのイネーブル信号を生成する回路を含むように構成してもよい。
【００５１】
なお本発明はｒｕｎ／ブレーク状態信号がｒｕｎ状態においてＨレベル、ブレーク状態においてＬレベルを出力する仕様でも実現可能である。またプルダウン回路ではなくてプルアップ回路を用いる構成でもよいし、ｒｕｎ状態／ブレーク状態に置けるＯＮ／ＯＦＦの切り替えは上記と逆でもよい。
【００５２】
なお第２のレベルにプルアップ又はプルダウンする回路はターゲットシステムのボード（マイクロコンピュータが実装されているユーザーボードや基板）上にあってもよいし、デバッグツール側にあってもよい。
【００５３】
（１６）本発明のデバッグシステムは、
前記集積回路装置の第１の共用制御処理部は、
前記プルアップ又はプルダウンする回路がＯＦＦ状態である場合には、前記第１の通信ラインを第２のレベルにするために第２のレベルに対応した値を出力する強制出力回路を含むことを特徴とする。
【００５４】
例えばｒｕｎ／ブレーク状態信号がｒｕｎ状態においてＬレベル、ブレーク状態においてＨレベルを出力する仕様であるならば、前記第１の通信ラインをＬレベルにプルダウンする回路がＯＦＦ状態である場合に、第１の通信ラインをＨレベルにするためにＨレベルに対応した値を出力する強制出力回路を含むようにしてもよい。
【００５５】
なお本発明はｒｕｎ／ブレーク状態信号がｒｕｎ状態においてＨレベル、ブレーク状態においてＬレベルを出力する仕様でも実現可能である。またプルダウン回路ではなくてプルアップ回路を用いる構成でもよいし、ｒｕｎ状態／ブレーク状態に置けるＯＮ／ＯＦＦの切り替えは上記と逆でもよい。
【００５６】
（１７）本発明のデバッグシステムは、
省ピン型のデバッグツールと、当該デバッグツールのデバッグ対象となるターゲットシステムを含むデバッグシステムであって、
前記ターゲットシステムは、ＣＰＵ、省ピン型のデバッグツールと同期通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュールとを内蔵する集積回路装置を含み、
前記集積回路装置は、
第２の通信ラインが接続される第２のデバッグ端子と、
第２の通信ラインを、省ピン型のデバッグツールとオンチップデバッグを行う際に必要な同期用クロックの送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第２の共用制御処理部とを含み、
前記デバッグツールは、
前記第２の通信ラインを、集積回路装置とオンチップデバッグを行う際に必要な同期用クロックの送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の受信とに共用するための制御を行う第２’の共用制御処理部と、
を含むことを特徴とする。
【００５７】
（１８）本発明のデバッグシステムは、
前記集積回路装置の第２の共用制御処理部は、
ＣＰＵがブレーク状態である場合には、前記第２の通信ラインに同期用のクロックを出力し、ＣＰＵがｒｕｎ状態である場合には前記第２の通信ラインへの同期用のクロックの出力をマスクするクロック出力制御回路を含み、
前記デバッグツールは、
前記第２の通信ラインから同期用のクロックを受信している場合には前記集積回路装置のＣＰＵがブレーク状態であると判断し、同期用のクロックを受信していない状態では前記集積回路装置のＣＰＵがｒｕｎ状態であると判断する手段を、含むことを特徴とする。
【００５８】
（１９）本発明は、
上記いずれかに記載の集積回路装置を含むマイクロコンピュータである。
【００５９】
（２０）本発明は、
上記に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力源と、
前記マイクロコンピュータにより処理されたデータを出力するための出力装置とを含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【００６０】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００６１】
１．本実施形態の特徴
一般にマイクロコンピュータ２０とデバッグツール１１０とがクロック同期通信でデバッグを行う場合には、デバッグツール１１０からマイクロコンピュータ２０へのブレーク入力（Ａ）、マイクロコンピュータからデバッグツールへのブレーク／ｒｕｎ状態の出力（Ｂ）、デバッグツール１１０からマイクロコンピュータ２０へのデータ（デバッグコマンド等）通信（Ｃ）、マイクロコンピュータ２０からデバッグツール１１０へのデータ通信（Ｄ）、同期クロックの通信（Ｅ）、ブレーク入力やトレース等の付加情報の通信（Ｆ）が必要となり、マイクロコンピュータにこれらの通信線を接続するためのデバッグ用のピン（端子）が必要となる。
【００６２】
しかしデバッグ時にのみ必要でエンドユーザーにとっては不要な端子はできるかぎり少ないほうが好ましいので、本実施の形態では以下に説明するような構成を採用することにより、エンドユーザーにとって不要な端子の増加を防止している。
【００６３】
図１（Ａ）〜（Ｃ）は、第１の実施の形態のマイクロコンピュータ（集積回路装置の一例）、デバッグシステムについて説明するための図である。
【００６４】
図１（Ａ）は、省ピン型のデバッグツール１１０と、当該デバッグツール１１０のデバッグ対象となるターゲットシステム１０を含むデバッグシステム１を示す。
【００６５】
ターゲットシステム１１０は、ＣＰＵ５０、省ピン型のデバッグツール１１０と通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュール２４０とを内蔵するマイクロコンピュータ（集積回路装置の一例）２０を含む。
【００６６】
マイクロコンピュータ２０は、第１の通信ライン（ここでは２１０）が接続される第１のデバッグ端子２２と、第１の通信ライン２１０を、省ピン型のデバッグツールとオンチップデバッグを行う際にやり取りする送信用デバッグデータに対応したシリアルデータ信号の送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第１の共用制御処理部２５０を含む。
【００６７】
前記デバッグツール１１０は、第１の通信ライン２１０が接続される第１’のデバッグ端子と、第１の通信ライン２１０を、集積回路装置とオンチップデバッグを行う際にやり取りする送信用デバッグデータに対応したシリアルデータ信号の送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の受信とに共用するための制御を行う第１’の共用制御処理部２６０とを含む。
【００６８】
２１０、２１２、２２０、２３０は、第１の実施の形態のターゲットシステム１０のマイクロコンピュータ２０とデバッグモジュール１１０がデバッグ時に使用する通信ラインである。
【００６９】
２１０はマイクロコンピュータからデバッグモジュールへデバッグデータシリアルに送信するための通信ライン（ＳＯＵＴ）（上記Ｄに相当する信号の通信ライン）、２１２はデバッグモジュールからマイクロコンピュータへのデバッグデータ（デバッグコマンドを含む）をシリアル送信するための通信ライン（ＳＩＮ）（上記Ｃに相当する信号の通信ライン）であり、２２、２３は上記ラインを接続するためのデバッグ用端子である。
【００７０】
また２２０は同期通信を行う場合の同期用クロックライン（上記Ｅに相当する信号の通信ライン）であり、２４は上記ラインを接続するためのデバッグ用端子である。
【００７１】
また２３０はその他のデバッグに必要な信号（例えばブレーク入力）（上記Ａ、Ｆに相当する信号の通信ライン）等のための通信ラインであり、２５は上記ラインを接続するためのデバッグ用端子である。
【００７２】
第１の実施の形態では、マイクロコンピュータ２０からデバッグモジュール１１０に対してｒｕｎ／ブレーク状態信号（上記Ｂに相当する信号）を通信するための専用ラインを設けずに、これをＳＯＵＴの通信ライン２１０と共用している。
【００７３】
図１（Ｂ）に示すように、マイクロコンピュータ２０のＣＰＵ５０がｒｕｎ状態（例えばユーザーモード）である場合には、ＳＯＵＴ２１０からは第１のレベル（例えばＬレベル）の信号が出力され、ＣＰＵ５０がブレーク状態になると第２のレベル（例えばＨレベル）の信号が出力され、その後通信が開始されると通信データに応じたパルスの信号３１４が出力される。また通信状態においては、ＳＩＮ２１２から通信データに応じたパルスの信号２１６が入力される。
【００７４】
マイクロコンピュータからのデバッグ用のデータの出力ＳＯＵＴは、ｒｕｎ状態（例えばユーザーモード）においては発生しない。デバッグモジュール１１０では、ＳＯＵＴ（２１０）の状態が第１のレベル（例えば３１０）であればマイクロコンピュータはｒｕｎ状態であると判断する。そしてｒｕｎ状態にあるときにＳＯＵＴ（２１０）が第１のレベルから第２のレベルに変化すると、デバッグモジュール１１０はマイクロコンピュータ２０がデバッグ状態に移行したと判断する。そしてブレーク状態において通信データに応じたパルスの信号が出力される（例えば３１６）と、デバッグ用の出力データと判断する。
【００７５】
図１（Ｂ）では、ＳＯＵＴとｒｕｎ／ブレーク状態信号で１つの通信ラインを共用する場合に、マイクロコンピュータがｒｕｎ状態であればＳＯＵＴ（２１０）が第１のレベル（例えばＬレベル）になり、ブレーク状態であればＳＯＵＴ（２１０）が第２のレベル（例えばＨレベル）になる場合について説明したが、これに限られない。
【００７６】
例えば図１（Ｃ）のように、マイクロコンピュータ２０のＣＰＵ５０がｒｕｎ状態（例えばユーザーモード）である場合には、ＳＯＵＴ２１０からは第１のレベル（例えばＬレベル）の信号が出力され、ＣＰＵ５０がブレーク状態（３１２）に移行するときに所定のパルスが複数回（例えば２回又はそれ以上）出力され、その後通信が開始されると通信データに応じたパルスの信号３１４が出力されるようにしてもよい。
【００７７】
このように１つ通信線２１０及びデバッグ用端子２２をデバッグデータの出力信号（ＳＯＵＴ）とｒｕｎ／ブレーク状態の出力信号で共用することで、マイクロコンピュータのデバッグ用の端子の削減を図ることができる。
【００７８】
図２（Ａ）（Ｂ）は、第２の実施の形態のマイクロコンピュータ（集積回路装置の一例）、デバッグシステムについて説明するための図である。
【００７９】
省ピン型のデバッグツール１１０と、当該デバッグツール１１０のデバッグ対象となるターゲットシステム１０を含むデバッグシステム１である。
【００８０】
前記ターゲットシステム１０は、ＣＰＵ５０、省ピン型のデバッグツール１１０と同期通信を行いオンチップデバッグを行う機能を有する内部デバッグモジュール２４０とを内蔵するマイクロコンピュータ２０を含む。
【００８１】
マイクロコンピュータ２０は、第２の通信ライン（ここでは２２０）が接続される第２のデバッグ端子２４と、第２の通信ライン２２０を、省ピン型のデバッグツール１１０とオンチップデバッグを行う際に必要な同期用クロックの送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う第２の共用制御処理部２５２とを含む。
【００８２】
前記デバッグツール１１０は、前記第２の通信ライン２２０を、マイクロコンピュータ２０とオンチップデバッグを行う際に必要な同期用クロックの送信と、ＣＰＵの状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の受信とに共用するための制御を行う第２’の共用制御処理部１５０とを含む。
【００８３】
ここにおいてマイクロコンピュータ２０の第２の共用制御処理部２５２は、ＣＰＵ５０がブレーク状態である場合には、前記第２の通信ライン２２０に同期用のクロックを出力し、ＣＰＵ５０がｒｕｎ状態である場合には前記第２の通信ライン２２０への同期用のクロックの出力をマスクするクロック出力制御回路を含むようにしてもよい。
【００８４】
そしてデバッグツール１１０は、第２の通信ライン２２０から同期用のクロックを受信している場合にはマイクロコンピュータ２０のＣＰＵがブレーク状態であると判断し、同期用のクロックを受信していない状態ではマイクロコンピュータ２０のＣＰＵがｒｕｎ状態であると判断する手段を含むようにしてもよい。
【００８５】
図２（Ａ）に示す２１０、２１２、２２０、２３０は、第２の実施の形態のターゲットシステム１０のマイクロコンピュータ２０とデバッグモジュール１１０がデバッグ時に使用する通信ラインである。
【００８６】
２１０はマイクロコンピュータからデバッグモジュールへデバッグデータを送信するための通信ライン（ＳＯＵＴ）（上記Ｄに相当する信号の通信ライン）、２１２はデバッグモジュールからマイクロコンピュータへのデバッグデータ（デバッグコマンドを含む）を送信するための通信ライン（ＳＩＮ）（上記Ｃに相当する信号の通信ライン）であり、２２、２３は上記ラインを接続するためのデバッグ用端子である。
【００８７】
また２２０は同期通信を行う場合の同期用クロックライン（上記Ｅに相当する信号の通信ライン）であり、２４は上記ラインを接続するためのデバッグ用端子である。
【００８８】
また２３０はその他のデバッグに必要な信号（例えばブレーク入力）（上記Ａ、Ｆに相当する信号の通信ライン）等のための通信ラインであり、２５は上記ラインを接続するためのデバッグ用端子である。
【００８９】
第２の実施の形態では、マイクロコンピュータ２０からデバッグモジュール１１０に対してｒｕｎ／ブレーク状態信号（上記Ｂに相当する信号）を通信するための専用ラインを設けずに、これを同期用クロックライン２２０と共有している。
【００９０】
図２（Ｂ）に示すように、マイクロコンピュータ２０のＣＰＵ５０がｒｕｎ状態（例えばユーザーモード）である場合には、同期用クロック信号２２０は出力されず（例えば３１０のように出力がマスクされた状態）、ＣＰＵ５０がブレーク状態になると同期用クロックが出力され（３２０参照）、その後通信が開始されるとＳＯＵＴ２１０から通信データに応じたパルスの信号３２２が出力される。また通信状態においては、ＳＩＮ２１２から通信データに応じたパルスの信号３２４が入力される。
【００９１】
デバッグツール１１０は、ｒｕｎ状態（例えばユーザーモード）においてはデバッグ用の同期クロックは必要なく、ブレーク状態（例えばデバッグモード）において必要となる。デバッグモジュール１１０では、同期用クロック信号２２０がこないと（例えば３１０）マイクロコンピュータはｒｕｎ状態であると判断する。そして同期用クロック信号２２０がきている状態に変化すると、デバッグモジュール１１０はマイクロコンピュータ２０がデバッグ状態に移行したと判断する。そしてブレーク状態において通信データに応じたパルスの信号が出力される（例えば３２２）と、デバッグ用の出力データと判断する。
【００９２】
このように１つ通信線２２００及びデバッグ用端子２４を同期用クロック出力信号（ＳＯＵＴ）とｒｕｎ／ブレーク状態の出力信号で共用することで、マイクロコンピュータのデバッグ用の端子の削減を図ることができる。
【００９３】
図３（Ａ）（Ｂ）は、第３の実施の形態のマイクロコンピュータ（集積回路装置の一例）、デバッグシステムについて説明するための図である。
【００９４】
第３の実施の形態は、第１の実施の形態の変形例であり、第１のデバッグ端子２２には、前記第１の通信ライン２１０としてデバッグ用のデータを半２重の双方向通信で送受信を行うための１本の通信ラインが接続され、マイクロコンピュータ２０の第１の共用制御処理部２５０は、前記第１の通信ライン２１０を、省ピン型のデバッグツール１１０とオンチップデバッグを行う際にやり取りする双方向の送受信用デバッグデータに対応したシリアルデータ信号の送受信と、ＣＰＵ５０の状態がｒｕｎ状態又はブレーク状態のいずれであるのかを示すｒｕｎ／ブレーク状態信号の送信とに共用するための制御を行う。
【００９５】
２１０、２３０は、第３の実施の形態のターゲットシステム１０のマイクロコンピュータ２０とデバッグモジュール１１０がデバッグ時に使用する通信ラインである。
【００９６】
２１０はマイクロコンピュータとデバッグモジュール間でデバッグデータを半２重の双方向通信で非同期に送受信するための通信ライン（ＳＩＯ）（上記Ｄ、Ｃに相当する信号の通信ライン）であり、２２は上記ラインを接続するためのデバッグ用端子である。
【００９７】
また２３０はその他のデバッグに必要な信号（例えばブレーク入力）（上記Ａ、Ｆに相当する信号の通信ライン）等のための通信ラインであり、２５は上記ラインを接続するためのデバッグ用端子である。
【００９８】
第３の実施の形態では、マイクロコンピュータ２０からデバッグモジュール１１０に対してｒｕｎ／ブレーク状態信号（上記Ｂに相当する信号）を通信するための専用ラインを設けずに、これを半２重の双方向通信ライン２１０と共有している。
【００９９】
図３（Ｂ）に示すように、マイクロコンピュータ２０のＣＰＵ５０がｒｕｎ状態（例えばユーザーモード）である場合には、ＳＩＯ２１０は第１のレベル（例えばＬレベル）となり（３１０参照）、ＣＰＵ５０がブレーク状態になると第２のレベル（例えばＨレベル）に変化し（３４０参照）、その後通信が開始されると通信データに応じたパルスの信号３４２に変化し、データ終了後に再び第２のレベル（例えばＨレベル）に維持され（３４４参照）、次にデバッグモジュールからマイクロコンピュータへの通信データに応じたパルスの信号３４６に変化する。
【０１００】
なおｒｕｎ状態（例えばユーザーモード）からブレーク状態（例えばデバッグモード）への移行は、マイクロコンピュータ内部で発生したブレーク（例えばＰＣブレーク等）により発生した場合でもよいし、２３０に示すようにデバッグツールから強制ブレーク信号３５０を受けて発生した場合でもよい。
【０１０１】
マイクロコンピュータとデバッグモジュール間の双方向通信ラインＳＩＯは、ｒｕｎ状態（例えばユーザーモード）においては通信データが発生しない。ここで例えば３５０に示すようにデバッグモジュール１１０では、ＳＩＯ（２１０）の状態が第１のレベル（例えば３１０）であればマイクロコンピュータはｒｕｎ状態であると判断する。そしてｒｕｎ状態にあるときにＳＩＯ（２１０）が第１のレベルから第２のレベルに変化すると（３１０→３４０）、デバッグモジュール１１０はマイクロコンピュータ２０がデバッグ状態に移行したと判断する。そしてブレーク状態において通信データに応じたパルスの信号３４２がマイクロコンピュータからデバッグモジュールに出力されると、デバッグ用の出力データと判断する。
【０１０２】
このように１つ通信線２１０及びデバッグ用端子２２をデバッグデータの双方向通信線（ＳＩＯ）とｒｕｎ／ブレーク状態の出力信号で共用することで、マイクロコンピュータのデバッグ用の端子の削減を図ることができる。
【０１０３】
図４（Ａ）（Ｂ）は、第４の実施の形態のマイクロコンピュータ（集積回路装置の一例）、デバッグシステムについて説明するための図である。
【０１０４】
第４の実施の形態は、第３の実施の形態の変形であり、マイクロコンピュータ２０は、前記第１の通信ライン（ここでは２１０）を介してデバッグツール１１０から強制ブレーク入力を受信するように構成される。マイクロコンピュータ２０の第１の共用制御処理部２５０は、第１の通信ライン３２１０を介して入力された受信データから強制ブレーク入力信号を検出する回路を含み、強制ブレーク入力が検出されると、ＣＰＵをブレーク状態に移行させる。
【０１０５】
デバッグツール１１０の第１’の共用制御処理部２５２は、マイクロコンピュータ２０をブレーク状態にするための強制ブレーク入力信号を前記第１’のデバッグ端子を介して前記第１の通信ラインに出力する強制ブレーク出力制御部を含む。
【０１０６】
２１０は、第４の実施の形態のターゲットシステム１０のマイクロコンピュータ２０とデバッグモジュール１１０がデバッグ時に使用する通信ラインである。
【０１０７】
２１０はマイクロコンピュータとデバッグモジュール間でデバッグデータを半２重の双方向通信で非同期に送受信するための通信ライン（ＳＩＯ）（上記Ｄ、Ｃ、Ａに相当する信号の通信ライン）であり、２２は上記ラインを接続するためのデバッグ用端子である。
【０１０８】
ここで通信ライン２１０は、半２重で非同期に送受信されるデバッグデータの信号線ＳＩＯとブレーク入力（上記Ａ、Ｆに相当する信号の通信ライン）の信号線が１本の通信ラインを共用する。
【０１０９】
第４の実施の形態では、マイクロコンピュータ２０からデバッグモジュール１１０に対してｒｕｎ／ブレーク状態信号（上記Ｂに相当する信号）を通信するための専用ラインを設けずに、これを半２重の双方向通信ライン（ブレーク入力も含む）２１０と共有している。
【０１１０】
図４（Ｂ）に示すように、マイクロコンピュータ２０のＣＰＵ５０がｒｕｎ状態（例えばユーザーモード）である場合には、ＳＩＯ２１０は第１のレベル（例えばＬレベル）となる（３１０参照）。ここでデバッグツール１１０からマイクロコンピュータに対してＳＩＯ２１０を介してブレーク入力３５０が送信されると、ＣＰＵ５０がブレーク状態に移行し、ＳＩＯ２１０は第２のレベル（例えばＨレベル）に変化する（３４０参照）。その後通信が開始されると通信データに応じたパルスの信号３４２に変化し、データ終了後に再び第２のレベル（例えばＨレベル）に維持され（３４４参照）、次にデバッグモジュールからマイクロコンピュータへの通信データに応じたパルスの信号３４６に変化する。
【０１１１】
なおｒｕｎ状態（例えばユーザーモード）からブレーク状態（例えばデバッグモード）への移行は、マイクロコンピュータ内部で発生したブレーク（例えばＰＣブレーク等）により発生した場合でもよいし、デバッグツールから強制ブレーク信号３５０を受けて発生した場合でもよい。後者の場合、ノイズとの区別が明確になるように、強制ブレークを示すパルスのパルス幅は、ＣＰＵクロックのクロック幅の数クロック以上分あるとことが好ましい。
【０１１２】
マイクロコンピュータとデバッグモジュール間の双方向通信ラインＳＩＯは、ｒｕｎ状態（例えばユーザーモード）においては通信データが発生しない。ここで例えば３５０に示すようにデバッグモジュール１１０では、ＳＩＯ（２１０）の状態が第１のレベル（例えば３１０）であればマイクロコンピュータはｒｕｎ状態であると判断する。そしてｒｕｎ状態にあるときにＳＩＯ（２１０）が第１のレベルから第２のレベルに変化すると（３１０→３４０）、デバッグモジュール１１０はマイクロコンピュータ２０がデバッグ状態に移行したと判断する。そしてブレーク状態において通信データに応じたパルスの信号３４２がマイクロコンピュータからデバッグモジュールに出力されると、デバッグ用の出力データと判断する。
【０１１３】
このように１つ通信線２１０及びデバッグ用端子２２をデバッグデータの双方向通信線（ＳＩＯ）及びブレーク入力線とｒｕｎ／ブレーク状態の出力信号で共用することで、マイクロコンピュータのデバッグ用の端子の削減を図ることができる。
【０１１４】
以下第４の実施の形態の具体的構成例について説明する。
【０１１５】
図５は第４の本実施の形態のターゲットシステム、デバッグシステム及びマイクロコンピュータの構成について説明するための図である。
【０１１６】
本実施の形態のデバッグシステム１は、省ピン型のデバッグツール（ＩＣＥ等）５０と、当該デバッグツール５０のデバッグ対象となるターゲットシステム１０を含む。
【０１１７】
ターゲットシステム１０は、マイクロコンピュータ（ＣＰＵを含む集積回路装置の一例）２０が基板（ユーザーボード）４０に実装される。基板（ユーザーボード）４０には、例えばマイクロコンピュータ２０以外にもメモリ等の半導体集積回路装置や、デジタルクロックを生成して出力する水晶発振器等の発信器（クロック発信器）が実装されていてもよい。
【０１１８】
マイクロコンピュータ２０は、デバッグ用のシリアルデータを半２重の双方向通信で送受信を行うための１本の通信ラインが接続されるデバッグ用端子２２を含む。
【０１１９】
マイクロコンピュータ２０は、ＣＰＵ５０、ＵＡＲＴクロック生成回路７０、ＵＡＲＴ送受信制御回路８０、ブレーク検出回路５４、入出力信号制御回路３０、双方向ＩＯセル回路９２、デバッグ処理用プログラム格納ＲＯＭ６２、バス４４、プルダウン制御回路９６，９８等を含む。
【０１２０】
ＣＰＵ５０、強制出力生成回路６４、ＵＡＲＴクロック生成回路７０、ＵＡＲＴ送受信制御回路８０はバス４４に接続されている。
【０１２１】
デバッグ処理用プログラム格納ＲＯＭ６２はＣＰＵ５０に接続され、デバッグ時にＣＰＵは、デバッグ処理用プログラム格納ＲＯＭ６２から読み出したデバッグ用プログラムを実行する。
【０１２２】
ユーザーボードのコネクタはデバッグツールとＳＩＯ通信線２１０で接続されデバッグ時に半２重の双方向データ通信を行う。
【０１２３】
ブレーク検出回路は５４は入出力信号の値（入力信号値）に基づきデバッグツールからのブレーク入力を検出し、ブレーク入力を検出するとＣＰＵ５０に対しブレーク入力信号（ブレーク入力発生時にＨレベルになる）５２を出力する。
【０１２４】
またＣＰＵ５０はｒｕｎ／ブレーク状態信号（ｒｕｎ状態１でブレーク状態０）５６を出力する。
【０１２５】
双方向ＩＯセル回路９２の入力バッファ９３へは外部入力又は出力が入力される。また双方向ＩＯセル回路９２の出力バッファ９４は出力イネーブル９５が１の時出力となり、出力イネーブル９５が０の時はハイインピーダンスとなり外部入力が可能な状態となる。
【０１２６】
また双方向ＩＯセル回路９２の出力バッファ９４とノード９７の間で出力データ線はプルダウン回路９６に接続され、ｒｕｎ中はイネーブルスイッチ９８がＯＮ（プルダウンイネーブル）となり入出力データ線がＬレベルとなるように設定されている。そしてブレーク中はイネーブルスイッチ９８がＯＦＦ（プルダウンディセーブル）となって、入出力データ線がＨレベルとなる。
【０１２７】
ＵＡＲＴクロック生成回路７０はクロック発信器から受け取った基準クロックに基づきＵＡＲＴ送受信制御部８０に供給するクロックを生成する。
【０１２８】
ＵＡＲＴ送受信制御部８０は、ＵＡＲＴクロック生成回路７０で生成されたクロックを動作クロックとして、省ピン型のデバッグツールとのデバッグ用のデータの送受信を非同期式のシリアルデータ伝送で行うための通信制御や、マイクロコンピュータ内のパラレルバスからやってくるバイトデータをシリアルのビットストリームに変換すること、およびＳＩＯケーブルを経由してシリアルポートに入ってきたビットストリームをコンピュータが処理できるパラレルなバイトデータに変換する処理等を行う。
【０１２９】
強制出力生成回路６４は、強制出力値６５を出力信号として出力するための制御を行う回路であり、例えば２ビットのフィリップフロップＦＦに格納された第１の値（強制出力値１ビット）、第２の値（強制出力制御信号１ビット）を出力することで実現できる。
【０１３０】
入出力信号制御回路３０は、ＵＡＲＴ送受信制御部８０と接続され、ＵＡＲＴ送受信制御部８０の送受信データの受け渡しを行う。また入出力信号制御回路３０は、ＳＩＯ制御部９２との送受信データの受け渡しの制御、及び送信データの生成（デバッグ用のデータとｒｕｎ／ブレーク状態信号のマージ処理等）の処理を行う。
【０１３１】
図６は、入出力信号制御回路３０の構成の一例について説明するための図である。
【０１３２】
入出力信号制御回路３０は、第１のＯＲ回路３２、第２のＯＲ回路３４、選択回路３６、第３のＯＲ回路３８を含む。
【０１３３】
第２のＯＲ回路３４の一方の入力は双方向ＩＯセル回路のバッファ９３の出力と接続され、他方の入力はＵＡＲＴ出力時にＳＩＮをＨレベルにマスクするためのマスク制御信号３３に接続され、ＵＡＲＴ出力時にはＳＩＮがＨレベルになるようにマスクする制御を行う。
【０１３４】
第１のＯＲ回路３２の一方の入力は第２のＯＲ回路３４の出力と接続され、他方の入力はｒｕｎ中にＳＩＮをＨレベルにマスクするためのマスク制御信号３１に接続され、ｒｕｎ中にはＳＩＮがＨレベルになるようにマスクする制御を行う。
【０１３５】
選択回路３６の第１の入力、第２の入力、切り替え入力は強制出力値６５、ＳＯＵＴ６８、強制出力制御信号６６に接続され、選択回路３６の出力は双方向ＩＯセル回路のバッファ９４の入力と接続され、強制出力制御信号６６に基づき強制出力値６５とＳＯＵＴ６８とを切り替えて出力バッファ９４に出力する制御を行う。
【０１３６】
第３のＯＲ回路３８の一方の入力は入出力制御信号６９と接続され、他方の入力は強制出力制御信号６６に接続され、第３のＯＲ回路３８の出力は双方向ＩＯセル回路のバッファ９４のイネーブル入力に接続される。
【０１３７】
入出力出力制御信号６６は、出力時に１（Ｈ）、入力に０（Ｌ）になる。従ってＳＯＵＴ出力時（入出力制御信号が１（Ｈ）の時）又は強制出力制御信号が１（Ｈ）の時に出力バッファ９４がイネーブルとなり双方向通信線にデータが出力される。
【０１３８】
またプルダウン制御回路９６、９８は双方向ＩＯセル回路９２の出力バッファ９４ととノード９７の間で出力データ線はプルダウン回路９６に接続され、ｒｕｎ中はイネーブルスイッチ９８がＯＮ（プルダウンイネーブル）となり入出力データ線がＬレベルとなるように設定されている。そしてブレーク中はイネーブルスイッチ９８がＯＦＦ（プルダウンディセーブル）となって、入出力データ線は弱いＨ状態となる。そこでブレーク中は強制値（Ｈ）の出力を行い入出力データ線をＨレベルにする。
【０１３９】
このような回路を構成することにより、図４（Ｂ）に示すように、マイクロコンピュータ２０のＣＰＵ５０がｒｕｎ状態（例えばユーザーモード）である場合には、入出力データ線ＳＩＯ２１０をＬレベルにし（３１０参照）、ＣＰＵ５０がブレーク状態に移行すると入出力データ線ＳＩＯ２１０はＨレベルに変化する（３４０参照）。その後通信が開始されると通信データに応じたレベルの信号２
４２に変化し、データ終了後に再びＨレベルに維持される（３４４参照）。
【０１４０】
図７は、本実施の形態のデバッグツールの構成の一例について説明するための図である。
【０１４１】
デバッグツール１１０は、ＣＰＵ１５０、ＵＡＲＴクロック生成回路１７０、ＵＡＲＴ送受信制御回路１８０、入出力信号制御回路１３０、強制ブレーク発生回路１６０、双方向ＩＯセル回路１９２、ＲＡＭ（ワーク用ＲＡＭ）１６４、フラッシュメモリ（ＩＣＥ制御用プログラム格納）１６２、可変発信機１３０、プルアップ回路１９６、バス１４４等を含む。
【０１４２】
ＣＰＵ１５０、ＵＡＲＴクロック生成回路１７０、ＵＡＲＴ送受信制御回路１８０、強制ブレーク発生回路１６０はバス１４４に接続されている。
【０１４３】
フラッシュメモリ（ＩＣＥ制御用プログラム格納）１６２はＣＰＵ１５０に接続され、デバッグ時にＣＰＵは、フラッシュメモリ１６２から読み出したデバッグモジュール制御用プログラムを実行する。
【０１４４】
デバッグツール１１０の外部端子１４２はターゲットシステムと通信線２１０２で接続されデバッグ時に半２重の双方向データ通信を行う。
【０１４５】
双方向ＩＯセル回路１９２の入力バッファ１９３へは外部入力又は出力が入力される。また双方向ＩＯセル回路１９２の出力バッファ１９４は出力イネーブル９５が１の時出力となり、出力イネーブル９５が０の時はハイインピーダンスとなり外部入力が可能な状態となる。
【０１４６】
また外部端子１４２とノード１９７の間で入出力データ線はプルアップ回路１９６に接続され、入出力がないときは（ブレーク中でデータの入出力がないとき）入出力データ線がＨレベルとなるように設定されている。
【０１４７】
ＵＡＲＴクロック生成回路１７０はクロック発信器から受け取った基準クロックに基づきＵＡＲＴ送受信制御部１８０に供給するクロックを生成する。
【０１４８】
ＵＡＲＴ送受信制御部１８０は、ＵＡＲＴクロック生成回路１７０で生成されたクロックを動作クロックとして、マイクロコンピュータとのデバッグ用のデータの送受信を非同期式のシリアルデータ伝送で行うための通信制御や、デバッグツール内のパラレルバスからやってくるバイトデータをシリアルのビットストリームに変換すること、およびＳＩＯケーブルを経由してシリアルポートに入ってきたビットストリームをコンピュータが処理できるパラレルなバイトデータに変換する処理等を行う。
【０１４９】
強制ブレーク発生回路１６０は、マイクロコンピュータに強制ブレークを発生させるための強制ブレーク信号（例えば所定幅のパルス）を生成し、出力する。  強制ブレーク信号は、入出力信号制御回路１３０指示も」強制出力値６５を出力信号として出力するための制御を行う回路であり、例えば２ビットのフィリップフロップＦＦに格納された第１の値（強制出力値１ビット）、第２の値（強制出力制御信号１ビット）を出力することで実現できる。
【０１５０】
入出力信号制御回路１３０は、ＵＡＲＴ送受信制御部１８０、強制ブレーク発生回路１６０と接続され、ＵＡＲＴ送受信制御部１８０への送受信データの受け渡しや、ＵＡＲＴ送受信制御部１８０が出力したデバッグ用の送信データと強制ブレーク発生回路１６０が生成した強制ブレーク信号をマージして、双方向の通信線に出力する出力データを生成する。
【０１５１】
また端子１４２とノード１９７の間で入出力データ線はプルアップ回路１９８（例えば１００ｋΩの抵抗を介して３Ｖの電源に接続）に接続され、通信のない状態で入出力データ線がＨレベルとなるように設定されている。
【０１５２】
図８（Ａ）は、マイクロコンピュータが自動的にブレークする場合のタイミングチャートの一例であり、図８（Ｂ）は、マイクロコンピュータがデバッグツールからの強制ブレーク入力を受けてブレークする場合のタイミングチャートの一例である。
【０１５３】
図８（Ａ）において、マイクロコンピュータがブレーク中４００は双方向信号線ＳＩＯは、Ｌレベルであり、ここで、例えばデバッグツールからマイクロコンピュータに対してｒｕｎ命令が送信されると（４０２参照）、マイクロコンピュータ側ではプルダウンイネーブルになり、双方向信号線ＳＩＯ緩やかにＬレベルに移行する（４１２参照）。その後マイクロコンピュータ内部でブレークが発生すると（４１４）、マイクロコンピュータブレーク状態になり強制出力部の強制出力指示信号が１になり、マイクロコンピュータよりＨレベルが強制出力され素早くＨレベルになる（４２２参照）。その後ブレーク中４２０は、デバッグツールに設けられたプルアップ回路（図７の１９６参照）でＨレベルがキープされる。
【０１５４】
図８（Ｂ）においては４１４’に示すように、ｒｕｎ中４００にデバッグツールからマイクロコンピュータに強制ブレーク入力が送信される。強制ブレーク入力を受けるとマイクロコンピュータブレーク状態になり強制出力部の強制出力指示信号が１になり、マイクロコンピュータよりＨレベルが強制出力され素早くＨレベルになる（４２２参照）。その後ブレーク中４２０は、デバッグツールに設けられたプルアップ回路（図７の１９６参照）でＨレベルがキープされる。
【０１５５】
図９は、ターゲットシステムのマイクロコンピュータにおけるデバッグ処理時の動作のフローチャート図である。
【０１５６】
まずブレーク入力を受け付けると（ステップＳ１０）ブレーク処理（ＣＰＵがユーザーモードからデバッグモードに移行する処理）を行う（ステップＳ２０）。ブレーク入力は、ＣＰＵの割り込み信号として受け付けるようにしてもよい。
【０１５７】
次に出力値１で強制出力を行い（ステップＳ２２）、所定期間後に強制出力を終了する（ステップＳ２４）。
【０１５８】
デバッグモードに移行するとＳＯＵＴにブレークステータスを送信する（ステップＳ３０）。ＳＯＵＴのブレークステータスはＳＩＯ通信ラインを介してデバッグツールへ送信される。
【０１５９】
次にＳＩＮとしてデバッグツールから１バイト（デバッグコマンド）の受信があると以下の処理を行う（ステップＳ４０）。
【０１６０】
デバッグコマンドがライトコマンドである場合には、ＳＩＮからさらにライトアドレス４バイト、ライトデータ４バイトを受信する（ステップＳ５０、Ｓ５２）。そして受信したライトアドレスに受信したライトデータを書き込み（ステップＳ５４）、ＯＫステータスコマンドを送信する（ステップＳ５６）。
【０１６１】
デバッグコマンドがリードコマンドである場合には、ＳＩＮからさらにリードアドレス４バイトを受信する（ステップＳ６０、Ｓ６２）。そして受信したリードアドレスから４バイトのデータを読み出し（ステップＳ６４）、ステータスコマンドと４バイトのリードデータを送信する（ステップＳ６６）。
【０１６２】
デバッグコマンドがＲＵＮコマンドである場合には、ユーザーモードへの復帰処理を行い（ステップＳ７０、Ｓ７２）、ブレーク入力受け付け可能状態になる。
【０１６３】
デバッグコマンドがそれ以外である場合には、ＮＧステータスコマンドを送信する（ステップＳ８０、Ｓ８２）。
【０１６４】
図１０は、デバッグツールにおけるデバッグ処理時の動作のフローチャート図である。
【０１６５】
マイクロコンピュータがユーザーモードでＲＵＮ中にＳＩＮの入力チェックを行い、Ｈレベルが入れば、ＳＩＮ入力マスクを解除する（ステップＳ２０２、Ｓ２０４）。
【０１６６】
そしてＳＩＮからブレークステータスを受信すると以下の処理を行う（ステップＳ２１０）。
【０１６７】
まずオペレータからデバッグモジュールに対するデバッグ用のコマンドを受け付ける（ステップＳ２２０）。
【０１６８】
受け付けたコマンドがライトコマンドである場合には、ＳＯＵＴからライトコマンド（ライトアドレス４バイトとライトデータ４バイトを含む）を送信する（ステップＳ２３０、Ｓ２３２）。
【０１６９】
そしてＳＩＮからＯＫステータスを受信する（ステップＳ２３４）。
【０１７０】
受け付けたコマンドがリードコマンドである場合には、ＳＯＵＴからリードコマンド（リードアドレス４バイトを含む）を送信する（ステップＳ２４０、Ｓ２４２）。
【０１７１】
そしてＳＩＮからＯＫステータスとリードデータ４バイトを受信して（ステップＳ２４４）、オペレータに表示する（ステップＳ２４６）。
【０１７２】
受け付けたコマンドがＲＵＮコマンドである場合には、ＳＯＵＴからＲＵＮコマンドを送信し、ＳＩＮ入力をＨレベルでマスクし（ステップＳ２５０、Ｓ２５２、Ｓ３５４）、ステップＳ２０２に戻る。
【０１７３】
受け付けた強制ブレークコマンドである場合には、強制ブレーク入力信号を生成し送信する（ステップＳ２６０、Ｓ２６２）。
【０１７４】
上記実施の形態では、データ信号（ここでは半２重の双方向通信線ＳＩＯ）のレベル（ＨレベルであるかＬレベルであるか）に基づき、マイクロコンピュータのｒｕｎ／ブレーク状態を検出する構成について説明したがこれに限られない。
例えばマイクロコンピュータがブレーク時に所定のパルス（ブレークステータスに対応したパルス）を出力し、デバッグツール側でこれを検出してマイクロコンピュータがブレーク状態であると判断する構成でもよい。
【０１７５】
図１１は、マイクロコンピュータとデバッグツールがデバッグ時に１本の通信ラインを介して半２重双方向通信を行う場合の、通信ラインにおけるデータのやり取りの一例を示した図である。
【０１７６】
４５１は、ブレーク状態４５０においてデバッグツールからマイクロコンピュータへ送信されるデバッグコマンド１であり、４５２はマイクロコンピュータからデバッグツールに送信されるデバッグコマンド１に対するステータス１である。また４５３は、デバッグツールからマイクロコンピュータへ送信されるデバッグコマンド２であり、４５４はマイクロコンピュータからデバッグツールに送信されるデバッグコマンド２に対するステータス２である。このようにマイクロコンピュータがブレーク状態４５０においては、マイクロコンピュータとデバッグツールは例えばコマンドとそれに対応したステータスを所定のルールにしたがって（例えばハンドシェイクで）やり取りを行う。
【０１７７】
ここでデバッグツールがマイクロコンピュータにｒｕｎコマンドを送信すると、マイクロコンピュータはｒｕｎ状態４６０となる。そして例えばマイクロコンピュータの内部でブレークが発生するとマイクロコンピュータはデバッグツールに対してブレークステータス（’０ｘＡＡ’に対応したパルス）を送信する。
【０１７８】
マイクロコンピュータでは４７１をブレークステータスに対応するパルスを検出することで、マイクロコンピュータがブレーク状態であると判断することができる。なおパルスの検出を含むブレーク状態の判断は、例えばソフトウエア的に行っても良いし、例えば専用の回路意によってハードウエア的におこなってもよい。
【０１７９】
またデバッグツールはｒｕｎコマンド４５５を送信したのち、マイクロコンピュータはｒｕｎ中であるとソフト的に判断するようにしてもよい。
【０１８０】
またデバッグツールはマイクロコンピュータに強制ブレーク入力を行ったのち、その後はブレーク状態であるとソフト的に判断するようにしてもよい。
【０１８１】
図１２はデバッグツールのｒｕｎ／ブレーク状態判定の一例を示すフローチャート図である。
【０１８２】
ｒｕｎコマンドの送信があれば、マイクロコンピュータはｒｕｎ中であると判断し、ｒｕｎ中であることを示すｒｕｎ状態フラグをＯＮにする（ステップＳ３１０、Ｓ３２０）。
【０１８３】
次にマイクロコンピュータからブレークパルス（ブレークステータスに対応したパルス信号）を受信したか否かを検出し、受信した場合にはｒｕｎ状態フラグをＯＦＦにする（ステップＳ３３０、Ｓ３４０）。
【０１８４】
２．マイクロコンピュータ
図１３は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【０１８５】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＲＡＭ７１０，ＲＯＭ７２０、ＭＭＵ７３０ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ５７０、割り込みコントローラ５８０、通信制御装置（シリアルインターフェース）５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置６６０、プリスケーラ６７０及びそれらを接続する汎用バス６８０、デバッグモジュール７４０、専用バス７５０等、各種ピン６９０等を含む。
【０１８６】
３．電子機器
図１４に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、メモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【０１８７】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。  音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【０１８８】
図１５（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【０１８９】
図１５（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【０１９０】
図１５（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【０１９１】
本実施の形態のマイクロコンピュータを図１５（Ａ）〜図１５（Ｃ）の電子機器に組みむことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
【０１９２】
なお、本実施形態を利用できる電子機器としては、図１５（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【０１９３】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【０１９４】
【図１】図１（Ａ）〜図１（Ｃ）は、第１の実施の形態のマイクロコンピュータ（集積回路装置の一例）、デバッグシステムについて説明するための図である。
【図２】図２（Ａ）、図２（Ｂ）は、第２の実施の形態のマイクロコンピュータ（集積回路装置の一例）、デバッグシステムについて説明するための図である。
【図３】図３（Ａ）、図３（Ｂ）は、第３の実施の形態のマイクロコンピュータ（集積回路装置の一例）、デバッグシステムについて説明するための図である。
【図４】図４（Ａ）、図４（Ｂ）は、第４の実施の形態のマイクロコンピュータ（集積回路装置の一例）、デバッグシステムについて説明するための図である。
【図５】第４の本実施の形態のターゲットシステム、デバッグシステム及びマイクロコンピュータの構成について説明するための図である。
【図６】入出力信号制御回路３０の構成の一例について説明するための図である。
【図７】本実施の形態のデバッグツールの構成の一例について説明するための図である。
【図８】図８（Ａ）図８（Ｂ）は、マイクロコンピュータがブレークする場合のタイミングチャートの一例である。
【図９】ターゲットシステムのマイクロコンピュータにおけるデバッグ処理時の動作のフローチャート図である。
【図１０】デバッグツールにおけるデバッグ処理時の動作のフローチャート図である。
【図１１】半２重双方向通信を行う場合のデータのやり取りの一例を示した図である。
【図１２】デバッグツールのｒｕｎ／ブレーク状態判定の一例を示すフローチャート図である。
【図１３】本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【図１４】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図１５】図１５（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【図１６】従来型であるＣＰＵ置き換え型と呼ばれるＩＣＥの一例である。
【符号の説明】
【０１９５】
１  デバッグシステム、１０  ターゲットシステム、２０  マイクロコンピュータ、２２，２３，２４，２５  デバッグ用端子、３０  入出力信号制御回路、４０  ユーザーボード（基板）、４４  バス、４５  クロック発信器、５０  ＣＰＵ、５４  ブレーク検出部、６０  デバッグモジュール、６２デバッグ処理用プログラムＲＯＭ部、６４  強制出力生成回路、７０  ＵＡＲＴクロック生成部、８０  ＵＡＲＴ送受信制御部、１１０  デバッグモジュール、２１０  ２１２、２２０、２３０  信号線、２４０  デバッグモジュール、２５０  第１の共用制御回路、２５２  第２の共用制御回路、２６０  第１’の共用制御回路、２６２  第２’の共用制御回路  ５１０、ＣＰＵ、５２０  キャッシュメモリ５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  DMAコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  通信制御回路（シリアルインターフェース）、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７３０  ＭＭＵ、７４０  絵バッグモジュール、７５０  専用バス、８００  電子機器、８１０  マイクロコンピュータ（ＡＳＩＣ）、８２０  入力部、８３０  メモリ、８４０  電源生成部８５０  ＬＣＤ、８６０  音出力部、９５０  携帯電話、９５２  ダイヤルボタン、９５４  ＬＣＤ、９５６  スピーカ、９６０  携帯型ゲーム装置、９６２  操作ボタン、９６４  十字キー、９６６  ＬＣＤ、９６８  スピーカ、９７０  パーソナルコンピュータ、９７２  キーボード、９７４  ＬＣＤ、９７６  音出力部
【図１】
2006268727.tif 000003
【図２】
2006268727.tif 000004
【図３】
2006268727.tif 000005
【図４】
2006268727.tif 000006
【図５】
2006268727.tif 000007
【図６】
2006268727.tif 000008
【図７】
2006268727.tif 000009
【図８】
2006268727.tif 000010
【図９】
2006268727.tif 000011
【図１０】
2006268727.tif 000012
【図１１】
2006268727.tif 000013
【図１２】
2006268727.tif 000014
【図１３】
2006268727.tif 000015
【図１４】
2006268727.tif 000016
【図１５】
2006268727.tif 000017
【図１６】
2006268727.tif 000018