(57)【要約】【課題】デバッグツールを接続しない場合に、ＣＰＵ上で実行されるモニタプログラム等のユーザプログラムからデバッグ機能を使用できるデバッグ機能内蔵マイクロコンピュータを提供する。【解決手段】外部にデバッグツールが接続されている場合に、デバッグ制御部４１のモニタコード供給機能６３が、デバッグツールを接続して使用するか、デバッグツールを接続しないで使用するかを判断し、この判断結果に応じて、モニタコードが変更する。このモニターコードの変更により、デバッグツールを接続しない場合にモニタプログラム等のユーザープログラムに基づいてデバッグ制御部にデバッグ処理を容易に実行させることができる。【選択図】　　　　図１
2004038464.tif 000002
【特許請求の範囲】
【請求項１】
主演算素子と、
外部にデバッグツールが接続されている場合に当該デバッグツールとの間で所定のインターフェースで信号を送受信しながらバウンダリスキャンの制御を行うバウンダリスキャン制御部と、
前記バウンダリスキャン制御部及び前記主演算素子からの指示に基づいてデバッグのための制御を行うデバッグ制御部と
を備え、
前記デバッグ制御部が、モニタコードを供給するとともに、前記デバッグ制御部について、デバッグツールを接続して使用するか、デバッグツールを接続しないで使用するかを判断し、この判断結果に応じて前記モニタコードが変更可能とされたモニタコード供給機能を有するデバッグ機能内蔵マイクロコンピュータ。
【請求項２】
請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、
前記モニタコード供給機能が、前記判断結果に応じてモニタコードを分岐する分岐命令を保有することを特徴とするデバッグ機能内蔵マイクロコンピュータ。
【請求項３】
請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、
前記モニタコード供給機能が、前記判断結果に応じてジャンプ先アドレスを変更して指定するレジスタを持ち、そのアドレスにジャンプする命令を供給することのできることを特徴とするデバッグ機能内蔵マイクロコンピュータ。
【請求項４】
請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、
前記デバッグ制御部が、外部からの所定の信号の入力によって前記デバッグツールが接続されていない旨が指定されている場合に、前記主演算素子にリセット信号が与えられたときに併せてリセットされ、且つクロックの供給が開始されることを特徴とするデバッグ機能内蔵マイクロコンピュータ。
【請求項５】
請求項４に記載のデバッグ機能内蔵マイクロコンピュータであって、
前記デバッグ制御部に、前記主演算素子に与えられる前記リセット信号と、デバッグツールを使用せずにデバッグ機能を使用するためのモード信号とが入力され、
前記モード信号が、クロックの供給を開始するためのクロック供給オン信号として兼用されて前記デバッグ制御部に与えられることを特徴とするデバッグ機能内蔵マイクロコンピュータ。
【請求項６】
請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、
前記デバッグ制御部が、前記主演算素子から与えられたデバッグリセットビット信号に応じてリセットし、且つ、前記主演算素子から与えられたクロック供給オンオフビット信号に応じてクロックの供給が開始されることを特徴とするデバッグ機能内蔵マイクロコンピュータ。
【請求項７】
請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、
前記バウンダリスキャン制御部からデータの書込が可能とされ、且つ前記主演算素子でデータの読み出しが可能とされて、前記デバッグ制御部が前記デバッグツールを接続しないで使用することが可能であり、ユーザプログラムが前記デバッグ制御部を利用し得る旨を表意するユーザー利用可能表意手段を有することを特徴とするデバッグ機能内蔵マイクロコンピュータ。
【請求項８】
請求項７に記載のデバッグ機能内蔵マイクロコンピュータであって、
前記ユーザー利用可能表意手段が前記主演算素子で読み込むことの可能なレジスタであることを特徴とするデバッグ機能内蔵マイクロコンピュータ。
【請求項９】
請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、
前記モニタコード供給機能が、前記ユーザプログラムから予めデバッグ割り込みが発生した場合の飛び先番地が設定されるジャンプアドレス指定レジスタを有することを特徴とするデバッグ機能内蔵マイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、デバッグを行う場合に有効なデバッグ機能内蔵マイクロコンピュータに関する。
【０００２】
【従来の技術】
＜ＪＴＡＧの概要＞
ＪＴＡＧ（Ｊｏｉｎｔ　Ｔｅｓｔ　Ａｃｔｉｏｎ　Ｇｒｏｕｐ）は、バウンダリ・スキャン・アーキテクチャとそれにアクセスするためのインターフェースが規格化されたものであり、本来はその規格化作業を推進したグループの組織名称であるが、その規格自体を称呼する名称として一般的に使用されている。
【０００３】
このＪＴＡＧは、１９９０年２月１５日にＩＥＥＥ（米国電気電子技術者協会）のＴｅｓｔａｂｉｌｉｔｙ　Ｂｕｓ　Ｓｔａｎｄａｒｄ　Ｃｏｍｍｉｔｔｅｅに提案され、「ＩＥＥＥ　ｓｔｄ　１１４９．１」として承認され、その後一般的に普及しており、例えば「リアルタイムトレースを５０ＭＨｚの量産用ＭＰＵで実現：ＮＩＫＫＥＩ　ＥＬＥＣＴＲＯＮＩＣＳ　１９９５．７．３１（第１３３〜１４０頁）」などで説明されているように、マイクロコンピュータの動作周波数の高速化や、パッケージのピン間隙の微小化等のＬＳＩ集積化技術の進歩に伴って、マイクロコンピュータにデバッグ機能を搭載し、ＪＴＡＧインタフェースを通じてデバッグツールと通信する規格として利用され、このＪＴＡＧを使用したデバッグシステムが最近主流になりつつある（「多様化したＣＰＵのＪＴＡＧデバッグ：Ｄｅｓｉｇｎ　Ｗａｖｅ　Ｍａｇａｚｉｎｅ　２０００　Ｆｅｂｕａｒｙ（第３８〜４５頁）」参照）。
【０００４】
＜ＪＴＡＧに準拠したマイクロコンピュータの概要＞
図１２に示す回路は、ＪＴＡＧに準拠したデバッグ機能が内蔵されたマイクロコンピュータＭＣであり、デバッグ制御部１、ＪＴＡＧ制御部２、ＣＰＵ３、メモリ及び周辺ＩＯ（入出力回路）４が設置されている。尚、デバッグ制御部１及びＪＴＡＧ制御部２は、これらを併せてデバッグ機能５と称される。
【０００５】
ここで、デバッグ制御部１、ＪＴＡＧ制御部２及びＣＰＵ３は、それぞれ個別にクロックの供給を止めることができる。つまり、デバッグ制御部１及びＪＴＡＧ制御部２については、所定のプログラムのデバッグをしない時には不要なので、デバッグ制御部１及びＪＴＡＧ制御部２に対してクロックの供給を止め、マイクロコンピュータＭＣの消費電流値を下げることが可能とされている。
【０００６】
＜デバッグシステムの概要＞
図１３は、ＪＴＡＧに準拠したデバッグシステムの一例を示すブロック図、図１４は、そのデバッグシステムに適用されるマイクロコンピュータＭＣの内部構成を示す機能ブロック図である。
【０００７】
このデバッグシステムでは、図１３の如く、ホストコンピュータ（ＰＣ）１１とマイクロコンピュータＭＣとの間にデバッグツールＤＴが介在されており、ホストコンピュータ（ＰＣ）１１からのプログラムのダウンロードや、図１２に示したデバッグ機能５（デバッグ制御部１）内の実行前ＰＣブレークレジスタ１２及びアクセスブレークレジスタ１３等の設定が、ＪＴＡＧインタフェース１４を通じて行われる。ここで、ＪＴＡＧインタフェース１４におけるＴＣＫ（Ｔｅｓｔ　Ｃｌｏｃｋ）は同期信号としてのテストクロック信号、ＴＭＳ（Ｔｅｓｔ　Ｍｏｄｅ　Ｓｅｌｅｃｔ）はステートの行き先を決めるためのテストモードセレクト信号、ＴＤＩ（Ｔｅｓｔ　Ｄａｔａ　Ｉｎｐｕｔ）はシリアルのテスト・データや命令といったバウンダリスキャンのためのテストデータ入力信号、ＴＤＯ（Ｔｅｓｔ　Ｄａｔａ　Ｏｕｔｐｕｔ）はバウンダリスキャンのテストデータ出力信号、ＴＲＳＴ（Ｔｅｓｔ　Ｒｅｓｅｔ）はデバッグ機能５を初期化するためのテストリセット信号をそれぞれ示している。
【０００８】
例えば、図１４において、実行前ＰＣブレークレジスタ１２に設定したアドレスの命令をＣＰＵ３が実行しようとする場合、デバッグ機能５からＣＰＵ３にブレーク要求１５が伝達され、このＣＰＵ３内においてデバッグ割り込みが発生する。また、ＪＴＡＧ制御部２からアクセスブレークレジスタ１３にデータアクセスの条件が設定され、その条件に合うデータアクセスをＣＰＵ３が実行しようとする場合も同様に、デバッグ機能５からＣＰＵ３にブレーク要求１５が出力されて、ＣＰＵ３内でデバッグ割り込みが発生する。さらに、ＣＰＵ３における実行後ＰＣブレーク機能１６からの指定に基づいて、実行前ＰＣブレークレジスタ１２内に格納されたアドレスに基づいてホストコンピュータ１１からの命令を実行した場合も、デバッグ機能５からＣＰＵ３に対してブレーク要求１５が出力されて、ＣＰＵ３内でデバッグ割り込みが発生する。さらにまた、ソフトウエアブレークポイントを実現するのに使用されるデバッグトラップ命令１７をＣＰＵ３が実行した場合も同様に、デバッグ機能５からＣＰＵ３に対してブレーク要求１５が出力されて、ＣＰＵ３内でデバッグ割り込みが発生する。
【０００９】
このように、デバッグ機能５からＣＰＵ３に対してブレーク要求１５が出力されてデバッグ割り込みが発生すると、ＣＰＵ３はユーザプログラム実行モードからデバッグモードに移行し、デバッグ制御部１内のモニタコード供給機能１８から出力されるモニタコードを実行することにより、プログラムのデバッグを行う。
【００１０】
尚、図１４中の符号２１はアドレスバス、符号２２はデータバスをそれぞれ示している。
【００１１】
＜ＪＴＡＧ制御部の内部構成＞
図１５は一般的なＪＴＡＧ制御部２の内部構成を示す機能ブロック図である。ＪＴＡＧ制御部２内には、ＪＴＡＧインタフェース１４の外部ポートＴＣＫ，ＴＭＳ，ＴＲＳＴを管理するＴＡＰ（Ｔｅｓｔ　Ａｃｃｅｓｓ　Ｐｏｒｔ）コントローラ２０１と、テストデータ入力信号ＴＤＩとして命令コマンドが与えられたときにその命令コマンドを格納する命令レジスタ２０２と、データ入力信号ＴＤＩとしてアドレスデータが与えられたときの入力選択を行う入力選択回路２０３と、バイパス（ＢＹＰＡＳＳ）レジスタ、ＩＤコード（ＩＤＣＯＤＥ）レジスタ及びユーザーコード（ＵＳＥＲＣＯＤＥ）レジスタ等を有するバウンダリスキャンテスト用レジスタ２０４と、デバッグ専用レジスタ２０５と、バウンダリスキャンテスト用レジスタ２０４内及びデバッグ専用レジスタ２０５内のいずれかのデータとバウンダリスキャンレジスタ２０７をスキャンしてきたデータとを選択して出力する出力選択回路２０６と、この出力選択回路２０６及び命令レジスタ２０２のいずれかをＴＡＰコントローラ２０１からの制御により選択して出力する出力選択回路２０８とを備える。そして、必要に応じて命令レジスタ２０２内の命令コマンドを実行したり、バウンダリスキャンテスト用レジスタ２０４やバウンダリスキャンレジスタ２０７等の出力結果をテストデータ出力信号ＴＤＯとして出力したり、デバッグ専用レジスタ２０５内のデータをデバッグモード信号として出力したりする。
【００１２】
＜モニタコード供給機能の機能及び動作の概要＞
図１６に基づいてモニタコード供給機能１８の機能及び動作の概要を説明する。
【００１３】
このモニタコード供給機能１８は、デバッグ割り込み発生時に、ＪＴＡＧインタフェース１４を使用して、ＣＰＵ３に対して命令コードを供給する機能であって、ＪＴＡＧインタフェース１４での入出力のみに基づいてモニタプログラムを実行させることが可能であり、モニタプログラムを実行するためにデバッグ機能内蔵マイクロコンピュータＭＣのメモリ等４の資源を必要としない。ＣＰＵ３はデバッグ割り込みが発生すると、命令コードバッファ２３の先頭より命令をフェッチする。
【００１４】
ここで、ＪＴＡＧ制御部２に保有される各レジスタとモニタコード供給機能１８との関係について説明する。
【００１５】
モニタコード供給機能１８の命令コードバッファ２３は、例えば４ワードの容量が確保されており、ＪＴＡＧ制御部２内のＭＯＮ＿ＣＯＤＥレジスタ３１の内容が転送される。
【００１６】
ＭＯＮ＿ＤＡＴＡレジスタ３２は、ＣＰＵ３での実行結果を外部に出力するためのインタフェースとなるレジスタである。モニタプログラム上でストア命令を使用してモニタコード供給機能１８内のＦｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡレジスタ３３に書き込みを行うと、その値がＪＴＡＧ制御部２内のＭＯＮ＿ＤＡＴＡレジスタ３２に転送され、ＪＴＡＧインタフェース１４を経由してテストデータ出力信号ＴＤＯとしてホストコンピュータ１１側で読み出すことができる。
【００１７】
ＭＯＮ＿ＰＡＲＡＭレジスタ３４は、チップ外部からモニタプログラムにパラメータを渡すためのインタフェースとなるレジスタである。ＪＴＡＧインターフェース１４を経由してＭＯＮ＿ＰＡＲＡＭレジスタ３４に値を書き込むと、この値がモニタコード供給機能１８のＦｒｏｎｔ＿ＭＯＮ＿ＰＡＲＡＭレジスタ３５に転送され、モニタプログラム上でロード命令を実行してその値を読み込むことができる。
【００１８】
ＭＯＮ＿ＡＣＣＥＳＳレジスタ３６は、デバッグ割り込み発生時にＪＴＡＧインタフェース１４を経由してモニタプログラムを実行する場合のアクセス制御情報を設定／格納する４ビットのレジスタである。モニタコード供給開始ビット（Ｓｔａｒｔ）、Ｆｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡ有効ビット及びＦｒｏｎｔ＿ＭＯＮ＿ＰＡＲＡＭ有効ビット（Ｖａｌｉｄ）、ＭＯＮ＿ＣＯＤＥビジービット（Ｂｕｓｙ）から構成される。
【００１９】
これらのＪＴＡＧ制御部２内のＭＯＮ＿ＣＯＤＥレジスタ３１、ＭＯＮ＿ＤＡＴＡレジスタ３２、ＭＯＮ＿ＰＡＲＡＭレジスタ３４及びＭＯＮ＿ＡＣＣＥＳＳレジスタ３６は全てデバッグ専用レジスタであり、デバッグツールＤＴによってＪＴＡＧインタフェース１４を経由して設定される。その設定はＪＴＡＧ制御部２により設定されるが詳細の説明は省略する。
【００２０】
＜モニタコード供給機能の動作＞
次に、モニタコード供給機能１８の動作を説明する。
【００２１】
（１）まず、モニタコードの設定を実行する。ここでは、ＪＴＡＧ制御部２内のＭＯＮ＿ＣＯＤＥレジスタ３１に命令コードを設定する。ＭＯＮ＿ＣＯＤＥレジスタ３１に設定された命令コードは、命令コードバッファ２３に転送されると同時にＭＯＮ＿ＣＯＤＥビジービット（Ｂｕｓｙ）の値を「１」にセットする。そして、１ワード分の命令コードが、命令コードバッファ２３のどの段に格納されるかは入力ポインタによって内部制御される。設定された命令コードの順番に１段〜４段めの命令コードバッファ２３に転送される。
【００２２】
（２）次に、命令コードバッファ２３に転送されたことの確認を行う。ここでは、ＪＴＡＧ制御部２内のＭＯＮ＿ＡＣＣＥＳＳレジスタ３６をモニタコード供給機能１８側で読み出して、ＭＯＮ＿ＣＯＤＥビジービット（Ｂｕｓｙ）の値が「０」であることを確認する。ＭＯＮ＿ＣＯＤＥビジービット（Ｂｕｓｙ）の値が「０」であれば、ＭＯＮ＿ＣＯＤＥレジスタ３１に設定されていた命令が命令コードバッファ２３に転送されたことを意味する。
【００２３】
かかる（１）及び（２）の一連の動作は、命令コードバッファ２３が４段であることから、４回繰り返して実行することができる。次の命令コードの設定はＭＯＮ＿ＣＯＤＥビジービット（Ｂｕｓｙ）の値が「０」になっていることを確認してから行う。
【００２４】
（３）続いて、モニタプログラムがパラメータを必要とする場合には、ＪＴＡＧ制御部２内のＭＯＮ＿ＰＡＲＡＭレジスタ３４にパラメータを設定する。ＭＯＮ＿ＰＡＲＡＭレジスタの値がＦｒｏｎｔ＿ＭＯＮ＿ＰＡＲＡＭ３５レジスタに転送中のときは、そのＦｒｏｎｔ＿ＭＯＮ＿ＰＡＲＡＭビットに「１」がセットされる。パラメータの設定はＦｒｏｎｔ＿ＭＯＮ＿ＰＡＲＡＭビットが「０」のときに行う。
【００２５】
ただし、この（３）の処理は、モニタプログラムがパラメータを必要としない場合には実行されない。
【００２６】
（４）そして、モニタコード供給をスタートする。即ち、ＭＯＮ＿ＡＣＣＥＳＳレジスタ３６のモニタコード供給開始ビット（Ｓｔａｒｔ）に「１」を設定する。このことによりＣＰＵ３は命令コードバッファ２３の命令コードをフェッチすることができる。
【００２７】
（５）スタート要求の解除を行う場合は、モニタコード供給開始ビット（Ｓｔａｒｔ）に「０」を設定する。
【００２８】
（６）次に、モニタコードがフェッチされたことの確認を行う。即ち、ＭＯＮ＿ＣＯＤＥビジービット（Ｂｕｓｙ）の値が「０」になっていることを確認し、「０」になっていれば命令コードバッファ２３へ設定したすべての命令のフェッチが完了したことを意味することになる。
【００２９】
（７）続いて、モニタプログラムがパラメータを必要とする場合には、ＭＯＮ＿ＰＡＲＡＭレジスタ３４が使用されたことの確認を行う。即ち、Ｆｒｏｎｔ＿ＭＯＮ＿ＰＡＲＡＭビットが「０」になっていることを確認する。「０」になっていればＣＰＵ３がＦｒｏｎｔ＿ＭＯＮ＿ＰＡＲＡＭレジスタ３５を読み出したことを意味することになる。
【００３０】
ただし、この（７）の処理は、モニタプログラムがパラメータを必要としない場合には実行されない。
【００３１】
（８）そして、モニタプログラムがＦｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡレジスタ３２に書き込みを行う場合には、Ｆｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡレジスタ３２に書き込みがあったことの確認を行う。即ち、Ｆｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡ有効ビットの値が「１」になっていることを確認し、「１」になっていればＣＰＵ３がＦｒｏｎｔ＿＿ＭＯＮ＿ＤＡＴＡレジスタ３３に書き込みを行ったことを意味することになる。
【００３２】
ただし、モニタプログラムがＦｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡレジスタ３２に書き込みを行わない場合は、この（８）の処理は実行されない。
【００３３】
（９）続いて、モニタプログラムがＦｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡレジスタ３２に書き込みを行う場合には、Ｆｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡレジスタ３３の読み出しを行う。即ち、ＭＯＮ＿ＤＡＴＡレジスタ３２を読み出す際に、Ｆｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡ有効ビット（Ｖａｌｉｄ）を自動的にクリアする。ただし、モニタプログラムがＦｒｏｎｔ＿ＭＯＮ＿ＤＡＴＡレジスタ３２に書き込みを行わない場合には、この（９）の処理は実行されない。
【００３４】
このように、デバッグ割り込みが発生した後に、ＣＰＵ３が命令コードバッファ２３に命令フェッチに行った際、命令コードバッファ２３に命令が転送されていない場合は、モニタコード供給機能１８はＣＰＵ３に対し、命令コードバッファの先頭への分岐命令（自番地ループ命令）を与える。
【００３５】
＜デバッグ制御部のリセットとクロック制御方法＞
次に、図１２及び図１３に基づいて、デバッグ制御部１のリセットとクロック制御方法について説明する。
【００３６】
デバッグ機能５を使用しない場合には、デバッグツールＤＴはデバッグ機能内蔵マイクロコンピュータＭＣに接続されず、ＪＴＡＧ制御部２は動作しないので、デバッグ制御部１に対してリセットもされないし、クロック供給もされない。
【００３７】
一方、ユーザがプログラムをデバッグするなど、デバッグ機能５を使用する場合には、デバッグツールＤＴからＪＴＡＧ制御部２を制御し、デバッグリセット信号３８やクロック供給オン信号３９を使ってデバッグ制御部１にリセットをかけ、クロックの供給をオンにする。
【００３８】
【発明が解決しようとする課題】
従来のオンチップデバッグ機能付きマイクロコンピュータＭＣおよびデバッグシステムは、上述したように、デバッグ割り込み発生後にＪＴＡＧインターフェース１４を経由してモニタプログラムを供給しているので、例えば図１７に示すように、ＪＴＡＧインターフェース１４でデバッグツールＤＴを接続することなしに、直接にモニタプログラムをデバッグ機能内蔵マイクロコンピュータＭＣのメモリ４上で実行することとし、例えばシリアル通信４０などを通してホストコンピュータ１１と接続するような形態を採用したい場合に、モニタプログラムからデバッグ機能５を利用することができなかった。
【００３９】
また、ユーザプログラムの動作中、例えば特定のデータのアクセスを監視したい場合に、ＪＴＡＧインターフェース１４を経由してデバッガが使用するデバッグ機能５を利用できないという問題があった。
【００４０】
したがってモニタプログラム等のユーザプログラムが使えるようにデバッグ機能５をユーザプログラム用に追加でインプリメントしなければならないが、そうすると、マイクロコンピュータＭＣの回路規模が大きくなるという問題があった。
【００４１】
さらに、ＪＴＡＧ経由でデバッグツールＤＴを接続しない場合は、デバッグ割り込み発生時に命令コードバッファ２３へフェッチするのではなく、違う番地、例えばモニタコードの先頭番地にジャンプするようにＣＰＵ３を変更するのは、ＣＰＵ３の制御を複雑にするという問題があった。
【００４２】
さらにまた、デバッグ制御部１やＪＴＡＧ制御部２は、デバッグツールＤＴが接続された場合のみクロック供給されたりリセットがかかったりするので、デバッグツールＤＴが接続されない場合に、ＪＴＡＧインターフェース１４経由ではなく、デバッグ制御部１をユーザプログラムから直接使おうとすると、クロック供給ができなかったり、リセットがかからないという問題があった。
【００４３】
そこで、この発明の課題は、デバッグツールを接続しない場合に、ＣＰＵ上で実行されるモニタプログラム等のユーザプログラムからデバッグ機能を使用できるデバッグ機能内蔵マイクロコンピュータを提供することにある。
【００４４】
【課題を解決するための手段】
上記課題を解決すべく、請求項１に記載の発明は、主演算素子と、外部にデバッグツールが接続されている場合に当該デバッグツールとの間で所定のインターフェースで信号を送受信しながらバウンダリスキャンの制御を行うバウンダリスキャン制御部と、前記バウンダリスキャン制御部及び前記主演算素子からの指示に基づいてデバッグのための制御を行うデバッグ制御部とを備え、前記デバッグ制御部が、モニタコードを供給するとともに、前記デバッグ制御部について、デバッグツールを接続して使用するか、デバッグツールを接続しないで使用するかを判断し、この判断結果に応じて前記モニタコードが変更可能とされたモニタコード供給機能を有するものである。
【００４５】
請求項２に記載の発明は、請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、前記モニタコード供給機能が、前記判断結果に応じてモニタコードを分岐する分岐命令を保有するものである。
【００４６】
請求項３に記載の発明は、請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、前記モニタコード供給機能が、前記判断結果に応じてジャンプ先アドレスを変更して指定するレジスタを持ち、そのアドレスにジャンプする命令を供給することのできるものである。
【００４７】
請求項４に記載の発明は、請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、前記デバッグ制御部が、外部からの所定の信号の入力によって前記デバッグツールが接続されていない旨が指定されている場合に、前記主演算素子にリセット信号が与えられたときに併せてリセットされ、且つクロックの供給が開始されるものである。
【００４８】
請求項５に記載の発明は、請求項４に記載のデバッグ機能内蔵マイクロコンピュータであって、前記デバッグ制御部に、前記主演算素子に与えられる前記リセット信号と、デバッグツールを使用せずにデバッグ機能を使用するためのモード信号とが入力され、前記モード信号が、クロックの供給を開始するためのクロック供給オン信号として兼用されて前記デバッグ制御部に与えられるものである。
【００４９】
請求項６に記載の発明は、請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、前記デバッグ制御部が、前記主演算素子から与えられたデバッグリセットビット信号に応じてリセットし、且つ、前記主演算素子から与えられたクロック供給オンオフビット信号に応じてクロックの供給が開始されるものである。
【００５０】
請求項７に記載の発明は、請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、前記バウンダリスキャン制御部からデータの書込が可能とされ、且つ前記主演算素子でデータの読み出しが可能とされて、前記デバッグ制御部が前記デバッグツールを接続しないで使用することが可能であり、ユーザプログラムが前記デバッグ制御部を利用し得る旨を表意するユーザー利用可能表意手段を有するものである。
【００５１】
請求項８に記載の発明は、請求項７に記載のデバッグ機能内蔵マイクロコンピュータであって、前記ユーザー利用可能表意手段が前記主演算素子で読み込むことの可能なレジスタである。
【００５２】
請求項９に記載の発明は、請求項１に記載のデバッグ機能内蔵マイクロコンピュータであって、前記モニタコード供給機能が、前記ユーザプログラムから予めデバッグ割り込みが発生した場合の飛び先番地が設定されるジャンプアドレス指定レジスタを有するものである。
【００５３】
【発明の実施の形態】
｛実施の形態１．｝
図１はこの発明の実施の形態１．に係るデバッグ機能内蔵マイクロコンピュータＭＣの内部構成を示す機能ブロック図である。
【００５４】
このデバッグ機能内蔵マイクロコンピュータＭＣ１は、図１の如く、デバッグ制御部４１、ＪＴＡＧ制御部（バウンダリスキャン制御手段）４２、ＣＰＵ（主演算素子）４３やメモリ及び周辺ＩＯ（入出力回路）４４が設置されている。尚、デバッグ制御部４１及びＪＴＡＧ制御部４２は、これらを併せてデバッグ機能４５と称される。
【００５５】
そして、このデバッグ機能内蔵マイクロコンピュータＭＣ１のデバッグ制御部４１は、デバッグツールＤＴを接続して使用する第１のデバッグモードと、デバッグツールＤＴを接続しないで使用する第２のデバッグモードとを、外部からＵＳＤモード信号に基づいて判断し、このＵＳＤモード信号に応じてモード切替を行うようになっている。
【００５６】
具体的に、このマイクロコンピュータＭＣ１には、ＪＴＡＧインタフェース１４におけるテストリセット信号ＴＲＳＴが入力されるＴＲＳＴ入力端子５１と、ＣＰＵ４３とメモリ及び入出力回路等の周辺素子４４をリセットするリセット信号ＲＳＴが入力されるＲＳＴ入力端子５２と、ＵＳＤモード信号を入力するためのＵＳＤ入力端子５３とがそれぞれ外部ピンに直結される端子として形成されている。
【００５７】
そして、マイクロコンピュータＭＣ１の内部には、ＲＳＴ入力端子５２から入力されたリセット信号ＲＳＴとＪＴＡＧ制御部４２からのデバッグリセット信号５４とをＵＳＤ入力端子５３から入力されたＵＳＤモード信号に応じて切り替え選択してデバッグリセット信号５４ａとしてデバッグ制御部４１に入力する選択回路５５と、ＪＴＡＧ制御部４２からのクロック供給オン信号５６と上述のリセット信号ＲＳＴとの論理和を演算してこれをクロック供給オン信号５６ａとしてデバッグ制御部４１に入力する論理和回路５７とを備える。
【００５８】
また、デバッグ制御部４１内には、ＣＰＵ２３がデータアクセスを実行する条件の情報を格納するアクセスブレークレジスタ６１と、外部から与えられた命令をＣＰＵ４３が実行する際のアドレスを格納するための実行前ＰＣブレークレジスタ６２と、上述のＵＳＤモード信号に基づいて後述の命令コードバッファ２３の先頭へジャンプする命令を供給するためのモニタコード供給機能６３とを備える。
【００５９】
このデバッグ制御部４１におけるリセット方法とクロック供給開始方法について説明する。
【００６０】
＜デバッグツールを接続する場合の動作＞
まず、図２のように、デバッグツールＤＴを接続して使用する場合には、図１において外部ピンに直結されるＵＳＤ入力端子５３から、ＵＳＤモード信号としてロー（Ｌ）信号が入力される。そうすると、選択回路５５により、デバッグリセット信号５４ａとしてＪＴＡＧ制御部４２からのデバッグリセット信号５４が選択される。
【００６１】
また、ＪＴＡＧ制御部４２から出力されるクロック供給オン信号５６は初期値がロー（Ｌ）信号である。
【００６２】
そして、ＲＳＴ入力端子５２から入力されるリセット信号ＲＳＴがロー（Ｌ）信号入力の後、ハイ（Ｈ）信号に変化し、このリセット信号ＲＳＴに基づいて、ＣＰＵ４３とメモリ及び周辺ＩＯ（入出力インターフェース）４４がリセットされる。
【００６３】
また、ＴＲＳＴ入力端子５１から入力されるテストリセット信号ＴＲＳＴに基づいてＪＴＡＧ制御部４２がリセットされる。
【００６４】
この場合、デバッグツールＤＴが接続されているので、ＪＴＡＧ制御部４２よりデバッグリセット信号５４を出力し、これが選択回路５５で選択されてデバッグリセット信号５４ａとしてデバッグ制御部４１に入力され、当該デバッグ制御部４１がリセットされる。その後、ＪＴＡＧ制御部４２よりクロック供給オン信号５６を出力して、論理和回路５７を通じてデバッグ制御部４１に対してクロックの供給をスタートする。これにより、ＪＴＡＧ制御部４２とデバッグ制御部４１とが相互に連動して、ＪＴＡＧに準拠したデバッグが実行される。
【００６５】
＜デバッグツールを接続しない場合の動作＞
一方、デバッグツールＤＴを接続せずに、たとえば図３のようにシリアル通信４０などを通してマイクロコンピュータＭＣ１とホストコンピュータ１１と接続するような形態で使用する場合は、図１において、ＵＳＤ入力端子５３から入力されるＵＳＤモード信号としてハイ（Ｈ）信号を入力する。そうすると、選択回路５５では、ＲＳＴ入力端子５２から入力されたリセット信号ＲＳＴをデバッグリセット信号５４ａとして選択する。これにより、このリセット信号ＲＳＴによってＣＰＵ４３とメモリ及び周辺ＩＯ４４がリセットされる際に、デバッグ制御部４１もリセットされる。
【００６６】
この場合、デバッグツールＤＴが接続されていないので、ＴＲＳＴ入力端子５１にはテストリセット信号ＴＲＳＴが入力されず、よってＪＴＡＧ制御部４２はリセットされない。
【００６７】
また、ＪＴＡＧ制御部４２からのクロック供給オン信号５６はロー（Ｌ）信号であるが、ＵＳＤ入力端子５３から入力されるＵＳＤモード信号がハイ（Ｈ）信号であるため、論理和回路５７から出力されるクロック供給オン信号５６ａはハイ（Ｈ）信号になる。これにより、デバッグ制御部４１に対してクロック供給がスタートする。
【００６８】
このように、デバッグツールＤＴを接続しない場合（図３）でも、デバッグ制御部４１に対して、リセットやクロック供給をスタートすることができる。
【００６９】
次に、この実施の形態におけるモニタコード供給機能６３でのデバッグ割り込み発生時の動作を図４及び図５に基づいて説明する。尚、図４では、図１６に示した従来例と同様の機能を有する要素について同一符号を付している。
【００７０】
まず、マイクロコンピュータＭＣ１にデバッグ割り込みが発生すると、図５中のステップＳ０１において、ＣＰＵ４３は、モニタコード供給機能６３内の命令コードバッファ２３に命令をフェッチにいく。
【００７１】
次に、ステップＳ０２において、ＪＴＡＧ制御部４２より命令コードが供給されているかどうかを判断し、ＪＴＡＧ制御部４２より命令コードが供給されていれば、ステップＳ０３で、供給されている命令コードを実行した後、再びステップＳ０１からの処理を繰り返す。
【００７２】
一方、ステップＳ０２で、ＪＴＡＧ制御部４２より命令コードが供給されていないと判断した場合は、ステップＳ０４に進み、ＵＳＤ入力端子５３から入力されたＵＳＤモード信号がハイ（Ｈ）信号（アクティベート）であるか否かを判断する。そして、ＵＳＤモード信号がロー（Ｌ）信号（ノンアクティベート）であれば、ステップＳ０５に進み、命令コードバッファ２３の先頭へジャンプする命令を、モニタコード供給機能６３が供給する。
【００７３】
一方、ステップＳ０４において、ＵＳＤモード信号がハイ（Ｈ）信号（アクティベート）であれば、ステップＳ０６に進み、モニタコード供給機能６３はユーザプログラム（例えばモニタプログラム）の先頭へジャンプする命令を供給する。
【００７４】
その他のモニタコード供給機能６３の動作の詳細については、図１６に示した従来例と同じであるので、その説明を省略する。
【００７５】
このように、ＵＳＤ入力端子５３から入力されたＵＳＤモード信号をロー（Ｌ）信号にしてデバッグツールＤＴを接続している場合には、デバッグツールＤＴから供給されるモニタコードを実行してプログラムのデバッグを行う一方、ＵＳＤ入力端子５３から入力されたＵＳＤモード信号をハイ（Ｈ）信号にしてデバッグツールＤＴを接続しない場合には、例えば、メモリにダウンロードされているユーザのモニタプログラムの先頭へジャンプすることができる。
【００７６】
したがって、ユーザのモニタプログラムについて、デバッグ制御部４１の機能を使用して実行させることができ、ユーザのモニタプログラム専用のハードウェアを追加することなく、データのアクセスをチェックし、ハードウェアのブレークポイント等を作成することができる。
【００７７】
｛実施の形態２．｝
図６はこの発明の実施の形態２．に係るデバッグ機能内蔵マイクロコンピュータＭＣ２を示す図である。なお、図６では実施の形態１．と同様の機能を有する要素については同一符号を付している。この実施の形態のデバッグ機能内蔵マイクロコンピュータＭＣ２は、図６の如く、デバッグ制御部４１、ＪＴＡＧ制御部４２、ＣＰＵ４３ａやメモリ及び周辺ＩＯ（入出力回路）４４が設置されている。尚、デバッグ制御部４１及びＪＴＡＧ制御部４２は、これらを併せてデバッグ機能４５と称される。
【００７８】
そして、このデバッグ機能内蔵マイクロコンピュータＭＣ２のデバッグ制御部４１は、デバッグツールＤＴを接続して使用する第１のデバッグモードと、デバッグツールＤＴを接続しないで使用する第２のデバッグモードとについて、ＣＰＵ４３ａ内に設定されたＵＳＤＣレジスタ７１の値に応じてモード切替を行うようになっている。
【００７９】
具体的に、このマイクロコンピュータＭＣ２には、ＪＴＡＧインタフェース１４におけるテストリセット信号ＴＲＳＴが入力されるＴＲＳＴ入力端子５１と、ＣＰＵ４３ａとメモリ及び入出力回路等の周辺素子４４をリセットするリセット信号ＲＳＴが入力されるＲＳＴ入力端子５２とがそれぞれ外部ピンに直結される端子として形成されている。ただし、実施の形態１．で形成されていたＵＳＤ入力端子５３は、実施の形態２．において省略されている。
【００８０】
そして、この実施の形態においては、実施の形態１．におけるＵＳＤモード信号に相当するデータを、ＣＰＵ４３ａ内のＵＳＤＣレジスタ７１に格納し、このＵＳＤＣレジスタ７１の値に基づいて、デバッグ制御部４１のモード切替を行うようになっている。
【００８１】
また、マイクロコンピュータＭＣ２の内部には、ＣＰＵ４３ａ内においてアクセスされるＵＳＤＣレジスタ７１内の一部の値（デバッグリセットビット信号７３）とＪＴＡＧ制御部４２からのデバッグリセット信号５４との論理和を演算する論理和回路７２と、ＪＴＡＧ制御部４２からのクロック供給オン信号５６と上述のＵＳＤＣレジスタ７１内の他の一部の値（クロック供給オンオフビット信号７４）との論理和を演算してこれをクロック供給オン信号５６ａとしてデバッグ制御部４１に入力する論理和回路５７とを備える。
【００８２】
図７はＵＳＤＣレジスタ７１内に格納されるデータを説明した図である。ＵＳＤＣレジスタ７１は、ＣＰＵ４３ａ内でアクセス可能な３２ビット固定長のレジスタであり、デバッグモジュールクロック供給ＯＮ／ＯＦＦビット８１、デバッグモジュールリセットビット８２及びＵＳＤ機能利用可能ビット８３を有する。
【００８３】
デバッグモジュールクロック供給ＯＮ／ＯＦＦビット８１は、読み出しと書き込みの両方が可能であり、「１」であるときにデバッグモジュールクロック供給ＯＮ、「０」であるときにはデバッグモジュールクロック供給ＯＦＦであることをそれぞれ意味し、初期値が「０」とされて、クロック供給オンオフビット信号７４として論理和回路５７に出力される。
【００８４】
デバッグモジュールリセットビット８２は、読み出しと書き込みの両方が可能であり、「１」であるときにリセットアサート、「０」であるときにはリセットネゲートであることをそれぞれ意味し、初期値が「０」とされて、デバッグリセットビット信号７３として論理和回路７２に出力される。
【００８５】
ＵＳＤ機能利用可能ビット８３はＣＰＵ４３ａ内において読み出しのみ可能であるが、ＪＴＡＧ制御部４２から書き込みが可能な構成になっている。ＵＳＤ機能利用可能ビット（ユーザー利用可能表意手段）８３が「０」であればモニタプログラム等のユーザプログラムからデバッグ制御部４１の機能が利用可能なことを示す。ＵＳＤ機能利用可能ビット８３が「１」であれば利用不可能なことを示す。
【００８６】
＜デバッグツールを接続する場合の動作＞
続いて、デバッグツールＤＴを接続して使用する場合のデバッグ制御部４１に対するリセットの動作とクロック供給スタート方法を説明する。
【００８７】
まず、デバッグツールＤＴよりＴＲＳＴ入力端子５１を介してＪＴＡＧ制御部４２にリセットをかける。
【００８８】
次に、デバッグツールＤＴがＪＴＡＧ制御部４２を通じてＣＰＵ４３ａ内のＵＳＤＣレジスタ７１のＵＳＤ機能利用可能ビット８３を「０」にクリアする。また、デバッグツールＤＴよりＪＴＡＧ制御部４２を通じて、デバッグリセット信号５４を論理和回路７２に出力する。このとき、ＵＳＤＣレジスタ７１からのデバッグリセットビット信号７３はロー（Ｌ）信号であるため、論理和回路７２からデバッグリセット信号５４ａがデバッグ制御部４１に出力され、これに基づいてデバッグ制御部４１をリセットする。また、デバッグツールＤＴよりＪＴＡＧ制御部４２を経由してクロック供給オン信号５６をハイ（Ｈ）信号として論理和回路５７に出力する。このとき、ＵＳＤＣレジスタ７１からのクロック供給オンオフビット信号７４はロー（Ｌ）信号であるが、ＪＴＡＧ制御部４２からのクロック供給オン信号５６がハイ（Ｈ）信号であるため、クロック供給オン信号５６ａはハイ（Ｈ）信号となり、故に、デバッグ制御部４１に対するクロック供給がスタートする。
【００８９】
また、デバッグツールＤＴはＪＴＡＧ制御部４２を経由してデバッグモード信号７５をロー（Ｌ）信号にする。このように、デバッグモード信号７５がロー（Ｌ）信号となっているときには、実施の形態１．におけるデバッグ割り込み発生時のモニタコード供給機能６３での動作（ＵＳＤモード信号がロー（Ｌ）信号の場合の動作）と同様であるため、ここではその説明を省略する。
【００９０】
デバッグツールＤＴはＪＴＡＧ制御部４２を経由してＵＳＤＣレジスタ７１のＵＳＤ機能利用可能ビット８３（図７）を「０」（利用不可）にする。
【００９１】
その後、ユーザプログラムのダウンロード、実行制御を行いながらプログラムのデバッグを行う。
【００９２】
＜デバッグツールを接続しない場合の動作＞
デバッグツールＤＴを接続しない場合において、デバッグ機能内蔵マイクロコンピュータＭＣ２のメモリ４４上で動作するモニタプログラム等のプログラムの動作を以下に説明する。
【００９３】
デバッグツールＤＴがマイクロコンピュータＭＣ２に接続されていないので、テストリセット信号ＴＲＳＴはロー（Ｌ）信号であり、ＪＴＡＧ制御部４２にはリセットがかからず、ＪＴＡＧ制御部４２から論理和回路７２に与えられるデバッグリセット信号５４はロー（Ｌ）信号となっている。一方、ＪＴＡＧ制御部４２からのデバッグ制御部４１に与えられるデバッグモード信号７５はハイ（Ｈ）信号になっている。
【００９４】
デバッグモード信号がハイ（Ｈ）信号の時のデバッグ割り込み発生時のモニタコード供給機能６３の動作は、実施の形態１．におけるデバッグ割り込み発生時のモニタコード供給機能６３での動作（ＵＳＤモード信号がハイ（Ｈ）信号の場合の動作）と同様であるため、ここではその説明を省略する。
【００９５】
また、ＪＴＡＧ制御部４２から論理和回路５７に出力されるクロック供給オン信号５６はロー（Ｌ）信号になっている。
【００９６】
この実施の形態においては、デバッグ制御部４１のリセットとクロック供給スタートが、デバッグ機能内蔵マイクロコンピュータＭＣ２内で動作するモニタプログラムからＵＳＤＣレジスタ７１を操作して行う。
【００９７】
次に、この実施の形態におけるモニタプログラムの動作を説明する。図８はこの実施の形態でのモニタプログラムの動作を示すフローチャートである。
【００９８】
まずＣＰＵ４３ａにリセットがかかると、図８中のステップＳ１１において、リセットベクタへジャンプする。そして、ステップＳ１２で、モニタプログラムの先頭へジャンプする。
【００９９】
続いて、ステップＳ１３において、ＵＳＤ機能利用可能ビット８３の値に基づいて、デバッグ機能４５が動作可能であるか否かを判断する。
【０１００】
具体的に、デバッグツールＤＴが接続されている場合は、デバッグツールＤＴによりデバッグ制御部４１に対するリセットの動作とクロック供給スタートが終わっており、ＵＳＤ機能利用可能ビット８３の値が「０」になっており、この場合はＣＰＵ２３ａにより直接にデバッグ機能４５を動作させることが不能であると判断し、次のステップＳ１４に進む。
【０１０１】
ステップＳ１４では、モニタプログラムはＵＳＤ機能利用可能ビット８３を読み出し、ＣＰＵ２３ａによる直接のデバッグ機能４５が利用不可「０」であるので、メモリ４４等を使わずデバッグを実行する。即ち、デバッグツールＤＴからＪＴＡＧ制御部４２を経由してモニタプログラムを実行することが可能である。
【０１０２】
一方、ステップＳ１３において、デバッグツールＤＴが接続されていない場合には、モニタプログラムはＵＳＤ機能利用可能ビット８３を読み出し、デバッグ機能が利用可能「１」であることを確認し、デバッグ機能４５のＣＰＵ２３ａによる直接の使用が可能であることを判断する。この場合は、次のステップＳ１５に進み、デバッグ機能を使ってデバッグを実行する。
【０１０３】
ここで、デバッグツールＤＴが接続されてない場合に、デバッグ割り込みが発生すると、ステップＳ１６において、ＣＰＵ４３ａは命令コードバッファ２３より分岐（ブランチ）命令をフェッチし、メモリ４４上にあるモニタプログラムを実行する。
【０１０４】
このように、デバッグのためのモニタプログラムをメモリ４４上で実行した場合の動作を説明したが、デバッグのためのモニタプログラム以外のユーザプログラムをメモリ４４上で実行してもよい。このように動作手順をデバッグのためのモニタプログラム以外のユーザプログラムをメモリ４４上で実行する場合の処理手順を図９に示す。ステップＳ２１〜Ｓ２６は、それぞれステップＳ１１〜Ｓ１６に対応しているが、ステップＳ１２におけるモニタプログラムがステップＳ２２におけるユーザプログラムに変更され、ステップＳ１４，Ｓ１５におけるデバッグの処理がステップＳ２４，Ｓ２５においてユーザプログラムに変更されている他は、図９の処理手順は図８の処理手順と同様であるため、説明を省略する。このように、ユーザのモニタプログラムはデバッグ制御部４１の機能を使用することができ、ユーザのモニタプログラム専用のハードウェアを追加することなく、データのアクセスをチェックし、ハードウエアのブレークポイント等を作成することができる。
【０１０５】
また、メモリ上で動作するモニタプログラムを、デバッグツールＤＴを接続して動作させたり、接続せずに動作させたりでき、特にデバッグツールＤＴを接続しなかった場合は、モニタプログラムがデバッグ機能を利用することができる。
【０１０６】
また、メモリ上で動作するユーザプログラムを、デバッグツールＤＴを接続して動かしたり、接続しなかった場合にユーザプログラムがデバッグ機能を利用することができる。
【０１０７】
｛実施の形態３．｝
図１０はこの発明の実施の形態３．に係るデバッグ機能内蔵マイクロコンピュータＭＣ３の内部構成を示す機能ブロック図である。なお、かかる図１０では実施の形態１．と同様の機能を有する要素については同一符号を付している。
【０１０８】
この実施の形態のデバッグ機能内蔵マイクロコンピュータＭＣ３は、モニタコード供給機能６３ａとして、実施の形態１．のモニタコード供給機能６３と同様の構成に対して、さらにジャンプアドレス指定レジスタ９１を追加している。
【０１０９】
このジャンプアドレス指定レジスタ９１にはユーザプログラムから予めデバッグ割り込みが発生した場合の飛び先番地を設定しておく。
【０１１０】
デバッグツールＤＴを接続しない場合のモニタコード供給機能６３ａにおけるデバッグ割り込み発生時の動作を説明する。
【０１１１】
まずデバッグ割り込みが発生すると、図１１中のステップＳ３１において、ＣＰＵ４３は命令コードバッファ２３に命令をフェッチにいく。
【０１１２】
次にステップＳ３２において、ＪＴＡＧ制御部４２より命令コードが供給されているかどうかを判断し、ＪＴＡＧ制御部４２より命令コードが供給されていれば、その供給されている命令コードを実行する（ステップＳ３３）。その後、ステップＳ３１からの処理を繰り返す。
【０１１３】
一方、ステップＳ３２において、ＪＴＡＧ制御部４２より命令コードが供給されていなければ、続くステップＳ３４において、ＵＳＤ入力端子５３から入力されたＵＳＤモード信号がハイ（Ｈ）信号（アクティベート）であるかどうかを判断する。そして、ＵＳＤモード信号がハイ（Ｈ）信号であれば、ステップＳ３５に進み、命令コードバッファ２３の先頭へジャンプする命令を、モニタコード供給機能６３ａが供給する。
【０１１４】
一方、ステップＳ３４において、ＵＳＤモード信号がロー（Ｌ）信号であれば、ステップＳ３６に進み、モニタコード供給機能６３はジャンプアドレス指定レジスタ９１で指定したアドレスへジャンプする命令を供給する。
【０１１５】
この実施の形態におけるその他の動作は、実施の形態１．及び実施の形態２．と同様であるので、その説明を省略する。
【０１１６】
この実施の形態においては、実施の形態１．及び実施の形態２．における利点に加えて、ユーザプログラム（あるいはモニタプログラム）のデバッグ割り込みが発生した場合の飛び先番地を自由に変えることができるので、ユーザプログラム（あるいはモニタプログラム）の先頭番地が変わったときでも、容易に対応できる。
【０１１７】
【発明の効果】
請求項１に記載の発明によれば、主演算素子と、外部にデバッグツールが接続されている場合に当該デバッグツールとの間で所定のインターフェースで信号を送受信しながらバウンダリスキャンの制御を行うバウンダリスキャン制御部と、バウンダリスキャン制御部及び主演算素子からの指示に基づいてデバッグのための制御を行うデバッグ制御部とを備え、デバッグ制御部が、モニタコードを供給するとともに、デバッグ制御部について、デバッグツールを接続して使用するか、デバッグツールを接続しないで使用するかを判断し、この判断結果に応じてモニタコードが変更可能とされたモニタコード供給機能を有するので、このモニターコードの変更により、デバッグツールを接続しない場合にモニタプログラム等のユーザープログラムに基づいてデバッグ制御部にデバッグ処理を実行させることができる。
【０１１８】
請求項２に記載の発明によれば、モニタコード供給機能が、判断結果に応じてモニタコードを分岐する分岐命令を保有しているので、モニターコードを容易に変更することができる。
【０１１９】
請求項３に記載の発明によれば、モニタコード供給機能が、判断結果に応じてジャンプ先アドレスを変更して指定するレジスタを持ち、そのアドレスにジャンプする命令を供給することのできるようにしているので、モニターコードを容易に変更することができる。
【０１２０】
請求項４及び請求項５に記載の発明によれば、デバッグ制御部が、外部からの所定の信号の入力によってデバッグツールが接続されていない旨が指定されている場合に、主演算素子にリセット信号が与えられたときに併せてリセットされ、且つモード信号に基づいてクロックの供給が開始されるようにしているので、デバッグツールを接続しない場合にも、デバッグ制御部を容易に機能させることが可能となる。
【０１２１】
請求項６に記載の発明によれば、デバッグ制御部が、主演算素子から与えられたデバッグリセットビット信号に応じてリセットし、且つ、主演算素子から与えられたクロック供給オンオフビット信号に応じてクロックの供給が開始されるので、デバッグツールを接続しない場合にも、デバッグ制御部を容易に機能させることが可能となる。
【０１２２】
請求項７及び請求項８に記載の発明によれば、バウンダリスキャン制御部からデータの書込が可能とされ、且つ主演算素子でデータの読み出しが可能とされて、デバッグ制御部がデバッグツールを接続しないで使用することが可能であり、ユーザプログラムがデバッグ制御部を利用し得る旨を表意するユーザー利用可能表意手段を有するので、ユーザプログラムがデバッグ制御部を使用できるか否かの判断を極めて容易に行うことができる。
【０１２３】
請求項９に記載の発明によれば、モニタコード供給機能が、ユーザプログラムから予めデバッグ割り込みが発生した場合の飛び先番地が設定されるジャンプアドレス指定レジスタを有するので、ユーザプログラムの先頭番地が変わったときでも、容易に対応できるという効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１．に係るデバッグ機能内蔵マイクロコンピュータを示す機能ブロック図である。
【図２】デバッグ機能内蔵マイクロコンピュータがデバッグツールを介してホストコンピュータに接続された状態を示すブロック図である。
【図３】デバッグ機能内蔵マイクロコンピュータが直接にホストコンピュータに接続された状態を示すブロック図である。
【図４】この発明の実施の形態１．に係るデバッグ機能内蔵マイクロコンピュータを示すブロック図である。
【図５】この発明の実施の形態１．に係るデバッグ機能内蔵マイクロコンピュータの動作を示すフローチャートである。
【図６】この発明の実施の形態２．に係るデバッグ機能内蔵マイクロコンピュータを示す機能ブロック図である。
【図７】ＵＳＤＣレジスタのフォーマットを示す図である。
【図８】この発明の実施の形態２．に係るデバッグ機能内蔵マイクロコンピュータの動作の一例を示すフローチャートである。
【図９】この発明の実施の形態２．に係るデバッグ機能内蔵マイクロコンピュータの動作の他の例を示すフローチャートである。
【図１０】この発明の実施の形態３．に係るデバッグ機能内蔵マイクロコンピュータを示す機能ブロック図である。
【図１１】この発明の実施の形態３．に係るデバッグ機能内蔵マイクロコンピュータの動作を示すフローチャートである。
【図１２】従来のデバッグ機能内蔵マイクロコンピュータを示す機能ブロック図である。
【図１３】デバッグ機能内蔵マイクロコンピュータがデバッグツールを介してホストコンピュータに接続された状態を示すブロック図である。
【図１４】従来のデバッグ機能内蔵マイクロコンピュータを示すブロック図である。
【図１５】ＪＴＡＧ制御部の内部構成を示すブロック図である。
【図１６】デバッグ機能内蔵マイクロコンピュータを示すブロック図である。
【図１７】デバッグ機能内蔵マイクロコンピュータが直接にホストコンピュータに接続された状態を示すブロック図である。
【符号の説明】
１１　ホストコンピュータ、１４　ＪＴＡＧインタフェース、２３　命令コードバッファ、４０　シリアル通信、４１　デバッグ制御部、４２　ＪＴＡＧ制御部、４３，４３ａ　ＣＰＵ、４４　周辺素子、４５　デバッグ機能、５１　ＴＲＳＴ入力端子、５２　ＲＳＴ入力端子、５３　ＵＳＤ入力端子、５４，５４ａ　デバッグリセット信号、５５　選択回路、５６，５６ａ　クロック供給オン信号、５７　論理和回路、６１　アクセスブレークレジスタ、６２　実行前ＰＣブレークレジスタ、６３，６３ａ　モニタコード供給機能、７１　ＵＳＤＣレジスタ、７２　論理和回路、７３　デバッグリセットビット信号、７４　クロック供給オンオフビット信号、７５　デバッグモード信号、８１　デバッグモジュールクロック供給ＯＮ／ＯＦＦビット、８２　デバッグモジュールリセットビット、８３　ＵＳＤ機能利用可能ビット、９１　ジャンプアドレス指定レジスタ、ＤＴ　デバッグツール、ＭＣ，ＭＣ１〜ＭＣ３　デバッグ機能内蔵マイクロコンピュータ、ＴＲＳＴ　テストリセット信号。
【図１】
2004038464.tif 000003
【図２】
2004038464.tif 000004
【図３】
2004038464.tif 000005
【図４】
2004038464.tif 000006
【図５】
2004038464.tif 000007
【図６】
2004038464.tif 000008
【図７】
2004038464.tif 000009
【図８】
2004038464.tif 000010
【図９】
2004038464.tif 000011
【図１０】
2004038464.tif 000012
【図１１】
2004038464.tif 000013
【図１２】
2004038464.tif 000014
【図１３】
2004038464.tif 000015
【図１４】
2004038464.tif 000016
【図１５】
2004038464.tif 000017
【図１６】
2004038464.tif 000018
【図１７】
2004038464.tif 000019