(57)【要約】  【課題】  外部メモリにアクセスできない場合等において、デバッグのために大規模なメモリ領域を使用することなく、当該マイコンチップ自体を用いたエミュレーションシステムを実現することが可能なマイクロコンピュータを提供する。  【解決手段】  マイクロコンピュータ４０は、ユーザプログラムを格納する第１のメモリ４２と、ユーザデータを格納する第２のメモリ４３と、モニタプログラムに含まれている所定数のコマンドをホストコンピュータ１０から受信すると共にモニタデータを送受信するインタフェース４６と、受信された所定数のコマンドを順次格納する第３のメモリ４４と、通常モードにおいて第１のメモリに格納されているユーザプログラムを実行すると共にデバッグモードにおいて第３のメモリに格納されているコマンドを実行する中央処理装置４１とを具備する。【選択図】  図２
2006331147.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが作成したユーザプログラムを格納する電気的に書込み又は消去が可能な第１のメモリと、
ユーザプログラムを実行する際に用いられるデータを格納する第２のメモリと、
デバッグの際に用いられるモニタプログラムに含まれている所定数のコマンドがホストコンピュータから順次送信されたときにこれを受信すると共に、モニタプログラムを実行する際に用いられるデータを前記ホストコンピュータに送信し又は前記ホストコンピュータから受信するインタフェースと、
前記インタフェースによって受信された所定数のコマンドを順次格納する第３のメモリと、
通常モードにおいて、前記第１のメモリに格納されているユーザプログラムを実行すると共に、デバッグモードにおいて、前記第３のメモリに格納されているコマンドを実行する中央処理装置と、
を具備するマイクロコンピュータ。
【請求項２】
ブートアップ用のプログラムを格納する第４のメモリと、
ユーザプログラムが実行される通常モードと、モニタプログラムが実行されるデバッグモードとの内の一方を設定するために用いられるデバッグ端子と、
をさらに具備する、請求項１記載のマイクロコンピュータ。
【請求項３】
請求項１又は２記載のマイクロコンピュータと、
前記マイクロコンピュータのデバッグの際に用いられるモニタプログラムを格納する第１のメモリ領域と、モニタプログラムを実行する際に使用されるデータを格納する第２のメモリ領域とを有するホストコンピュータと、
前記マイクロコンピュータと前記ホストコンピュータとの間のデータ伝送をサポートするインタフェースボードと、
を具備するデバッグシステム。
【請求項４】
マイクロコンピュータのデバッグの際に用いられるモニタプログラムを格納する第１のメモリ領域と、モニタプログラムを実行する際に使用されるデータを格納する第２のメモリ領域とを有するホストコンピュータから、モニタプログラムに含まれている所定数のコマンドを前記マイクロコンピュータに順次送信するステップ（ａ）と、
前記マイクロコンピュータにおいて、前記ホストコンピュータから順次送信された所定数のコマンドを受信してメモリに順次格納するステップ（ｂ）と、
前記マイクロコンピュータにおいて、前記メモリに格納されている所定数のコマンドを実行すると共に、その際に使用されるデータを前記ホストコンピュータの前記第２のメモリ領域にセーブし又は前記ホストコンピュータの前記第２のメモリ領域からロードするステップ（ｃ）と、
を具備するデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、マイクロコンピュータ（マイコン）に関し、特に、外部メモリにアクセスできない、又は、コスト的な制約が厳しい場合において、当該マイコンチップ自体を用いたエミュレーションシステムを実現することが可能なマイクロコンピュータに関する。さらに、本発明は、そのようなマイクロコンピュータにおいて用いられるソフトウェア（プログラム）の開発を支援するためのデバッグシステム及びデバッグ方法に関する。
【背景技術】
【０００２】
近年、ゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末等の電子機器に組み込まれて高度な情報処理を実現できるマイコンに対する需要が高まっている。このような組み込み型のマイコンは、通常、ターゲットシステムを構成するユーザターゲットボードに実装される。そして、このターゲットシステムを動作させるソフトウェアのデバッグ作業を行うために、イン−サーキット・エミュレータ（ＩＣＥ：登録商標）と呼ばれるソフトウェア開発支援システム（デバッグシステム）が広く使用されている。このようなデバッグ作業において、ユーザは、ＩＣＥを用いてプログラムのバグを見つけ出し、マイコンのフラッシュメモリ等に格納されているプログラムを修正して書き換える。
【０００３】
従来は、上記のようなデバッグにおいて、ＣＰＵ置き換え型ＩＣＥが主流を占めていた。ＣＰＵ置き換え型ＩＣＥにおいては、デバッグ時に、ターゲットシステムからマイコンを取り外して、その代わりにデバッグツールのプローブを接続し、デバッグツールがマイコンの動作をエミュレート（模倣）することによりデバッグを行う。
【０００４】
しかしながら、ＣＰＵ置き換え型ＩＣＥによれば、プローブのピン数が多くなると、配線が増加してしまうという欠点があった。このため、マイコンの高速動作をエミュレートすることは困難である。また、マイコンをターゲットシステムに実装して動作させる実動作時と、デバッグツールがマイコンの動作をエミュレートするデバッグ時との間で、ターゲットシステムの動作環境が変化してしまう。
【０００５】
このようなＣＰＵ置き換え型ＩＣＥの欠点を解消するために、モニタプログラム実装型ＩＣＥが用いられるようになった。モニタプログラム実装型ＩＣＥにおいては、ターゲットシステムに実装されているＲＯＭ等のメモリにモニタプログラムが格納され、マイコンがモニタプログラムを実行することによってデバッグが行われる。
【０００６】
しかしながら、モニタプログラム実装型ＩＣＥによれば、プログラムのロード、ＧＯ、ステップ実行、メモリのリード・ライト、内部レジスタのリード・ライト、ブレークポイントの設定・解除を含む全てのデバッグコマンドを実行する機能を、モニタプログラムに持たせる必要があった。従って、モニタプログラムの命令コードサイズが非常に大きくなってしまい、ユーザが自由に使用できるメモリ領域が減ってしまうという問題があった。
【０００７】
関連する技術として、下記の特許文献１には、プログラムデバッグ時に使用する種々の機能を備えたデバッグ回路をマイクロコンピュータ内部に持ち、かつ、同一チップに内蔵した電気的に書込み／消去が可能なフラッシュメモリをエミュレーションメモリとして使用するマイクロコンピュータが開示されている。このマイクロコンピュータは、開発段階のプログラムが格納される電気的に書込み／消去が可能なフラッシュメモリと、外部のＩＣＥとの接続のための専用入出力端子を持つデバッグ回路とを内蔵し、デバッグ回路に、ＣＰＵとの通信機能、ＩＣＥとの通信機能、ＣＰＵの動作状態のトレース機能、デバッグ割り込みを発生させるブレーク機能、ＩＣＥからのプログラムコードをフラッシュメモリに書き込む機能、フラッシュメモリの内容をＩＣＥに送る機能を持たせている。
【０００８】
しかしながら、特許文献１においては、デバッグのためのモニタプログラム及びモニタデータをマイコン内のメモリ領域に格納するので、特に、４ビット又は８ビットのマイコンにおいては、チップコストの上昇を招いてしまう。
【０００９】
一方、モニタＲＯＭ方式と呼ばれるデバッグ方式も開発されている。モニタＲＯＭ方式においては、ターゲットシステム毎に、通信インタフェースとして通信専用入出力ポートが設定され、ポートアドレスやポートのビット線毎に機能が割り付けられ、ホストシステム側の汎用通信インタフェースとターゲットシステムの通信専用入出力ポートとの間でデバッグコマンドやデバッグデータを交換するための通信プロトコル及び通信ソフトが、ターゲットシステムとホストシステムとの双方において設計される。
【００１０】
さらに、下記の特許文献２には、ターゲットシステムに対するＩＣＥ方式におけるエミュレータソケットの空間的制約を取り除き、また、モニタＲＯＭ方式におけるターゲットシステム毎の通信プロトコルや通信インタフェース制御ソフトの開発を不要にするデバッガが開示されている。このデバッガにおいては、ホストシステム側に汎用通信インタフェースと複数組の通信プロトコル及び通信インタフェース制御ソフトを格納しておき、ターゲットシステム側の通信インタフェース及び通信プロトコルに対応する通信プロトコル及び通信インタフェース制御ソフトを選択設定して相互通信を確立し、デバッグに必要なデータを交換する。
【００１１】
特許文献２においては、通信プロトコル及び通信インタフェース制御ソフトをホストシステム側に格納するものの、モニタ用のプログラムコードやデータはターゲットシステム側のマイコン又は外部メモリに格納しなければならないので、やはりコストの上昇を招いてしまう。
【特許文献１】特開平１０−２１４２０１号公報（第１、３頁、図１）
【特許文献２】特開平１１−１０２３０８号公報（第１頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
そこで、上記の点に鑑み、本発明は、外部メモリにアクセスできない、又は、コスト的な制約が厳しい場合において、デバッグのために大規模なメモリ領域を使用することなく、当該マイコンチップ自体を用いたエミュレーションシステムを実現することが可能なマイクロコンピュータを提供することを目的とする。さらに、本発明は、そのようなマイクロコンピュータにおいて用いられるソフトウェア（プログラム）の開発を支援するためのデバッグシステム及びデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明に係るマイクロコンピュータは、ユーザが作成したユーザプログラムを格納する電気的に書込み又は消去が可能な第１のメモリと、ユーザプログラムを実行する際に用いられるデータを格納する第２のメモリと、デバッグの際に用いられるモニタプログラムに含まれている所定数のコマンドがホストコンピュータから順次送信されたときにこれを受信すると共に、モニタプログラムを実行する際に用いられるデータをホストコンピュータに送信し又はホストコンピュータから受信するインタフェースと、インタフェースによって受信された所定数のコマンドを順次格納する第３のメモリと、通常モードにおいて、第１のメモリに格納されているユーザプログラムを実行すると共に、デバッグモードにおいて、第３のメモリに格納されているコマンドを実行する中央処理装置とを具備する。
【００１４】
ここで、マイクロコンピュータは、ブートアップ用のプログラムを格納する第４のメモリと、ユーザプログラムが実行される通常モードと、モニタプログラムが実行されるデバッグモードとの内の一方を設定するために用いられるデバッグ端子とをさらに具備するようにしても良い。
【００１５】
本発明に係るデバッグシステムは、上記いずれかのマイクロコンピュータと、マイクロコンピュータのデバッグの際に用いられるモニタプログラムを格納する第１のメモリ領域と、モニタプログラムを実行する際に使用されるデータを格納する第２のメモリ領域とを有するホストコンピュータと、マイクロコンピュータとホストコンピュータとの間のデータ伝送をサポートするインタフェースボードとを具備する。
【００１６】
本発明に係るマイクロコンピュータのデバッグ方法は、マイクロコンピュータのデバッグの際に用いられるモニタプログラムを格納する第１のメモリ領域と、モニタプログラムを実行する際に使用されるデータを格納する第２のメモリ領域とを有するホストコンピュータから、モニタプログラムに含まれている所定数のコマンドをマイクロコンピュータに順次送信するステップ（ａ）と、マイクロコンピュータにおいて、ホストコンピュータから順次送信された所定数のコマンドを受信してメモリに順次格納するステップ（ｂ）と、マイクロコンピュータにおいて、メモリに格納されている所定数のコマンドを実行すると共に、その際に使用されるデータをホストコンピュータの第２のメモリ領域にセーブし又はホストコンピュータの第２のメモリ領域からロードするステップ（ｃ）とを具備する。
【発明の効果】
【００１７】
本発明によれば、モニタプログラム及びモニタデータをホストコンピュータのメモリに格納し、必要に応じてホストコンピュータからマイクロコンピュータに送信することにより、マイクロコンピュータが外部メモリにアクセスできない、又は、コスト的な制約が厳しい場合において、デバッグのために大規模なメモリ領域を使用することなく、当該マイコンチップ自体を用いたエミュレーションシステムを実現することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図１は、本発明の一実施形態に係るデバックシステムの概略を示す。図１に示すように、ホストコンピュータ１０とユーザターゲットボード３０とが、インタフェースボード２０を介して互いに接続されている。ユーザターゲットボード３０には、フラッシュメモリ等を内蔵し、ユーザプログラムを実行すると共にデバッグの対象となるマイクロコンピュータ（マイコン）４０が実装されている。
【００１９】
本実施形態においては、デバッグのためにマイコン４０内のフラッシュメモリの大規模な記憶領域を使用しないように、モニタプログラムコードをホストコンピュータ１０のメモリ領域に格納して、必要に応じてモニタプログラムコードをマイコン４０にロードすると共に、モニタプログラムの実行時に用いられるモニタデータを格納するメモリ領域をホストコンピュータ１０に持たせて、必要に応じてモニタデータをセーブ又はロードする構成とした。
【００２０】
ここで、インタフェースボード２０は、電圧レベルの変換や伝送方式の変換を行う。マイコン４０は、ホストコンピュータ１０からのコマンドに基づいて、フラッシュメモリに対するユーザプログラムコードの書込みや、ＰＣブレーク、シングルステップ、ダンプ等のエミュレーション動作の処理を行う。
【００２１】
図２に、本発明の一実施形態に係るデバックシステムの構成を示す。図２に示すように、ホストコンピュータ１０は、ＣＰＵ（中央演算装置）１１と、汎用のメモリ領域１２と、モニタプログラムコードを格納するためのメモリ領域１３と、モニタプログラムを実行する際に用いられるモニタデータを格納するためのメモリ領域１４と、マイコン４０との間でシリアルデータ伝送を行うシリアルインタフェースブロック１５とを有している。
【００２２】
一方、ユーザターゲットボード３０に実装されたマイコン４０は、ＣＰＵ（中央演算装置）４１と、ユーザプログラムコードを格納するためのフラッシュメモリ４２と、ユーザプログラムを実行する際に用いられるユーザデータを一時的に格納するためのＲＡＭ４３と、順次転送されるモニタプログラムコードを実行のために格納するＲＡＭ４４と、ブートアップ用のＲＯＭ４５と、ホストコンピュータ１０との間でシリアルデータ伝送を行うシリアルインタフェースブロック４６を含む周辺回路４７と、デバッグモードと通常モードとの切換に用いられるデバック端子４８とを有している。
【００２３】
ユーザターゲットボード３０において、従来は、デバックの際に用いられるモニタプログラム及びモニタデータを一時的に格納するためのメモリ領域を、マイコンの内部又は外部メモリに設けていた。しかしながら、デバック用のメモリ領域をマイコンの内部に設ける場合には、特に４ビット又は８ビットの低価格帯のマイコンにおいて、コストの大幅な上昇を招いていた。また、ピン数が少ないマイコンにおいては、外部メモリを接続することができなかった。
【００２４】
そこで、本実施形態においては、モニタプログラムコードをホストコンピュータ１０のメモリ領域１３に格納して、必要な際にモニタプログラムコードをマイコン４０のＲＡＭ４４にロードして実行すると共に、必要な際にモニタデータをホストコンピュータ１０のメモリ領域１４にセーブしたり、メモリ領域１４からロードすることにより、デバッグ動作において用いられるマイコン４０のメモリ領域を最小限に抑えている。
【００２５】
マイコン４０のデバッグ端子４８は、デバッグモード時にはハイレベルの電源ラインに接続され、通常モード時にはローレベルのグランドラインに接続される。通常モードにおいて、ＣＰＵ４１は、ユーザプログラムコードが格納されているフラッシュメモリ４２からユーザプログラムコードをロードして、ユーザプログラムのコマンドを実行する。ユーザプログラムを実行する際に用いられるユーザデータは、ＲＡＭ４３にセーブされたり、ＲＡＭ４３からロードされる。
【００２６】
次に、本発明の一実施形態に係るデバック方法について、図２及び図３を参照しながら説明する。
図３は、本発明の一実施形態に係るデバック方法を示すフローチャートである。まず、図２に示すＣＰＵ４１が、ブートアップＲＯＭ４５に格納されているプログラムコードに基づいて、動作を開始する。
【００２７】
ステップＳ１において、ＣＰＵ４１が、デバッグ端子４８の状態（ローレベル又はハイレベル）を参照して、通常モードであるかデバッグモードであるかを判定する。デバッグ端子がローレベルであれば、マイコン４０は、通常モードであると判定して、処理がステップＳ２に移行する。ステップＳ２において、フラッシュメモリ４２に格納されているユーザプログラムが実行される。一方、デバッグ端子がハイレベルであれば、マイコン４０は、デバッグモードであると判定して、ホストコンピュータ１０がモニタプログラムのコマンドを送信するのを待つ。
【００２８】
ホストコンピュータ１０がモニタプログラムのコマンドを送信すると、ステップＳ３において、マイコン４０は、ホストコンピュータ１０からシリアルインタフェースを介して、デバッグのための一連のモニタプログラムコードを受信し、モニタプログラムコード実行用のＲＡＭ４４に格納する。ステップＳ４において、マイコン４０は、ソフトウェアの制御を、ブートアップ用のＲＯＭ４５からモニタプログラムコード実行用のＲＡＭ４４に移す。ステップＳ５において、ＣＰＵ４１が、モニタプログラムコード実行用のＲＡＭ４４に格納されているモニタプログラムコードに基づいて、モニタプログラムのコマンドを実行する。
【００２９】
ステップＳ６において、ＣＰＵ４１が、モニタプログラムを実行することによって作成された処理データをセーブする必要があるか否かを判定する。処理データをセーブする必要がある場合には、処理がステップＳ７に移行し、処理データをセーブする必要がない場合には、処理がステップＳ８に移行する。ステップＳ７において、マイコン４０が、モニタプログラムを実行することによって作成された処理データを、シリアルインタフェースを介してホストコンピュータ１０に送信する。送信された処理データは、ホストコンピュータ１０内のモニタデータ用のメモリ領域１４に書き込まれる。
【００３０】
ステップＳ８において、ＣＰＵ４１が、ホストコンピュータ１０内のモニタデータ用のメモリ１４にセーブされている処理データをロードする必要があるか否かを判定する。処理データをロードする必要がある場合には、処理がステップＳ９に移行し、処理データをロードする必要がない場合には、処理がステップＳ１０に移行する。ステップＳ９において、モニタデータ用メモリ１４から処理データが読み出された後、マイコン４０が、ホストコンピュータ１０からシリアルインタフェースを介して処理データを受信する。
【００３１】
ステップＳ１０において、ＣＰＵ４１が、モニタプログラムの一連のコマンドが終了したか否かを判定する。コマンドが終了した場合には、処理がステップＳ１１に移行し、コマンドが終了していない場合には、処理がステップＳ５に戻る。モニタプログラムの一連のコマンドが終了するまで、ステップＳ５〜ステップＳ１０の処理が繰り返される。
【００３２】
ステップＳ１１において、マイコン４０が、ソフトウェアの制御を、モニタプログラムコード実行用のＲＡＭ４４からブートアップ用のＲＯＭ４５に移す。その後、処理がステップＳ３に移行する。このように、ステップＳ３〜ステップＳ１１において、マイコン４０が、モニタプログラムの一連のコマンドを実行し、必要なデータをセーブ又はロードし、デバッグ処理を行う。
【００３３】
本実施形態によれば、モニタプログラムコード用のメモリ領域とモニタデータ用のメモリ領域としてホストコンピュータ内のメモリ領域を使用することにより、マイコンにおいて、デバックのためのメモリ領域を削減してコストを低減することができる。また、シリアルインタフェースを介してデータの送受信を行うことにより、ピン数の少ないマイコンにおいても、デバックのために最低限３ピンを割り当てるだけで良い。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施形態に係るデバックシステムの概略を示す概観図。
【図２】本発明の一実施形態に係るデバックシステムの構成を示すブロック図。
【図３】本発明の一実施形態に係るデバック方法を示すフローチャート。
【符号の説明】
【００３５】
１０  ホストコンピュータ、  １１  ＣＰＵ（中央処理装置）、  １２  メモリ領域（汎用）、  １３  メモリ領域（モニタプログラムコード用）、  １４  メモリ領域（モニタデータ用）、  １５  シリアルインタフェース、  ２０  インタフェースボード、  ３０  ユーザターゲットボード、  ４０  マイクロコンピュータ、  ４１  ＣＰＵ（中央処理装置）、  ４２  フラッシュメモリ（ユーザプログラムコード用）、  ４３  ＲＡＭ（ユーザデータ用）、  ４４  ＲＡＭ（モニタプログラムコード実行用）、  ４５  ＲＯＭ（ブートアップ用）、  ４６  シリアルインタフェース、  ４７  周辺回路、  ４８  デバッグ端子
【図１】
2006331147.tif 000003
【図２】
2006331147.tif 000004
【図３】
2006331147.tif 000005