(57)【要約】【課題】オンチップデバッグ機能を有するＣＰＵでリアルタイムプログラムを実行し、ＣＰＵの外にタイマを備えるリアルタイムシステムにおいて、一旦該プログラムを停止したときに、該プログラムの停止点から外部タイマに同期させて該プログラムを再開できるプログラム停止方法の提供。【解決手段】オンチップデバッグロジック７は、プログラム８の実行中にブレークポイントにヒットすると、例外ベクタのアドレス101を発生する。マスク不可割り込み発生部４は、アドレス101を検出したとき、マスク不可割り込み信号104を発生する。信号104の発生に伴い、CPU1の実行プログラムはプログラム９に移行する（プログラム８は停止）とともに、外部タイマ３の計時を停止する。プログラム８の停止に同期してタイマ３を停止できるので、信号104を解除することにより、プログラム８及びタイマ３を同期して再開できる。【選択図】図１
2007199955.tif 000002
【特許請求の範囲】
【請求項１】
オンチップデバッグロジックを有するＣＰＵと、該ＣＰＵに時間情報を与える外部タイマとからなるリアルタイムシステムにおいて、
前記ＣＰＵと外部タイマとにマスク不可割り込み信号を与えるマスク不可割り込み発生部を付加したことを特徴とするリアルタイムシステム。
【請求項２】
請求項１のリアルタイムシステムのリアルタイムプログラムを停止する方法において、
前記ＣＰＵは、前記オンチップデバッグロジックが、前記リアルタイムプログラムの実行中にブレークポイントを検出したとき、該リアルタイムプログラムを停止し、デバッグモードに入り、該ブレークポイントに関する例外ベクタのアドレスを生成し、前記マスク不可割り込み発生部へ該アドレスを供給し、
前記マスク不可割り込み発生部は、前記アドレスの入力に同期して前記マスク不可割り込み信号を発生し、該マスク不可割り込み信号に同期して前記外部タイマを停止させる
ことを特徴とするプログラム停止方法。
【請求項３】
請求項１のリアルタイムシステムのリアルタイムプログラムを停止する方法において、
前記マスク不可割り込み発生部により前記マスク不可割り込み信号を外部インタフェースから強制的に発生し、該マスク不可割り込み信号の発生に同期して、前記ＣＰＵの実行プログラムを前記リアルタイムプログラムからマスク不可割り込み処理プログラムに移行し、前記オンチップデバッグロジックにより該マスク不可割り込み処理プログラムの先頭部分に予め設定しておいたブレークポイントを該マスク不可割り込み処理プログラムにおいて検出し、該ＣＰＵをデバッグモードにするとともに、前記外部タイマを停止することを特徴とするプログラム停止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンチップデバッグ機能を有するＣＰＵでリアルタイムプログラムを実行する慣性装置等のリアルタイムシステムに関し、特にＣＰＵの外にタイマを備えるリアルタイムシステムにおけるリアルタイムプログラムを停止する方法に関する。
【背景技術】
【０００２】
ＣＰＵの外にタイマを備えるリアルタイムシステムは、例えば特許文献１（特開２００３−１８５４６５公報）に「慣性装置」として記述されている。外部タイマは、リアルタイムプログラムでは、時間の基準とするため、或いはプログラムの健全性を外部からモニタするために設けられる。オンチップデバッグ機能を備えたＣＰＵを用いた装置としては、特許文献２（特開２００２−２０２９００）に開示されたデバッグ装置がある。オンチップデバッグ機能付きＣＰＵで実行されるリアルタイムプログラムのデバッグを行う際に、オンチップデバッグ機能の一部であるブレークポイント機能及び強制ブレーク機能により、リアルタイムプログラムを停止する方法は知られていた。
【特許文献１】特開２００３−１８５４６５公報
【特許文献２】特開２００２−２０２９００公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述のように、オンチップデバッグ機能付きＣＰＵで実行されるリアルタイムプログラムのデバッグを行う際には、オンチップデバッグ機能の一部であるブレークポイント機能及び強制ブレーク機能によりそのリアルタイムプログラムを停止する方法は知られていた。しかしながら、その停止方法では、リアルタイムプログラムの停止に同期して外部タイマを停止することはできなかった。そこで、従来のリアルタイムプログラムの停止方法では、デバッグのために一旦そのプログラムを停止すると、該プログラムと前記タイマとの同時性が失われるので、デバッグを終了しても、そのプログラムの停止点から該プログラムを再開することはできなかった。
【０００４】
そこで、本発明の目的は、オンチップデバッグ機能を有するＣＰＵでリアルタイムプログラムを実行し、ＣＰＵの外にタイマを備えるリアルタイムシステムにおいて、リアルタイムプログラムのデバッグをするために一旦該プログラムを停止したときに、該プログラムの停止点から外部タイマに同期させて該プログラムを再開できるプログラムの停止方法及びこのプログラムの停止方法を実現できるリアルタイムシステムの提供にある。
【課題を解決するための手段】
【０００５】
前述の課題を解決するために本発明は次の手段を提供する。
【０００６】
（１）オンチップデバッグロジックを有するＣＰＵと、該ＣＰＵに時間情報を与える外部タイマとからなるリアルタイムシステムにおいて、
前記ＣＰＵと外部タイマとにマスク不可割り込み信号を与えるマスク不可割り込み発生部を付加したことを特徴とするリアルタイムシステム。
【０００７】
（２）前記（１）のリアルタイムシステムのリアルタイムプログラムを停止する方法において、
前記ＣＰＵは、前記オンチップデバッグロジックが、前記リアルタイムプログラムの実行中にブレークポイントを検出したとき、該リアルタイムプログラムを停止し、デバッグモードに入り、該ブレークポイントに関する例外ベクタのアドレスを生成し、前記マスク不可割り込み発生部へ該アドレスを供給し、
前記マスク不可割り込み発生部は、前記アドレスの入力に同期して前記マスク不可割り込み信号を発生し、該マスク不可割り込み信号に同期して前記外部タイマを停止させる
ことを特徴とするプログラム停止方法。
【０００８】
（３）前記（１）のリアルタイムシステムのリアルタイムプログラムを停止する方法において、
前記マスク不可割り込み発生部により前記マスク不可割り込み信号を外部インタフェースから強制的に発生し、該マスク不可割り込み信号の発生に同期して、前記ＣＰＵの実行プログラムを前記リアルタイムプログラムからマスク不可割り込み処理プログラムに移行し、前記オンチップデバッグロジックにより該マスク不可割り込み処理プログラムの先頭部分に予め設定しておいたブレークポイントを該マスク不可割り込み処理プログラムにおいて検出し、該ＣＰＵをデバッグモードにするとともに、前記外部タイマを停止することを特徴とするプログラム停止方法。
【発明の効果】
【０００９】
上記構成の本発明によれば、オンチップデバッグ機能を有するＣＰＵでリアルタイムプログラムを実行し、ＣＰＵの外にタイマを備えるリアルタイムシステムにおいて、リアルタイムプログラムのデバッグをするために一旦該プログラムを停止したときに、該プログラムの停止点から外部タイマに同期させて該プログラムを再開できるプログラムの停止方法及びこのプログラムの停止方法を実現できるリアルタイムシステムを提供できる。
【発明を実施するための最良の形態】
【００１０】
次に、本発明の実施形態について図面を参照して説明する。図１は、本発明の一実施形態であるリアルタイムシステムのＣＰＵ部の構成を示すブロック図、図２は図１の実施の形態におけるマスク不可割り込み処理を示す流れ図である。図において、１はＣＰＵ、２はプルグラムが格納されるメモリ、３は外部タイマ、４はマスク不可割り込み発生部、５，６は外部インタフェース、７はＣＰＵ１に搭載されたオンチップデバッグロジック、８はメモリ２に格納されているリアルタイムプログラム、９はメモリ２に格納されているマスク不可割り込み処理プログラム、100はＣＰＵ１とメモリ２との間で授受される命令及びデータ、101は、オンチップデバッグロジック７がブレークポイントを検出したときに、デバッグ機能を実現する命令をフェッチするために、ＣＰＵ１からＣＰＵバスに出力される例外ベクタのアドレス、103はタイマ３からＣＰＵ１へ供給される時間情報、104はマスク不可割り込み信号である。
【００１１】
オンチップデバッグロジック７は、ブレークポイント機能および強制ブレーク機能を有し、ブレークポイントを検出するとＣＰＵをデバッグモードに入れ、デバッグ機能を実現する命令をフェッチするために、ＣＰＵ１から例外ベクタのアドレス101をＣＰＵバスに出力する。アドレス101は、外部インタフェース５の操作により、オンチップデバッグロジック７に予め設定してある。マスク不可割り込み発生部４は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）等でなるロジック回路で構成され、次の４つの機能を有する。
ａ．アドレス101をＣＰＵバスに検出したとき、マスク不可割り込み信号104を発生する。
ｂ．外部インタフェース６からの制御により、マスク不可割り込み信号104を強制的に発生する。
ｃ．外部インタフェース６からの制御により、マスク不可割り込み信号104を発生するべきアドレスを設定する。
ｄ．外部インタフェース６からの制御により、マスク不可割り込み信号104を解除する。
【００１２】
本実施の形態では、オンチップデバッグロジック７のブレークポイント機能を利用し、次のＡ１からＡ１１の手順により、リアルタイムプログラム８の停止に同期した外部タイマ３の計時の停止と、リアルタイムプログラム８の再開に同期した外部タイマ３の計時の再開を可能にする。
Ａ１：外部インタフェース５からオンチップデバッグロジック７にブレークポイントの指示を送ることにより、オンチップデバッグロジック７がリアルタイムプログラム８の所定位置にブレークポイントを設定する。
Ａ２：外部インタフェース６からマスク不可割り込み発生部４に対し、マスク不可割り込み信号104を発生するべきアドレスとして、オンチップデバッグロジック７から出力されるアドレス101を設定する。マスク不可割り込み発生部４は、前記ｃの機能を利用し、マスク不可割り込み信号104を発生するべきアドレスとして、オンチップデバッグロジック７から出力されるアドレス101を設定できる。
Ａ３：リアルタイムプログラム８を実行する。
Ａ４：前記Ａ１で設定したブレークポイントにヒットし、リアルタイムプログラム８が停止するとともに、ＣＰＵ１はデバッグモードに入り、例外ベクタのアドレスからデバッグロジック処理を開始し、オンチップデバッグロジック７から例外ベクタのアドレス101を出力する。
Ａ５：マスク不可割り込み発生部４は、アドレス101を検出し、マスク不可割り込み信号104を発生する。
Ａ６：外部タイマ３は、マスク不可割り込み信号104を受け、計時を停止する。
Ａ７：リアルタイムプログラム８が停止中に、所望のデバッグ（メモリ２の読み出し等）を実施する。
Ａ８：外部インタフェース５からオンチップデバッグロジック７を制御し、前記ブレークポントを解除することにより、ＣＰＵ１をデバッグモードから解除する。
Ａ９：ＣＰＵ１がデバッグモードから解除されると、ＣＰＵ１で実行するプログラムは、リアルタイムプログラム８からマスク不可割り込み処理プログラム９へ移行し、図２のマスク不可割り込み処理のルーチンへ移行し、外部インタフェース６からの制御によりマスク不可割り込み処理が解除されるのを待つ。
Ａ１０：外部インタフェース６からマスク不可割り込み発生部４を制御し、マスク不可割り込み発生部４の前記ｄの機能により、マスク不可割り込み信号104を解除する。
Ａ１１：マスク不可割り込み信号104の解除にともない、ＣＰＵ１における実行プログラムは、マスク不可割り込み処理プログラム９からリアルタイムプログラム８へ移行し、前記手順Ａ４において停止した時点からリアルタイムプログラム８を再開するとともに、外部タイマ３の計時を再開する。
【００１３】
また、本実施の形態では、オンチップデバッグロジック７の強制ブレーク機能を利用し、次のＢ１からＢ１０の手順により、リアルタイムプログラム８の停止に同期した外部タイマ３の計時の停止と、リアルタイムプログラム８の再開に同期した外部タイマ３の計時の再開とを可能にする。
Ｂ１：外部インタフェース５からオンチップデバッグロジック７に強制ブレークの指示を送ることにより、オンチップデバッグロジック７は、その強制ブレーク機能により、マスク不可割り込み処理プログラム９の先頭位置にブレークポイントを設定する。
Ｂ２：リアルタイムプログラム８を実行する。
Ｂ３：外部インタフェース６からマスク不可割り込み発生部４を制御し、マスク不可割り込み発生部４の前記機能ｂにより、マスク不可割り込み信号104を強制的に発生させる。
Ｂ４：マスク不可割り込み信号104をＣＰＵ１に受けることにより、ＣＰＵ１での実行は、リアルタイムプログラム８からマスク不可割り込み処理プログラム９へ移行し（リアルタイムプログラム８は停止）、直ちに前記Ｂ１で設定したブレークポイントにヒットし、マスク不可割り込み処理プログラム９が停止するとともに、ＣＰＵ１はデバッグモードに入る。
Ｂ５：外部タイマ３は、マスク不可割り込み信号104を受け、計時を停止する。
Ｂ６：リアルタイムプログラム８及びマスク不可割り込み処理プログラム９が停止中に、所望のデバッグ（メモリ２の読み出し等）を実施する。
Ｂ７：外部インタフェース５からオンチップデバッグロジック７を制御し、前記ブレークポントを解除することにより、ＣＰＵ１をデバッグモードから解除する。
Ｂ８：ＣＰＵ１がデバッグモードから解除されると、ＣＰＵ１は先頭の命令（前記Ｂ１で設定したブレークポイントの次の命令）を実行し、マスク不可割り込み処理プログラム９における図２のマスク不可割り込み処理のルーチンへ移行し、外部インタフェース６からの制御によりマスク不可割り込み処理が解除されるのを待つ。
Ｂ９：外部インタフェース６からマスク不可割り込み発生部４を制御し、マスク不可割り込み発生部４の前記機能ｄにより、マスク不可割り込み信号104を解除する。
Ｂ１０：マスク不可割り込み信号104の解除にともない、ＣＰＵ１における実行プログラムは、マスク不可割り込み処理プログラム９からリアルタイムプログラム８へ移行し、前記手順Ｂ４において停止した時点からリアルタイムプログラム８を再開するとともに、外部タイマ３の計時を再開する。
【００１４】
上述の本実施の形態を適用したリアルタイムシステム（図１の外部タイマ付きＣＰＵ部を備えるリアルタイムシステム）においては、リアルタイムプログラムのデバッグをするために一旦該プログラムを停止したとき、オンチップデバッグロジック７のブレークポイント機能又は強制ブレーク機能を利用し、リアルタイムプログラム８の停止に同期して外部タイマ３の計時を停止し、リアルタイムプログラム８の再開に同期して外部タイマ３の計時を再開できる。
【００１５】
以上に実施の形態を挙げ、本発明を具体的に説明したが、本発明がその実施の形態に限定されるものでないことは勿論である。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態であるリアルタイムシステムのＣＰＵ部の構成を示すブロック図である。
【図２】図１の実施の形態におけるマスク不可割り込み処理を示す流れ図である。
【符号の説明】
【００１７】
１    ＣＰＵ
２    プルグラムが格納されるメモリ
３    外部タイマ
４    マスク不可割り込み発生部
５，６    外部インタフェース
７    ＣＰＵ１に搭載されたオンチップデバッグロジック
８    メモリ２に格納されているリアルタイムプログラム
９    メモリ２に格納されているマスク不可割り込み処理プログラム
100    ＣＰＵ１とメモリ２との間で授受される命令及びデータ
101    オンチップデバッグロジック７がブレークポイントを検出したときに、ＣＰＵ１からＣＰＵバスに出力される例外ベクタのアドレス
103    タイマ３からＣＰＵ１へ供給される時間情報
104    マスク不可割り込み信号
【図１】
2007199955.tif 000003
【図２】
2007199955.tif 000004