JP2006331147A - マイクロコンピュータ、並びに、デバッグシステム及び方法 - Google Patents
マイクロコンピュータ、並びに、デバッグシステム及び方法 Download PDFInfo
- Publication number
- JP2006331147A JP2006331147A JP2005154947A JP2005154947A JP2006331147A JP 2006331147 A JP2006331147 A JP 2006331147A JP 2005154947 A JP2005154947 A JP 2005154947A JP 2005154947 A JP2005154947 A JP 2005154947A JP 2006331147 A JP2006331147 A JP 2006331147A
- Authority
- JP
- Japan
- Prior art keywords
- microcomputer
- memory
- host computer
- debugging
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
Abstract
【課題】 外部メモリにアクセスできない場合等において、デバッグのために大規模なメモリ領域を使用することなく、当該マイコンチップ自体を用いたエミュレーションシステムを実現することが可能なマイクロコンピュータを提供する。
【解決手段】 マイクロコンピュータ40は、ユーザプログラムを格納する第1のメモリ42と、ユーザデータを格納する第2のメモリ43と、モニタプログラムに含まれている所定数のコマンドをホストコンピュータ10から受信すると共にモニタデータを送受信するインタフェース46と、受信された所定数のコマンドを順次格納する第3のメモリ44と、通常モードにおいて第1のメモリに格納されているユーザプログラムを実行すると共にデバッグモードにおいて第3のメモリに格納されているコマンドを実行する中央処理装置41とを具備する。
【選択図】 図2
【解決手段】 マイクロコンピュータ40は、ユーザプログラムを格納する第1のメモリ42と、ユーザデータを格納する第2のメモリ43と、モニタプログラムに含まれている所定数のコマンドをホストコンピュータ10から受信すると共にモニタデータを送受信するインタフェース46と、受信された所定数のコマンドを順次格納する第3のメモリ44と、通常モードにおいて第1のメモリに格納されているユーザプログラムを実行すると共にデバッグモードにおいて第3のメモリに格納されているコマンドを実行する中央処理装置41とを具備する。
【選択図】 図2
Description
本発明は、一般に、マイクロコンピュータ(マイコン)に関し、特に、外部メモリにアクセスできない、又は、コスト的な制約が厳しい場合において、当該マイコンチップ自体を用いたエミュレーションシステムを実現することが可能なマイクロコンピュータに関する。さらに、本発明は、そのようなマイクロコンピュータにおいて用いられるソフトウェア(プログラム)の開発を支援するためのデバッグシステム及びデバッグ方法に関する。
近年、ゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末等の電子機器に組み込まれて高度な情報処理を実現できるマイコンに対する需要が高まっている。このような組み込み型のマイコンは、通常、ターゲットシステムを構成するユーザターゲットボードに実装される。そして、このターゲットシステムを動作させるソフトウェアのデバッグ作業を行うために、イン−サーキット・エミュレータ(ICE:登録商標)と呼ばれるソフトウェア開発支援システム(デバッグシステム)が広く使用されている。このようなデバッグ作業において、ユーザは、ICEを用いてプログラムのバグを見つけ出し、マイコンのフラッシュメモリ等に格納されているプログラムを修正して書き換える。
従来は、上記のようなデバッグにおいて、CPU置き換え型ICEが主流を占めていた。CPU置き換え型ICEにおいては、デバッグ時に、ターゲットシステムからマイコンを取り外して、その代わりにデバッグツールのプローブを接続し、デバッグツールがマイコンの動作をエミュレート(模倣)することによりデバッグを行う。
しかしながら、CPU置き換え型ICEによれば、プローブのピン数が多くなると、配線が増加してしまうという欠点があった。このため、マイコンの高速動作をエミュレートすることは困難である。また、マイコンをターゲットシステムに実装して動作させる実動作時と、デバッグツールがマイコンの動作をエミュレートするデバッグ時との間で、ターゲットシステムの動作環境が変化してしまう。
このようなCPU置き換え型ICEの欠点を解消するために、モニタプログラム実装型ICEが用いられるようになった。モニタプログラム実装型ICEにおいては、ターゲットシステムに実装されているROM等のメモリにモニタプログラムが格納され、マイコンがモニタプログラムを実行することによってデバッグが行われる。
しかしながら、モニタプログラム実装型ICEによれば、プログラムのロード、GO、ステップ実行、メモリのリード・ライト、内部レジスタのリード・ライト、ブレークポイントの設定・解除を含む全てのデバッグコマンドを実行する機能を、モニタプログラムに持たせる必要があった。従って、モニタプログラムの命令コードサイズが非常に大きくなってしまい、ユーザが自由に使用できるメモリ領域が減ってしまうという問題があった。
関連する技術として、下記の特許文献1には、プログラムデバッグ時に使用する種々の機能を備えたデバッグ回路をマイクロコンピュータ内部に持ち、かつ、同一チップに内蔵した電気的に書込み/消去が可能なフラッシュメモリをエミュレーションメモリとして使用するマイクロコンピュータが開示されている。このマイクロコンピュータは、開発段階のプログラムが格納される電気的に書込み/消去が可能なフラッシュメモリと、外部のICEとの接続のための専用入出力端子を持つデバッグ回路とを内蔵し、デバッグ回路に、CPUとの通信機能、ICEとの通信機能、CPUの動作状態のトレース機能、デバッグ割り込みを発生させるブレーク機能、ICEからのプログラムコードをフラッシュメモリに書き込む機能、フラッシュメモリの内容をICEに送る機能を持たせている。
しかしながら、特許文献1においては、デバッグのためのモニタプログラム及びモニタデータをマイコン内のメモリ領域に格納するので、特に、4ビット又は8ビットのマイコンにおいては、チップコストの上昇を招いてしまう。
一方、モニタROM方式と呼ばれるデバッグ方式も開発されている。モニタROM方式においては、ターゲットシステム毎に、通信インタフェースとして通信専用入出力ポートが設定され、ポートアドレスやポートのビット線毎に機能が割り付けられ、ホストシステム側の汎用通信インタフェースとターゲットシステムの通信専用入出力ポートとの間でデバッグコマンドやデバッグデータを交換するための通信プロトコル及び通信ソフトが、ターゲットシステムとホストシステムとの双方において設計される。
さらに、下記の特許文献2には、ターゲットシステムに対するICE方式におけるエミュレータソケットの空間的制約を取り除き、また、モニタROM方式におけるターゲットシステム毎の通信プロトコルや通信インタフェース制御ソフトの開発を不要にするデバッガが開示されている。このデバッガにおいては、ホストシステム側に汎用通信インタフェースと複数組の通信プロトコル及び通信インタフェース制御ソフトを格納しておき、ターゲットシステム側の通信インタフェース及び通信プロトコルに対応する通信プロトコル及び通信インタフェース制御ソフトを選択設定して相互通信を確立し、デバッグに必要なデータを交換する。
特許文献2においては、通信プロトコル及び通信インタフェース制御ソフトをホストシステム側に格納するものの、モニタ用のプログラムコードやデータはターゲットシステム側のマイコン又は外部メモリに格納しなければならないので、やはりコストの上昇を招いてしまう。
特開平10−214201号公報(第1、3頁、図1)
特開平11−102308号公報(第1頁、図1)
そこで、上記の点に鑑み、本発明は、外部メモリにアクセスできない、又は、コスト的な制約が厳しい場合において、デバッグのために大規模なメモリ領域を使用することなく、当該マイコンチップ自体を用いたエミュレーションシステムを実現することが可能なマイクロコンピュータを提供することを目的とする。さらに、本発明は、そのようなマイクロコンピュータにおいて用いられるソフトウェア(プログラム)の開発を支援するためのデバッグシステム及びデバッグ方法を提供することを目的とする。
上記課題を解決するため、本発明に係るマイクロコンピュータは、ユーザが作成したユーザプログラムを格納する電気的に書込み又は消去が可能な第1のメモリと、ユーザプログラムを実行する際に用いられるデータを格納する第2のメモリと、デバッグの際に用いられるモニタプログラムに含まれている所定数のコマンドがホストコンピュータから順次送信されたときにこれを受信すると共に、モニタプログラムを実行する際に用いられるデータをホストコンピュータに送信し又はホストコンピュータから受信するインタフェースと、インタフェースによって受信された所定数のコマンドを順次格納する第3のメモリと、通常モードにおいて、第1のメモリに格納されているユーザプログラムを実行すると共に、デバッグモードにおいて、第3のメモリに格納されているコマンドを実行する中央処理装置とを具備する。
ここで、マイクロコンピュータは、ブートアップ用のプログラムを格納する第4のメモリと、ユーザプログラムが実行される通常モードと、モニタプログラムが実行されるデバッグモードとの内の一方を設定するために用いられるデバッグ端子とをさらに具備するようにしても良い。
本発明に係るデバッグシステムは、上記いずれかのマイクロコンピュータと、マイクロコンピュータのデバッグの際に用いられるモニタプログラムを格納する第1のメモリ領域と、モニタプログラムを実行する際に使用されるデータを格納する第2のメモリ領域とを有するホストコンピュータと、マイクロコンピュータとホストコンピュータとの間のデータ伝送をサポートするインタフェースボードとを具備する。
本発明に係るマイクロコンピュータのデバッグ方法は、マイクロコンピュータのデバッグの際に用いられるモニタプログラムを格納する第1のメモリ領域と、モニタプログラムを実行する際に使用されるデータを格納する第2のメモリ領域とを有するホストコンピュータから、モニタプログラムに含まれている所定数のコマンドをマイクロコンピュータに順次送信するステップ(a)と、マイクロコンピュータにおいて、ホストコンピュータから順次送信された所定数のコマンドを受信してメモリに順次格納するステップ(b)と、マイクロコンピュータにおいて、メモリに格納されている所定数のコマンドを実行すると共に、その際に使用されるデータをホストコンピュータの第2のメモリ領域にセーブし又はホストコンピュータの第2のメモリ領域からロードするステップ(c)とを具備する。
本発明によれば、モニタプログラム及びモニタデータをホストコンピュータのメモリに格納し、必要に応じてホストコンピュータからマイクロコンピュータに送信することにより、マイクロコンピュータが外部メモリにアクセスできない、又は、コスト的な制約が厳しい場合において、デバッグのために大規模なメモリ領域を使用することなく、当該マイコンチップ自体を用いたエミュレーションシステムを実現することができる。
以下、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図1は、本発明の一実施形態に係るデバックシステムの概略を示す。図1に示すように、ホストコンピュータ10とユーザターゲットボード30とが、インタフェースボード20を介して互いに接続されている。ユーザターゲットボード30には、フラッシュメモリ等を内蔵し、ユーザプログラムを実行すると共にデバッグの対象となるマイクロコンピュータ(マイコン)40が実装されている。
図1は、本発明の一実施形態に係るデバックシステムの概略を示す。図1に示すように、ホストコンピュータ10とユーザターゲットボード30とが、インタフェースボード20を介して互いに接続されている。ユーザターゲットボード30には、フラッシュメモリ等を内蔵し、ユーザプログラムを実行すると共にデバッグの対象となるマイクロコンピュータ(マイコン)40が実装されている。
本実施形態においては、デバッグのためにマイコン40内のフラッシュメモリの大規模な記憶領域を使用しないように、モニタプログラムコードをホストコンピュータ10のメモリ領域に格納して、必要に応じてモニタプログラムコードをマイコン40にロードすると共に、モニタプログラムの実行時に用いられるモニタデータを格納するメモリ領域をホストコンピュータ10に持たせて、必要に応じてモニタデータをセーブ又はロードする構成とした。
ここで、インタフェースボード20は、電圧レベルの変換や伝送方式の変換を行う。マイコン40は、ホストコンピュータ10からのコマンドに基づいて、フラッシュメモリに対するユーザプログラムコードの書込みや、PCブレーク、シングルステップ、ダンプ等のエミュレーション動作の処理を行う。
図2に、本発明の一実施形態に係るデバックシステムの構成を示す。図2に示すように、ホストコンピュータ10は、CPU(中央演算装置)11と、汎用のメモリ領域12と、モニタプログラムコードを格納するためのメモリ領域13と、モニタプログラムを実行する際に用いられるモニタデータを格納するためのメモリ領域14と、マイコン40との間でシリアルデータ伝送を行うシリアルインタフェースブロック15とを有している。
一方、ユーザターゲットボード30に実装されたマイコン40は、CPU(中央演算装置)41と、ユーザプログラムコードを格納するためのフラッシュメモリ42と、ユーザプログラムを実行する際に用いられるユーザデータを一時的に格納するためのRAM43と、順次転送されるモニタプログラムコードを実行のために格納するRAM44と、ブートアップ用のROM45と、ホストコンピュータ10との間でシリアルデータ伝送を行うシリアルインタフェースブロック46を含む周辺回路47と、デバッグモードと通常モードとの切換に用いられるデバック端子48とを有している。
ユーザターゲットボード30において、従来は、デバックの際に用いられるモニタプログラム及びモニタデータを一時的に格納するためのメモリ領域を、マイコンの内部又は外部メモリに設けていた。しかしながら、デバック用のメモリ領域をマイコンの内部に設ける場合には、特に4ビット又は8ビットの低価格帯のマイコンにおいて、コストの大幅な上昇を招いていた。また、ピン数が少ないマイコンにおいては、外部メモリを接続することができなかった。
そこで、本実施形態においては、モニタプログラムコードをホストコンピュータ10のメモリ領域13に格納して、必要な際にモニタプログラムコードをマイコン40のRAM44にロードして実行すると共に、必要な際にモニタデータをホストコンピュータ10のメモリ領域14にセーブしたり、メモリ領域14からロードすることにより、デバッグ動作において用いられるマイコン40のメモリ領域を最小限に抑えている。
マイコン40のデバッグ端子48は、デバッグモード時にはハイレベルの電源ラインに接続され、通常モード時にはローレベルのグランドラインに接続される。通常モードにおいて、CPU41は、ユーザプログラムコードが格納されているフラッシュメモリ42からユーザプログラムコードをロードして、ユーザプログラムのコマンドを実行する。ユーザプログラムを実行する際に用いられるユーザデータは、RAM43にセーブされたり、RAM43からロードされる。
次に、本発明の一実施形態に係るデバック方法について、図2及び図3を参照しながら説明する。
図3は、本発明の一実施形態に係るデバック方法を示すフローチャートである。まず、図2に示すCPU41が、ブートアップROM45に格納されているプログラムコードに基づいて、動作を開始する。
図3は、本発明の一実施形態に係るデバック方法を示すフローチャートである。まず、図2に示すCPU41が、ブートアップROM45に格納されているプログラムコードに基づいて、動作を開始する。
ステップS1において、CPU41が、デバッグ端子48の状態(ローレベル又はハイレベル)を参照して、通常モードであるかデバッグモードであるかを判定する。デバッグ端子がローレベルであれば、マイコン40は、通常モードであると判定して、処理がステップS2に移行する。ステップS2において、フラッシュメモリ42に格納されているユーザプログラムが実行される。一方、デバッグ端子がハイレベルであれば、マイコン40は、デバッグモードであると判定して、ホストコンピュータ10がモニタプログラムのコマンドを送信するのを待つ。
ホストコンピュータ10がモニタプログラムのコマンドを送信すると、ステップS3において、マイコン40は、ホストコンピュータ10からシリアルインタフェースを介して、デバッグのための一連のモニタプログラムコードを受信し、モニタプログラムコード実行用のRAM44に格納する。ステップS4において、マイコン40は、ソフトウェアの制御を、ブートアップ用のROM45からモニタプログラムコード実行用のRAM44に移す。ステップS5において、CPU41が、モニタプログラムコード実行用のRAM44に格納されているモニタプログラムコードに基づいて、モニタプログラムのコマンドを実行する。
ステップS6において、CPU41が、モニタプログラムを実行することによって作成された処理データをセーブする必要があるか否かを判定する。処理データをセーブする必要がある場合には、処理がステップS7に移行し、処理データをセーブする必要がない場合には、処理がステップS8に移行する。ステップS7において、マイコン40が、モニタプログラムを実行することによって作成された処理データを、シリアルインタフェースを介してホストコンピュータ10に送信する。送信された処理データは、ホストコンピュータ10内のモニタデータ用のメモリ領域14に書き込まれる。
ステップS8において、CPU41が、ホストコンピュータ10内のモニタデータ用のメモリ14にセーブされている処理データをロードする必要があるか否かを判定する。処理データをロードする必要がある場合には、処理がステップS9に移行し、処理データをロードする必要がない場合には、処理がステップS10に移行する。ステップS9において、モニタデータ用メモリ14から処理データが読み出された後、マイコン40が、ホストコンピュータ10からシリアルインタフェースを介して処理データを受信する。
ステップS10において、CPU41が、モニタプログラムの一連のコマンドが終了したか否かを判定する。コマンドが終了した場合には、処理がステップS11に移行し、コマンドが終了していない場合には、処理がステップS5に戻る。モニタプログラムの一連のコマンドが終了するまで、ステップS5〜ステップS10の処理が繰り返される。
ステップS11において、マイコン40が、ソフトウェアの制御を、モニタプログラムコード実行用のRAM44からブートアップ用のROM45に移す。その後、処理がステップS3に移行する。このように、ステップS3〜ステップS11において、マイコン40が、モニタプログラムの一連のコマンドを実行し、必要なデータをセーブ又はロードし、デバッグ処理を行う。
本実施形態によれば、モニタプログラムコード用のメモリ領域とモニタデータ用のメモリ領域としてホストコンピュータ内のメモリ領域を使用することにより、マイコンにおいて、デバックのためのメモリ領域を削減してコストを低減することができる。また、シリアルインタフェースを介してデータの送受信を行うことにより、ピン数の少ないマイコンにおいても、デバックのために最低限3ピンを割り当てるだけで良い。
10 ホストコンピュータ、 11 CPU(中央処理装置)、 12 メモリ領域(汎用)、 13 メモリ領域(モニタプログラムコード用)、 14 メモリ領域(モニタデータ用)、 15 シリアルインタフェース、 20 インタフェースボード、 30 ユーザターゲットボード、 40 マイクロコンピュータ、 41 CPU(中央処理装置)、 42 フラッシュメモリ(ユーザプログラムコード用)、 43 RAM(ユーザデータ用)、 44 RAM(モニタプログラムコード実行用)、 45 ROM(ブートアップ用)、 46 シリアルインタフェース、 47 周辺回路、 48 デバッグ端子
Claims (4)
- ユーザが作成したユーザプログラムを格納する電気的に書込み又は消去が可能な第1のメモリと、
ユーザプログラムを実行する際に用いられるデータを格納する第2のメモリと、
デバッグの際に用いられるモニタプログラムに含まれている所定数のコマンドがホストコンピュータから順次送信されたときにこれを受信すると共に、モニタプログラムを実行する際に用いられるデータを前記ホストコンピュータに送信し又は前記ホストコンピュータから受信するインタフェースと、
前記インタフェースによって受信された所定数のコマンドを順次格納する第3のメモリと、
通常モードにおいて、前記第1のメモリに格納されているユーザプログラムを実行すると共に、デバッグモードにおいて、前記第3のメモリに格納されているコマンドを実行する中央処理装置と、
を具備するマイクロコンピュータ。 - ブートアップ用のプログラムを格納する第4のメモリと、
ユーザプログラムが実行される通常モードと、モニタプログラムが実行されるデバッグモードとの内の一方を設定するために用いられるデバッグ端子と、
をさらに具備する、請求項1記載のマイクロコンピュータ。 - 請求項1又は2記載のマイクロコンピュータと、
前記マイクロコンピュータのデバッグの際に用いられるモニタプログラムを格納する第1のメモリ領域と、モニタプログラムを実行する際に使用されるデータを格納する第2のメモリ領域とを有するホストコンピュータと、
前記マイクロコンピュータと前記ホストコンピュータとの間のデータ伝送をサポートするインタフェースボードと、
を具備するデバッグシステム。 - マイクロコンピュータのデバッグの際に用いられるモニタプログラムを格納する第1のメモリ領域と、モニタプログラムを実行する際に使用されるデータを格納する第2のメモリ領域とを有するホストコンピュータから、モニタプログラムに含まれている所定数のコマンドを前記マイクロコンピュータに順次送信するステップ(a)と、
前記マイクロコンピュータにおいて、前記ホストコンピュータから順次送信された所定数のコマンドを受信してメモリに順次格納するステップ(b)と、
前記マイクロコンピュータにおいて、前記メモリに格納されている所定数のコマンドを実行すると共に、その際に使用されるデータを前記ホストコンピュータの前記第2のメモリ領域にセーブし又は前記ホストコンピュータの前記第2のメモリ領域からロードするステップ(c)と、
を具備するデバッグ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005154947A JP2006331147A (ja) | 2005-05-27 | 2005-05-27 | マイクロコンピュータ、並びに、デバッグシステム及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005154947A JP2006331147A (ja) | 2005-05-27 | 2005-05-27 | マイクロコンピュータ、並びに、デバッグシステム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006331147A true JP2006331147A (ja) | 2006-12-07 |
Family
ID=37552763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005154947A Withdrawn JP2006331147A (ja) | 2005-05-27 | 2005-05-27 | マイクロコンピュータ、並びに、デバッグシステム及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006331147A (ja) |
-
2005
- 2005-05-27 JP JP2005154947A patent/JP2006331147A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100280637B1 (ko) | 고정된플래시롬의데이터갱신이가능한컴퓨터시스템및그제어방법 | |
CN107766097B (zh) | 基于端点装置提供的启动指令执行启动操作的电子装置 | |
US20030191624A1 (en) | Debug function built-in type microcomputer | |
US7266680B1 (en) | Method and apparatus for loading configuration data | |
US7437283B2 (en) | System for evaluating target board by using evaluation microcomputer in which storage of environment data are powered by evaluation tool | |
US6598176B1 (en) | Apparatus for estimating microcontroller and method thereof | |
JP2006331147A (ja) | マイクロコンピュータ、並びに、デバッグシステム及び方法 | |
JP2003263339A (ja) | デバック機能内蔵型マイクロコンピュータ | |
CN114328342A (zh) | 一种用于PCIe异构加速卡的新型程控配置方法 | |
JP2008077176A (ja) | エミュレーションシステム、エミュレーション方法 | |
JP4479131B2 (ja) | 制御装置 | |
JP2007034881A (ja) | 半導体集積回路 | |
US20020004877A1 (en) | Method and system for updating user memory in emulator systems | |
CN115422110B (zh) | 电子设备和PCIE Switch芯片的端口配置方法 | |
JP3265284B2 (ja) | エミュレータ | |
JP2006133836A (ja) | マイクロコンピュータ及びマイクロコンピュータの製造方法 | |
JP2001084161A (ja) | データ処理装置 | |
JP2004280789A (ja) | 半導体集積回路装置およびマイクロコンピュータ開発支援装置 | |
JP2002182939A (ja) | メモリ書き込み方法及びメモリ書き込み装置 | |
JP2006107086A (ja) | フレキシブルコントロールシステム | |
CN113986364A (zh) | 一种芯片驱动方法、装置、电子设备及存储介质 | |
JP2007094475A (ja) | 半導体集積回路、並びに、デバッグ方法及びデバッグシステム | |
KR200233482Y1 (ko) | Rom 에뮬레이터 | |
JP2011159126A (ja) | 集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法 | |
CN114125902A (zh) | Wwan设备及其配置方法、装置、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080805 |