(57)【要約】【課題】デバッグ時においてユーザプログラムがブレーク機能により中断された状態であっても特定の割込み要求を受理する割込み管理装置を提供する。【解決手段】実行中のプログラムへの割込みを管理する割込み管理装置であって、割込み要求の発生を検出する検出手段５と、前記検出手段により発生が検出された割込み要求の優先順位が所定のレジスタが示す優先順位よりも下位ではないときに前記割込み要求を受理して実行中のプログラムを中断し、前記割込み要求が特定の割込み要求以外である場合に前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、前記割込み要求が特定の割込み要求である場合に前記割込み要求の優先順位とは異なる優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行するＣＰＵコア４及び割込み制御手段６とを備えることを特徴とする。【選択図】　　図１
2004118412.tif 000002
【特許請求の範囲】
【請求項１】
実行中のプログラムへの割込みを管理する割込み管理装置であって、
割込み要求の発生を検出する検出手段と、
前記検出手段により発生が検出された割込み要求の優先順位が、所定のレジスタが示す優先順位よりも下位ではないときに、前記割込み要求を受理して実行中のプログラムを中断し、
前記割込み要求が特定の割込み要求以外である場合に、前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、
前記割込み要求が特定の割込み要求である場合に、前記割込み要求の優先順位とは異なる優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行する割込み実行手段と
を備えることを特徴とする割込み管理装置。
【請求項２】
プログラムの実行を任意に中断するブレーク機能を、割込み要求の優先順位が最上位である割込みを利用して提供するプログラム開発支援装置であって、
割込み要求の発生を検出する検出手段と、
前記検出手段により発生が検出された割込み要求の優先順位が、所定のレジスタが示す優先順位よりも下位ではないときに、前記割込み要求を受理して実行中のプログラムを中断し、
前記割込み要求がブレーク機能による割込み要求以外である場合に、前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、
前記割込み要求がブレーク機能による割込み要求である場合に、最上位以外の優先順位を前記レジスタに保持してブレーク機能による割込み要求に対応するプログラムを実行する割込み実行手段と
を備えることを特徴とするプログラム開発支援装置。
【請求項３】
前記割込み実行手段は、さらに、
受理を禁止する割込み要求の優先順位を記録している記録手段を含み、
前記検出手段により発生が検出された割込み要求の優先順位が、前記レジスタが示す優先順位よりも下位ではない状態であっても、前記記録手段により記録されている優先順位の割込み要求は受理しないこと
を特徴とする請求項２に記載のプログラム開発支援装置。
【請求項４】
前記所定のプログラムは、ループ状のプログラムであり、
前記割込み実行手段は、
前記割込み要求がブレーク機能による割込み要求である場合に、最上位以外の優先順位を前記レジスタに保持して前記ループ状のプログラムを実行すること
を特徴とする請求項２に記載のプログラム開発支援装置。
【請求項５】
当該プログラム開発支援装置は、さらに、ブレーク機能により実行が中断されたプログラムを任意に再実行する再実行機能を、割込みを利用して提供し、
前記割込み実行手段は、
割込み要求が受理されたときに、実行中のプログラムが中断される直前のプログラムカウンタの値と前記レジスタが示す優先順位の値とをスタックに退避する退避手段と、
前記退避手段により退避されたプログラムカウンタの値と前記レジスタが示す優先順位の値とを読み出し、前記レジスタが示す優先順位において、前記プログラムカウンタの値により指定されるメモリ上の番地に格納されたプログラムを実行する復帰手段と、
前記割込み要求がブレーク機能による割込み要求である場合に、前記退避手段により退避されたプログラムカウンタの値と前記レジスタの値とを前記スタックとは異なるメモリ領域に複製し、前記スタックにおいてプログラムカウンタの値が退避された領域に、前記ループ状のプログラムが格納されたメモリ上の先頭番地の値を上書きし、前記スタックにおいて前記レジスタの値が退避された領域に、当該ブレーク機能による割込み要求の優先順位よりも下位の値を上書きして、前記復帰手段に前記ループ状のプログラムを実行させるブレーク実行制御手段と、
前記割込み要求が再実行機能による割込み要求である場合に、前記メモリ領域に複製されたプログラムカウンタの値と前記レジスタが示す優先順位の値とを、スタックにおいてプログラムカウンタの値が格納された領域と、前記レジスタが示す優先順位の値が格納された領域とにそれぞれ上書きして、前記復帰手段に、前記ブレーク機能によって中断されたプログラムを中断された直前から再び実行させる再実行制御手段と
を含むことを特徴とする請求項４に記載のプログラム開発支援装置。
【請求項６】
実行中のプログラムへの割込みを管理する割込み管理方法であって、
割込み要求の発生を検出する検出ステップと、
前記検出ステップにより発生が検出された割込み要求の優先順位が、所定のレジスタが示す優先順位よりも下位ではないときに、前記割込み要求を受理して実行中のプログラムを中断し、
前記割込み要求が特定の割込み要求以外である場合に、前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、
前記割込み要求が特定の割込み要求である場合に、前記割込み要求の優先順位とは異なる優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行する割込み実行ステップと
を備えることを特徴とする割込み管理方法。
【請求項７】
プログラムの実行を任意に中断するブレーク機能を、割込み要求の優先順位が最上位である割込みを利用して提供するプログラム開発支援方法であって、
割込み要求の発生を検出する検出ステップと、
前記検出ステップにより発生が検出された割込み要求の優先順位が、所定のレジスタが示す優先順位よりも下位ではないときに、前記割込み要求を受理して実行中のプログラムを中断し、
前記割込み要求がブレーク機能による割込み要求以外である場合に、前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、
前記割込み要求がブレーク機能による割込み要求である場合に、最上位以外の優先順位を前記レジスタに保持してブレーク機能による割込み要求に対応するプログラムを実行する割込み実行ステップと
を備えることを特徴とするプログラム開発支援方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータへの割込みを利用してプログラムの実行を中断する割込み管理装置及び割込み管理方法と、割込みを利用したブレーク機能を備えプログラム開発を支援するプログラム開発支援装置及びプログラム開発支援方法に関する。
【０００２】
【従来の技術】
一般に、マイクロコンピュータを用いて応用システムを実現するプログラム（以下、「ユーザプログラム」と呼ぶ）の開発において、ユーザプログラムが所定のフローに従って実行されるか否かを確認するためプログラム開発支援装置が用いられる。プログラム開発支援装置は、予め設定されたブレーク条件が成立した場合にユーザプログラムの実行を中断するブレーク機能を備える。これにより開発者はユーザプログラムの実行を任意に中断して、メモリやレジスタの内容の参照及び変更などを行うことができる。
【０００３】
ブレーク機能は、実行中のユーザプログラムへの割込みにより実現される。割込みは、実行中のプログラムの実行状態の優先順位よりも割込み要求の優先順位が高い場合に割込み要求を受理し、実行中のプログラムを中断して割込み要求に対応するプログラムを実行する機構である。プログラムの実行状態における優先順位は、そのプログラムを割込ませた割込み要求の優先順位に依存する。例えば、優先順位が「２」の実行状態においてプログラムが実行されており、優先順位が「１」の割込み要求が受理された場合に、実行中のプログラムは中断され、割込み要求に対応するプログラムが実行される。上記のブレーク機能による割込み要求の優先順位は、プログラムを確実に中断させるために最上位であることが望ましい。
【０００４】
なお、割込みを利用してブレーク機能を実現するプログラム開発支援装置は、特開平６−２８２１８号公報において開示されている。これによると、当該装置は、割込み処理のプログラムの実行中に、ブレーク機能による割込みを受理しないことで誤動作を防止している。
【０００５】
【特許文献１】
特開平６−２８２１８号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、応用システムの仕様によっては、一定時間毎に割込み要求を受理し、応答しなければならないものがある。このような応用システムのユーザプログラムを開発する場合に、プログラム開発支援装置は、上述のブレーク機能によりユーザプログラムが中断された状態であっても特定の割込み要求を受理する必要がある。
【０００７】
そこで本発明は、ユーザプログラムがブレーク機能により中断された状態であっても特定の割込み要求を受理することができる割込み管理装置、割込み管理方法、プログラム開発支援装置、及びプログラム開発支援方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る割込み管理装置は、実行中のプログラムへの割込みを管理する割込み管理装置であって、割込み要求の発生を検出する検出手段と、前記検出手段により発生が検出された割込み要求の優先順位が所定のレジスタが示す優先順位よりも下位ではないときに前記割込み要求を受理して実行中のプログラムを中断し、前記割込み要求が特定の割込み要求以外である場合に前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、前記割込み要求が特定の割込み要求である場合に前記割込み要求の優先順位とは異なる優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行する割込み実行手段とを備えることを特徴とする。
【０００９】
上記目的を達成するために、本発明に係る割込み管理方法は、実行中のプログラムへの割込みを管理する割込み管理方法であって、割込み要求の発生を検出する検出ステップと、前記検出手段により発生が検出された割込み要求の優先順位が所定のレジスタが示す優先順位よりも下位ではないときに前記割込み要求を受理して実行中のプログラムを中断し、前記割込み要求が特定の割込み要求以外である場合に前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、前記割込み要求が特定の割込み要求である場合に前記割込み要求の優先順位とは異なる優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行する割込み実行ステップとを備えることを特徴とする。
【００１０】
上記構成によると、割込み管理装置及び割込み管理方法は、プログラムの実行中に割込み要求を受理すれば、その割込み要求の優先順位の実行状態において割込み要求に対応するプログラムを実行する。例えば当初実行中のプログラムの実行状態における優先順位が「３」であるとする。これは割込み要求の優先順位が「３」より低ければその割込み要求は受理されないことを意味する。ここで割込み要求の優先順位が「２」であるとすれば、割込み要求の優先順位が実行状態の優先順位よりも高いのでその割込み要求に対応するプログラムが実行される。この場合、プログラムの実行状態における優先順位は「２」となる。これは新たな割込み要求が発生した場合に、その割込み要求の優先順位が「２」より低ければその割込み要求は受理されないことを意味する。すなわち受理した割込み要求の優先順位がその後の割込み要求の受理に影響する。ところが当該割込み管理装置は、所定の割込み要求に対応する所定のプログラムを実行する場合に、当該プログラムは実行状態における優先順位を変更することができる。
【００１１】
したがって、所定の割込み要求に対応する所定のプログラムを実行する場合に、実行状態における優先順位を変更することにより割込み要求の優先順位に関わらずに新たな割込み要求を受理することができる。
上記目的を達成するために、本発明に係るプログラム開発支援装置は、プログラムの実行を任意に中断するブレーク機能を、割込み要求の優先順位が最上位である割込みを利用して提供するプログラム開発支援装置であって、割込み要求の発生を検出する検出手段と、前記検出手段により発生が検出された割込み要求の優先順位が所定のレジスタが示す優先順位よりも下位ではないときに前記割込み要求を受理して実行中のプログラムを中断し、前記割込み要求がブレーク機能による割込み要求以外である場合に前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、前記割込み要求がブレーク機能による割込み要求である場合に最上位以外の優先順位を前記レジスタに保持してブレーク機能による割込み要求に対応するプログラムを実行する割込み実行手段とを備えることを特徴とする。
【００１２】
上記目的を達成するために、本発明に係るプログラム開発支援方法は、プログラムの実行を任意に中断するブレーク機能を、割込み要求の優先順位が最上位である割込みを利用して提供するプログラム開発支援方法であって、割込み要求の発生を検出する検出ステップと、前記検出手段により発生が検出された割込み要求の優先順位が所定のレジスタが示す優先順位よりも下位ではないときに、前記割込み要求を受理して実行中のプログラムを中断し、前記割込み要求がブレーク機能による割込み要求以外である場合に前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、前記割込み要求がブレーク機能による割込み要求である場合に最上位以外の優先順位を前記レジスタに保持してブレーク機能による割込み要求に対応するプログラムを実行する割込み実行ステップとを備えることを特徴とするプログラム開発支援方法。
【００１３】
上記構成によると、プログラム開発支援装置及びプログラム開発支援方法は、プログラムの実行中に割込み要求を受理すれば、その割込み要求の優先順位の実行状態において割込み要求に対応するプログラムを実行する。割り込み要求がブレーク機能による最上位の割込み要求であれば、割込み要求に対応する所定のプログラムを実行する。この所定のプログラムは実行状態おける優先順位を下げることができる。
【００１４】
したがって、所定のプログラムは優先順位が最上位の割込み要求により実行されるが、実行状態における優先順位を下げることで、所定のプログラムの実行中に新たな割込み要求を受理することができる。
【００１５】
【発明の実施の形態】
以下、図１から図６までを用いて本発明の実施の形態について説明する。
＜構成＞
図１は、プログラム開発支援装置の構成を示す図である。
プログラム開発支援装置１は、ホスト装置２とマイクロコンピュータ３とからなる。ホスト装置２とマイクロコンピュータ３とは、ホスト制御バスにより接続される。
【００１６】
ホスト装置２は、マイクロコンピュータ３において使用するユーザプログラムを開発するための入出力装置である。開発者はこのホスト装置２を通じてマイクロコンピュータ３のメモリ７やＣＰＵ４内のレジスタの内容の参照及び変更を行ったり、各種設定などを行うことができる。
マイクロコンピュータ３は、ＣＰＵコア４、ブレーク検出回路５、割込み制御回路６、メモリ７およびホストインタフェース制御回路８を備え、それぞれはシステム制御バスにより接続されている。以下にマイクロコンピュータ３内の各部について説明する。
【００１７】
ＣＰＵコア４は、プログラムカウンタと状態レジスタとを備える。プログラムカウンタは、ＣＰＵコア４が次にアクセスするべきメモリ番地を指定するレジスタである。状態レジスタは、ＣＰＵコア４の現在の実行状態を示すレジスタであり、以下の２つのフラグを有する。第１のフラグは、割込み制御回路６からの割込み要求を受理するか否かを指定するフラグ（以下、「ＩＥフラグ」と呼ぶ）であり、第２のフラグは、実行中のプログラムの実行状態における優先順位を示すフラグ（以下、「ＩＭフラグ」と呼ぶ）である。
【００１８】
ＣＰＵコア４は、上記の２つのフラグに基づいて割込み要求を受理するか否か判断する。ここでは、ＩＥフラグが０の場合に割込み要求を受理せず、ＩＥフラグが１の場合に割込み要求を受理することとし、またＩＭフラグは０から７までの値をとり、現在の値より優先順位が高い割込み要求を受理する。なおここでは値が小さいほど優先順位が高いこととする。
【００１９】
これによりＣＰＵコア４は、割込み要求を選別して受理することができる。また割込み要求とは別のマスク不能割込み要求に対してはＣＰＵコア４は、上述のＩＥフラグ、ＩＭフラグの値に関わらず受理する。
ブレーク検出回路５は、ブレーク条件成立信号、ブレーク割込み優先順位情報及び割込み抑制情報の３つの信号及び情報を割込み制御回路６に出力する。
【００２０】
ブレーク条件成立信号は、ブレーク検出回路５がシステム制御バスの状態を監視して、予め設定されたブレーク条件が成立した場合に出力される。
ブレーク割込み優先順位情報は、ブレーク条件が成立したことによって割込み要求を行う（以下、「ブレーク割込み」と呼ぶ）場合に、その割込み要求の優先順位を予め設定しておくための情報である。これによって開発者はブレーク割込みの優先順位を任意に設定することができる。
【００２１】
割込み抑制情報は、割込み抑制回路６がＣＰＵコア４に対して特定の割込み要求を受理しないように設定する情報である。ここでは受理するか否かは優先順位毎に設定するものとする。これにより例えば開発者が「１、３、４、５、７」と設定すれば、たとえ割込み要求が発生したとしても優先順位が「１、３、４、５、７」の割込み要求は受理されない。
【００２２】
上記のブレーク条件、ブレーク割込み優先順位情報および割込み抑制情報は、ブレーク制御バス、ホストインタフェース制御回路８およびホスト制御バスを介してホスト装置２から開発者により設定される。
割込み制御回路６は、割込み要求が発生したことを検出してＣＰＵコア４に通知する。割込み要求としては、ブレーク割込み、マイクロコンピュータの外部端子割込み、タイマ割込み、プログラム暴走検出用割込み等がある。
【００２３】
メモリ７は、ＲＯＭやＲＡＭであり、ＣＰＵコア４が実行するプログラムや処理を行うデータなどを格納する。また、スタック領域が確保されている。
ホストインタフェース制御回路８は、ホスト制御バスを介してマイクロコンピュータ３とホスト装置２との通信を行う回路である。
図２は、割込み制御回路６の内部の構成を示す図である。
【００２４】
セレクタ９は、発生した割込み要求を一旦保持し、優先順位が最も高い割込み要求を割込み要求信号またはマスク不能割込み要求信号によりＣＰＵコア４に通知する。ただしセレクタ９は、割込み抑制情報を記録しており、割込み抑制情報により抑制の対象となっている割込み要求はＣＰＵコア４に通知しない。
＜動作＞
次にプログラム開発支援装置の動作について詳細に説明する。
【００２５】
＜割込み要求の動作＞
図３は、プログラム開発支援装置において割込み制御回路６がＣＰＵコア４に対して割込み要求を通知する手順を示す図である。
図４は、プログラム開発支援装置においてＣＰＵコア４が割込み要求を受けてモニタプログラムを実行する手順を示す図である。
【００２６】
ここで、モニタプログラムとは、割込み要求が受理された場合に実行されるプログラムである。その処理内容は割込み要求ごとに異なる。
割込み制御回路６が、割込み要求を検出した場合（ステップＳ１０１、Ｙ）に、検出した割込み要求を保持する（ステップＳ１０２）。ここで、割込み要求は、ブレーク割込み、マイクロコンピュータの外部端子割込み、タイマ割込み、プログラム暴走検出用割込み等によるものを含む。
【００２７】
割込み抑制回路６は、その後、保持された割込み要求のうち、その時点において優先順位が最高の割込み要求（ステップＳ１０３、Ｙ）であって、割込み要求の抑制されていない割込み要求（ステップＳ１０４、Ｙ）を割込み要求信号またはマスク不能割込み要求信号としてＣＰＵコア４に出力する。
割込み要求の抑制は、開発者により割込み抑制情報を用いて任意に設定される。
【００２８】
ステップＳ１０３において優先順位が最高ではない割込み要求（ステップＳ１０３、Ｎ）またはステップＳ１０４において割込み要求が抑制されている割込み要求（ステップＳ１０４、Ｎ）は、割込み要求信号またはマスク不能割込み要求信号としてＣＰＵコア４に出力される要件が成立するまで待機状態（ステップＳ１０６）となる。
【００２９】
また、割込み要求のうち、ブレーク割込みによる割込み要求の優先順位については、開発者がブレーク割込み優先順位情報を用いることで任意に設定することができる。一方、ユーザプログラムで使用する各割込み要求の優先順位については、各割込み要求に対してユーザプログラムの仕様により予め固定的に設定されている。
【００３０】
割込み制御回路６において割込み要求信号を出力した場合（ステップＳ１０７、Ｙ）、ＣＰＵコア４は、ＣＰＵコア４に備える状態レジスタのＩＥフラグとＩＭフラグを参照し、ＩＥフラグが１の場合（ステップＳ２０１、Ｙ）であって、入力した割込み要求の優先順位がＩＭフラグの値より高い場合（ステップＳ２０２、Ｙ）に、ＩＭフラグを割込み要求の優先順位に更新して、割込み要求を受理する（ステップＳ２０４）。
【００３１】
ステップＳ２０１においてＩＥフラグが０の場合（ステップＳ２０１、Ｎ）またはステップＳ２０２において割込み要求の優先順位がＩＭフラグより高くない場合（ステップＳ２０２、Ｎ）は、割込み要求は受理されずに待機状態となる（ステップＳ２０３）。
割込み制御回路６においてマスク不能割込み要求信号を出力した場合（ステップＳ１０７、Ｎ）、ＣＰＵコア４は、ＩＥフラグ、ＩＭフラグの値に関係なく割込み要求を受理する（ステップＳ２０４）。
【００３２】
割込み要求を受理したＣＰＵコア４は、実行中のユーザプログラムを中断し、ユーザプログラムを再実行するときのためにメモリ７のスタック領域に中断直前のプログラムカウンタの値と状態レジスタの値とを退避させる（ステップＳ２０５）。
プログラムカウンタの値と状態レジスタの値とを退避後に、ＣＰＵコア４は、モニタプログラムを実行中に新たな割込み要求を受理しないようにするためＩＥフラグを０に変更することによって割込み禁止状態とする（ステップＳ２０６）。
【００３３】
ＣＰＵコア４が、状態レジスタのプログラムカウンタの値を割込み処理プログラムの先頭の値に変更することで、モニタプログラムの実行を開始する（ステップＳ２０７）。
以上がプログラム開発支援装置において割込み要求が発生した場合に、モニタプログラムを実行するまでの処理である。
【００３４】
＜ブレーク状態においての動作＞
次に、モニタプログラムの実行が開始された場合のモニタプログラムの処理手順を説明する。
図５は、モニタプログラムの処理を示す図である。
まず、モニタプログラムが起動した原因が、ブレーク割込みによるものか否か判定し、ブレーク割込みによるものの場合（ステップＳ３０１、Ｙ）、メモリ７に退避したユーザプログラムを中断する直前のプログラムカウンタの値と状態レジスタの値とをモニタプログラム用の作業領域である「ｓａｖｅｐｃ」、「ｓａｖｅｐｓｗ」にそれぞれコピーする（ステップＳ３０２）。ブレーク割込みによらないものの場合（ステップＳ３０１、Ｎ）、その他のモニタプログラムの処理を行う。
【００３５】
その後、割込み制御回路６が、割込み抑制情報によって予め開発者がホスト装置２において設定している値を設定する（ステップＳ３０４）。これによって、割込み制御回路６は、ブレーク状態において特定の割込み要求についての割込みを抑制することができる。
ＣＰＵコア４は、メモリ７のスタック領域に退避されたプログラムカウンタの値をモニタループが格納されたメモリ番地に上書きする（ステップＳ３０５）。ここでモニタループは、自分自身に分岐する命令からなるループ状のプログラムである。
【００３６】
ＣＰＵコア４が、メモリ７のスタック領域に退避された状態レジスタの値、特にＩＭフラグの値を変更する（ステップＳ３０６）。これによって、ＣＰＵコア４は、ブレーク状態において変更後のＩＭフラグの値より高い優先順位を有する割込み要求信号を受理することができる。
メモリ７のスタック領域からプログラムカウンタの値と状態レジスタの値とをＣＰＵコア４に戻す命令（以下、「ＲＴＩ命令」と呼ぶ）を実行する（ステップＳ３０７）。これによってモニタプログラムが終了してモニタループを実行する。これによってＣＰＵコア４は自分自身に分岐する命令を実行し続け、ブレーク状態を実現する。このブレーク状態において新たな割込み要求が発生すれば、新たな割込み要求は図３のＳ１０１からの手順を踏むことになる。そして割込みの要件が揃い、ＣＰＵコア４により新たに割込み要求を受理された場合に、モニタループは中断し、モニタプログラムが実行される。その後、モニタプログラムの処理が終了してＲＴＩ命令が実行されると、モニタループが中断された直前のメモリ番地にプログラムカウンタが戻り、モニタループが再実行される。このときユーザプログラムは未だブレーク状態が実現されている。
【００３７】
これによって、ブレーク割込みによりユーザプログラムの実行が中断された状態において、新たな割込み要求を受理することができる。以下はその具体例である。例えば、ユーザプログラムはウォッチドッグタイマによる自身の暴走検出機能を有するとする。これは、カウントアップを行うカウンタと、一定時間毎にカウンタをリセットするプログラムとからなり、リセットするプログラムは一定時間毎に実行中のプログラムに割込んで実行されるものである。これによってカウントアップを一定時間毎にリセットし続けている間はユーザプログラムが正常に動作しているとみなされる。もしユーザプログラムが何らかの理由でカウンタをリセットできなければ、カウンタはオーバーフローする。これによりユーザプログラムが正常に動作していないとみなされ、異常処理用のプログラムが実行される。ユーザプログラムが上記のような機能を有する場合、ＣＰＵコア４は一定時間毎に割込み要求を受理し、その都度カウンタをリセットするプログラムを実行しなければならない。本発明に係るプログラム開発支援装置は、ユーザプログラムが中断されたブレーク状態で、モニタループを実行し、その実行状態の優先順位を変更することができるので、一定時間毎の割込み要求の優先順位よりも低い実行状態でモニタループを実行するように設定ることができる。これによってＣＰＵコア４は、ユーザプログラムが中断された状態において一定時間毎の割込み要求を受理することができる。また、上記のようにモニタループの実行状態における優先順位を下げることで、受理が不必要な割込み要求まで受理してしまう可能性があるが、このような割込み要求は割込み抑制情報により割込み要求の受理を抑制することもできる。
【００３８】
また、モニタループの実行中に新たな割込み要求を受理し、その割込み要求がユーザプログラムのブレーク状態を解除して再実行する再実行機能による割込み要求であれば、ユーザプログラムはモニタループから抜け出し、中断する直前から再実行される。このようなユーザプログラムを再実行させる手順を以下に示す。
【００３９】
＜ユーザプログラム再実行の動作＞
図６は、ユーザプログラムを再実行させるモニタプログラムの処理を示す図である。
ＣＰＵコア４が、再実行機能によりユーザプログラムの再実行を要求された場合に、図５のステップＳ３０２においてコピーされた「ｓａｖｅｐｃ」、「ｓａｖｅｐｓｗ」の値をメモリ７のスタック領域に退避しているプログラムカウンタの値と状態レジスタの値とに上書きする（ステップＳ４０１）。
【００４０】
ＲＴＩ命令を実行する（ステップＳ４０２）。
これにより、ＣＰＵコア４は、ブレーク条件の成立による割込み要求信号を受理する直前のプログラムカウンタと状態レジスタとに戻して、中断されたユーザプログラムを中断する直前から再び実行することができる。
【００４１】
【発明の効果】
本発明に係る割込み管理装置は、実行中のプログラムへの割込みを管理する割込み管理装置であって、割込み要求の発生を検出する検出手段と、前記検出手段により発生が検出された割込み要求の優先順位が所定のレジスタが示す優先順位よりも下位ではないときに前記割込み要求を受理して実行中のプログラムを中断し、前記割込み要求が特定の割込み要求以外である場合に前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、前記割込み要求が特定の割込み要求である場合に、前記割込み要求の優先順位とは異なる優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行する割込み実行手段とを備えることを特徴とする。
【００４２】
上記構成によると、割込み管理装置は、プログラムの実行中に割込み要求を受理すれば、その割込み要求の優先順位の実行状態において割込み要求に対応するプログラムを実行する。例えば当初実行中のプログラムの実行状態における優先順位が「３」であるとする。これは割込み要求の優先順位が「３」より低ければその割込み要求は受理されないことを意味する。ここで割込み要求の優先順位が「２」であるとすれば、割込み要求の優先順位が実行状態の優先順位よりも高いのでその割込み要求に対応するプログラムが実行される。この場合、プログラムの実行状態における優先順位は「２」となる。これは新たな割込み要求が発生した場合に、その割込み要求の優先順位が「２」より低ければその割込み要求は受理されないことを意味する。すなわち受理した割込み要求の優先順位がその後の割込み要求の受理に影響する。ところが当該割込み管理装置は、所定の割込み要求に対応する所定のプログラムを実行する場合に、当該プログラムは実行状態における優先順位を変更することができる。
【００４３】
したがって、所定の割込み要求に対応する所定のプログラムを実行する場合に、実行状態における優先順位を変更することにより割込み要求の優先順位に関わらずに新たな割込み要求を受理することができる。
本発明に係るプログラム開発支援装置は、プログラムの実行を任意に中断するブレーク機能を、割込み要求の優先順位が最上位である割込みを利用して提供するプログラム開発支援装置であって、割込み要求の発生を検出する検出手段と、前記検出手段により発生が検出された割込み要求の優先順位が所定のレジスタが示す優先順位よりも下位ではないときに前記割込み要求を受理して実行中のプログラムを中断し、前記割込み要求がブレーク機能による割込み要求以外である場合に前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、前記割込み要求がブレーク機能による割込み要求である場合に最上位以外の優先順位を前記レジスタに保持してブレーク機能による割込み要求に対応するプログラムを実行する割込み実行手段とを備えることを特徴とする。
【００４４】
上記構成によると、プログラム開発支援装置は、プログラムの実行中に割込み要求を受理すれば、その割込み要求の優先順位の実行状態において割込み要求に対応するプログラムを実行する。割り込み要求がブレーク機能による最上位の割込み要求であれば、割込み要求に対応する所定のプログラムを実行する。この所定のプログラムは実行状態おける優先順位を下げることができる。
【００４５】
したがって、所定のプログラムは優先順位が最上位の割込み要求により実行されるが、実行状態における優先順位を下げることで、所定のプログラムの実行中に新たな割込み要求を受理することができる。
また、前記割込み実行手段は、さらに、受理を禁止する割込み要求の優先順位を記録している記録手段を含み、前記検出手段により発生が検出された割込み要求の優先順位が、前記レジスタが示す優先順位よりも下位ではない状態であっても、前記記録手段により記録されている優先順位の割込み要求は受理しないことを特徴としてもよい。
【００４６】
したがって、プログラム開発支援装置は、プログラムの実行中に割込み要求を選択的に受理することができる。
また、前記所定のプログラムは、ループ状のプログラムであり、前記割込み実行手段は、前記割込み要求がブレーク機能による割込み要求である場合に、最上位以外の優先順位を前記レジスタに保持して前記ループ状のプログラムを実行することを特徴としてもよい。
【００４７】
上記構成によると、プログラム開発支援装置は、ブレーク機能による割込み要求を受理した場合に、割込み要求の優先順位よりも低い優先順位を有する実行状態においてループ状のプログラムを実行する。実行されるプログラムがループ状なので、プログラム開発支援装置は新たな割込み要求を受理するまでループ状のプログラムを実行し続ける。このとき当初実行中であったプログラムは中断されたままであり、ループ状のプログラムが実行され続けている。
【００４８】
したがって、当初実行中であったプログラムは中断されたままで、新たな割込み要求を受理することができるブレーク状態を実現することができる。
また、当該プログラム開発支援装置は、さらに、ブレーク機能により実行が中断されたプログラムを任意に再実行する再実行機能を、割込みを利用して提供し、前記割込み実行手段は、割込み要求が受理されたときに、実行中のプログラムが中断される直前のプログラムカウンタの値と前記レジスタが示す優先順位の値とをスタックに退避する退避手段と、前記退避手段により退避されたプログラムカウンタの値と前記レジスタが示す優先順位の値とを読み出し、前記レジスタが示す優先順位において、前記プログラムカウンタの値により指定されるメモリ上の番地に格納されたプログラムを実行する復帰手段と、前記割込み要求がブレーク機能による割込み要求である場合に、前記退避手段により退避されたプログラムカウンタの値と前記レジスタの値とを前記スタックとは異なるメモリ領域に複製し、前記スタックにおいてプログラムカウンタの値が退避された領域に、前記ループ状のプログラムが格納されたメモリ上の先頭番地の値を上書きし、前記スタックにおいて前記レジスタの値が退避された領域に、当該ブレーク機能による割込み要求の優先順位よりも下位の値を上書きして、前記復帰手段に前記ループ状のプログラムを実行させるブレーク実行制御手段と、前記割込み要求が再実行機能による割込み要求である場合に、前記メモリ領域に複製されたプログラムカウンタの値と前記レジスタが示す優先順位の値とを、スタックにおいてプログラムカウンタの値が格納された領域と、前記レジスタが示す優先順位の値が格納された領域とにそれぞれ上書きして、前記復帰手段に、前記ブレーク機能によって中断されたプログラムを中断された直前から再び実行させる再実行制御手段とを含むことを特徴としてもよい。
【００４９】
上記構成によれば、次に実行するべき命令が格納されているメモリ上の番地と、プログラムが中断される直前におけるプログラムの実行状態を示す状態レジスタとが、第１メモリ領域に保持される。この第１メモリ領域は、割込み要求に対応するプログラムの実行完了時に参照される。これによりプログラム開発支援装置は、中断されたプログラムの中断される直前における実行状態を再現し、中断される直前から再び実行することができる。
【００５０】
また、ブレーク機能による割込み要求を受理した場合に、第１メモリ領域は保持内容を第２メモリ領域に複製されて、ループ状のプログラムが格納されている番地が上書きされる。これによりループ状のプログラムが実行される。
また、このループ状のプログラムの実行中において再実行機能による割込み要求を受理した場合に、第２メモリ領域に複製されている保持内容が第１メモリ領域に上書きされる。これによりプログラム開発支援装置は、ブレーク機能により中断されたプログラムを中断される直前から再び実行することができる。
【００５１】
本発明に係る割込み管理方法は、実行中のプログラムへの割込みを管理する割込み管理方法であって、割込み要求の発生を検出する検出ステップと、前記検出ステップにより発生が検出された割込み要求の優先順位が所定のレジスタが示す優先順位よりも下位ではないときに前記割込み要求を受理して実行中のプログラムを中断し、前記割込み要求が特定の割込み要求以外である場合に前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、前記割込み要求が特定の割込み要求である場合に前記割込み要求の優先順位とは異なる優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行する割込み実行ステップとを備えることを特徴とする。
【００５２】
上記構成によると、割込み管理方法は、プログラムの実行中に割込み要求を受理すれば、その割込み要求の優先順位の実行状態において割込み要求に対応するプログラムを実行する。例えば当初実行中のプログラムの実行状態における優先順位が「３」であるとする。これは割込み要求の優先順位が「３」より低ければその割込み要求は受理されないことを意味する。ここで割込み要求の優先順位が「２」であるとすれば、割込み要求の優先順位が実行状態の優先順位よりも高いのでその割込み要求に対応するプログラムが実行される。この場合、プログラムの実行状態における優先順位は「２」となる。これは新たな割込み要求が発生した場合に、その割込み要求の優先順位が「２」より低ければその割込み要求は受理されないことを意味する。すなわち受理した割込み要求の優先順位がその後の割込み要求の受理に影響する。ところが当該割込み管理装置は、所定の割込み要求に対応する所定のプログラムを実行する場合に、当該プログラムは実行状態における優先順位を変更することができる。
【００５３】
したがって、所定の割込み要求に対応する所定のプログラムを実行する場合に、実行状態における優先順位を変更することにより割込み要求の優先順位に関わらずに新たな割込み要求を受理することができる。
本発明に係るプログラム開発支援方法は、プログラムの実行を任意に中断するブレーク機能を、割込み要求の優先順位が最上位である割込みを利用して提供するプログラム開発支援方法であって、割込み要求の発生を検出する検出ステップと、前記検出ステップにより発生が検出された割込み要求の優先順位が所定のレジスタが示す優先順位よりも下位ではないときに前記割込み要求を受理して実行中のプログラムを中断し、前記割込み要求がブレーク機能による割込み要求以外である場合に前記割込み要求の優先順位を前記レジスタに保持して前記割込み要求に対応するプログラムを実行し、前記割込み要求がブレーク機能による割込み要求である場合に最上位以外の優先順位を前記レジスタに保持してブレーク機能による割込み要求に対応するプログラムを実行する割込み実行ステップとを備えることを特徴とする。
【００５４】
上記構成によると、プログラム開発支援方法は、プログラムの実行中に割込み要求を受理すれば、その割込み要求の優先順位の実行状態において割込み要求に対応するプログラムを実行する。割り込み要求がブレーク機能による最上位の割込み要求であれば、割込み要求に対応する所定のプログラムを実行する。この所定のプログラムは実行状態おける優先順位を下げることができる。
【００５５】
したがって、所定のプログラムは優先順位が最上位の割込み要求により実行されるが、実行状態における優先順位を下げることで、所定のプログラムの実行中に新たな割込み要求を受理することができる。
【図面の簡単な説明】
【図１】プログラム開発支援装置の構成を示す図である。
【図２】割込み制御回路６の内部の構成を示す図である。
【図３】プログラム開発支援装置において割込み制御回路６がＣＰＵコア４に対して割込み要求を行う手順を示す図である。
【図４】プログラム開発支援装置においてＣＰＵコア４が割込み要求を受けてモニタプログラムを実行する手順を示す図である。
【図５】モニタプログラムの処理を示す図である。
【図６】ユーザプログラムを再実行させるモニタプログラムの処理を示す図である。
【符号の説明】
１　プログラム開発支援装置
２　ホスト装置
３　マイクロコンピュータ
４　ＣＰＵコア
５　ブレーク検出回路
６　割込み制御回路
７　メモリ
８　ホストインタフェース回路
９　セレクタ
【図１】
2004118412.tif 000003
【図２】
2004118412.tif 000004
【図３】
2004118412.tif 000005
【図４】
2004118412.tif 000006
【図５】
2004118412.tif 000007
【図６】
2004118412.tif 000008