(57)【要約】【課題】  外部のデバッグ用装置を用いることも、デバッグ専用の回路の追加も必要なく、また、デバッグ用プログラムを格納するメモリの容量を少なくすることできるマイクロコンピュータおよびそのデバッグ方法を提供する。【解決手段】  マイクロコンピュータ１は、テスト端子９によりデバッグモードが設定されると、ＲＯＭ４に格納されたデバッグ用ブートプログラムが起動し、通信回路３を介して外部からＲＡＭ５へデバッグプログラムの書き込みが可能となる。また、ＲＯＭコレクション回路６の機能を利用して、デバッグ時のブレークポイントの設定を行うことができる。【選択図】  図１
2006091996.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
外部とデータの通信を行う通信回路と、
デバッグモードが設定されるテスト端子と、
前記テスト端子によりデバッグモードが設定されたときに起動するデバッグ用ブートプラグラムが格納されるＲＯＭと、
前記デバッグ用ブートプログラムが起動すると前記通信回路を介して外部からデバッグ用プログラムの書き込みが可能となるＲＡＭと、
プログラムカウンタの値が予め定められた値と一致したときに前記ＲＡＭの予め指定されたアドレスのプログラムを読み出すＲＯＭコレクション回路と
を具備することを特徴とするマイクロコンピュータ。
【請求項２】
前記デバッグ用プログラムは、デバッグコマンドの実行ごとにそのデバッグコマンドの実行に必要なプログラムのみが送信され、送信されるごとに前記ＲＡＭの所定の領域を順次書き換えて格納されることを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記デバッグモード時に前記ＲＯＭコレクション回路が読み出す前記ＲＡＭのアドレスが、前記通信回線を介して外部から任意に指定できることを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項４】
テスト端子によりデバッグモードを設定することでＲＯＭに格納されたデバッグ用ブートプログラムを起動し、
このデバッグ用ブートプログラムの実行により通信回路を介しての外部からのＲＡＭへのデバッグプログラムの書き込みを可能とし、
デバッグコマンドの入力に従ってそのデバッグコマンドの実行に必要なデバッグ用プログラムを前記ＲＡＭの所定の領域に格納し、
この格納されたデバッグ用プログラムを実行することによりユーザプログラムのデバッグを行うことを特徴とするマイクロコンピュータのデバッグ方法。
【請求項５】
前記デバッグ用プログラムの中に前記ユーザプログラムの実行を停止させる命令が書かれたプログラムを含ませ、
前記ユーザプログラムの実行中に、プログラムカウンタの値が予め定めたブレークポイントの値と一致すると、前記ＲＯＭコレクション回路が前記プログラムカウンタの値を書き換えて、前記ユーザプログラムの実行を停止させる命令が書かれたプログラムを前記ＲＡＭから読み出し、
このプログラムを実行することにより前記ユーザプログラムの実行を停止させることを特徴とする請求項４に記載のマイクロコンピュータのデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータおよびそのデバッグ方法に関し、特に基板に実装された状態でプログラムのデバッグが可能なマイクロコンピュータに関する。
【背景技術】
【０００２】
従来、基板に実装されたマイクロコンピュータに格納されているプログラムのデバッグにあたっては、オンボードデバッグ用のエミュレータ装置を用いることが多く行われている。しかし、このようなエミュレータ装置は一般に高価であり、このようなエミュレータ装置を用いると、その分プログラムの開発コストが増加するという問題が発生する。そこで、このようなエミュレータ装置を使わずにデバッグを行うために、ユーザプログラム格納用メモリとは別にデバッグ用プログラムを格納する専用メモリを設け、デバッグ時にはこの専用メモリに格納されたデバッグ用プログラムを実行するようにしたマイクロコンピュータが提案されている（例えば、特許文献１参照。）。
【０００３】
しかし、いろいろなデバッグを実行しようとするとデバッグ用プログラムのサイズが大きくなり、デバッグ用プログラムを格納する専用メモリの容量が大きくなって、これを搭載するマイクロコンピュータのチップサイズが増大してチップコストが増加するという問題があった。
【特許文献１】特開平１１−６５８８４号公報（第３ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
そこで、本発明の目的は、外部のデバッグ用装置を用いずにデバッグすることが可能でありながら、デバッグ専用の回路を追加する必要がなく、またデバッグ用プログラムを格納するメモリのメモリ容量を少なくすることができるマイクロコンピュータおよびそのデバッグ方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、ＣＰＵと、外部とデータの通信を行う通信回路と、デバッグモードが設定されるテスト端子と、前記テスト端子によりデバッグモードが設定されたときに起動するデバッグ用ブートプラグラムが格納されるＲＯＭと、前記デバッグ用ブートプログラムが起動すると前記通信回路を介して外部からデバッグ用プログラムの書き込みが可能となるＲＡＭと、プログラムカウンタの値が予め定められた値と一致したときに前記ＲＡＭの予め指定されたアドレスのプログラムを読み出すＲＯＭコレクション回路とを具備することを特徴とするマイクロコンピュータが提供される。
【０００６】
また、本発明の一態様によれば、テスト端子によりデバッグモードを設定することでＲＯＭに格納されたデバッグ用ブートプログラムを起動し、このデバッグ用ブートプログラムの実行により通信回路を介しての外部からのＲＡＭへのデバッグプログラムの書き込みを可能とし、デバッグコマンドの入力に従ってそのデバッグコマンドの実行に必要なデバッグ用プログラムを前記ＲＡＭの所定の領域に格納し、この格納されたデバッグ用プログラムを実行することによりユーザプログラムのデバッグを行うことを特徴とするマイクロコンピュータのデバッグ方法が提供される。
【発明の効果】
【０００７】
本発明によれば、マイクロコンピュータが通常有するＲＡＭの一部にデバッグ用プログラムを書き込んでデバッグを行うので外付けのデバッグ用装置を必要とせず、またデバッグ専用メモリなどを追加する必要がないのでマイクロコンピュータのチップサイズの増加を防止することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【０００９】
図１は、本発明の実施例に係るマイクロコンピュータの構成の例を示すブロック図である。
【００１０】
本実施例のマイクロコンピュータ１は、プログラムに従って演算処理や制御を行うＣＰＵ２と、外部との通信を行う通信回路３と、ブートプログラムやユーザプログラムなどが格納されるＲＯＭ４と、データなどの書き込みおよび読み出しが行われるＲＡＭ５と、ＲＯＭ４に格納されたプログラムの誤りをＲＡＭ５に書き込んだプログラムに置き換えてプログラムの誤りを修正するＲＯＭコレクション回路６と、次に実行する命令のアドレスを記憶するプログラムカウンタ７と、データを転送する内部バス８と、外部よりデバッグモードを設定するためのテスト端子９とを有する。
【００１１】
ＲＯＭ４にはデバッグモード時に使用されるデバッグ用ブートプログラムが格納されている。また、ＲＡＭ５の領域の一部はデバッグ実行用のプログラムを書き込むための領域（デバッグプログラム領域）となっている。しかし、通常動作時には、このデバッグプログラム領域には、何も書き込まれていない。
【００１２】
ＲＯＭコレクション回路６は、比較アドレスレジスタ６１と、比較器６２と、ジャンプ先のＲＡＭのアドレスが書かれたジャンプアドレスレジスタ６３とを有している。比較器６２は、プログラムカウンタ７の値（ＰＣ値）と比較アドレスレジスタ６１の値を比較する。ＰＣ値が比較アドレスレジスタ６１の値に一致すると、ＲＯＭコレクション回路６は、プログラムカウンタ７をジャンプアドレスレジスタ６３に書き込まれている値に書き換える。これにより、ＲＡＭ５からジャンプアドレスレジスタ６３で指定されたアドレスに書き込まれているプログラムが読み出される。
【００１３】
通常動作時、ＲＯＭコレクション回路６は、ＲＯＭ４に格納されたプログラムの誤りをＲＡＭ５に書き込んだプログラムに置き換えてプログラムの誤りを修正する動作を行うが、デバッグモード時には、デバッグ実行中にブレークポイントでユーザプログラムの実行を停止させる動作に使用する。ブレークポイントの設定方法などの詳細は後述する。
【００１４】
このような構成のマイクロコンピュータ１においてユーザプログラムのデバッグを行うときには、デバッグ環境を構築するためにマイクロコンピュータ１を次のように動作させる。
【００１５】
先ず、テスト端子９によりデバッグモードに設定する。
【００１６】
デバッグモードが設定されると、ＲＯＭ４からデバッグ用ブートプログラム自動的に読み出されて起動する。デバッグ用ブートプログラムの起動後、ＩＤＬＥモード（ＣＰＵ２を停止させ、周辺回路のみを動作させるモード）に移行させて、通信回路３を介したデバッグコマンドの受け付けを可能とする。
【００１７】
デバッグブートプログラムが起動すると、ＲＡＭ５のデバッグプログラム領域の一部にデバッグプログラムローディング用プログラムが書き込まれる。このデバッグプログラムローディング用プログラムは、デバッグコマンドが入力された後にＩＤＬＥモードが解除されると、そのデバッグコマンドを実行するのに必要なデバッグプログラムを、通信回路３を介してＲＡＭ５のデバッグプログラム領域に書き込む動作を行う。
【００１８】
なお、デバッグプログラムローディング用プログラムはデバッグモードの間ＲＡＭ５に書き込まれたままになるが、デバッグプログラムはデバッグコマンドの入力の度に書き換えられる。すなわち、デバッグプログラムはＲＡＭ５のデバッグプログラム領域の中の一定の領域を書き換えながら使用する。したがって、ＲＡＭ５におけるデバッグプログラム領域を少なくすることができる。
【００１９】
次に、このような構成の本実施例のマイクロコンピュータ１におけるデバッグ実行の手順を図２を用いて説明する。
【００２０】
図２は、本実施例のマイクロコンピュータ１におけるデバッグ実行の手順を示すフローチャートである。
【００２１】
デバッグを行うときには、先ずテスト端子９によりデバッグモードを設定する（ステップＳ０１）。すると、ＲＯＭ４に格納されているデバッグ用ブートプログラムが起動する（ステップＳ０２）。これによりデバッグプログラムローディング用プログラムがＲＡＭ５のデバッグプログラム領域に書き込まれる（ステップＳ０３）。ここまでがデバッグの実行に必要な環境を構築するためのステップである。
【００２２】
続いて、デバッグを実行するときの手順を説明する。
【００２３】
先ずＩＤＬＥモードに移行し、デバッグコマンドを通信回路３を介して入力する（ステップＳ０４）。次いでＩＤＬＥモードを解除し、ステップＳ０４で入力したデバッグコマンドの実行に必要なデバッグプログラムを通信回路３を介してＲＡＭ５のデバッグプログラム領域に書き込む（ステップＳ０５）。
【００２４】
ＲＡＭ５のデバッグプログラム領域へのデバッグプログラムの書き込みが終わると、デバッグプログラムの実行を開始する（ステップＳ０６）。このとき、ＲＯＭ４からの読み出しをデバッグ用ブートプログラムからユーザプログラムの読み出しに切り替えて、デバッグの対象となるユーザプログラムを実行する（ステップＳ０７）。
【００２５】
引き続き別のデバッグコマンドを入力してデバッグを続行するときは、ステップＳ０４に戻って以降のステップを繰り返し、そうでないときは終了する（ステップＳ０８）。
【００２６】
以上のようなフローで所望のデバッグを実行することができる。
【００２７】
次に、デバッグ時にブレークポイントを設定してユーザプログラムの実行を停止させるブレーク処理の方法について、図３を用いて説明する。本実施例のマイクロコンピュータ１においては、ブレークポイントの設定およびユーザプログラムの実行停止に、ＲＯＭコレクション回路６の機能を利用する。
【００２８】
図３は、本実施例のマイクロコンピュータ１におけるブレーク処理の手順の例を示すフローチャートである。
【００２９】
先ず、ブレーク処理を含むデバッグコマンドを入力する（ステップＳ１１）。次にＩＤＬＥ命令などのプログラムの実行を停止する命令が書かれたプログラムを含むデバッグプログラムを通信回路３を介してＲＡＭ５のデバッグプログラム領域に書き込む（ステップＳ１２）。
【００３０】
続いて、ブレークポイントのアドレスを通信回路３を介してＲＯＭコレクション回路６の比較アドレスレジスタ６１に書き込む（ステップＳ１３）。また、ステップＳ１２で書き込んだプログラムの実行を停止する命令が書かれたプログラムが格納されているＲＡＭ５のアドレスを通信回路３を介してＲＯＭコレクション回路６のジャンプアドレスレジスタ６３に書き込む（ステップＳ１４）。
【００３１】
その後、デバッグプログラムを動作させてユーザプログラムを実行する（ステップＳ１５）。そして、ユーザプログラムの実行中、ＲＯＭコレクション回路６の比較器６２は、ＰＣ値と比較アドレスレジスタ６１の値が一致するかどうかを監視する（ステップＳ１６）。ＰＣ値が比較アドレスレジスタ６１の値と一致しなければ（ＮＯ）、ステップＳ１５に戻ってユーザプログラムの実行を継続する。
【００３２】
ＰＣ値と比較アドレスレジスタ６１の値が一致すると（ＹＥＳ）、ジャンプアドレスレジスタ６３に書かれた値にプログラムカウンタ７の値を書き換える。これにより、プログラムカウンタ７が指定する次の命令の呼び出し先がジャンプアドレスレジスタ６３に書かれたアドレスへジャンプする（ステップＳ１７）。
【００３３】
これによりジャンプ先のＲＡＭ５のアドレスからプログラムの実行を停止する命令が書かれたデバッグプログラムが読み出されて実行される（ステップＳ１８）。
【００３４】
このデバッグプログラムの実行によりユーザプログラムの実行が停止する（ステップＳ１９）。
【００３５】
このような本実施例のマイクロコンピュータ１においては、ＲＯＭコレクション回路６の機能を利用することにより任意のアドレスにブレークポイントを設定することができる。
【００３６】
このような本実施例のマイクロコンピュータによれば、デバッグプログラムをＲＡＭに格納するのでデバッグプログラム用の専用のメモリを必要としない。また、ＲＡＭの一定の領域を書き換えて使用するのでデバッグプログラムの格納に必要なＲＡＭの容量を少なくすることができる。また、ブレーク処理もＲＯＭコレクション回路を利用して実行するので、ブレーク処理用の回路の追加を必要としない。このように、デバッグ機能を追加してもデバッグ用の回路の追加を必要としないため、マイクロコンピュータのチップサイズの増大を防止することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施例に係るマイクロコンピュータの構成の例を示すブロック図。
【図２】本発明の実施例に係るマイクロコンピュータにおけるデバッグ実行の手順の例を示すフローチャート。
【図３】本発明の実施例に係るマイクロコンピュータにおけるブレーク処理の手順の例を示すフローチャート。
【符号の説明】
【００３８】
１  マイクロコンピュータ
２  ＣＰＵ
３  通信回路
４  ＲＯＭ
５  ＲＡＭ
６  ＲＯＭコレクション回路
７  プログラムカウンタ
８  内部バス
９  テスト端子
６１  比較アドレスレジスタ
６２  比較器
６３  ジャンプアドレスレジスタ
【図１】
2006091996.tif 000003
【図２】
2006091996.tif 000004
【図３】
2006091996.tif 000005