JP2000259448A - プログラムデバッグ装置 - Google Patents

プログラムデバッグ装置

Info

Publication number
JP2000259448A
JP2000259448A JP11065521A JP6552199A JP2000259448A JP 2000259448 A JP2000259448 A JP 2000259448A JP 11065521 A JP11065521 A JP 11065521A JP 6552199 A JP6552199 A JP 6552199A JP 2000259448 A JP2000259448 A JP 2000259448A
Authority
JP
Japan
Prior art keywords
memory
program
flash memory
debug
debugging
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.)
Pending
Application number
JP11065521A
Other languages
English (en)
Inventor
Ryuichi Ogawa
竜一 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP11065521A priority Critical patent/JP2000259448A/ja
Publication of JP2000259448A publication Critical patent/JP2000259448A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 デバッグ対象プログラムの種類に応じて、効
率的なデバッグあるいはより実機に近い状態でのデバッ
グを行えるプログラムデバッグ装置を提供する。 【解決手段】 プログラムデバッグ装置51は、デバッ
グ対象プログラムおよびデータファイルを格納するため
のフラッシュメモリ5を搭載したCPUボード14をデ
バッグするものであって、デバッグモニタプログラム等
を格納するための代替メモリ4と、代替メモリ4とフラ
ッシュメモリ5との両方を活性化するアドレスデコード
信号EN1・EN2を生成するノーマルモード、並び
に、デバッグ対象プログラムおよびデータファイルを代
替メモリ4に読み込んで、代替メモリ4を活性化するた
めのアドレスデコード信号EN3を生成するデバッグモ
ードのいずれかを選択するためのスイッチ12とを備え
ている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、フラッシュメモリ
等の書き換え可能な不揮発性メモリを搭載したマイクロ
コンピュータシステムのプログラムをデバッグするため
のプログラムデバッグ装置に関するものである。
【0002】
【従来の技術】従来より、マイクロコンピュータシステ
ムのプログラム開発においては、そのデバッグ及び評価
を行うためにデバッグ装置であるエミュレータやシミュ
レーションソフトウェアが使用されている。
【0003】一般に、エミュレータでは、マイクロコン
ピュータに搭載されているROM(Read-Only Memory)
やフラッシュメモリ等のプログラム格納用メモリの領域
をエミュレータ内に搭載した代替メモリに置き換え、こ
の代替メモリに置き換えた領域に対して種々の操作を行
うことにより、プログラムの詳細なデバッグ作業が可能
となっている。
【0004】代替メモリには、エミュレータまたはマイ
クロコンピュータから読み出しおよび書き込みが自由に
行えるRAM(Random Access Memory)が一般的に使用さ
れる。例えば、エミュレータの代替メモリは、そこに格
納されたプログラムをエミュレータ側から参照および変
更することができるようになっており、それゆえ、ユー
ザーがプログラム内容の表示や書き換えを行うことがで
きる。
【0005】また、割り込み命令を備えたマイクロコン
ピュータのエミュレータは、代替メモリにロードされた
プログラムの任意の箇所をこの割り込み命令に置き換え
て、マイクロコンピュータのプログラム実行中に割り込
みを発生し、エミュレータのデバッグモニタプログラム
に制御を移すことにより、ブレーク機能を実現してい
る。
【0006】プログラム格納用メモリとしてフラッシュ
メモリを搭載したマイクロコンピュータにおいては、フ
ラッシュメモリにプログラムを格納するために特別な書
き込みの手続きが必要とされる。この書き込みの手続き
も、使用するマイクロコンピュータの制御プログラムと
して記述されている。それゆえ、この書き込みのための
制御プログラムに対しても、デバッグ手段の提供が必要
とされる。
【0007】特開平8−297595号公報には、図1
2に示すように、フラッシュメモリ101を含むマイク
ロコンピュータにフラッシュメモリ101のイネーブル
状態およびディセーブル状態を選択可能な外部端子11
0を設けて、これとユーザープログラム(ユーザーの開
発したプログラム)を格納するための代替メモリ10
2、マイクロコンピュータに内蔵されているフラッシュ
メモリ101と代替メモリ102とを選択的に活性化す
る制御手段105を含むエミュレータ111の構成が開
示されている。
【0008】また、このエミュレータ111には、上記
ユーザープログラムをデバッグするために代替メモリ1
02を活性化し、フラッシュメモリ101へのユーザー
プログラム書き込みプログラムをデバッグするためにフ
ラッシュメモリ101を活性化するための情報を保持可
能なレジスタ104が設けられている。
【0009】この構成によると、マイクロコンピュータ
107に設けられた外部端子110に入力される信号F
ENA−Pによって、フラッシュメモリ101のイネー
ブル状態およびディセーブル状態の選択を可能としてい
る。上記公報では、このことが、フラッシュメモリ10
1へのユーザープログラム書き込みプログラムのデバッ
グを可能とし、フラッシュメモリ101を内蔵するマイ
クロコンピュータのプログラムデバッグの効率向上を達
成するとされている。
【0010】また、上記公報では、制御手段105が、
マイクロコンピュータ107に内蔵されるフラッシュメ
モリ101と代替メモリ102とを選択的に活性化する
ことが、フラッシュメモリ101を内蔵するマイクロコ
ンピュータのプログラムデバッグの効率向上を達成する
とされている。
【0011】
【発明が解決しようとする課題】フラッシュメモリを搭
載したマイクロコンピュータシステムにおいて、前記フ
ラッシュメモリは、プログラム格納用のメモリとして使
用されるだけではなくデータ格納用のメモリとして使用
される場合がある。
【0012】さらに、フラッシュメモリに格納されたデ
ータは、マイクロコンピュータのプログラムによって読
み出されるだけではなく、書き換えが行われる場合があ
る。フラッシュメモリに格納されたデータを書き換える
ためには、まず、書き換えデータが存在する一定サイズ
のブロックを消去した上で、データの書き込みを行うな
どの特別な手順が必要となる。
【0013】そのため、このようなユーザープログラム
を効率的にデバッグするためには、エミュレータなどの
デバッグ装置がフラッシュメモリ領域に対して、ブレー
ク機能を使用したり、データを参照したり書き換えるな
ど種々の操作を行えることが必要となる。
【0014】しかしながら、特開平8−297595号
公報に開示された構成には、フラッシュメモリ101を
活性化したときに代替メモリ102を使用することがで
きないので、次のような問題点がある。
【0015】まず、1つめの問題点として、フラッシュ
メモリ101を上述したようなデータ格納用メモリとし
て使用する場合には、代替メモリ101に格納されたユ
ーザープログラムを実行しながらフラッシュメモリ10
1に対するデータの書き込みや読み出しを行う際に、ユ
ーザー自身がフラッシュメモリ101と代替メモリ10
2とを切り替えなければならないという問題点がある。
すなわち、ユーザー自身が、ユーザープログラムによっ
て、フラッシュメモリ101に対してデータの読み出し
動作または消去動作や書き込み動作を行うときにはフラ
ッシュメモリ101を選択し、代替メモリ101に格納
されたユーザープログラムを実行するときには代替メモ
リ102を選択するというように、フラッシュメモリ1
01と代替メモリ102とを切り替える操作を行う必要
があり、ユーザーの操作が煩雑となる。
【0016】また、2つめの問題点として、フラッシュ
メモリ101に書き込まれたプログラムのデバッグを行
う際に代替メモリ102に格納されたプログラムを利用
できないので、デバッグ装置のコマンドを利用してフラ
ッシュメモリ101にパッチを当てたり、フラッシュメ
モリ101に書き込まれたプログラムに対してマイクロ
コンピュータの割り込み命令を利用したブレーク機能を
設定することができないという問題点がある。
【0017】本発明の目的は、フラッシュメモリ等の書
き換え可能な不揮発性メモリを搭載したマイクロコンピ
ュータシステムのプログラムをデバッグするためのプロ
グラムデバッグ装置において、デバッグ対象プログラム
の種類に応じて、効率的なデバッグあるいはより実機に
近い状態でのデバッグを行えるプログラムデバッグ装置
を提供することにある。
【0018】
【課題を解決するための手段】本発明の請求項1記載の
プログラムデバッグ装置は、上記の課題を解決するため
に、第1のプログラムおよびデータファイルを格納する
ための書き換え可能な不揮発性メモリを搭載したマイク
ロコンピュータシステムをデバッグするデバッグ装置で
あって、第2のプログラムを格納するための代替メモリ
と、代替メモリと不揮発性メモリとの両方を活性化する
第1のモード、並びに、上記第1のプログラムおよびデ
ータファイルを代替メモリに読み込んで代替メモリを活
性化する第2のモードのいずれか一方を選択する選択手
段とを備えることを特徴としている。
【0019】上記構成によれば、第1のモードを選択し
た場合には、不揮発性メモリに格納された第1のプログ
ラムを直接的に検証できるので、実機に近い条件でデバ
ッグを行うことができる。それゆえ、精度の高いデバッ
グを実現することができる。
【0020】一方、第2のモードを選択した場合には、
プログラムデバッグ時に、不揮発性メモリではなく代替
メモリに読み込んだ第1のプログラムやデータファイル
に対してアクセスできる。それゆえ、マイクロコンピュ
ータの割り込み命令を利用してブレーク機能を実現した
り、データファイルを参照したり書き換えることがで
き、効率の良いデバッグを実現することができる。
【0021】そして、これらのモードは、デバッグの対
象となる第1のプログラムのデバッグ状況に応じて選択
手段により選択することができるので、第1のプログラ
ムのデバッグ状況に応じた最適なデバッグを行うことが
できる。例えば、第1のプログラムがまだそれほどデバ
ッグできていない状況で、不揮発性メモリ領域に対して
頻繁にブレーク指定を行ったり、メモリの参照や変更を
しながらデバッグを薦める必要があるときは、第2のモ
ードを選択してデバッグを行い、第1のプログラムのデ
バッグがある程度進んだ段階で第1のモードを選択して
第1のプログラムを動作させることにより、実機に近い
条件でのデバッグが可能となる。
【0022】本発明の請求項2記載のプログラムデバッ
グ装置は、上記の課題を解決するために、請求項1記載
のプログラムデバッグ装置において、第2のモードが選
択されているときに不揮発性メモリに対する書き込み動
作と同等の書き込み動作で代替メモリに対する書き込み
を行う書き込み手段をさらに備えることを特徴としてい
る。
【0023】上記構成によれば、代替メモリに対する書
き込みを不揮発性メモリに対する書き込み動作と同等の
書き込み動作で行わせることにより、代替メモリによっ
て不揮発性メモリの書き込み動作をエミュレートでき
る。それゆえ、プログラムデバッグ時の不揮発性メモリ
の書き込み動作を代替メモリの書き込み動作にて代替す
ることができる。この結果、不揮発性メモリ上での第1
のプログラムの動作を間接的に検証することができる。
それゆえ、より精度の高いデバッグを実現できる。
【0024】なお、本明細書において、「同等の書き込
み動作」とは、書き込み時間および書き込み手順が同一
である書き込み動作を指すものとする。
【0025】本発明の請求項3記載のプログラムデバッ
グ装置は、上記の課題を解決するために、請求項1記載
のプログラムデバッグ装置において、第2のモードが選
択されているときに不揮発性メモリに対する消去動作と
同等の消去動作で代替メモリに対する消去を行う消去手
段をさらに備えることを特徴としている。
【0026】上記構成によれば、代替メモリに対する消
去を不揮発性メモリに対する消去動作と同等の消去動作
で行わせることにより、代替メモリによって不揮発性メ
モリの消去動作をエミュレートできる。それゆえ、プロ
グラムデバッグ時の不揮発性メモリの消去動作を代替メ
モリの消去動作にて代替することができる。この結果、
不揮発性メモリ上での第1のプログラムの動作を間接的
に検証することができる。それゆえ、より精度の高いデ
バッグを実現できる。
【0027】なお、本明細書において、「同等の消去動
作」とは、消去時間および消去手順が同一である消去動
作を指すものとする。
【0028】本発明の請求項4記載のプログラムデバッ
グ装置は、上記の課題を解決するために、請求項1記載
のプログラムデバッグ装置において、上記不揮発性メモ
リに格納された第2のプログラムが、第1のモードが選
択されているときに不揮発性メモリにアクセスして第1
のプログラムを検証するためのデバッグモニタプログラ
ムを含むことを特徴とする請求項1記載のプログラムデ
バッグ装置。
【0029】上記構成によれば、デバッグモニタプログ
ラムを用いて不揮発性メモリにアクセスすることによ
り、不揮発性メモリ上での第1のプログラムを直接的に
検証することができ、より実機に近い状態でのプログラ
ム検証が可能となる。
【0030】
【発明の実施の形態】本発明の実施の一形態について図
1ないし図11に基づいて説明すれば、以下の通りであ
る。本実施の形態に係るプログラムデバッグ装置51
は、図3のブロック図に示すように、デバッグ対象とな
るマイクロコンピュータシステムとしてのCPU(Cent
ral Processing Unit)ボード14と、エミュレータ31
と、ホスト装置32とによって構成されており、CPU
ボード14で実行されるユーザープログラム(例えば、
アプリケーションプログラム)やオペレーティングシス
テムプログラムなどのプログラムを検証してデバッグす
るようになっている。
【0031】CPUボード14は、デバッグ対象となる
プログラム(以下、デバッグ対象プログラムと称する)
を実行するためのCPU(書き込み手段、消去手段)1
に加えて、デバッグ対象プログラム(第1のプログラ
ム)およびデータファイルを格納するための書き換え可
能な不揮発性メモリとしてのフラッシュメモリ5、CP
U1の作業用のRAM37、メモリマップ制御回路1
1、周辺機能ブロック34等を備えている。
【0032】フラッシュメモリ5には、CPU1が接続
されており、CPU1からアドレス信号43が入力され
るようになっている。RAM37には、データバス42
を介してCPU1が接続されている。これらにより、フ
ラッシュメモリ5およびRAM37は、CPU1によっ
てデータの読み出しや書き込みができるようになってい
る。
【0033】メモリマップ制御回路11には、CPU1
が接続されており、CPU1から出力されたアドレス信
号43が入力されるようになっている。メモリマップ制
御回路11は、アドレス信号43に基づいて、フラッシ
ュメモリ5、RAM37、およびエミュレータ31内の
代替メモリ4のアドレス割り当てをそれぞれ決定するよ
うになっている。そして、メモリマップ制御回路11
は、決定されたアドレス割り当てに応じて、フラッシュ
メモリ5を活性化するためのメモリ活性化信号38、R
AM37を活性化するためのメモリ活性化信号39、お
よび代替メモリ4を活性化するためのメモリ活性化信号
40を出力するようになっている。
【0034】周辺機能ブロック34は、特に制限されな
いが、マイクロコンピュータシステムの周辺機能である
タイマー回路、ポート回路、UART(汎用非同期送受
信回路)などの通信回路などにより構成されており、C
PU1による制御が可能となっている。
【0035】エミュレータ31は、CPUボード14に
対して、インターフェース44・45により双方向通信
が可能となるように接続されている。これにより、エミ
ュレータ31とCPUボード14との間では、データバ
ス42、CPU1からのアドレス信号43、各種制御信
号41等の通信が可能となっている。
【0036】エミュレータ31は、代替メモリ4を備え
るものであれば特に制限はないが、代替メモリ4に加え
て、ブレーク回路48、トレース回路49、エミュレー
タ31全体を制御する制御回路47等を備えている。
【0037】代替メモリ4には、インターフェース44
・45を介してCPU1が接続されており、リード/ラ
イトなどのアクセス制御信号41が入力されるようにな
っている。これにより、代替メモリ4は、CPU1によ
ってデータの読み出しや書き込みができるようになって
いる。
【0038】代替メモリ4には、ユーザープログラムや
オペレーティングシステムプログラムに加えて、ブレー
クの実行、プログラムのステップ実行、各メモリの参照
や変更などのデバッグ機能を実現するためのデバッグモ
ニタプログラム(第2のプログラム)が格納されてい
る。また、代替メモリ4には、デバッグ対象プログラム
をホスト装置32から読み込むことができるようになっ
ている。代替メモリ4は、CPUボード14側とエミュ
レータ31側との双方からアクセスが可能であり、上記
プログラムはエミュレータ31側より格納される。な
お、上記デバッグモニタプログラムの実行もCPU1に
より行われる。
【0039】ブレーク回路48は、ハードウェアにより
ユーザープログラムを停止(中断)させる処理、すなわ
ちブレークを実行するための回路である。ブレーク回路
48は、ホスト装置32からの指令に基づいて、ユーザ
ープログラムを強制中断させる強制ブレーク信号を発生
させる。また、ブレーク回路48は、CPU1からのア
ドレス信号43やデータバス42を監視し、予めエミュ
レータ31により設定された停止条件が満たされたとき
に、ユーザープログラムを中断させるブレーク信号を発
生する。
【0040】トレース回路49には、CPUボード14
が信号を出力する各信号線が接続されており、ユーザー
プログラムの実行履歴情報や各メモリ4・5・37への
アクセス情報が格納されている。トレース回路49に格
納されたこれらの情報は、ユーザーがホスト装置32を
通じて内容を確認することができるようになっている。
【0041】制御回路47は、エミュレータ31を構成
する各ブロック(代替メモリ4、ブレーク回路48、ト
レース回路49等)の動作を制御するとともに、エミュ
レータ31とホスト装置32との通信を制御する。
【0042】ホスト装置32には、指示やデータを入力
するための入力手段と各種情報を表示するための表示手
段とを備えた装置、例えば、パーソナルコンピュータな
どが用いられる。ホスト装置32は、ホストインターフ
ェース50を介してエミュレータ31と接続され、これ
によりホスト装置32との間で双方向通信が行えるよう
になっている。
【0043】図1は、プログラムデバッグ装置51のC
PUボード14内のメモリマップ制御回路11による、
フラッシュメモリ5を活性化する活性化信号EMUEN
(図3に示す活性化信号38)およびエミュレータ31
内の代替メモリ4を活性化する活性化信号FLHEN
(図3に示す活性化信号40)を生成するための構成を
示すブロック図である。
【0044】メモリマップ制御回路(MMC)11に
は、CPU1が接続され、CPU1からアドレス信号A
Dn(図3に示すアドレス信号43)が入力されるよう
になっている。メモリマップ制御回路11は、アドレス
デコーダ2・3およびその周辺に配置された、AND回
路6、NAND回路7、NOT回路8、AND回路9、
NOR回路10、スイッチ(選択手段)12、およびプ
ルアップ抵抗13により、代替メモリ4を活性化する活
性化信号EMUENおよびフラッシュメモリ5を活性化
する活性化信号FLHENを生成する。
【0045】アドレスデコーダ2は、アドレス信号AD
nに基づいて、デバッグ対象プログラムやデータファイ
ルを格納するメモリマップのアドレス(図2に示すメモ
リマップ20のFLHENに相当)をフラッシュメモリ
5に割り当てるためのアドレスデコード信号EN1を生
成する。また、アドレスデコーダ2は、アドレス信号A
Dnに基づいて、デバッグモニタプログラム等を格納す
るメモリマップのアドレス(図2に示すメモリマップ2
0のEMUENに相当)を代替メモリ4に割り当てるた
めのアドレスデコード信号EN2を生成する。
【0046】アドレスデコーダ3は、アドレス信号AD
nに基づいて、デバッグ対象プログラムやデータファイ
ル、デバッグモニタプログラム等を格納するメモリマッ
プのアドレス(図2に示すメモリマップ21のEMUE
Nに相当)を代替メモリ4に割り当てるためのアドレス
デコード信号EN3を生成する。このとき、アドレスデ
コーダ3によって代替メモリ4に割り当てられるメモリ
マップ21の領域EMUENは、アドレスデコーダ2に
よって代替メモリ4に割り当てられるメモリマップ20
の領域EMUENおよび領域FLHENを合わせたもの
と同じサイズであり、格納されるデータも同じである。
【0047】回路6〜10は、NOT回路8およびAN
D回路9の入力がLOWレベルであるときには、アドレ
スデコード信号EN1を代替メモリ4へアドレスデコー
ド信号EN2をフラッシュメモリ5へそれぞれ送る一
方、NOT回路8およびAND回路9の入力がHIGH
レベルであるときには、アドレスデコード信号EN3を
代替メモリ4へ送るものである。
【0048】スイッチ12およびプルアップ抵抗13
は、スイッチ12の接続状態によりNOT回路8および
AND回路9の入力をHIGHレベルとLOWレベルと
の間で切り替えるものである。
【0049】これらの構成によると、スイッチ12の接
続状態により2種類のメモリマップを切り替えることが
できる。例えば、図2に示す2種類のメモリマップ20
・21の一方を選択的に形成することができる。
【0050】まず、スイッチ12が接続状態であるノー
マルモード(第1のモード)のときには、NOT回路8
の入力はLOWレベルとなり、出力がHIGHレベルと
なる。このため、AND回路6とNAND回路7とが活
性化される。また、このとき、スイッチ12に接続され
たAND回路9の入力は、LOWレベルとなるため、非
活性化される。
【0051】従って、このときは、アドレスデコーダ2
によって生成されたアドレスデコード信号EN1が、N
OR回路10によって代替メモリ4に送られ、代替メモ
リ4の活性化信号EMUENとして使用される。このた
め、アドレスデコード信号EN1がHIGHレベルとな
るアドレス空間では、代替メモリ4が選択される。
【0052】また、アドレスデコーダ2によって生成さ
れたアドレスデコード信号EN2が、フラッシュメモリ
5の活性化信号FLHENとして使用される。このた
め、アドレスデコード信号EN2がHIGHレベルとな
るアドレス空間では、フラッシュメモリ5が選択され
る。これらにより、図2に示すノーマルモードのメモリ
マップ20が形成される。
【0053】次に、スイッチ12が非接続状態であるデ
バッグモード(第2のモード)のときには、AND回路
9の入力はHIGHレベルとなり、AND回路9が活性
化される。また、このとき、NOT回路8の入力はHI
GHレベル、NOT回路8の出力はLOWレベルとなる
ため、AND回路6とNAND回路7とが非活性化され
る。
【0054】従って、アドレスデコーダ3によって生成
されたアドレスデコード信号EN3が、NOR回路10
によって代替メモリ4に送られ、代替メモリ4の活性化
信号EMUENとして使用される。このため、アドレス
デコード信号EN3がHIGHレベルとなるアドレス空
間では、代替メモリ4が選択される。これにより、図2
に示すデバッグモードのメモリマップ21が形成され
る。この場合には、フラッシュメモリ5が活性化される
ことはなく、ノーマルモードのメモリマップ20におけ
るフラッシュメモリ5の領域(アドレスデコード信号E
N2がHIGHレベルとなるアドレス空間)が、代替メ
モリ4に置き換えられる。
【0055】以上の構成により、プログラムのデバッグ
の形態に応じて、プログラムデバッグ装置51のメモリ
マップ20・21を切り替えることにより、フラッシュ
メモリ5の領域を代替メモリ4に置き換えたプログラム
デバッグ装置51を提供することができる。
【0056】図2に示すノーマルモードのメモリマップ
20は、デバッグのターゲットである実際のマイクロコ
ンピュータシステムのメモリ構成により近いメモリ構成
をしている。
【0057】メモリマップ20が選択されたノーマルモ
ードでは、デバッグ対象プログラムの一部と、不揮発性
メモリにアクセスして第1のプログラムを検証するため
のデバッグモニタプログラムとが、代替メモリ4の領域
に格納される。また、残りのデバッグ対象プログラムや
データファイルは、フラッシュメモリ5の領域にデバッ
グモニタプログラムの機能を用いて格納される。これに
より、デバッグ対象プログラムの実行および検証を行う
ことができる。
【0058】このノーマルモードでは、代替メモリ4に
格納されたプログラムに対しては、デバッグモニタプロ
グラムを用いて、種々のデバッグ操作を行うことができ
る。一方、フラッシュメモリ5の領域に対しては、パッ
チを当てたりCPU1の割り込み命令を利用してエミュ
レータ31のブレーク機能を実行することが実用上困難
である。
【0059】これは、フラッシュメモリ5に対するプロ
グラムなどのデータの書き換えは、データの書き換えの
対象となるアドレスが存在するフラッシュメモリ5のブ
ロックのデータを全て保存した上で、そのブロック全体
を消去し、その次に、フラッシュメモリ5の対象アドレ
スに新たなデータを書き込み、さらに保存したデータを
書き戻すといった複雑な手順が必要であり、実用的でな
いことに起因する。
【0060】デバッグモードでは、メモリマップ21が
選択され、フラッシュメモリ5の領域が全て代替メモリ
4に置き換えられる。このデバッグモードでは、デバッ
グ対象プログラム、データファイル、および、デバッグ
モニタプログラムは、全て代替メモリ4に格納される。
代替メモリ4は、RAMであり、エミュレータ31から
もデバッグのターゲットであるCPUボード14からも
容易にアクセスすることができる。
【0061】従って、デバッグモードでは、代替メモリ
4に置き換えた領域に対して、パッチを当てたりCPU
1の割り込み命令を利用してエミュレータ31のブレー
ク機能を実行することが容易である。なお、この場合の
ブレーク機能は、一般的に、ターゲットであるCPU1
の割り込み命令をデバッグ装置が代替メモリ4に格納さ
れたデバッグ対象プログラム中に埋め込むことにより実
現される。
【0062】ここで、フラッシュメモリ5の領域を代替
メモリ4に置き換えた場合、CPUボード14のデバッ
グ対象プログラムの実行時、この代替メモリ4をフラッ
シュメモリ5と同様に振る舞わせる必要がある。
【0063】ところが、フラッシュメモリ5に対してデ
ータを書き込むのに必要な時間は、代替メモリ4に対し
てデータを書き込むのに必要な時間と比較すると、ずっ
と長い。例えば、代替メモリ4に対して1バイトのデー
タを書き込む時間が一般的に数十nsであるのに対し、
フラッシュメモリ5に対して1バイトのデータを書き込
むためには一般的に数十μsの時間が必要となる。
【0064】この書き込み時間の違いは、CPU1のプ
ログラム内で、代替メモリ4に置き換えたフラッシュメ
モリ5の領域に対して書き込みアクセスを行うときに、
フラッシュメモリ5と書き込み時間が等しくなるように
必要なステップ数のウェイト処理を行うことで吸収する
ことができる。すなわち、書き込み時間の違いは、CP
U1のプログラム内で本来フラッシュメモリ5へアクセ
スするルーチンを代替メモリ4へアクセスするルーチン
に置き換えることにより吸収される。
【0065】図4は、CPU1のプログラム内におけ
る、メモリマップ20を用いるノーマルモードの場合
の、CPUボード14のデバッグ対象プログラムなどの
データをフラッシュメモリ5へ書き込む処理(書き込み
処理)を示すフローチャートである。
【0066】プログラムがフラッシュメモリ5へのデー
タの書き込み処理に分岐すると、まず、書き込み元のア
ドレスを変数SRCに格納(設定)し(S1)、書き込
み先のアドレスを変数DSTに格納し(S2)、書き込
み数(データの書き込み回数)を変数CNTに格納する
(S3)。
【0067】次に、書き込み数CNTが0であるか否か
を判定し(S4)、書き込み数CNTが0であれば処理
を終了する。書き込み数CNTが0以外であれば、書き
込み元のアドレスSRCから書き込むデータを読み出
し、フラッシュメモリ5の書き込み先のアドレスDST
に対して、書き込みコマンドを発行する(S5)。その
後、フラッシュメモリ5のステータスを監視(モニタ)
して、書き込み処理が完了するのを待つ(S6)。
【0068】書き込み処理が完了したら、アドレスSR
CおよびDSTを次のアドレスに更新し(S7)、書き
込み数CNTを1減算して(S8)、S4に戻る。そし
て、S4からS8の処理を、書き込み数CNTが0にな
るまで繰り返す。これにより、書き込み数CNTのサイ
ズのデータがフラッシュメモリ5に書き込まれる。
【0069】図6は、CPU1のプログラム内におけ
る、メモリマップ21を用いるデバッグモードの場合
の、CPUボード14のデバッグ対象プログラムなどの
データをフラッシュメモリ5へ書き込む処理(書き込み
処理)を示すフローチャートである。デバッグモードの
場合には、代替メモリ4がフラッシュメモリ5の書き込
み動作と同等の動作を行うように構成されている。
【0070】プログラムがノーマルモードにおけるフラ
ッシュメモリ5へのデータの書き込み処理に分岐する
と、まず、書き込み元のアドレスを変数SRCに格納
(設定)し(S21)、書き込み先のアドレスを変数D
STに格納し(S22)、書き込み数(データの書き込
み回数)を変数CNTに格納する(S23)。
【0071】次に、書き込み数CNTが0であるか否か
を判定し(S24)、書き込み数CNTが0であれば処
理を終了する。書き込み数CNTが0以外であれば、書
き込み元のアドレスSRCから書き込みデータを読み出
し、代替メモリ4の書き込み先のアドレスDSTに対し
て書き込みアクセスを行う(S25)。また、アドレス
SRCとDSTを次のアドレスに更新する(S26)。
【0072】代替メモリ4への書き込みアクセスは、一
般的に、フラッシュメモリ5よりずっと短い数十nsで
終了する。そこで、図4に示すS6のループを通るのに
かかる処理時間と同等の時間分のウェイト処理を行う
(S27)。ウェイト処理完了後、書き込み数CNTを
1減算する(S28)。そして、S24からS28の処
理をCNTが0になるまで繰り返す。これにより、書き
込み数CNTのサイズのデータが代替メモリ4に書き込
まれる。
【0073】以上の処理により、デバッグモードにおい
て、代替メモリ4に対する書き込みアクセスをフラッシ
ュメモリ5に対する書き込みアクセスと等しい書き込み
時間で行わせることができる。これにより、代替メモリ
4をフラッシュメモリ5のように振る舞わせることが可
能となる。
【0074】また、代替メモリ4では、その対象エリア
のデータの内容には依存せず、自由に書き込みをするこ
とができる。これに対し、フラッシュメモリ5では、デ
ータを書き込むときにその対象領域が消去されている必
要がある。そのため、フラッシュメモリ5のデータを書
き換える際には、書き込み対象領域を含むブロックの消
去が必要であり、消去動作を行ったとき、書き込み対象
領域のデータは一般的にFFH(16進数表記の“F
F”)となる。すなわち、一般的に、データが書き込み
済みのフラッシュメモリ5の領域に新たなデータの書き
込みを行う場合、まず、フラッシュメモリ5に対し書き
込み対象領域を含むブロックを消去するコマンドをフラ
ッシュメモリ5に対して発行して、書き込み対象領域の
データをFFHにしている。
【0075】この消去動作を代替メモリ4に対して行う
ためには、CPU1のプログラム内におけるフラッシュ
メモリ5に対して消去コマンドを発行する処理を行う部
分を、代替メモリ4に対して同一領域をデータFFHで
クリアする処理に置き換えたプログラムをCPU1に組
み込み、このプログラムを用いて代替メモリ4を消去す
ればよい。
【0076】また、フラッシュメモリ5の消去(1ブロ
ック消去)には、ブロックのサイズによっても異なる
が、一般的に数百msの時間が必要となる。上記の代替
メモリ4に対して同一領域をFFHでクリアする処理に
かかる時間は、実際のフラッシュメモリ5を消去する時
間に比べて短い。このため、CPU1のプログラム内に
おける代替メモリ4のクリア後にウェイト処理を組み込
むことにより、代替メモリ4をフラッシュメモリ5と同
様に振る舞わせることができる。
【0077】図5は、CPUボード14のメモリマップ
がノーマルモードのメモリマップ20である場合におけ
る、CPU1のプログラムにおけるフラッシュメモリ5
の消去処理を示すフローチャートである。
【0078】プログラムがフラッシュメモリ5の消去処
理に分岐すると、フラッシュメモリ5の消去対象ブロッ
クが存在するアドレスに対して、消去コマンドを発行す
る(S41)。その後、フラッシュメモリ5のステータ
スをモニタして消去処理が完了するのを待つ(S4
2)。
【0079】図7は、デバッグモードであるときに、C
PU1のプログラムにおける代替メモリ4への消去処理
を行うフローチャートであり、フラッシュメモリ5の消
去処理と同等の動作を行うように構成されている。
【0080】プログラムがノーマルモードにおけるフラ
ッシュメモリ5領域への消去処理に分岐すると、消去対
象ブロックの先頭アドレスが変数SRCに格納され(S
61)、消去対象ブロックのブロックサイズが変数CN
Tに格納される(S62)。次に、書き込み数CNTを
判定し、ブロックサイズCNTが0なら処理を終了する
(S63)。
【0081】ブロックサイズCNTが0でなければ、デ
ータFFHをアドレスSRCに書き込む(S64)。そ
の後、アドレスSRCを次のアドレスに更新し(S6
5)、ブロックサイズCNTを1減算する(S67)。
【0082】S63からS67のループにより、フラッ
シュメモリ5のブロックサイズCNTに相当する領域に
データFFHが書き込まれる。ここで、これらのループ
が完了する時間が、フラッシュメモリ5のブロック消去
時間と同等になるように、S65とS67との間でウェ
イト処理を行う(S66)。
【0083】以上の処理により、デバッグモードにおい
て代替メモリ4に対する消去処理をフラッシュメモリ5
の消去処理のように振る舞わせることが可能となる。
【0084】このように、CPUボード14において、
ノーマルモードのフラッシュメモリ5の領域FLHEN
を代替メモリ4に置き換えたデバッグモードのメモリマ
ップ21を選択して、代替メモリ4をフラッシュメモリ
5としてアクセスするように構成している。上記構成に
よれば、本来はフラッシュメモリ5に格納されるデバッ
グ対象プログラムやデータファイルを代替メモリ4に読
み込んだ状態でデバッグを行うことができるので、エミ
ュレータ31における各種デバッグ機能をそのまま使用
することができる。このため、フラッシュメモリ5に格
納されたプログラムを効率的にデバッグすることが可能
になる。
【0085】本実施の形態のプログラムデバッグ装置5
1では、より実機に近いメモリ構成でのプログラム検証
を可能とするために、CPUボード14において、ノー
マルモードのメモリマップ20を選択して、実際のフラ
ッシュメモリ5にプログラムまたはデータを書き込んだ
り消去できるよう構成されている。
【0086】図3に示すエミュレータ31は、ホスト装
置32に用意されたデバッガソフトウェアにより一般的
にコントロールすることができる。デバッガソフトウェ
アは、ホスト装置32とエミュレータ31との間でコマ
ンドの通信を行い、ホスト装置32の入力手段を用いて
エミュレータ31に対してデバッガコマンド(デバッグ
の実行を指示するコマンド)を送信することによりエミ
ュレータ31に用意された種々のデバッグ機能を制御す
る。また、デバッガコマンドを実行したときのエミュレ
ータ31の動作結果を受信して、ホスト装置32が有す
るディスプレイなどの表示手段に表示する。また、代替
メモリ4に格納された、CPUボード14をデバッグす
るデバッグモニタプログラムに対して、デバッガコマン
ドの送信およびデバッガコマンドの実行結果の受信を制
御する。
【0087】図8は、デバッガソフトの機能のうちデバ
ッグモニタプログラムに用意したフラッシュメモリ5へ
のアクセス処理を制御するフローチャートである。
【0088】オペレータがホスト装置32からデバッガ
コマンドを入力すると、まず、デバッガコマンドの判定
処理を行い(S81)、入力されたデバッガコマンドが
フラッシュメモリ5へのアクセスコマンドであるか否か
を判定する(S82)。
【0089】入力されたデバッガコマンドがフラッシュ
メモリ5へのアクセスコマンドであると判定されると、
入力されたデバッガコマンドがフラッシュメモリ5への
消去コマンドであるかが判定される(S83)。さら
に、入力されたデバッガコマンドがフラッシュメモリ5
への消去コマンドでなければ、入力されたデバッガコマ
ンドがフラッシュメモリ5への書き込みコマンドである
かが判定される(S84)。
【0090】S83において、入力されたデバッガコマ
ンドがフラッシュメモリ5への消去コマンドである場
合、フラッシュメモリ5の消去通信処理を行う(S8
7)。一方、S84において、入力されたデバッガコマ
ンドがフラッシュメモリ5への書き込みコマンドである
場合、フラッシュメモリ書き込み通信処理を行う(S8
6)。S86・S87の通信処理終了後、フラッシュメ
モリ5へのアクセスコマンドを終了すべきか、すなわち
フラッシュメモリ5へのアクセスコマンドを継続すべき
かどうかの判定を行い(S85)、フラッシュメモリ5
へのアクセスコマンドを継続する場合は、S83へ戻
る。フラッシュメモリ5へのアクセスコマンドを継続し
ない場合は、S81のデバッガコマンドの判定処理へ戻
る。
【0091】図9は、図8におけるS87のフラッシュ
メモリ消去通信処理の内容を示すフローチャートであ
る。
【0092】まず、フラッシュメモリ5の消去対象ブロ
ックを選択し(S91)、この消去対象ブロックのアド
レスをフラッシュメモリ5への消去コマンドとして、エ
ミュレータ31の代替メモリ4に格納されたデバッグモ
ニタプログラムに送信する(S92)。その後、デバッ
グモニタプログラムから返信される消去完了を待つ(S
93)。
【0093】図10は、図8におけるS86のフラッシ
ュメモリ書き込み通信処理の内容を示すフローチャート
である。
【0094】まず、ホスト装置32に保存された、フラ
ッシュメモリ5の領域へ格納するためのデータ(プログ
ラムまたはデータファイル)を選択する(S101)。
次に、選択したデータをデバッガメモリ(ホスト装置3
2内のRAM)へ読み込む(S102)。
【0095】次いで、読み込んだデータを書き込む先の
フラッシュメモリ5のアドレスと読み込んだデータとを
フラッシュメモリ5への書き込みコマンドとして、エミ
ュレータ31の代替メモリ4に格納されたデバッグモニ
タプログラムに送信する(S103)。その後、デバッ
グモニタプログラムから返信される書き込み完了を待つ
(S104)。
【0096】そして、選択されたデータが最後まで書き
込み完了したかどうかを判定し(S105)、まだ書き
込み完了していなければS103からS105のステッ
プを繰り返す。最終データの書き込みが完了したら、最
終アドレス書き込み完了をデバッグモニタプログラムへ
送信する(S106)。
【0097】図11は、エミュレータ31の代替メモリ
4上にあらかじめ格納されて、CPUボード14上のC
PU1が実行するデバッグモニタプログラムにおける、
フラッシュメモリ5へのアクセスコマンド動作を示すフ
ローチャートである。
【0098】デバッグモニタプログラムは、通常、プロ
グラムデバッグ装置51がブレーク状態(ユーザープロ
グラムが実行されていない状態)で、デバッガ(ホスト
装置32)からのコマンド受信を行う(S121)。こ
こで、受信したコマンドが図9のS92または図10の
S103において送信されたフラッシュメモリ5へのア
クセスコマンドであると判定されると、受信したコマン
ドがフラッシュメモリ5への消去コマンドであるかが判
定される(S122)。さらに、受信したコマンドがフ
ラッシュメモリ5への消去コマンドでなければ、受信し
たコマンドがフラッシュメモリ5への書き込みコマンド
であるかが判定される(S123)。
【0099】S122において、受信したコマンドがフ
ラッシュメモリ5への消去コマンドであれば、フラッシ
ュメモリ5の消去ブロックのアドレスに対して消去コマ
ンドを発行する(S124)。その後、フラッシュメモ
リ5のステータスをモニタして消去処理が完了するのを
待つ(S125)。消去処理が完了すると、デバッガ
(ホスト装置32)へ消去完了を送信する(S12
6)。その後、S121へ戻り、デバッグモニタプログ
ラムのコマンド処理を継続する。
【0100】S123において、受信したコマンドがフ
ラッシュメモリ5への書き込みコマンドであれば、フラ
ッシュメモリ5の書き込みアドレスに対してデータ書き
込みコマンドを発行する(S127)。その後、フラッ
シュメモリ5のステータスをモニタして書き込み処理が
完了するのを待つ(S128)。書き込み処理が完了す
ると、デバッガ(ホスト装置32)へ書き込み完了を送
信する(S129)。
【0101】次に、デバッガ(ホスト装置32)から、
次の書き込みアドレスおよびデータを受信したかを判定
し(S130)、次の書き込みアドレスおよびデータを
受信していれば、S127に戻って、フラッシュメモリ
5への書き込み処理を継続する。一方、次の書き込みア
ドレスおよびデータを受信していなければ、最終アドレ
ス書き込み完了を受信したかを判定する(S131)。
S131で最終アドレス書き込み完了を受信しなかった
場合には、S130へ戻り、次の書き込みアドレスおよ
びデータを受信すべきかを再度判定する。一方、S13
1で最終アドレス書き込み完了を受信した場合には、S
121に戻って、デバッグモニタプログラムのコマンド
処理を継続する。
【0102】以上のように、CPUボード14において
ノーマルモードのメモリマップ20を選択することで、
フラッシュメモリ5領域に対して、デバッガソフトによ
りプログラムやデータファイルを直接フラッシュメモリ
5へ書き込んだり消去することが可能となる。このた
め、プログラムデバッグ装置51上で、より実機に近い
メモリ構成で、フラッシュメモリ5を搭載したCPUボ
ード(マイクロコンピュータシステム)14のデバッグ
対象プログラムを実行して検証することが可能になる。
その結果、CPUボード14のデバッグ対象プログラム
に対して実機に近い環境下でデバッグを行うことがで
き、精度の高いデバッグが実現できる。
【0103】また、本実施の形態で示した2種類のメモ
リマップ20・21を切り替えることができるプログラ
ムデバッグ装置51を用い、デバッグ状況に応じて2種
類のメモリマップ20・21を使い分けることにより、
フラッシュメモリ5を搭載したCPUボード14のプロ
グラムの検証を効率的に行うことができ、CPUボード
14のプログラムに対するデバッグを効率的に行うこと
が可能となる。
【0104】また、以上のように、本実施の形態のプロ
グラムデバッグ装置51は、デバッグ対象プログラムお
よびデータファイルを格納するためのフラッシュメモリ
5を搭載したCPUボード14をデバッグするものであ
って、代替メモリ4の領域およびフラッシュメモリ5の
領域をそれぞれ活性化可能なアドレスデコード信号(メ
モリ活性化信号)EN1・EN2と、代替メモリ4およ
びフラッシュメモリ5を含む領域を代替メモリ4に置き
換えて活性化可能なアドレスデコード信号(メモリ活性
化信号)EN3とを設け、アドレスデコード信号EN1
・EN2とアドレスデコード信号EN3との一方を選択
するスイッチ12を設けた構成である。
【0105】すなわち、図1に示すCPUボード14に
設けられたスイッチ12の選択状態によって、アドレス
デコーダ2が発生したアドレスデコード信号EN1・E
N2、または、アドレスデコーダ3が発生したアドレス
デコード信号EN3が有効となる。これにより、代替メ
モリ4の領域EMUENおよびフラッシュメモリ5の領
域FLHENが図2に示すメモリマップ20または21
のように形成される。すなわち、代替メモリ4とフラッ
シュメモリ5との両方を活性化するノーマルモードのメ
モリマップ20と、デバッグ対象プログラムおよびデー
タファイルをフラッシュメモリ5から代替メモリ4に読
み込んで代替メモリ4を活性化するデバッグモードのメ
モリマップ21とのいずれかが選択される。
【0106】また、以上のように、プログラムデバッグ
装置51には、代替メモリ4およびフラッシュメモリ5
を含む領域が代替メモリ4に置き換えられて活性化され
ているとき、代替メモリ4をフラッシュメモリ5として
書き込み動作するCPU(書き込み手段)1が設けられ
ている。
【0107】すなわち、図1に示すアドレスデコーダ3
のアドレスデコード信号EN3が選択され、図2に示す
デバッグモードのメモリマップ21のように、図1のメ
モリマップ20におけるフラッシュメモリ5の領域が代
替メモリ4の領域に置き換えられているとき、プログラ
ム内における代替メモリ4への書き込み処理に、フラッ
シュメモリ5の書き込みに必要な時間と同等のウェイト
処理を設けている。これにより、代替メモリ4がフラッ
シュメモリ5のように振る舞うことができる。
【0108】また、以上のように、プログラムデバッグ
装置51には、代替メモリ4およびフラッシュメモリ5
を含む領域が代替メモリ4に置き換えられて活性化され
ているとき、代替メモリ4をフラッシュメモリ5として
消去動作するCPU(消去手段)1が設けられている。
【0109】すなわち、図1に示すアドレスデコーダ3
のアドレスデコード信号EN3が選択され、図2に示す
デバッグモードのメモリマップ21のように、図1のメ
モリマップ20におけるフラッシュメモリ5の領域が代
替メモリ4の領域に置き換えられているとき、プログラ
ム内における代替メモリ4への消去処理に、フラッシュ
メモリ5のメモリブロック単位で消去データFFHを書
き込む処理とフラッシュメモリ5の消去時間に合わせる
ために必要なウェイト処理とを設けている。これによ
り、代替メモリ4がフラッシュメモリ5のように振る舞
うことができる。
【0110】このようにして、代替メモリ4をフラッシ
ュメモリ5としてアクセス処理(書き込み処理または消
去処理)を行うことにより、プログラムデバッグ時にホ
スト装置32がフラッシュメモリ5でなく代替メモリ4
に対して、操作を行うことができる。このため、結果的
にフラッシュメモリ5に格納したプログラムやデータフ
ァイルに対して、CPU1の割り込み命令を利用してエ
ミュレータ31のブレーク機能を実行したり、フラッシ
ュメモリ5に格納したデータファイルを参照したり書き
換えを行うことができる。それゆえ、プログラムデバッ
グ効率が向上する。
【0111】また、以上のように、代替メモリ4には、
代替メモリ4の領域とフラッシュメモリ5の領域とがそ
れぞれ活性化されているときにフラッシュメモリ5に対
してプログラムまたはデータファイルを書き込むデバッ
グモニタプログラムが用意されている。
【0112】すなわち、図1に示すアドレスデコーダ2
のアドレスデコード信号EN1・EN2が選択され、図
2に示すノーマルモードのメモリマップ20のように、
フラッシュメモリ5の領域と代替メモリ4の領域とがそ
れぞれ割り当てられているとき、エミュレータ31の代
替メモリ4に用意したデバッグモニタプログラムのフラ
ッシュメモリ書き込みコマンドによって、フラッシュメ
モリ5にプログラムやデータファイルを書き込むことが
できるようになっている。
【0113】また、以上のように、代替メモリ4には、
代替メモリ4の領域とフラッシュメモリ5の領域とがそ
れぞれ活性化されているときにフラッシュメモリ5に書
き込まれたデータファイルを消去するデバッグモニタプ
ログラムが用意されている。
【0114】すなわち、図1に示すアドレスデコーダ2
のアドレスデコード信号EN1・EN2が選択され、図
2に示すノーマルモードのメモリマップ20のように、
フラッシュメモリ5の領域と代替メモリ4の領域とがそ
れぞれ割り当てられているとき、エミュレータ31の代
替メモリ4に用意したデバッグモニタプログラムのフラ
ッシュメモリ消去コマンドによって、フラッシュメモリ
5のデータファイルを消去することができるようになっ
ている。
【0115】このようにして、デバッグ装置の代替メモ
リ4に用意したデバッグモニタプログラムのデバッグモ
ニタコマンド(フラッシュメモリ書き込みコマンドまた
はフラッシュメモリ消去コマンド)によってフラッシュ
メモリ5ヘアクセス処理(書き込み処理または消去処
理)を行うことにより、フラッシュメモリ5上に書き込
まれたプログラムを実行することができ、より実機に近
い状態でのプログラム検証が可能となり、より精度の高
いデバッグが可能となる。
【0116】なお、本実施の形態では、フラッシュメモ
リ5を搭載したマイクロコンピュータシステムを対象と
して説明を行った。しかしながら、他の書き換え可能な
不揮発性メモリ、例えば、EEPROM(Electrically
Erasable Programmable ROM)などのEPROM(Erasabl
e Programmable ROM) やFeRAM(FerroelelecricRA
M;強誘電性RAM)を搭載したマイクロコンピュータシ
ステムであっても、本発明を適用して、本実施の形態と
同様に効率的なデバッグが可能なプログラムデバッグ装
置を実現することができる。
【0117】
【発明の効果】本発明の請求項1記載のプログラムデバ
ッグ装置は、以上のように、第1のプログラムおよびデ
ータファイルを格納するための書き換え可能な不揮発性
メモリを搭載したマイクロコンピュータシステムをデバ
ッグするデバッグ装置であって、第2のプログラムを格
納するための代替メモリと、代替メモリと不揮発性メモ
リとの両方を活性化する第1のモード、並びに、上記第
1のプログラムおよびデータファイルを代替メモリに読
み込んで代替メモリを活性化する第2のモードのいずれ
か一方を選択する選択手段とを備える構成である。
【0118】上記構成によれば、第2のモードでは、不
揮発性メモリに格納したプログラムやデータファイルに
対して、ブレーク機能を使用したりデータを参照したり
書き換えるなど種々の操作を行えることができる一方、
第1のモードでは、より実機に近い状態でのプログラム
の実行検証を実現できる。それゆえ、上記構成は、第1
のプログラムのデバッグ状況に応じて第1のモードおよ
び第2のモードのいずれか一方を選択すれば、第1のプ
ログラムのデバッグとして効率的なデバッグあるいはよ
り実機に近い状態でのデバッグを行うことができるとい
う効果を奏する。
【0119】本発明の請求項2記載のプログラムデバッ
グ装置は、以上のように、第2のモードが選択されてい
るときに不揮発性メモリに対する書き込み動作と同等の
書き込み動作で代替メモリに対する書き込みを行う書き
込み手段をさらに備える構成である。
【0120】上記構成によれば、代替メモリによって不
揮発性メモリの書き込み動作をエミュレートでき、プロ
グラムデバッグ時の不揮発性メモリの書き込み動作を代
替メモリの書き込み動作にて代替することができる。こ
の結果、不揮発性メモリ上での第1のプログラムの動作
を間接的に検証することができ、より精度の高いデバッ
グを実現できるという効果を奏する。
【0121】本発明の請求項3記載のプログラムデバッ
グ装置は、以上のように、第2のモードが選択されてい
るときに不揮発性メモリに対する消去動作と同等の消去
動作で代替メモリに対する消去を行う消去手段をさらに
備える構成である。
【0122】上記構成によれば、代替メモリによって不
揮発性メモリの消去動作をエミュレートでき、プログラ
ムデバッグ時の不揮発性メモリの消去動作を代替メモリ
の消去動作にて代替することができる。この結果、不揮
発性メモリ上での第1のプログラムの動作を間接的に検
証することができ、より精度の高いデバッグを実現でき
るという効果を奏する。
【0123】本発明の請求項4記載のプログラムデバッ
グ装置は、以上のように、上記不揮発性メモリに格納さ
れた第2のプログラムが、第1のモードが選択されてい
るときに不揮発性メモリにアクセスして第1のプログラ
ムを検証するためのデバッグモニタプログラムを含む構
成である。
【0124】上記構成によれば、デバッグモニタプログ
ラムを用いて不揮発性メモリにアクセスすることによ
り、不揮発性メモリ上での第1のプログラムの動作を直
接的に検証することができ、より実機に近い状態でのプ
ログラム検証が可能となるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施の一形態に係るプログラムデバッ
グ装置における、CPUボード内のメモリマップ制御回
路によりフラッシュメモリおよびエミュレータ内の代替
メモリを活性化する活性化信号を生成するための構成を
示すブロック図である。
【図2】上記CPUボードで形成されるメモリマップを
示す説明図である。
【図3】本発明の実施の一形態に係るプログラムデバッ
グ装置の全体構成を示すブロック図である。
【図4】CPUボードのメモリマップがノーマルモード
であるときの、CPUのプログラムにおけるフラッシュ
メモリの書き込み処理を行うフローチャートである。
【図5】CPUボードのメモリマップがノーマルモード
であるときの、CPUのプログラムにおけるフラッシュ
メモリの消去処理を行うフローチャートである。
【図6】CPUボードのメモリマップがデバッグモード
であるときの、CPUのプログラムにおける代替メモリ
ヘの書き込み処理を示すフローチャートである。
【図7】CPUボードのメモリマップがデバッグモード
であるときの、CPUのプログラムにおける代替メモリ
ヘの消去処理を示すフローチャートである。
【図8】デバッガソフトの機能のうちデバッグモニタプ
ログラムに用意したフラッシュメモリのアクセス処理を
示すフローチャートである。
【図9】フラッシュメモリ消去通信処理を示すフローチ
ャートである。
【図10】フラッシュメモリ書き込み通信処理を示すフ
ローチャートである。
【図11】CPUボード上のCPUが実行するデバッグ
モニタプログラムにおける、フラッシュメモリヘのアク
セスコマンド動作を示すフローチャートである。
【図12】特開平8−297595号公報に記載されて
いるマイクロコンピュータ、及びエミュレータを示すブ
ロック図である。
【符号の説明】
1 CPU(書き込み手段、消去手段) 2 アドレスデコーダ 3 アドレスデコーダ 4 代替メモリ 5 フラッシュメモリ(書き換え可能な不揮発性メモ
リ) 6 AND回路 7 NAND回路 8 NOT回路 9 AND回路 10 NOR回路 11 メモリマップ制御回路 12 スイッチ(選択手段) 13 プルアップ抵抗 14 CPUボード(マイクロコンピュータシステム) 20 メモリマップ 21 メモリマップ 31 エミュレータ 32 ホスト装置 51 プログラムデバッグ装置 EMUEN 活性化信号 EN1 アドレスデコード信号 EN2 アドレスデコード信号 EN3 アドレスデコード信号 FLHEN 活性化信号

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】第1のプログラムおよびデータファイルを
    格納するための書き換え可能な不揮発性メモリを搭載し
    たマイクロコンピュータシステムをデバッグするデバッ
    グ装置であって、 第2のプログラムを格納するための代替メモリと、 代替メモリと不揮発性メモリとの両方を活性化する第1
    のモード、並びに、上記第1のプログラムおよびデータ
    ファイルを代替メモリに読み込んで代替メモリを活性化
    する第2のモードのいずれか一方を選択する選択手段と
    を備えることを特徴とするプログラムデバッグ装置。
  2. 【請求項2】第2のモードが選択されているときに不揮
    発性メモリに対する書き込み動作と同等の書き込み動作
    で代替メモリに対する書き込みを行う書き込み手段をさ
    らに備えることを特徴とする請求項1記載のプログラム
    デバッグ装置。
  3. 【請求項3】第2のモードが選択されているときに不揮
    発性メモリに対する消去動作と同等の消去動作で代替メ
    モリに対する消去を行う消去手段をさらに備えることを
    特徴とする請求項1記載のプログラムデバッグ装置。
  4. 【請求項4】上記不揮発性メモリに格納された第2のプ
    ログラムが、第1のモードが選択されているときに不揮
    発性メモリにアクセスして第1のプログラムを検証する
    ためのデバッグモニタプログラムを含むことを特徴とす
    る請求項1記載のプログラムデバッグ装置。
JP11065521A 1999-03-11 1999-03-11 プログラムデバッグ装置 Pending JP2000259448A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11065521A JP2000259448A (ja) 1999-03-11 1999-03-11 プログラムデバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11065521A JP2000259448A (ja) 1999-03-11 1999-03-11 プログラムデバッグ装置

Publications (1)

Publication Number Publication Date
JP2000259448A true JP2000259448A (ja) 2000-09-22

Family

ID=13289424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11065521A Pending JP2000259448A (ja) 1999-03-11 1999-03-11 プログラムデバッグ装置

Country Status (1)

Country Link
JP (1) JP2000259448A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4921174B2 (ja) * 2003-12-31 2012-04-25 シェンジェンシランカカジグフェンヨウシャンゴンシ フラッシュメモリのデータ書込み方法
US20130262928A1 (en) * 2012-04-02 2013-10-03 Compal Electronics, Inc. Debugging device and method for performing a debugging process to a target system
CN110058541A (zh) * 2018-01-18 2019-07-26 英飞凌科技奥地利有限公司 具有电路内调试器的微控制器系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4921174B2 (ja) * 2003-12-31 2012-04-25 シェンジェンシランカカジグフェンヨウシャンゴンシ フラッシュメモリのデータ書込み方法
US20130262928A1 (en) * 2012-04-02 2013-10-03 Compal Electronics, Inc. Debugging device and method for performing a debugging process to a target system
US8886996B2 (en) * 2012-04-02 2014-11-11 Compal Electronics, Inc. Debugging device and method for performing a debugging process to a target system
CN110058541A (zh) * 2018-01-18 2019-07-26 英飞凌科技奥地利有限公司 具有电路内调试器的微控制器系统
CN110058541B (zh) * 2018-01-18 2023-11-14 英飞凌科技奥地利有限公司 具有电路内调试器的微控制器系统

Similar Documents

Publication Publication Date Title
US6009496A (en) Microcontroller with programmable embedded flash memory
EP0991081B1 (en) Emulated EEPROM memory device and corresponding method
KR100469669B1 (ko) 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법
KR100415371B1 (ko) 컴퓨터
JP3699890B2 (ja) 不揮発性半導体記憶装置
KR100265266B1 (ko) 플래쉬 eeprom 을 구비하는 마이크로컴퓨터및 플래쉬 eeprom 의 소거방법
KR100604877B1 (ko) 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법
US5768563A (en) System and method for ROM program development
KR100286915B1 (ko) 플래시 이이피롬을 내부에 포함한 마이크로컴퓨터
US6543008B1 (en) Computer system and program rewriting method
KR0172001B1 (ko) 바이오스 메모리의 재프로그램 장치 및 그 방법
CN111104064B (zh) Flash存储器写保护处理方法及装置、计算机设备、介质
JPWO2006040798A1 (ja) 半導体集積回路装置および電子システム
JP2000259448A (ja) プログラムデバッグ装置
KR100223844B1 (ko) 옵션 자동 설정 회로
JP2907808B1 (ja) フラッシュメモリエミュレーション装置及びそれを用いたデバッグシステム
JP4042940B2 (ja) オンチップ・プログラミング機能を持つマイクロコントローラ
US7596717B2 (en) Microcomputer and debugging method
JP2003131951A (ja) 不揮発性メモリの制御回路
JP2011108161A (ja) 情報処理装置
KR20010052868A (ko) 에뮬레이터 시스템에서 사용자 메모리를 업데이트하기위한 방법 및 시스템
JP3866269B2 (ja) マイクロコンピュータ
KR20000033437A (ko) 부트스트랩로더 기능 구현 장치
JPH04170797A (ja) 記憶装置のプログラミング装置
JP3223160B2 (ja) マイクロコンピュータ