JPH11327954A - 割込み処理方法およびプログラム処理装置 - Google Patents

割込み処理方法およびプログラム処理装置

Info

Publication number
JPH11327954A
JPH11327954A JP10152228A JP15222898A JPH11327954A JP H11327954 A JPH11327954 A JP H11327954A JP 10152228 A JP10152228 A JP 10152228A JP 15222898 A JP15222898 A JP 15222898A JP H11327954 A JPH11327954 A JP H11327954A
Authority
JP
Japan
Prior art keywords
processing
program
indivisible
interrupt
input
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.)
Granted
Application number
JP10152228A
Other languages
English (en)
Other versions
JP3120841B2 (ja
Inventor
Tamotsu Iwasaki
保 岩▲崎▼
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP10152228A priority Critical patent/JP3120841B2/ja
Publication of JPH11327954A publication Critical patent/JPH11327954A/ja
Application granted granted Critical
Publication of JP3120841B2 publication Critical patent/JP3120841B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 インサーキットエミュレータを使用したデバ
ッグシステムにおいて、デバッグの対象となるプログラ
ムが不可分処理を実行中、割込み入力により強制中断さ
れるのを回避すること。 【解決手段】 プログラム処理が不可分である不可分処
理領域の最終アドレスを保持する最終アドレス保持ステ
ップと、割込み入力があったときに前記不可分処理領域
のプログラム処理を実行中であるか否かを判定する不可
分処理領域実行判定ステップと、該不可分処理領域実行
判定ステップで、前記割込み入力があったときに前記不
可分処理領域のプログラム処理を実行中であると判定す
ると、該実行中のプログラム処理を前記最終アドレス保
持ステップで保持した最終アドレスの処理終了まで実行
し、前記最終アドレスの処理が終了してから前記割込み
入力による強制中断を行う割込み処理ステップとを備え
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、割込み処理方法お
よびプログラム処理装置に関する。
【0002】
【従来の技術】ソフトウェアの開発効率を上げるための
方法の一つとして、汎用のライブラリを導入することが
考えられる。汎用のライブラリとしては、リアルタイム
OSやネットワークドライバ、ミドルウェア等多岐にわ
たっている。これら汎用のライブラリはバイナリのみで
提供されることが多く、プログラマは内部の処理を推し
量ることが出来ない。従って、プログラムをデバッグす
る際、これら汎用のライブラリを実行中にブレークを行
い、一連のデバッグ操作を行うことは、汎用ライブラリ
の動作を損なうことになるため禁止されている。
【0003】このようなソフトウェアのデバッグツール
として、インサーキットエミュレータが広く利用されて
いる。インサーキットエミュレータは、プログラムの実
行開始、実行中断などデバッグ機能を備えており、デバ
ッグツールとして使用されている。
【0004】このインサーキットエミュレータでは、次
のような問題がある。ソフトウェアのデバッグを行なっ
ている際、任意の位置でプログラムの実行を停止する状
況が生じる。この場合、インサーキットエミュレータで
は、ユーザが作成したプログラム、リアルタイムOS、
ミドルウェア等の区別なくプログラムの実行を停止して
しまう。しかし、本来ブラックボックスであるリアルタ
イムOSやミドルウェアの処理中に停止した場合、中断
中のデバッグ操作(メモリ内容の変更、レジスタ操作な
ど)により、中断後の実行再開時の動作が保証できない
ことになる。
【0005】この問題を解決するために、従来では特開
平1−260561号公報に開示された技術がある。以
下、本従来技術について説明する。図8は、インサーキ
ットエミュレータを構成するデバッグ用マイクロプロセ
ッサ内に設けられた割込み制御回路およびその周辺回路
の構成を示す回路ブロック図である。この割込み制御回
路およびその周辺回路は、プログラムカウンタ701、
メモリ管理回路702、バス制御回路703、割り込み
制御回路704、ANDゲート708、NANDゲート
709、アドレスバス710などから構成されている。
符号705はINT入力、符号706はNMI入力、符
号707はSVI入力(最高の優先順位を持つスーパバ
イザ割込み入力)、符号711は命令フェッチアドレス
である。
【0006】図9は、従来技術において任意の時点でプ
ログラムの実行を停止する際の、インサーキットエミュ
レータのモニタプログラムのうち、SVI処理を示すフ
ローチャートである。このSVI処理は、デバッグ用マ
イクロプロセッサにSVI入力があったときの割込み処
理として実現されている。
【0007】図10は、インサーキットエミュレータを
使用したデバッグ環境のシステム構成を示すブロック図
である。このシステム構成は、インサーキットエミュレ
ータ901、インサーキットエミュレータ901を制御
するホストマシン902、ホストマシン902とインサ
ーキットエミュレータ901を接続するためのチャネル
903、デバッグ対象となるソフトウェアが動作するタ
ーゲットシステム904、ターゲットシステム904と
インサーキットエミュレータ901を接続するプローブ
905、デバッグ用マイクロプロセッサ906、I/O
ポート907、ホストマシン902との通信用のデュア
ルポートメモリ908、エミュレーションメモリ90
9、バッファ910などから構成されている。なお、符
号911はSVI入力であり、ホストマシン902がI
/Oポート907を操作することにより発生する。
【0008】次に動作について説明する。プログラムに
ついては、リアルタイムOSがF000番地からFFF
F番地に、ユーザーアプリケーションは前記F000番
地からFFFF番地以外のアドレスに配置されているも
のとする。今、ターゲットシステム904でインサーキ
ットエミュレータ901によりプログラムが動作してい
る。ここで、ホストマシン902が強制ブレークを行う
ために、接続チャネル903を通してインサーキットエ
ミュレータ901内のI/Oポート907を操作しSV
Iを発生させたとする。この信号は、SVI入力911
としてデバッグ用マイクロプロセッサ906に入力され
る。入力された前記信号は、デバッグ用マイクロプロセ
ッサ906内の図8に示す割込制御回路704にSVI
入力707として入力される。デバッグ用マイクロプロ
セッサ906では、図8に示すプログラムカウンタ70
1が次に実行する命令の格納アドレスを保持している。
メモリ管理回路702は、命令フェッチするアドレスを
バス制御回路703を通してアドレスバス710へ出力
している。また、メモリ管理回路702は、命令フェッ
チアドレス711へアドレスビットA12〜A15の範
囲の命令フェッチアドレスを出力し、NANDゲート7
09へ供給する。
【0009】この結果、0番地からEFFF番地までの
アドレス範囲のプログラムを実行していた場合、NAN
Dゲート709の出力は‘High’レベルになる。N
ANDゲート709の出力が‘High’レベルであれ
ば、ANDゲート708はSVI入力707をマスクせ
ず、SVI入力707は割込み制御回路704へ入力さ
れる。そして、デバッグ用マイクロプロセッサ906は
前記SVI入力707によりユーザプログラムの実行を
中断し、図9のフローチャートで示すSVI処理を開始
する。このSVI処理では、先ず、レジスタ等のコンテ
キストを待避した後(ステップS1)、ブレークが発生
したときの処理(ステップS2)を行い、ホストマシン
902からのコマンド待ち状態になる。
【0010】一方、F000番地からFFFF番地まで
のアドレス範囲のプログラムを実行していた場合、すな
わちリアルタイムOS処理が行われていた場合、NAN
Dゲート709の出力は‘Low’レベルになる。NA
NDゲート709の出力が‘Low’レベルであれば、
ANDゲート708はSVI入力707をマスクし、S
VI入力707は割込制御回路704へ入力されない。
リアルタイムOS処理が終了し、プログラムが0番地か
らEFFF番地を実行している状態、すなわちユーザプ
ログラムを実行している状態では、NANDゲート70
9の出力が再度‘High’レベルになり、ANDゲー
ト708によりSVI入力707は割込制御回路704
へ入力可能な状態になる。この結果、SVI入力が発生
すると、デバッグ用マイクロプロセッサ906は、ユー
ザプログラムの実行を中断し、図9に示すフローチャー
トに従った処理を行う。
【0011】以上のように従来の技術では、フェッチア
ドレスを利用して、特定のメモリ空間にあるプログラム
を実行している場合には、SVI入力707をマスクし
てプログラムの実行中断を防いでいる。この領域に、実
行を中断された場合に実行再開時の動作が保証できない
リアルタイムOS等のプログラムを配置することによ
り、不可分な処理の中断を防いでいる。
【0012】
【発明が解決しようとする課題】従来の割込み処理方法
およびプログラム処理装置は以上のように構成されてい
る。一方、マイクロプロセッサの高性能化に伴い、プロ
グラム開発効率の向上を図るため、リアルタイムOS等
の汎用ライブラリの導入が積極的に行われているが、こ
れらライブラリのメモリ上の配置は一意的に決めること
は出来ない。また、使用する汎用ライブラリは1つでは
なく複数使用され、これらのサイズ、配置アドレスはま
ちまちであり、従来のようにプログラムの実行を中断す
べきでない領域をハードウェアにより決定してしまうこ
とは、プログラムの構成に柔軟に対応できないばかりで
なく、デバッグ環境として意味を成さないものとなって
しまい、このようなプログラム構成に柔軟に対応できな
い課題があった。
【0013】また、組込み制御プログラムは割込みに対
して高速な応答が要求され、リアルタイムOSにおいて
も高速な割込み応答を阻害しないように割込みを受け付
ける処理を行なっており、このため、SVI入力707
も含め全て割込みがマスクされてしまう構成では、割込
みの応答速度の劣化を招く課題があった。
【0014】本発明の目的は、不可分処理領域に対する
自由度を向上させ、またデバッグ環境の多様性に柔軟に
対応でき、さらにデバッグ操作を行うに際しての信頼性
を向上できる割込み処理方法およびプログラム処理装置
を提供することにある。
【0015】
【課題を解決するための手段】本発明に係る割込み処理
方法は、プログラム処理が不可分である不可分処理領域
の最終アドレスを保持する最終アドレス保持ステップ
と、割込み入力があったときに前記不可分処理領域のプ
ログラム処理を実行中であるか否かを判定する不可分処
理領域実行判定ステップと、該不可分処理領域実行判定
ステップで、前記割込み入力があったときに前記不可分
処理領域のプログラム処理を実行中であると判定する
と、該実行中のプログラム処理を前記最終アドレス保持
ステップで保持した最終アドレスの処理終了まで実行
し、前記最終アドレスの処理が終了してから前記割込み
入力による強制中断を行う割込み処理ステップとを備え
たことを特徴とする。
【0016】本発明に係るプログラム処理装置は、プロ
グラム処理が不可分である不可分処理プログラムを格納
した不可分処理領域の最終アドレスをブレークポイント
として設定するブレークポイント設定手段と、前記不可
分処理領域へ格納されている不可分処理プログラムを割
込み入力があったとき実行中であるか否かを判定する不
可分処理プログラム実行判定手段と、該不可分処理プロ
グラム実行判定手段が前記不可分処理プログラムの処理
を実行中であると判定すると、前記割込み入力があった
ときに実行中の前記不可分処理プログラムを、前記ブレ
ークポイント設定手段により設定した前記最終アドレス
の処理終了まで実行し、前記最終アドレスの処理が終了
すると前記ターゲットシステム上で動作するプログラム
に対し前記割込み入力による強制中断を行う割込み処理
手段とを備えたことを特徴とする。
【0017】本発明の割込み処理方法は、プログラム処
理が不可分である不可分処理領域の最終アドレスを保持
し、割込み入力があったときに前記不可分処理領域のプ
ログラム処理を実行中であるか否かを判定し、前記割込
み入力があったときに前記不可分処理領域のプログラム
処理を実行中であると、該実行中のプログラム処理を前
記保持した最終アドレスの処理終了まで実行し、前記最
終アドレスの処理が終了してから前記割込み入力による
強制中断を行い、前記割込み入力があったとき実行中で
ある不可分処理領域の特定を、当該不可分処理領域のプ
ログラム処理を実行中であるか否かを示すフラグなどを
もとに判定することで不可分処理領域に対する自由度を
向上させ、また前記最終アドレスと前記判定とをもとに
前記割込み入力があったときの不可分処理プログラムの
処理を前記最終アドレスまで継続することでデバッグ環
境の多様性に柔軟に対応し、前記不可分処理領域のプロ
グラム処理が前記割込み入力により途中で中断されるの
を回避し、デバッグ操作を行うに際しての信頼性を向上
させる。
【0018】本発明のプログラム処理装置は、プログラ
ム処理が不可分である不可分処理プログラムを格納した
不可分処理領域の最終アドレスをブレークポイントとし
て設定し、前記不可分処理領域へ格納されている不可分
処理プログラムを割込み入力があったとき実行中である
か否かを判定し、前記不可分処理プログラムの処理を実
行中であると判定すると、前記割込み入力があったとき
に実行中の前記不可分処理プログラムを、前記設定した
前記最終アドレスの処理終了まで実行し、前記最終アド
レスの処理が終了すると前記ターゲットシステム上で動
作するプログラムに対し前記割込み入力による強制中断
を行い、前記割込み入力があったとき実行中である不可
分処理領域の特定を、当該不可分処理領域のプログラム
処理を実行中であるか否かを示すフラグなどをもとに判
定することで不可分処理領域に対する自由度を向上さ
せ、また前記最終アドレスと前記判定とをもとに前記割
込み入力があったときの前記不可分処理プログラムの処
理を前記前記最終アドレスまで継続することでデバッグ
環境の多様性に柔軟に対応し、前記不可分処理領域のプ
ログラム処理が前記割込み入力により途中で中断される
のを回避し、デバッグ操作を行うに際しての信頼性を向
上させる。
【0019】
【発明の実施の形態】以下、本発明の実施の一形態を説
明する。図1は、本実施の形態の割込み処理方法が適用
されるSVI(最高の優先順位を持つスーパバイザ割込
み入力)発生時のデバッグ用マイクロプロセッサの処理
動作を示すフローチャートであり、インサーキットエミ
ュレータのモニタプログラムのうちのSVI処理動作を
示す。図2は、OS実行中であるか、またはアプリケー
ションプログラムの実行中であるかを示すフラグを格納
するフラグ格納領域を示す説明図である。図3はリアル
タイムOSの処理動作を示すフローチャートである。
【0020】図4は、本実施の形態におけるインサーキ
ットエミュレータを使用したデバッグ環境を示すブロッ
ク図である。このデバッグ環境の構成は、インサーキッ
トエミュレータ(デバッグシステム)901a、インサ
ーキットエミュレータ901aを制御するホストマシン
902、ホストマシン902とインサーキットエミュレ
ータ901aを接続するための接続チャネル903、デ
バッグ対象となるソフトウェアが動作するターゲットシ
ステム904、ターゲットシステム904とインサーキ
ットエミュレータ901aを接続するプローブ905、
デバッグ用マイクロプロセッサ(ブレークポイント設定
手段,不可分処理プログラム実行判定手段,割込み処理
手段)906a、I/Oポート907、ホストマシン9
02との通信用のデュアルポートメモリ908、エミュ
レーションメモリ909、バッファ910などを備えて
いる。なお、符号911はSVI入力である。SVI
は、ホストマシン902がI/Oポート907を操作す
ることにより発生する。
【0021】次に、動作について説明する。インサーキ
ットエミュレータ901によりユーザプログラムがター
ゲットシステム904で動作している。このとき前記ユ
ーザプログラムがリアルタイムOSの処理を呼び出した
とする。前記リアルタイムOSは、図3のフローチャー
トに従い処理を行う。
【0022】先ず、図2に示すフラグ格納領域に、リア
ルタイムOSの実行中であることを示すフラグ「1」を
セットする。(ステップS11)。次に、リアルタイム
OSによる所定の処理を行い(ステップS12)、この
所定の処理が終了すると前記フラグ格納領域にセットさ
れていたフラグ「1」を「0」にクリアし(ステップS
13)、ユーザプログラムに戻る。
【0023】今、ホストマシン902が強制ブレークを
行うために、接続チャネル903を介してインサーキッ
トエミュレータ901a内のI/Oポート907を操作
しSVIを発生させ、このSVIが図3に示すOS処理
のステップS11とステップS12の間でSVI入力9
11としてデバッグ用マイクロプロセッサ906aに入
力された場合、すなわち、OS処理の不可分の部分でS
VIが入力された場合を考える。
【0024】このときのデバッグ用マイクロプロセッサ
906aの処理動作は図1に示すフローチャートに従
う。先ず、ユーザプログラムの実行を中断し、所定のS
VI処理を開始する。このSVI処理では、コンテキス
トを待避させ(ステップS21)、次に、図2に示した
フラグ格納領域にセットされているフラグの確認を行う
(ステップS22)。この場合、SVIが図3に示すO
S処理のステップS11とステップS12の間で発生し
たため、前記フラグ格納領域には「1」がセットされて
いる。このため図3のラベルCにブレークポイントを設
定し(ステップS23)、前記退避させたコンテキスト
を復帰させ(ステップS24)、前記ブレークポイント
まで実行する(ステップS25)。
【0025】前記ラベルCの場所は、図2のフラグ格納
領域を「0」にクリアした場所、すなわちリアルタイム
OSなどの不可分の領域を抜けた場所である。
【0026】ここで初めて、本来のSVI入力による強
制ブレーク処理が行われ(ステップS27)、SVI入
力によりユーザプログラムが停止する。
【0027】次に、図3に示したOS処理のステップS
11の処理実行前、またはステップS13の処理実行後
に、SVIがデバッグ用マイクロプロセッサ906aに
入力された場合、すなわちOS処理の不可分ではない部
分でSVIが入力された場合を考える。この場合には、
デバッグ用マイクロプロセッサ906aは、ユーザプロ
グラムの実行を中断して図1に示す所定のSVI処理を
開始する。先ず、コンテキストを待避させ(ステップS
21)。次に、図2に示したフラグ格納領域にセットさ
れているフラグを確認する(ステップS22)。SVI
がOS処理の前記不可分ではない部分で発生したため、
前記フラグ格納領域にセットされているフラグは「0」
にクリアされている。従って、ステップS22からステ
ップS27へ進んで、直ちに強制ブレーク処理が行わ
れ、ユーザープログラムが停止する。
【0028】以上のように、本実施の形態によれば、リ
アルタイムOSなどの不可分処理領域を実行中である
か、またはアプリケーションプログラムの実行中である
かを示すフラグと、ブレークポイントとなる前記不可分
処理領域を抜けたときのアドレスを示すラベルにより、
不可分処理領域の実行中に発生したSVIに対するブレ
ーク処理を当該不可分処理領域の処理終了後に伸ばし、
前記不可分処理領域の実行が途中で停止しないように構
成したので、リアルタイムOSなどの不可分処理領域を
持つ汎用ライブラリを使用したプログラムのデバッグの
際、その配置アドレスを自由に設定することが出来、さ
らに従来技術のように数Kバイト単位などと最小値が制
限されることもなく、如何なる不可分処理領域のサイズ
に対しても対応できる。
【0029】また、従来技術では汎用ライブラリとイン
サーキットエミュレータの組み合わせが限られてしまう
のに対し、本実施の形態では、実現に必要な手段、構成
を、全て汎用ライブラリとインサーキットエミュレータ
のモニタプログラムで実現しているため、従来のハード
ウェア環境において容易に実現できるとともに、対象と
なるデバイスに依存しないため、種々のインサーキット
エミュレータを使用したデバッグ環境に対応でき、デバ
ッグ環境の多様性に柔軟に対応できる。
【0030】また、SVI処理のみに対応することによ
り、他の割込み(例えば、INTやNMI)を妨げるこ
とがなく、デバッグ時でも通常と同等のプログラム処理
を行うことが出来、デバッグの信頼性を向上できる。
【0031】次に、本発明の他の実施の形態について説
明する。図5は、本実施の形態の割込み処理方法が適用
されるSVI発生時のデバッグ用マイクロプロセッサの
処理動作を示すフローチャートであり、インサーキット
エミュレータのモニタプログラムのうちのSVI処理動
作を示す。
【0032】図6は、本実施の形態におけるOS実行中
(フラグ「1」)であるか、またはアプリケーションプ
ログラムの実行中(フラグ「0」)であるかを示すフラ
グのフラグ格納領域と、ブレークポイントとなるブレー
クアドレス情報が格納される領域を示すアドレスが記憶
されるアドレス格納領域を示す説明図である。
【0033】本実施の形態では、不可分処理領域が複数
存在する場合、最初の不可分処理領域に対する実行中を
示すフラグ「1」がセットされるビット位置がビット
0、次の不可分処理領域に対する実行中を示すフラグ
「1」がセットされるビット位置がビット1、さらに次
の不可分処理領域に対する実行中を示すフラグ「1」が
セットされるビット位置がビット2・・・というよう
に、ビット位置と各不可分処理領域とを1対1に対応さ
せる。さらに前記各不可分処理領域実行中のSVIに対
しブレークポイントとなるブレークアドレス情報が格納
される領域を示すアドレスを、前記各不可分処理領域実
行中を示す前記各ビット位置に予め対応させておく。
【0034】このため、前記複数の各不可分処理領域が
アクセスされると、ビット0から順番にリアルタイムO
Sなどの不可分処理領域の処理実行中であることを示す
フラグ「1」、またはアプリケーションプログラム実行
中であることを示すフラグ「0」がセットされ、また、
前記ブレークアドレス情報が格納される各領域には前記
各不可分処理領域のブレークポイントとなるブレークア
ドレス情報が格納される。このブレークアドレス情報の
格納は、予め設定する方法、またはラベルをもとに自動
的に設定する方法いずれであってもよい。
【0035】このように、前記フラグ格納領域はリアル
タイムOSなどを格納した各不可分処理領域毎に対応し
て設定されており、また、前記アドレス格納領域は、前
記各フラグがセットされるビット位置に対応している。
【0036】図7は、本実施の形態におけるリアルタイ
ムOSの処理動作を示すフローチャートである。本実施
の形態のインサーキットエミュレータを使用したデバッ
グ環境の構成はは、前記実施の形態と同様に図4により
示される。
【0037】次に、動作について説明する。本実施の形
態でも、インサーキットエミュレータ901aによりタ
ーゲットシステム904に対しユーザプログラムが動作
している。この状態で、ユーザプログラムがリアルタイ
ムOSなどの不可分処理領域をアクセスしたとする。こ
の結果、前記リアルタイムOSは図7のフローチャート
に従い処理を行う。
【0038】先ず、図6に示すフラグ格納領域のビット
0に、リアルタイムOSが動作中であることを示すフラ
グ「1」をセットする(ステップS31)。次に、所定
のリアルタイムOS処理を行い(ステップS32)、こ
のリアルタイムOS処理が終了すると、前記フラグ格納
領域のビット0のフラグを「0」にクリアして(ステッ
プS33)、ユーザプログラムに戻る。
【0039】今、ホストマシン902が強制ブレークを
行うために、接続チャネル903を介してインサーキッ
トエミュレータ901a内のI/Oポート907を操作
して発生させたSVIが、図7に示すOS処理のステッ
プS31とステップS32の間で、SVI入力911と
してデバッグ用マイクロプロセッサ906aに入力され
た場合、すなわち、OS処理の不可分の部分でSVIが
入力された場合を考える。
【0040】この場合、デバッグ用マイクロプロセッサ
906aはユーザプログラムの実行を中断し、図5に示
す所定のSVI処理を開始する。先ず、コンテキストを
待避させ(ステップS41)、次に、図6に示したフラ
グ格納領域のビット0にセットされているフラグを確認
する(ステップS42)。この場合、SVIが図7に示
すOS処理のステップS31とステップS32の間で発
生したため、フラグ格納領域のビット0にはフラグ
「1」がセットされている。
【0041】従って、図6の前記ビット0に対応する前
記アドレス格納領域から、前記OS処理についてのブレ
ークアドレス情報を獲得する(ステップS43)。前述
したようにビット0にセットされたフラグ「1」はリア
ルタイムOS実行中に対応しており、さらに前記アドレ
ス格納領域には、ブレークポイントとなるラベルCのア
ドレスが格納されている。このためラベルCのアドレス
にブレークポイントを設定し(ステップS44)、コン
テキストを復帰させ(ステップS45)、前記ブレーク
ポイントまで前記OS処理を実行する(ステップS4
6)。ラベルCのアドレスは、図7に示す前記フラグ格
納領域のビット0のフラグを「0」にクリアした場所、
すなわちOS処理を完了し不可分の領域を抜けた場所
(ステップS33の処理後)である。ここで初めて、本
来のSVI入力による強制ブレーク処理が行われ(ステ
ップS48)、ユーザプログラムが停止する。
【0042】以上の処理は、前記OS処理などの不可分
処理領域が複数存在している場合、フラグ「1」がセッ
トされているビットに対し行われ、当該ビットに対応す
るアドレス格納領域のブレークアドレス情報をもとにス
テップS48のブレーク処理が行なわれる。
【0043】次に、図7に示すOS処理のステップS3
1の処理前、またはステップS33の処理後にSVIが
デバッグ用マイクロプロセッサ906aへ入力された場
合、すなわちOS処理の不可分ではない部分でSVIが
入力された場合を考える。デバッグ用マイクロプロセッ
サ906aは、ユーザプログラムの実行を中断し、所定
のSVI処理を開始する。先ず、コンテキストを待避さ
せ(ステップS41)。次に、図6に示した前記フラグ
格納領域にセットされたフラグを確認する(ステップS
42)。SVIはOS処理の不可分ではない部分で発生
したため、フラグ格納領域のビット0のフラグは「0」
にクリアされている。従って、直ちに強制ブレーク処理
が行われ(ステップS48)、ユーザプログラムが停止
する。
【0044】以上のように、本実施の形態によれば、一
つの汎用ライブラリ内に不可分処理領域が複数存在する
場合、または不可分処理領域を持つライブラリを複数使
用する場合でも、その構成に合わせて自由に不可分処理
領域を設定することができ、複数の不可分処理領域を持
つライブラリを複数使用する場合のSVIに対し、前記
実施の形態と同様な効果を奏する。
【0045】
【発明の効果】以上のように、本発明によれば、不可分
処理領域の最終アドレスをブレークポイントとして設定
し、前記不可分処理領域へ格納されている不可分処理プ
ログラムを割込み入力があったとき実行中であるか否か
の判定をフラグなどをもとに行い、前記不可分処理プロ
グラムの処理を実行中であると、当該不可分処理プログ
ラムを前記最終アドレスの処理終了まで実行し、前記最
終アドレスの処理が終了すると前記ターゲットシステム
上で動作するプログラムに対し前記割込み入力による強
制中断を行う構成を備えたので、記憶領域、数、サイズ
が一意的に決まらない前記不可分処理領域に対応する際
の自由度が向上する効果がある。また前記最終アドレス
と、前記フラグなどをもとに行う判定とをもとに前記割
込み入力があったときの前記不可分処理プログラムの処
理を前記前記最終アドレスまで継続する構成を備えたの
でデバッグ環境の多様性に柔軟に対応でき、前記不可分
処理領域のプログラム処理が前記割込み入力により途中
で中断されるのを回避でき、デバッグ操作を行うに際し
ての信頼性を向上できる効果がある。また、実現に必要
な仕組みをプログラム処理で実現しているため、従来の
ハードウェア環境に容易に対応できるとともに、対象と
なるデバイスに依存しないため、種々のデバッグ環境に
対応できる効果がある。また、SVI処理に対応してい
ることにより、INTやNMIなどの他の割込みに障害
とならず、デバッグ時でも通常と同等の処理を行うこと
ができ、デバッグ時の信頼性を向上できる効果がある。
【図面の簡単な説明】
【図1】 本発明の実施の一形態の割込み処理方法が適
用されるSVI発生時のデバッグ用マイクロプロセッサ
の処理動作を示すフローチャートである。
【図2】 本発明の実施の一形態の割込み処理方法が適
用されるプログラム処理装置における、OS実行中また
はアプリケーションプログラムの実行中であるかを示す
フラグを格納するフラグ格納領域を示す説明図である。
【図3】 本発明の実施の一形態の割込み処理方法が適
用されるプログラム処理装置におけるリアルタイムOS
の処理動作を示すフローチャートである。
【図4】 本発明の実施の一形態におけるインサーキッ
トエミュレータを使用したデバッグ環境を示すブロック
図である。
【図5】 本発明の他の実施の形態の割込み処理方法が
適用されるSVI発生時のデバッグ用マイクロプロセッ
サの処理動作を示すフローチャートである。
【図6】 本発明の他の実施の形態におけるOS実行中
またはアプリケーションプログラムの実行中であるかを
示すフラグのフラグ格納領域と、ブレークポイントとな
るブレークアドレス情報が格納される領域を示すアドレ
スが記憶されるアドレス格納領域を示す説明図である。
【図7】 本発明の他の実施の形態の割込み処理方法が
適用されるプログラム処理装置におけるリアルタイムO
Sの処理動作を示すフローチャートである。
【図8】 従来のインサーキットエミュレータを構成す
るデバッグ用マイクロプロセッサ内に設けられた割込み
制御回路およびその周辺回路の構成を示すブロック図で
ある。
【図9】 従来のインサーキットエミュレータのモニタ
プログラムのSVI発生時の処理動作を示すフローチャ
ートである。
【図10】 従来のインサーキットエミュレータを使用
したデバッグ環境を示すブロック図である。
【符号の説明】
901a……インサーキットエミュレータ(デバッグシ
ステム)、904……ターゲットシステム、906a…
…デバッグ用マイクロプロセッサ(ブレークポイント設
定手段,不可分処理プログラム実行判定手段,割込み処
理手段)。

Claims (7)

    【特許請求の範囲】 (割込み処理方法)
  1. 【請求項1】 プログラム処理が不可分である不可分処
    理領域の最終アドレスを保持する最終アドレス保持ステ
    ップと、 割込み入力があったときに前記不可分処理領域のプログ
    ラム処理を実行中であるか否かを判定する不可分処理領
    域実行判定ステップと、 該不可分処理領域実行判定ステップで、前記割込み入力
    があったときに前記不可分処理領域のプログラム処理を
    実行中であると判定すると、該実行中のプログラム処理
    を前記最終アドレス保持ステップで保持した最終アドレ
    スの処理終了まで実行し、前記最終アドレスの処理が終
    了してから前記割込み入力による強制中断を行う割込み
    処理ステップとを備えた割込み処理方法。
  2. 【請求項2】 前記不可分処理領域実行判定ステップ
    は、 不可分処理領域のプログラム処理を実行中であるか否か
    を示すフラグをもとに、前記不可分処理領域のプログラ
    ム処理を割込み入力があったとき実行中であるか否かを
    判定し、 前記最終アドレス保持ステップは、 前記フラグにより実行中であるか否かが示される前記不
    可分処理領域に対応させて、当該不可分処理領域の最終
    アドレスを保持することを特徴とする請求項1記載の割
    込み処理方法。
  3. 【請求項3】 前記割込み入力は、 最高の優先順位を持つスーパバイザ割込み入力であるこ
    とを特徴とする請求項1または請求項2記載の割込み処
    理方法。
  4. 【請求項4】 前記プログラム処理は、 不可分処理領域に格納されたリアルタイムOSによる実
    行処理であることを特徴とする請求項3記載の割込み処
    理方法。 (プログラム処理装置)
  5. 【請求項5】 強制中断用の割込み入力を持つマイクロ
    プロセッサを用いたデバッグシステムと、該デバッグシ
    ステムがデバッグ対象としているターゲットシステム上
    で動作するプログラムを備えたプログラム処理装置にお
    いて、 プログラム処理が不可分である不可分処理プログラムを
    格納した不可分処理領域の最終アドレスをブレークポイ
    ントとして設定するブレークポイント設定手段と、 前記割込み入力があったとき、前記不可分処理領域へ格
    納されている不可分処理プログラムを実行中であるか否
    かを判定する不可分処理プログラム実行判定手段と、 該不可分処理プログラム実行判定手段が前記不可分処理
    プログラムの処理を実行中であると判定すると、前記割
    込み入力があったときに実行中の前記不可分処理プログ
    ラムを、前記ブレークポイント設定手段が設定した前記
    最終アドレスの処理終了まで実行し、前記最終アドレス
    の処理が終了すると前記ターゲットシステム上で動作す
    るプログラムに対し前記割込み入力による強制中断を行
    う割込み処理手段とを備えたプログラム処理装置。
  6. 【請求項6】 前記不可分処理プログラム実行判定手段
    は、 不可分処理プログラムを実行中であるか否かを示す当該
    不可分処理プログラムにより設定されたフラグと割込み
    入力とをもとに、前記不可分処理プログラムが前記割込
    み入力のあったとき実行中であるか否かを判定し、 前記ブレークポイント設定手段は、 前記不可分処理プログラムが格納されている前記不可分
    処理領域の最終アドレスのラベルをもとにブレークポイ
    ントを設定することを特徴とする請求項5記載のプログ
    ラム処理装置。
  7. 【請求項7】 前記不可分処理プログラム実行判定手段
    は、 各不可分処理プログラムにより所定のビット位置に設定
    された自不可分処理プログラムが実行中であるか否かを
    示すフラグをもとに、当該各不可分処理プログラムが前
    記割込み入力のあったとき実行中であるか否かを判定
    し、 前記ブレークポイント設定手段は、 前記フラグが設定される各ビット位置に対応して保持さ
    れている各不可分処理領域の最終アドレスをもとに、ブ
    レークポイントを設定することを特徴とする請求項5記
    載のプログラム処理装置。
JP10152228A 1998-05-14 1998-05-14 インサーキットエミュレータ Expired - Fee Related JP3120841B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10152228A JP3120841B2 (ja) 1998-05-14 1998-05-14 インサーキットエミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10152228A JP3120841B2 (ja) 1998-05-14 1998-05-14 インサーキットエミュレータ

Publications (2)

Publication Number Publication Date
JPH11327954A true JPH11327954A (ja) 1999-11-30
JP3120841B2 JP3120841B2 (ja) 2000-12-25

Family

ID=15535898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10152228A Expired - Fee Related JP3120841B2 (ja) 1998-05-14 1998-05-14 インサーキットエミュレータ

Country Status (1)

Country Link
JP (1) JP3120841B2 (ja)

Also Published As

Publication number Publication date
JP3120841B2 (ja) 2000-12-25

Similar Documents

Publication Publication Date Title
JPH06314213A (ja) デバッグ装置
US20040098639A1 (en) Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems
EP0638864B1 (en) Development support system for microcomputer with internal cache
EP1058189B1 (en) Microcomputer with debugging system
JP3120841B2 (ja) インサーキットエミュレータ
US20080133838A1 (en) Data processing device
JP3503504B2 (ja) デバッグ処理システムと計算機およびデバッグ処理方法
JP2653412B2 (ja) ブレークポイント設定方法
JP2697230B2 (ja) デバッグ支援装置
JP2653411B2 (ja) ブレークポイント設定方法
JPH05108404A (ja) デバツガシステム
JP2954006B2 (ja) エミュレーション装置およびエミュレーション方法
JPH03240831A (ja) 割り込み処理方式
JP2007213396A (ja) デバッグシステム、オペレーションシステム、デバッグ方法、プログラム
JP3159155B2 (ja) プログラムのデバッグ方法および装置
JPS61267137A (ja) 割込み動作制御方式
JPH07210421A (ja) スレッド環境におけるデバッグ方法
JPH0581068A (ja) デバツグ支援装置
JPH087706B2 (ja) 評価用シングルチツプマイクロコンピュータ
JPS59202548A (ja) デバツグ装置
JPS59202546A (ja) デバツグ装置
JP2001051873A (ja) デバッグ装置
JPH0540653A (ja) デバツグ装置及びデバツグ方法
JP2001125804A (ja) 割り込み処理制御装置および方法
JP2003044317A (ja) Romモニタ

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081020

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091020

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees