JP3872196B2 - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP3872196B2 JP3872196B2 JP00352498A JP352498A JP3872196B2 JP 3872196 B2 JP3872196 B2 JP 3872196B2 JP 00352498 A JP00352498 A JP 00352498A JP 352498 A JP352498 A JP 352498A JP 3872196 B2 JP3872196 B2 JP 3872196B2
- Authority
- JP
- Japan
- Prior art keywords
- flag
- program counter
- executed
- program
- microcomputer
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
Description
【発明の属する技術分野】
この発明は、内部の基本クロックを停止する基本クロック停止命令(以下、STP命令という)を備え、プログラムデバッグ専用の割り込み(以下、デバッグ割り込みという)処理を実行して、開発中のプログラム(以下、ユーザプログラムという)の誤りの発見・修正を行うマイクロコンピュータに関するものである。
【0002】
【従来の技術】
従来、マイクロコンピータのプログラム開発では、開発中のユーザプログラムの誤りを発見し、発見した誤りを修正するため、マイクロコンピュータの割り込み回路にデバッグ専用の割り込み要求発生回路を設けていた。このデバッグ割り込み要求は、外部のプログラムデバッグ装置(以下、外部デバッグ装置という)からの割り込み要求などにより、ユーザプログラムの実行を一時的に中断してデバッグ用の割り込み処理を行うものである。
【0003】
図7はそのような従来のマイクロコンピュータと外部デバッグ装置の接続を示すブロック図である。図において、1はマイクロコンピュータであり、2は外部デバッグ装置である。また、マイクロコンピュータ1内において、10は中央演算処理装置(以下、CPUという)、11はアドレスバス、12はデータバス、13は制御信号線、14はランダムアクセスメモリ(以下、RAMという)、15はプログラムメモリであり、16は割り込み制御回路、17はデバッグ補助回路である。なお、18は割り込み要求信号が伝送される割り込み要求信号線であり、19はデバッグバスである。
【0004】
図8はマイクロコンピュータ1内のデバッグ補助回路17の内部構成を示すブロック図である。図において、20はCPU10の実行状態、すなわちアドレスバス11、データバス12、制御信号線13の状態をデバッグバス19に出力するトレース回路であり、21は外部デバッグ装置2、およびマイクロコンピュータ1のCPU10より読み出し/書き込みが可能なレジスタである。
【0005】
次に動作について説明する。
今、マイクロコンピュータ1はプログラムメモリ15に格納されているユーザプログラムを実行しているものとする。このとき、外部デバッグ装置2はマイクロコンピュータ1のデバッグ補助回路17よりデバッグバス19を介してトレースデータを取り込むことによって、マイクロコンピュータ1のCPU10の動作をモニタすることができる。そして、例えば前述のトレースデータのCPU10の実行アドレスが、あらかじめ設定されているアドレス値となったとき、外部デバッグ装置2は割り込み要求信号線18に割り込み要求信号を出力する。この割り込み要求信号を受けたマイクロコンピュータ1は実行中のユーザプログラムの処理を一時中断してデバッグ割り込み処理に入る。すなわち、デバッグ割り込みがかかると、CPU10はプログラムメモリ15に格納されているデバッグ処理用のプログラムを実行し、デバッグ補助回路17のレジスタ21を介して、外部デバッグ装置2と相互に通信を行う。
【0006】
例えば、外部デバッグ装置2はデバッグ割込み要求後、デバッグ補助回路17のレジスタ21を介してCPU10と通信を行い、マイクロコンピュータ1のレジスタの内容やRAM14などのメモリの内容を知ることができる。このデバッグ割り込み要求の処理は通常の割り込みと同様で、CPU10が割り込み要求を受け付けると、次に実行されるプログラムカウンタ値(プログラムカウンタの内容)を、スタックポインタで指示されるメモリ領域(このメモリとしては通常RAM14が使用される)へ待避した後、割り込み処理に入る。一方、割り込み処理終了時には、終了時に実行される割り込み復帰命令(以下、RTI命令という)において、割り込み受け付け時のプログラムカウンタ値をスタックポインタの示すメモリ領域から読み出し、それをプログラムカウンタヘ転送する。以上の動作により、デバッグ割り込みによってユーザプログラムを中断し、デバッグ処理を行った後、中断していたユーザプログラムの処理を、中断した命令の次の命令より再開する。
【0007】
このような外部デバッグ装置2から割り込み要求信号線18に送出される割り込み要求信号によるデバッグ割り込みは、ユーザプログラムを一時的に中断してデバッグ処理に入るので、通常、1回あたりのデバッグ割り込み処理時間が、ユーザプログラムの実行に支障を与えないように短時間で終了するような工夫が施されている。例えば、マイクロコンピュータ1のメモリ内容を外部デバッグ装置2が取り込むような場合においては、そのメモリのアドレス範囲をいくつかに分割してデバッグ割り込み処理を行うことにより、1回のデバッグ割り込み処理では数アドレス分だけのメモリ内容の取り込みを行って、短時間でデバッグ割り込み処理を終了する。
【0008】
ここで、ユーザプログラム上でマイクロコンピュータ1内部の基本クロックを停止させるSTP命令を実行した場合でも、デバッグ割り込みが発生すると上記STP命令を解除してデバッグ割り込み処理が行われるため、RTI命令を実行してユーザプログラムに復帰すると、スタックポインタで示されるメモリ領域から読み出した、割り込み受け付け時に退避したプログラムカウンタの内容にしたがって、STP命令の次の命令から処理が再開されていた。
【0009】
なお、このような従来のマイクロコンピュータに関連した技術に関する記載のある文献としては、例えば特開昭58−205226号公報、特開平5−73349号公報、特開昭62−95644号公報、特開平1−250143号公報などがある。
【0010】
【発明が解決しようとする課題】
従来のマイクロコンピュータは以上のように構成されているので、プログラムをデバッグするとき、ユーザが本来意図しない要因、すなわちデバッグ割り込みによってSTP命令が解除されてしまうという問題点があった。このような問題点を外部デバッグ装置2により解決するためには、
1.デバッグ割り込み受け付け時のプログラム実行アドレス部分の逆アセンブルを行いSTP命令を探す。
2.トレースデータの解析と上記逆アセンブル結果を照合し、STP命令が実行されたかどうかを判定する。
3.STP命令が実行されていると判定した場合は、デバッグ割り込み受け付け時にスタックポインタで示されるメモリ領域に退避されているプログラムカウンタの内容を減算し、デバッグ割り込み終了後STP命令を実行するア
ドレスに変更する。
といった処理を必要とするため、1回当たりのデバッグ割り込み処理時間が長くなるという課題があった。
【0011】
この発明は上記のような課題を解決するためになされたもので、1回当たりのデバッグ割り込み処理時間を長くすることなく、STP命令がデバッグ割り込みによって解除されてしまうのを防止することができるマイクロコンピュータを得ることを目的とする。
【0012】
【課題を解決するための手段】
この発明に係るマイクロコンピュータは、STP命令が実行されたことを示すフラグを用いて、プログラムカウンタ値の減算処理を行うか否かの判定を行い、このフラグがSTP命令が実行されたことを示している場合には、上記プログラムカウンタ値の減算処理を行って、デバッグ割り込み処理の終了時における復帰先のアドレスを、STP命令のアドレスに変更するようにしたものである。
【0013】
この発明に係るマイクロコンピュータは、デバッグ割り込み処理の終了時に、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を行い、このフラグがSTP命令が実行されたことを示している場合にはソフトウェア処理によって、プログラムカウンタ値の減算処理を行うようにしたものである。
【0014】
この発明に係るマイクロコンピュータは、デバッグ割り込み処理の要求発生時に、スタックポインタの示すメモリ領域にプログラムカウンタの内容を退避する際、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を行い、このフラグがSTP命令が実行されたことを示していれば、ハードウェアを用いてプログラムカウンタ値の減算処理を行うようにしたものである。
【0015】
この発明に係るマイクロコンピュータは、デバッグ割り込み処理の終了時に、スタックポインタの示すメモリ領域から復帰先のアドレスを読み出してプログラムカウンタヘ格納する際、このフラグがSTP命令が実行されたことを示していれば、ハードウェアを用いてプログラムカウンタ値の減算処理を行うようにしたものである。
【0016】
この発明に係るマイクロコンピュータは、プログラムカウンタ値の減算処理を、減算器と、フラグによってオン/オフされるスイッチとを用い、当該フラグがセットされた場合に減算器をプログラムカウンタに接続して、プログラムカウンタ値より所定数の減算を行わせるようにしたものである。
【0017】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はこの発明の実施の形態1によるマイクロコンピュータの構成を示すブロック図であり、図において、1は当該マイクロコンピュータである。マイクロコンピュータ1内において、10はこのマイクロコンピュータ1全体の処理を制御するCPUであり、11はCPU10より出力されるアドレスが伝送されるアドレスバス、12はCPU10に入出力されるデータが伝送されるデータバス、13はCPU10より出力される制御信号が伝送される制御信号線である。14はこれらアドレスバス11、データバス12および制御信号線13に接続されて、ワーキングメモリとして使用されるメモリとしてのRAMであり、15は同じくアドレスバス11、データバス12および制御信号線13に接続されて、CPU10の処理で用いられるプログラムが格納されたプログラムメモリである。
【0018】
16は外部に接続された外部デバッグ装置(図示省略)からのデバッグ割り込み要求を受け付けてCPU10に転送する割り込み制御回路であり、17はアドレスバス11、データバス12および制御信号線13に接続され、外部デバッグ装置との間でトレースデータなどのやり取りをするデバッグ補助回路である。また、18は外部デバッグ装置から割り込み制御回路16への割り込み要求信号が伝送される割り込み要求信号線であり、19は外部デバッグ装置とデバッグ補助回路17とを接続するデバッグバスである。なお、これらは図7に同一符号を付して示した従来のそれらに相当する部分である。
【0019】
また、30はCPU10より出力される、当該マイクロコンピュータ1の内部基本クロックを停止させるSTP命令を実行したか否かを示すフラグが格納されるフラグ回路である。31はCPU10がSTP命令を実行した時に出力するSTP実行信号を、このフラグ回路30に入力するためのSTP実行信号線、32はCPUがこのフラグ回路30に格納されたフラグを読み出した後、このフラグをリセットするために出力するフラグリセット信号を、フラグ回路30に入力するためのフラグリセット信号線であり、33はCPU10がフラグ回路30に格納されたフラグを読み出すときに出力するフラグ読み出し信号をフラグ回路30に入力するためのフラグ読み出し信号線である。
【0020】
図2は上記フラグ回路30の構成を示すブロック図である。図において、31はSTP実行信号線、32はフラグリセット信号線、33はフラグ読み出し信号線であり、これらは図1に同一符号を付した部分と同一部分である。34はSTP実行信号線31よりSTP実行信号が入力された場合にセットされ、フラグリセット信号線32よりフラグリセット信号入力された場合にリセットされて、当該マイクロコンピュータ1の内部基本クロックを停止させるSTP命令が実行されたか否かを示すフラグを保持するラッチ回路であり、35はこのラッチ回路34の保持しているフラグが出力されるフラグ出力線である。36はCPU10がフラグ読み出し信号線33に出力するフラグ読み出し信号によって制御される、フラグ出力線35からのフラグをデータバス12に出力するためのトライステートバッファである。
【0021】
次に動作について説明する。
このように構成されたフラグ回路30に、STP実行信号線31よりSTP実行信号が与えられるとラッチ回路34の保持するフラグがセットされる。CPU10ではフラグ読み出し信号線33にフラグ読み出し信号を与えることにより、このラッチ回路34に保持されたフラグの状態をデータバス12を介して読み出すことができる。CPU10はフラグ読み出し後にフラグリセット信号線32にフラグリセット信号を送出して、ラッチ回路34に保持されているフラグをリセットする。なお、フラグ読み出し信号線33に別のラッチ回路を接続し、フラグ読み出し後にそのラッチ回路の出力をフラグリセット信号としてフラグリセット信号線32に送出するようにしてもよい。
【0022】
この実施の形態1では、デバッグ割り込み処理のプログラム上で、デバッグ割り込みよりユーザプログラムヘ復帰するときに、上記フラグ回路30に格納されたフラグを用いて、STP命令に復帰するか否かを判定する。図3はこのデバッグ割り込み処理とユーザプログラムの処理手順を示すフローチャートである。以下、この図3を参照しながらデバッグ割り込みの処理からユーザプログラムヘの復帰について説明する。
【0023】
ユーザプログラム実行中にSTP命令が実行されると(ステップST1)、CPU10からのSTP実行信号によって、フラグ回路30のラッチ回路34に保持されているフラグがセットされる。その後、ユーザプログラムの実行時に割り込み要求信号線18を介して外部デバッグ装置からのデバッグ割り込みが受け付けられると、その時のプログラムカウンタの内容がスタックポインタで示されるメモリ領域ヘ待避されてデバッグ割り込みの処理に入る(ステップST2)。デバッグ割り込みの処理が終了すると、ユーザプログラムがSTP命令を実行したか否かを知るために、CPU10はフラグ読み出し信号をフラグ回路30のトライステートバッファ36に送出し、ラッチ回路34に保持されているフラグを読み出して(ステップST3)、デバッグ処理用のプログラム内でソフトウェア処理によってそのフラグのチェックを行う(ステップST4)。
【0024】
この場合、STP命令が実行されてフラグがセットされているため、デバッグ割り込み発生時にスタックポインタの示すメモリ領域に退避しておいたプログラムカウンタの内容を読み出して(ステップST5)、その読み出されたプログラムカウンタ値に対して減算処理を施し(ステップST6)、その減算処理された値をスタックポインタで指示されるメモリ領域にあらためて書き込む(ステップST7)。なお、このステップST6における減算処理では、STP命令が2ワード構成であれば“2”が、1ワード構成であれば“1”が、それぞれ読み出されたプログラムカウンタ値より減算される。
【0025】
次に、RTI命令の実行した後(ステップST8)、このスタックポインタで示されるメモリ領域にあらためて書き込まれた値をプログラムカウンタに書き込んでユーザプログラムに復帰し、STP命令を実行する(ステップST9)。一方、フラグがセットされていない場合には、ステップST4より直接ステップST8に進んでRTI命令を実行した後、デバッグ割り込み発生時にスタックポインタで指示されたメモリ領域に退避しておいたプログラムカウンタ値にしたがって、ユーザプログラムヘ復帰する。これにより、ユーザが本来意図しない要因であるデバッグ割り込みなどによって、STP命令が解除されてしまうというようなことはなくなる。
【0026】
以上のように、この実施の形態1によれば、STP命令が実行されたことを示すフラグの状態によって、デバッグ割り込み処理からユーザプログラムヘの復帰アドレスをSTP命令に復帰させるかどうかの処理を、デバッグ割り込み中のプログラム内でソフトウェアによって行うことが可能となり、1回当たりのデバッグ割り込み処理時間を長くすることなく、デバッグ割り込みによってSTP命令が解除されてしまうのを防止することが可能なマイクロコンピュータが得られる効果がある。
【0027】
実施の形態2.
上記実施の形態1においては、フラグの状態をデバッグ割り込み処理終了時に判定し、このフラグがセットされている場合にはソフトウェア処理によってプログラムカウンタ値の減算処理を行うようにしたものを示したが、デバッグ割り込み処理要求発生時に、スタックポインタの示すメモリ領域にプログラムカウンタの内容を退避する際、フラグの状態を判定して、このフラグがセットされている場合には、プログラムカウンタ値の減算処理をハードウェアを用いて処理するようにしてもよい。なお、そのようなこの発明の実施の形態2によるマイクロコンピュータの構成、およびそのフラグ回路の構成は、図1および図2に示した実施の形態1の場合と同様である。
【0028】
図4はこの実施の形態2によるマイクロコンピュータにおけるアドレス発生回路の構成を示すブロック図である。図において、40は次にCPU10によって実行される命令のプログラムメモリ15上のアドレスが格納されるプログラムカウンタである。41はこのプログラムカウンタ40の内容(プログラムカウンタ値)に“1”を加算する加算器であり、42はプログラムカウンタ40の内容より、例えば“2”などの所定値を減算する減算器である。43はCPU10にて命令が実行される度にオン/オフされる、プログラムカウンタ40の内容をインクリメントするためのスイッチであり、44は例えばフラグ回路30のラッチ回路34より、フラグ出力線35に出力されるフラグによってオン/オフされ、フラグがセットされている場合にはプログラムカウンタ40の内容より所定数の減算を行うためのスイッチである。なお、このアドレス発生回路としては、マイクロコンピュータ1が通常備えているハードウェアを兼用することができる。
【0029】
次に動作について説明する。
ここで、図5はこの実施の形態2におけるデバッグ割り込み時の処理手順を示すフローチャートである。デバッグ割り込みが受け付けられると(ステップST10)、フラグ回路30のラッチ回路34に保持されているフラグの判定を行う(ステップST11)。その結果、フラグがセットされていればプログラムカウンタ40の内容から所定値を減算し(ステップST12)、スタックポインタで指示されるメモリ領域にその減算した値を退避する(ステップST13)。具体的には、図4に示すアドレス発生回路のスイッチ44を、フラグ回路30のラッチ回路34よりフラグ出力線35に出力されたフラグの状態によって制御し、当該フラグがセットされている場合には、割り込み要求中のスタックポインタの示すメモリ領域ヘのプログラムカウンタ値の退避動作の前にオンさせることにより、プログラムカウンタ40の内容から所定値を減算した結果を、スタックポインタで示されるメモリ領域ヘ退避させる。
【0030】
また、フラグ回路30のラッチ回路34に保持されているフラグがリセットされていれば、アドレス発生回路のスイッチ44はオフしたままであり、プログラムカウンタ40に格納されたプログラムカウンタ値の減算処理は行われない。したがって、プログラムカウンタ40の内容がそのまま、スタックポインタで示されるメモリ領域ヘ退避される。このスタックポインタで示されるメモリ領域ヘのプログラムカウンタ値の退避が済むと、デバッグ割り込み処理の分岐アドレスを読み出し(ステップST14)、読み出したアドレスに分岐して(ステップST15)、デバッグ割り込み処理を実行する。
【0031】
なお、上記説明では、マイクロコンピュータ1が通常備えているプログラムカウンタ40、加算器41、減算器42、およびスイッチ43,44で構成されるアドレス発生回路を用いたものを示したが、このプログラムカウンタ値の減算処理のための回路を専用の回路として別途設けるようにしてもよい。また、上記減算処理は割り込みシーケンスを制御するマイクロコードなどで比較的簡単に実現することができ、フラグのリセットも同様に、割り込み要求後にフラグリセット信号線32のフラグリセット信号をオンさせることができる。
【0032】
以上のように、この実施の形態2によれば、デバッグ割り込み処理要求発生時に、スタックポインタで示されるメモリ領域にプログラムカウンタの内容を退避する際にフラグの状態判定を行って、このフラグがセットされていればプログラムカウンタ値の減算処理をハードウェアによって処理しているので、ソフトウェアを介することなくプログラムカウンタ値の減算処理が可能となり、上記実施の形態1よりも、デッバグ割り込み処理終了後にSTP命令に復帰するかどうかの処理を迅速に行うことができる効果があり、また、プログラムカウンタ値の減算処理をハードウェアとして、減算器と、フラグセット時にその減算回路をプログラムカウンタに接続するスイッチを用いているので、マイクロコンピュータが通常備えているものを利用することが可能となり、格別なハードウェアの増加なしに実現できる効果もある。
【0033】
実施の形態3.
上記実施の形態2においては、デバッグ割り込み処理要求発生時に、スタックポインタの示すメモリ領域にプログラムカウンタの内容を退避する際に、フラグの状態を判定し、このフラグがセットされている場合にはハードウェアを用いてプログラムカウンタ値の減算処理を行う場合について説明したが、当該フラグの状態判定を、デバッグ割り込み処理終了時に、復帰先のアドレスをスタックポインタの示すメモリ領域から読み出してプログラムカウンタヘ格納する際に行い、このフラグがセットされている場合に、プログラムカウンタ値の減算処理をハードウェアを用いて処理するようにしてもよい。
【0034】
なお、そのようなこの発明の実施の形態3によるマイクロコンピュータの構成、およびそのフラグ回路とアドレス発生回路の構成は、図1、図2および図4に示した実施の形態1および実施の形態2の場合と同様である。また、この実施の形態3によるフラグのセット/リセットおよび読み出しも、実施の形態1と同様に行われるので、ここではこの実施の形態3に特徴的な動作について以下に説明する。
【0035】
図6は当該実施の形態3における、デバッグ割り込み処理からユーザプログラムに復帰するときに実行するRTI命令の動作手順について示すフローチャートである。デバッグ割り込み処理が終了すると、スタックポインタにて指示されたメモリ領域に退避しておいた復帰先アデレスがプログラムカウンタ40に格納される(ステップST20)。その後、STP命令フラグの判定を行い(ステップST21)、その結果、フラグがセットされていれば、アドレス発生回路のスイッチ44をオンさせてプログラムカウンタ40に減算器42を接続して、アドレスカウンタ値の減算処理を行い(ステップST22)、プログラムカウンタ40の内容を上記ステップST20で格納された復帰先アドレスから所定値だけ減少させる。一方、フラグがセットされていなければ、このステップST22は実行されず、プログラムカウンタ40には、ステップST20で格納された、スタックポインタの示すメモリ領域に退避されていた復帰先アデレスがそのまま残される。
【0036】
このプログラムカウンタ40の内容を復帰先のアドレスとしてユーザプログラムに復帰し、当該アドレスより命令を実行する(ステップST23)。したがって、STP命令が実行されていてフラグがセット状態となっている場合には、ユーザプログラムのSTP命令に復帰し、STP命令が実行されておらずフラグがセット状態となっていない場合には、デバッグ割り込み処理の要求発生時に、スタックポインタの示すメモリ領域に退避しておいた復帰先アデレスの命令に復帰する。
【0037】
このように、この実施の形態3によれば、デバッグ割り込み処理終了時に、復帰先のアドレスを、スタックポインタにて指示されるメモリ領域から読み出してプログラムカウンタヘ格納する際にフラグの状態判定を行って、このフラグがセットされている場合に、プログラムカウンタ値の減算処理をハードウェアによって処理しているので、ソフトウェアを介することなくプログラムカウンタの減算処理が可能となり、上記実施の形態2の場合と同様に、デッバグ割り込み処理終了後にSTP命令に復帰するかどうかの処理を迅速に行うことができるという効果がある。
【0038】
【発明の効果】
以上のように、この発明によれば、プログラムカウンタ値の減算処理を行うか否かの判定を、STP命令が実行されたことを示すフラグを用いて行い、このフラグがSTP命令が実行されたことを示している場合には、上記プログラムカウンタ値の減算処理を行って、デバッグ割り込み処理の終了時における復帰先のアドレスを、STP命令のアドレスに変更するようにしているので、1回当たりのデバッグ割り込み処理時間を長くすることなく、デバッグ割り込みによってSTP命令が解除されてしまうのを防止できるマイクロコンピュータが得られるという効果がある。
【0039】
また、この発明によれば、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を、デバッグ割り込み処理の終了時に行い、このフラグがSTP命令が実行されたことを示している場合に、プログラムカウンタ値の減算処理をソフトウェア処理するようにしたので、デバッグ割り込み処理からユーザプログラムヘの復帰アドレスをSTP命令とするか否かを、デバッグ割り込み中のソフトウェアによって行うことが可能となり、デバッグ割り込みによるSTP命令の解除を、1回当たりのデバッグ割り込み処理時間を長くすることなく防止することができる効果がある。
【0040】
また、この発明によれば、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を、デバッグ割り込み処理要求発生時に、スタックポインタの示すメモリ領域にプログラムカウンタの内容を退避する際に行い、このフラグがSTP命令が実行されたことを示している場合には、プログラムカウンタ値の減算処理にハードウェアを用いるようにしたので、ソフトウェアを介することなくプログラムカウンタの減算処理を行うことが可能となり、デバッグ割り込み処理後にSTP命令に復帰するかどうかの処理をより迅速に行うことができるという効果がある。
【0041】
また、この発明によれば、フラグが基本クロック停止命令が実行されたことを示しているか否かの判定を、デバッグ割り込み処理終了時に、スタックポインタの示すメモリ領域から復帰先のアドレスを読み出してプログラムカウンタヘ格納する際に行い、このフラグがSTP命令が実行されたことを示している場合には、プログラムカウンタ値の減算処理にハードウェアを用いるようにしたので、ソフトウェアを介することなくプログラムカウンタの減算処理を行うことが可能となり、デバッグ割り込み処理後にSTP命令に復帰するかどうかの処理をより迅速に行うことができるという効果がある。
【0042】
また、この発明によれば、プログラムカウンタ値の減算処理を、減算器と、フラグによってオン/オフされるスイッチとを用いて行い、当該フラグがセットされた場合に減算器をプログラムカウンタに接続して、プログラムカウンタ値より所定数の減算を行わせるようにしたので、マイクロコンピュータが通常備えているハードウェアを利用することが可能となるため、格別なハードウェアの増加なしに実現できる効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1によるマイクロコンピュータの構成を示すブロック図である。
【図2】 実施の形態1におけるフラグ回路の構成を示すブロック図である。
【図3】 実施の形態1におけるデバッグ割り込み処理とユーザプログラムの処理手順を示すフローチャートである。
【図4】 この発明の実施の形態2によるマイクロコンピュータにおけるアドレス発生回路の構成を示すブロック図である。
【図5】 実施の形態2におけるデバッグ割り込み時の処理手順を示すフローチャートである。
【図6】 この発明の実施の形態3によるマイクロコンピュータにおけるRTI命令の処理手順を示すフローチャートである。
【図7】 従来のマイクロコンピュータの構成と、外部デバッグ装置との接続を示すブロック図である。
【図8】 従来のマイクロコンピュータのデバッグ補助回路の内部構成を示すブロック図である。
【符号の説明】
1 マイクロコンピュータ、40 プログラムカウンタ、42 減算器、44
スイッチ。
Claims (4)
- 内部の基本クロックを停止する基本クロック停止命令が実行されたことを示すフラグを備え、
基本クロック停止命令が実行されると、前記フラグをセットし、その後基本クロック停止命令を実行中にプログラムデバッグ専用の割り込み処理が受け付けられると、その時点のプログラムカウンタのカウンタ値を所定の退避領域へ記憶してからプログラムデバッグ専用の割り込み処理を実行する第1の手段と、
プログラムデバッグ専用の割り込み処理が終了すると、前記フラグを判定し、前記フラグが前記基本クロック停止命令が実行されたことを示している場合には、前記退避領域に記憶したプログラムカウンタのカウンタ値の減算処理を行い、その減算結果をプログラムカウンタに書き込む第2の手段と、
を備え、プログラムデバッグ専用の割り込み処理の終了時に復帰する復帰先のアドレスを、前記基本クロック停止命令のアドレスとしたことを特徴とするマイクロコンピュータ。 - 前記第2の手段は、前記プログラムデバッグ専用の割り込み処理が終了すると、前記フラグを判定し、前記フラグが前記基本クロック停止命令が実行されたことを示している場合には、前記退避領域に記憶したプログラムカウンタのカウンタ値の減算処理を行い、その減算結果を前記退避領域に書き込んだ後、割り込み復帰命令を実行することで、退避領域に書き込まれた前記減算結果をプログラムカウンタに書き込むことを特徴とする請求項1に記載のマイクロコンピュータ。
- 前記第2の手段は、前記プログラムデバッグ専用の割り込み処理が終了すると、割り込み復帰命令を実行して前記退避領域に書き込んだカウンタ値をプログラムカウンタヘ格納する際に前記フラグを判定し、前記フラグが前記基本クロック停止命令が実行されたことを示している場合には、前記退避領域に書き込んだカウンタ値の減算処理を行い、その減算結果をプログラムカウンタに書き込むことを特徴とする請求項1に記載のマイクロコンピュータ。
- フラグが基本クロック停止命令が実行されたことを示している場合のプログラムカウンタ値の減算処理を、
前記プログラムカウンタ値より所定値を減算する減算器と、
前記フラグの状態に応じてオン/オフされ、当該フラグが基本クロック停止命令が実行されたことを示している場合に、前記減算器をプログラムカウンタに接続して、前記プログラムカウンタ値より所定数の減算を行わせるスイッチとを用いて実行することを特徴とする請求項1または3に記載のマイクロコンピュータ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00352498A JP3872196B2 (ja) | 1998-01-09 | 1998-01-09 | マイクロコンピュータ |
US09/075,824 US5983018A (en) | 1998-01-09 | 1998-05-12 | Debug interrupt-handling microcomputer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00352498A JP3872196B2 (ja) | 1998-01-09 | 1998-01-09 | マイクロコンピュータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11203146A JPH11203146A (ja) | 1999-07-30 |
JP3872196B2 true JP3872196B2 (ja) | 2007-01-24 |
Family
ID=11559775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00352498A Expired - Fee Related JP3872196B2 (ja) | 1998-01-09 | 1998-01-09 | マイクロコンピュータ |
Country Status (2)
Country | Link |
---|---|
US (1) | US5983018A (ja) |
JP (1) | JP3872196B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19905510A1 (de) * | 1999-02-10 | 2000-08-31 | Siemens Ag | Mikroprozessor und Verfahren zur Adressierung in einem Mikroprozessor |
GB2348304B (en) * | 1999-03-24 | 2003-07-09 | Ibm | Optimising Device Driver Debug Tracing |
US6591378B1 (en) * | 2000-02-22 | 2003-07-08 | Motorola, Inc. | Debug controller in a data processor and method therefor |
US6865663B2 (en) * | 2000-02-24 | 2005-03-08 | Pts Corporation | Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode |
JP2001308921A (ja) * | 2000-04-25 | 2001-11-02 | Sony Corp | デマルチプレクサ |
FR2817362B1 (fr) * | 2000-11-29 | 2003-01-24 | St Microelectronics Sa | Microprocesseur comprenant des moyens de sauvegarde de donnees contextuelles lors d'un basculement dans un programme de test |
GB0124563D0 (en) * | 2001-10-12 | 2001-12-05 | Siroyan Ltd | Debug exception registers |
JP2004102324A (ja) * | 2002-09-04 | 2004-04-02 | Oki Electric Ind Co Ltd | 割り込みプログラムモジュール、該モジュールを記録した記録媒体およびモニタのための割り込み処理が可能のコンピュータ |
JP2010102743A (ja) * | 2010-02-09 | 2010-05-06 | Renesas Technology Corp | マイクロコンピュータ |
KR101426983B1 (ko) * | 2010-07-07 | 2014-08-06 | 엘에스산전 주식회사 | Plc의 통신장치 및 방법 |
GB2546577B (en) * | 2016-01-19 | 2020-07-08 | Arm Ip Ltd | A method for allocating memory |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58205226A (ja) * | 1982-05-25 | 1983-11-30 | Fujitsu Ltd | スタンバイ機能を内蔵したマイクロコンピユ−タ |
US4462077A (en) * | 1982-06-24 | 1984-07-24 | Bell Telephone Laboratories, Incorporated | Trace facility for use in multiprocessing environment |
US4598364A (en) * | 1983-06-29 | 1986-07-01 | International Business Machines Corporation | Efficient trace method adaptable to multiprocessors |
JPS6295644A (ja) * | 1985-10-22 | 1987-05-02 | Yokogawa Electric Corp | マイクロプロセッサ用プログラムデバッグ装置 |
JPS63291134A (ja) * | 1987-05-22 | 1988-11-29 | Toshiba Corp | 論理集積回路 |
JPH01241636A (ja) * | 1988-03-17 | 1989-09-26 | Internatl Business Mach Corp <Ibm> | データ処理システム |
JPH01250143A (ja) * | 1988-03-30 | 1989-10-05 | Nec Corp | プログラムの修正方式 |
JPH03185530A (ja) * | 1989-12-14 | 1991-08-13 | Mitsubishi Electric Corp | データ処理装置 |
US5345580A (en) * | 1990-11-29 | 1994-09-06 | Kabushiki Kaisha Toshiba | Microprocessor device and emulator device thereof |
US5265254A (en) * | 1991-08-14 | 1993-11-23 | Hewlett-Packard Company | System of debugging software through use of code markers inserted into spaces in the source code during and after compilation |
JPH0577349A (ja) * | 1991-09-20 | 1993-03-30 | Kanebo Ltd | 成形用シート状物 |
US5475822A (en) * | 1993-11-15 | 1995-12-12 | Motorola, Inc. | Data processing system for resuming instruction execution after an interrupt and method therefor |
JPH08171504A (ja) * | 1994-12-19 | 1996-07-02 | Mitsubishi Denki Semiconductor Software Kk | エミュレ−ション装置 |
JPH1078889A (ja) * | 1996-09-04 | 1998-03-24 | Mitsubishi Electric Corp | マイクロコンピュータ |
-
1998
- 1998-01-09 JP JP00352498A patent/JP3872196B2/ja not_active Expired - Fee Related
- 1998-05-12 US US09/075,824 patent/US5983018A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5983018A (en) | 1999-11-09 |
JPH11203146A (ja) | 1999-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4924382A (en) | Debugging microprocessor capable of switching between emulation and monitor without accessing stack area | |
US5488688A (en) | Data processor with real-time diagnostic capability | |
JP3872196B2 (ja) | マイクロコンピュータ | |
US20030192034A1 (en) | Trace device preventing loss of trace information which will be important in debugging | |
JP4409349B2 (ja) | デバッグ回路およびデバッグ制御方法 | |
EP0638864B1 (en) | Development support system for microcomputer with internal cache | |
JP2735523B2 (ja) | プロシージャ・ステップ処理方法 | |
JP5012562B2 (ja) | マイクロコンピュータ | |
JPH0193838A (ja) | デバッグ用マイクロプロセッサ | |
JPS62197831A (ja) | デ−タ処理装置 | |
JP2504191B2 (ja) | マイクロプロセッサ | |
JP2666737B2 (ja) | トレースメモリ内蔵マイクロプロセッサおよびトレース方法 | |
JP3900660B2 (ja) | シーケンスコントローラ | |
JPH1049401A (ja) | プログラムのデバッグ方法 | |
JPS60167038A (ja) | マイクロプロセツサ | |
JP2555912B2 (ja) | マイクロプロセッサ | |
JPH087706B2 (ja) | 評価用シングルチツプマイクロコンピュータ | |
JPS63238636A (ja) | ブレ−クポイント方式 | |
JP2000347931A (ja) | キャッシュメモリおよびキャッシュメモリ制御方法 | |
JPS60164850A (ja) | プロセツサにおける命令実行動作の停止方式 | |
JPH04199336A (ja) | マイクロコンピュータ | |
JPH10161904A (ja) | 複数言語対応のデバッグ装置およびデバッグ方法 | |
JPH04319741A (ja) | デバッグサポート機能を有するマイクロプロセッサ | |
JP2003223339A (ja) | インサーキットエミュレータ | |
JPH09319607A (ja) | インサーキットエミュレータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050105 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060123 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060725 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060925 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061019 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |