JP3410023B2 - インサーキットエミュレータ - Google Patents
インサーキットエミュレータInfo
- Publication number
- JP3410023B2 JP3410023B2 JP14975298A JP14975298A JP3410023B2 JP 3410023 B2 JP3410023 B2 JP 3410023B2 JP 14975298 A JP14975298 A JP 14975298A JP 14975298 A JP14975298 A JP 14975298A JP 3410023 B2 JP3410023 B2 JP 3410023B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- user program
- stop mode
- ice
- return
- 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.)
- Expired - Lifetime
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Description
ータの応用ソフトウェアの開発ツールにおいてデバッグ
の効率を図るインサーキットエミュレータに関するもの
である。 【0002】 【従来の技術】近年、電気製品の待機中の電力をいかに
抑えるかが重要視されている。そのために、電気製品の
低消費電力を実現する上で、多くの電気製品に用いられ
ているマイクロコンピュータの必要な処理以外には、マ
イクロコンピュータの原発振を停止させるとその効果が
大きいことから、低消費電力を実現するためにマイクロ
コンピュータの動作モードの一つに原発振を停止させる
機能(以下、ストップモードと呼ぶ)がある。そのスト
ップモードを用いた応用ソフトウェアを従来のインサー
キットエミュレータ(以下、ICEと呼ぶ)でデバッグ
を行う動作の流れを図5に示す。この図5はユーザプロ
グラムのストップモード中にICE割込処理による動作
を実行したときの状態を示すものである。また、図6
(a)はデバッグを行うストップモードを有するユーザ
プログラムのメインルーチン、図6(b)はユーザプロ
グラムの割込処理、図6(c)はICE割込処理を示す
フローチャートである。 【0003】図6(a),(b),(c)において、1
はマイクロコンピュータのユーザプログラムのメインル
ーチン、2はユーザプログラムの割込処理、3は、メイ
ンルーチン1を停止させる操作を行うと、ICEの割り
込みが発生して実行されるICE割込処理、4はユーザ
プログラムの初期設定ルーチンを含む通常処理、5はス
トップモードに入れる命令、6はストップモード中にユ
ーザプログラムの割込処理2が発生してから行われる通
常処理、7は通常処理4の途中にユーザプログラムを停
止させるICE割込処理3の発生による第1の強制ブレ
ーク、8はストップモードに入れる命令5によるストッ
プモード中で割込処理2の発生を待機中にICE割込処
理3の発生による第2の強制ブレーク、9はユーザプロ
グラムの割込処理2からメインルーチン1へ戻すための
リターン命令、10はユーザプログラムの実行停止状態
から再実行させるためのICE割込処理3のICEリタ
ーン命令、11は、ユーザプログラムの実行を停止させ
て、実行されるICE割込処理3によってICEの制御
ソフトウェアで制御されデバッグ等を行う通常割込処理
である。 【0004】図7は図6(a)のメインルーチンと図6
(c)のICE割込処理のフローチャートにおける状態
遷移図で、図8は割込み処理の発生により状態情報を待
避するスタック領域を示す図である。図8において、1
2はフラグステータスの待避領域、13はプログラムの
戻り番地の待避領域、14は各種ステータスの待避領域
であり、これらの待避領域には割込み発生時に自動的に
待避格納される。 【0005】前記従来例の具体的な動作の例を図7,図
8を用いながら説明する。まず、ユーザプログラムにお
けるメインルーチン1の通常処理4中に、ユーザプログ
ラムを停止させる第1の強制ブレーク7の外部割込みを
発生させる。この第1の強制ブレーク7のICE割込処
理3によってICEの割込み処理に遷移する。このIC
E割込処理3もユーザプログラムの割込処理2と同様
に、ユーザプログラムの状態は図8に示すスタック領域
にそれぞれ待避格納される。また、ICEの制御ソフト
ウェアでは、待避格納されたスタック領域の内容を読み
出し、ユーザプログラムの停止したときの状態をモニタ
にて表示することができる。そして、ユーザにはユーザ
プログラム以外のICE割込処理3を実行しているた
め、ユーザプログラムが停止した状態に見える。さら
に、ユーザプログラムの再実行は、ICE割込処理3の
ICEリターン命令10を実行することで、第1の強制
ブレーク7の発生時にスタック領域に待避格納された資
源が元に戻される。 【0006】次に、メインルーチン1のストップモード
に入れる命令5によるストップモード中において、第2
の強制ブレーク8のICE割込処理3が発生し、ICE
の割込み処理へ遷移するが、ここでユーザプログラムの
停止までの動作の流れは前記説明と同様であるため省略
し、その異なる部分について説明する。 【0007】ユーザプログラムはストップモードである
ことから、その発振は停止しているため、ICE割込処
理3の発生によりストップモードが解除されて発振が開
始される。以下、発振している状態をノーマルモードと
いう。つまりICE割込処理3はノーマルモードで実行
されことになる。そして、この動作の場合には、ユーザ
プログラムの再実行はストップモードの状態で停止され
たので、元のストップモードにする必要がある。 【0008】しかしながら、ICE割込処理3において
ICEリターン命令10の前でストップモードに入れる
処理を行うと、ICE割込処理3中にストップモードに
入ってしまい、正しくユーザプログラムの前の動作モー
ドに戻ることができない。このために、従来のこのよう
な場合において再実行させるときに、ICEの制御ソフ
トウェアは「ストップモード中であるためノーマルモー
ドにして下さい。」などの警告を出していた。したがっ
て、ユーザは動作モードを制御するレジスタをICEに
より変更するか、再実行するスタートアドレスを指定す
るか、リセットして再実行することが行われていた。 【0009】 【発明が解決しようとする課題】このような構成のイン
サーキットエミュレータでは、ユーザプログラムにマイ
クロコンピュータの原発振を停止させるストップモード
を有する応用ソフトウェアを開発するデバッグの際に、
ユーザプログラムのストップモード中にICEの割込み
処理を行い、その後ユーザプログラムの再実行を行なえ
るように元のストップモードとするため、ICE割込処
理のICEリターン命令の前にストップモードに入れる
命令を実行させても、ユーザプログラムの実行モードへ
戻る前にICEの割込み処理中にストップモードに入っ
てしまい、元の状態に戻すことができないという問題が
ある。 【0010】また、ICEの制御ソフトウェアの処理後
に自動的にストップモードに入れ直すためには、ユーザ
プログラム中でストップモードに入れたアドレスへリタ
ーンすればよい訳であるが、ストップモードに入れる命
令を実行しても直後の命令も実行される可能性があり、
もしその命令が分岐命令であればどこへ戻せば良いかは
判断ができないという問題があった。 【0011】本発明は、前記従来技術の問題を解決する
ことに指向するものであり、ストップモードの状態で停
止されているユーザプログラムにICE割込処理を行な
った後のユーザプログラムの再実行の際、ユーザに何の
制約もなくユーザプログラムを停止した前の状態に戻す
ことができる操作性の優れたICE(インサーキットエ
ミュレータ)を提供することを目的とする。 【0012】 【課題を解決するための手段】この目的を達成するため
に、本発明に係るインサーキットエミュレータは、マイ
クロコンピュータの動作モードにおける原発振を停止さ
せる機能と、デバッグするためのインサーキットエミュ
レータの制御ソフトウェアと、制御ソフトウェアの制御
によりリードライト可能なメモリとを有するように構成
したものである。 【0013】前記構成によれば、ユーザプログラムのス
トップモードの状態で発生した割込み処理の終了後に、
再実行命令の入力に応じて、スタック領域に待避された
戻り番地をダミーの戻り番地に書き換え、ダミーの戻り
番地の領域にストップモードに入れる命令、及び次番地
の領域にメインルーチンの戻り番地へ無条件分岐する命
令を書き込み、ストップモードに入れる命令を実行し、
ユーザに何の制約もなくユーザプログラムを停止した前
のストップモードの状態に戻すことができる。 【0014】 【発明の実施の形態】以下、図面を参照して本発明にお
ける実施の形態を詳細に説明する。図1は、本実施の形
態におけるユーザプログラムのストップモード中にIC
E割込処理を行ない、その後ユーザプログラムを再実行
したとき元のストップモードに入ることを示す図であ
る。また、図2は本発明の実施の形態におけるICEの
制御ソフトウェアの処理動作を示すフローチャートであ
る。図3はICE割込処理後からユーザプログラムの再
実行でストップモードに入れるためのスタックの使い方
を示す図、図4はユーザプログラムにおいてストップモ
ードへ移行し待機状態となった各アドレスの命令を示す
図である。 【0015】図3において、12のフラグステータスの
待避領域と14の各種ステータスは、図8に示したのと
同様に割込み発生時に自動的にフラグステータスを待避
する領域と各種ステータスを待避する領域であり、15
は、図8のプログラムの戻り番地13を、ICEの制御
ソフトウェアにより書き換えて変更したダミーの戻り番
地、また、16はICEの制御ソフトウェアにより書き
換えられたストップモードに入れる命令、17はメイン
ルーチンの戻り番地へ無条件分岐する命令である。ま
た、図4において、19はユーザプログラム中にあるス
トップモードに入れる命令、20はストップモードに入
れる命令19の直後の第1の命令、21は、ストップモ
ードがユーザの割込みにより解除された時に、一番始め
に実行される第2の命令、22は割込み復帰待ちであ
る。 【0016】まず、ユーザプログラムのストップモード
中に発生させたICE割込処理で、ユーザプログラムを
実行停止した状態の動作説明を図3、図4を用いて行な
う。図4に示すユーザプログラムのメインルーチンの中
でA番地のストップモードに入れる命令19が実行され
ると、次の命令もプリフェッチ(先取り)しているため
にB番地の第1の命令20が続いて実行される。この時
点まではノーマルモードでありB番地の第1の命令20
を実行した直後で発振は停止してストップモードとな
る。このストップモード中では割込み復帰待ち22の入
力を待機し、ユーザからの割込み復帰によるメインルー
チンへの復帰はアドレスC番地の第2の命令21から実
行されノーマルモードとなる。 【0017】ここで、ストップモード中の割込み復帰待
ち22の待機状態において、ユーザプログラムの停止操
作を行いデバッグするためICEの制御ソフトウェアの
ICE割込処理が発生すると、ストップモードは、ユー
ザプログラムの割込処理と同様に解除されてノーマルモ
ードとなる。このときのスタック領域の状態は図8に示
すように待避され、図8の戻り番地13には図4に示す
第2の命令21のアドレスC番地が待避される。 【0018】さらに、ICEの制御ソフトウェアの動作
については図2のフローチャートを使って説明する。ユ
ーザプログラムの実行中に実行停止処理(強制ブレーク
などによる割込みの処理等)の発生によりユーザプログ
ラムが停止したか否かの確認を行う(S1)。処理S1
において、実行停止処理の発生によりユーザプログラム
が停止したことを確認すると、ユーザプログラムの実行
停止処理に入る前のマイクロコンピュータの動作モード
(ノーマルモード,ストップモード等)の読み取りを行
う(S2)。さらに、ICE等による割込みの発生によ
り汎用レジスタから読み込まれ、スタック領域に待避さ
れた状態情報の読み込み処理を行い(S3)、発生した
割込みの処理を実行する。その後、前記割込みの処理の
リターン命令やユーザの操作によるユーザプログラムの
再実行の命令が出されたか否かの確認を行う(S4)。 【0019】前記の処理S4において、再実行の命令が
確認されたとき、前記処理S2で読み込んだ情報からユ
ーザプログラムの停止前の状態がストップモードである
か否かを確認する(S5)。この処理S5においてスト
ップモードでないとき、スタック領域に待避されたアド
レスやステータスの状態情報を汎用レジスタへ書き込み
を行うリターン命令を実行することによりユーザプログ
ラムの再実行の処理を開始する(S6)。 【0020】また、処理S5においてストップモードの
とき、スタック領域に待避されている戻り番地をダミー
の戻り番地に変更する処理を行い(S7)、ダミーの戻
り番地として指定された領域にストップモードに入れる
命令の書き込みを行い(S8)、さらにユーザプログラ
ムの正規の戻り番地に無条件分岐する命令を書き込む処
理を行う(S9)。以上のような処理後にリターン命令
を実行しユーザプログラムの再実行の処理を開始する
(S6)。 【0021】具体的には、ストップモードの状態に発生
したICE割込処理後の操作でユーザプログラムを再実
行させ、割込み前と同じストップモードとするとき、図
2に示す処理S4の再実行命令の確認により、ICEの
制御ソフトウェアによって以下の変更を行う。まず、処
理S5でユーザプログラムの停止前の動作モードがスト
ップモードであるか確認する。ストップモードであれば
処理S7において、スタック領域のY番地に待避してい
る戻り番地13(図8参照)には図4に示すメインルー
チンへの戻り番地であるC番地が格納されているが、ダ
ミーの戻り番地15としてV番地に変更する。次に処理
S8でスタック領域のV番地にはストップモードに入れ
る命令16を書き込み、処理S9により次のW番地には
メインルーチンの戻り番地へ無条件分岐する命令17と
して図4に示すC番地へ分岐する命令を書き込む。 【0022】このような前処理を行った状態で、ICE
割込処理のICEリターン命令を実行すると、図3にお
けるスタック領域のX番地,Y番地,Z番地のフラグス
テータス12、ダミーの戻り番地15、各種ステータス
14をマイクロコンピュータが自動的に汎用レジスタに
戻し、ユーザプログラムの再実行が行われる。そして、
ダミーの戻り番地15であるV番地からユーザプログラ
ムは実行されることになり、ストップモードに入れる命
令16が実行されてストップモードに入る。次の命令で
あるW番地の実行後に発振は停止するため、ユーザは何
も注意を払うことなくユーザプログラムがストップモー
ドにおけるICEの操作をすることができる。 【0023】なお、スタック領域のV番地,W番地の命
令はフラグステータス12、各種ステータス14が変化
しない命令を使わなければならない。また、以上の説明
では、スタック領域を使って説明しているが、未使用領
域のリードライト可能なメモリを用いても同様に実施可
能である。 【0024】 【発明の効果】以上説明したように、本発明によれば、
ユーザに操作上の負担をかけることなくユーザプログラ
ムのストップモードにおけるICEの実行,停止の操作
が可能となり、デバッグを効率よく行うことができると
いう効果を奏する。
のストップモード中にICE割込処理を行なった後ユー
ザプログラム再実行に元のストップモードに入ることを
示す図 【図2】本発明の実施の形態におけるICEの制御ソフ
トウェアの処理動作を示すフローチャート 【図3】本発明の実施の形態におけるICE割込処理後
からユーザプログラムの再実行でストップモードに入れ
るためのスタックの使い方を示す図 【図4】本発明の実施の形態におけるユーザプログラム
においてストップモードへ移行し待機状態となった各ア
ドレスの命令を示す図 【図5】従来のユーザプログラムのストップモード中の
ICE割込処理による動作を実行したときの状態を示す
図 【図6】(a)はデバッグを行うストップモードを有す
るユーザプログラムのメインルーチン、(b)はユーザ
プログラムの割込処理、(c)はICE割込処理を示す
フローチャート 【図7】図6(a)のメインルーチンと図6(c)のI
CE割込処理のフローチャートにおける状態遷移図 【図8】割込み処理の発生により状態情報を待避するス
タック領域を示す図 【符号の説明】 1 メインルーチン 2 割込処理 3 ICE割込処理 4,6 通常処理 5,16,19 ストップモードに入れる命令 7,8 強制ブレーク 9 リターン命令 10 ICEリターン命令 11 通常割込処理 12 フラグステータス 13 戻り番地 14 各種ステータス 15 ダミーの戻り番地 17 メインルーチンの戻り番地へ無条件分岐する命令 20 第1の命令 21 第2の命令 22 割込み復帰待ち
Claims (1)
- (57)【特許請求の範囲】 【請求項1】 マイクロコンピュータの動作モードにお
ける原発振を停止させる機能と、デバッグするためのイ
ンサーキットエミュレータの制御ソフトウェアと、該制
御ソフトウェアの制御によりリードライト可能なメモリ
とを有し、前記原発振を停止した動作モードの状態にお
いて発生した割込み処理の終了後に、再実行命令の入力
に応じて、スタック領域に待避された戻り番地をダミー
の戻り番地に書き換え、前記ダミーの戻り番地の領域に
前記原発振を停止した動作モードに入れる命令、及び次
番地の領域にメインルーチンの戻り番地へ無条件分岐す
る命令を書き込み、前記原発振を停止した動作モードに
入れる命令を実行し、前記原発振を停止した動作モード
の状態とすることを特徴とするインサーキットエミュレ
ータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14975298A JP3410023B2 (ja) | 1998-05-29 | 1998-05-29 | インサーキットエミュレータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14975298A JP3410023B2 (ja) | 1998-05-29 | 1998-05-29 | インサーキットエミュレータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11345143A JPH11345143A (ja) | 1999-12-14 |
JP3410023B2 true JP3410023B2 (ja) | 2003-05-26 |
Family
ID=15481987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14975298A Expired - Lifetime JP3410023B2 (ja) | 1998-05-29 | 1998-05-29 | インサーキットエミュレータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3410023B2 (ja) |
-
1998
- 1998-05-29 JP JP14975298A patent/JP3410023B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11345143A (ja) | 1999-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS63245529A (ja) | レジスタ退避復元装置 | |
JP2005528664A (ja) | Cpuのパワーダウン方法及びそのための装置 | |
US20100153786A1 (en) | Processor, multiprocessor, and debugging method | |
GB2281986A (en) | Logging program counter on reset. | |
US20040199757A1 (en) | Information processing device, method of saving and loading data, and information recording medium | |
JP3410023B2 (ja) | インサーキットエミュレータ | |
KR101236393B1 (ko) | 전자장치 및 그 제어방법 | |
JPH0477833A (ja) | デバッグ環境を備えた集積回路 | |
JP2663895B2 (ja) | Cpuシミュレータ | |
JP3097602B2 (ja) | データ処理装置 | |
JP3206394B2 (ja) | 5段パイプライン構造のプログラマブルコントローラ | |
JP3088285B2 (ja) | インサーキットエミュレータ | |
JP3449812B2 (ja) | 制御用電子装置 | |
JPS6048770B2 (ja) | 情報処理方式 | |
JPS5835648A (ja) | プログラム実行制御方式 | |
JP3111355B2 (ja) | 計算機システム | |
JP2004280789A (ja) | 半導体集積回路装置およびマイクロコンピュータ開発支援装置 | |
JPH0981275A (ja) | 演算処理装置 | |
JPH08272653A (ja) | フリーズ処理システム | |
JP2002366378A (ja) | プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体 | |
KR20010047483A (ko) | 컴퓨터에서의 터치 패드 기능 제어 방법 | |
JPH04235641A (ja) | マイクロプロセッサ開発支援装置 | |
JPH11316691A (ja) | オペレーティングシステムの実行方法及び、これを用いた情報処理装置 | |
JPH11194956A (ja) | 演算処理装置のデバッグ方法および演算処理装置 | |
JPH01232446A (ja) | コンピュータのプログラム開発支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080320 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090320 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100320 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110320 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110320 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120320 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130320 Year of fee payment: 10 |