(57)【要約】【課題】マイコンを用いた応用システムを制御するソフトウェア開発に使用するマイコンデバッグシステムおよびマイクロコンピュータに関し、デバッグ要求の発生により例えばＤＣモータを制御する緊急度の高いプログラムが中断され、ＤＣモータが制御不能となりモータのコイルを焼き切るといったシステム異常を回避することができる。【解決手段】デバッグモードを複数モード有し、一のデバッグモードではデバッグ中は割り込みプログラムの処理に移行せず、他のデバッグモードではデバッグ中に割り込みプログラムの処理に移行することを特徴とし、複数のデバッグモードを有するＣＰＵ１１と、デバッグ処理への移行を制御するデバッグ判定回路１２と、デバッグ中に割り込みプログラムの処理を受付ける期間を制御する優先許可フラグ１３とを備える。【選択図】図１
2008090390.tif 000002
【特許請求の範囲】
【請求項１】
デバッグモードを複数モード有し、一のデバッグモードではデバッグ中は割り込みプログラムの処理に移行せず、他のデバッグモードではデバッグ中に割り込みプログラムの処理に移行する、ことを特徴とするマイコンデバッグシステム。
【請求項２】
前記複数のデバッグモードを有するＣＰＵと、デバッグ処理への移行を制御するデバッグ判定回路と、デバッグ中に割り込みプログラムの処理を受付ける期間を制御する優先許可フラグとを備えた、ことを特徴とする請求項１に記載のマイコンデバッグシステム。
【請求項３】
デバッグ中に多重に割り込みプログラムの処理を受付け可能に、デバッグ中に優先される割り込みプログラムのレベルを制御するレベル設定レジスタをさらに備えた、ことを特徴とする請求項２に記載のマイコンデバッグシステム。
【請求項４】
請求項２に記載の前記ＣＰＵ、前記デバッグ判定回路、前記優先許可フラグに加え、デバッグ要求を出力するデバッグ要求制御回路をワンチップに搭載した、ことを特徴とするマイクロコンピュータ。
【請求項５】
請求項３に記載の前記ＣＰＵ、前記デバッグ判定回路、前記優先許可フラグ、前記レベル設定レジスタに加え、デバッグ要求を出力するデバッグ要求制御回路をワンチップに搭載した、ことを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ（以下マイコンと称する）を用いた応用システムを制御するソフトウェアの開発に使用するマイコンデバッグシステムおよびマイクロコンピュータに関するものである。
【背景技術】
【０００２】
従来からマイコンを用いた応用システムを制御するソフトウェアの開発において、プログラムのデバッグが行われている。例えば、特許文献１にはＤＣモータの制御システムにおけるプログラムのデバッグについて開示されている。
【０００３】
図８にＤＣモータの制御システムのブロック図を示す。マイコン１００のポート出力がモータ制御回路１０１の入力に接続され、モータ制御回路１０１の出力がＤＣモータ１０２の電源になっており、タイマ１０３を用いて一定間隔で割り込み要求を発生させ、その割り込み処理ルーチンでポートの出力を変化させている。
【０００４】
図９のタイミングチャートを用いてＤＣモータの制御システムにおけるユーザプログラム（以下プログラムと称する）のデバッグ動作について説明する。マイコン１００はプログラムを処理する際の優先度であるユーザレベルを複数持ち、緊急度の低いプログラムはユーザレベル１で実行し、緊急度の高いプログラムはユーザレベル０で実行する。図８の例では、ＤＣモータ１０２を制御する緊急度の高いプログラムをユーザレベル０の割り込み処理で実行している。図９において、ユーザレベル１で緊急度の低いプログラムが実行されている状態でデバッグ要求が発生すると（同図中１１０）、デバッグレベルはユーザレベル１より優先されるため無条件でデバッグレベルに移行してプログラムのデバッグが開始される。デバッグが実行されている状態で、デバッグレベルよりも優先されるユーザレベル０の緊急度の高い割り込みプログラムの要求が発生すると（同図中１１１）、デバッグを中断しユーザレベル０に移行して割り込みプログラムの実行を開始する。割り込みプログラムの処理が完了すると（同図中１１２）、デバッグレベルに戻りデバッグを再開し、デバッグが完了すると（同図中１１３）、ユーザレベル１に戻って緊急度の低いプログラムが実行される。
【特許文献１】特開平１０−６９３９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のデバッグ動作においては、デバッグ中にユーザレベル０の緊急度の高いプログラムを実行させることは可能であるが、緊急度の高いプログラムが実行されている状態でデバッグ要求が発生した場合は無条件でデバッグレベルに移行してしまう。
【０００６】
このため、図８の例では、デバッグ要求の発生によりＤＣモータ１０２を制御する緊急度の高いプログラムが中断されることになり、ＤＣモータ１０２が制御不能となりモータのコイルを焼き切るといったシステム異常を来たすという問題があった。
【課題を解決するための手段】
【０００７】
本発明の請求項１に記載のマイコンデバッグシステムは、デバッグモードを複数モード有し、一のデバッグモードではデバッグ中は割り込みプログラムの処理に移行せず、他のデバッグモードではデバッグ中に割り込みプログラムの処理に移行することを特徴とする。
【０００８】
本発明の請求項１に記載のマイコンデバッグシステムによると、例えばＤＣモータの制御システムに適用した場合、ＤＣモータを接続していない状態では、一のデバッグモードによって緊急度の高いプログラムをデバッグしておき、ＤＣモータを接続した状態では、他のデバッグモードによって緊急度の高いプログラムを除くシステム全体のデバッグを行うことができ、緊急度の高いＤＣモータの制御プログラムが中断されるのを防止できる。
【０００９】
本発明の請求項２に記載のマイコンデバッグシステムは、請求項１のマイコンデバッグシステムにおいて、前記複数のデバッグモードを有するＣＰＵと、デバッグ処理への移行を制御するデバッグ判定回路と、デバッグ中に割り込みプログラムの処理を受付ける期間を制御する優先許可フラグとを備えたことを特徴とする。
【００１０】
本発明の請求項２に記載のマイコンデバッグシステムによると、他のデバッグモードによって緊急度の高いプログラムを除くシステム全体のデバッグを行う際、優先許可フラグによってデバッグプログラムを中断しても問題のない区間を設定することで割り込みプログラムの処理が可能となる。
【００１１】
本発明の請求項３に記載のマイコンデバッグシステムは、請求項２のマイコンデバッグシステムにおいて、デバッグ中に多重に割り込みプログラムの処理を受付け可能に、デバッグ中に優先される割り込みプログラムのレベルを制御するレベル設定レジスタをさらに備えたことを特徴とする。
【００１２】
本発明の請求項３に記載のマイコンデバッグシステムによると、デバッグ中に多重の割り込みプログラムの処理が可能となる。
【００１３】
本発明の請求項４に記載のマイクロコンピュータは、請求項２に記載の前記ＣＰＵ、前記デバッグ判定回路、前記優先許可フラグに加え、デバッグ要求を出力するデバッグ要求制御回路をワンチップに搭載したことを特徴とする。
【００１４】
本発明の請求項５に記載のマイクロコンピュータは、請求項３に記載の前記ＣＰＵ、前記デバッグ判定回路、前記優先許可フラグ、前記レベル設定レジスタに加え、デバッグ要求を出力するデバッグ要求制御回路をワンチップに搭載したことを特徴とする。
【００１５】
本発明の請求項４，５に記載のマイクロコンピュータによると、外付けのシステムを簡略化でき、必要な資源を最小限に抑えることで、小型化ならびに低コスト化を図ることができる。
【発明の効果】
【００１６】
本発明のマイコンデバッグシステムおよびマイクロコンピュータによると、デバッグ要求の発生により例えばＤＣモータを制御する緊急度の高いプログラムが中断され、ＤＣモータが制御不能となりモータのコイルを焼き切るといったシステム異常を回避することができる。
【発明を実施するための最良の形態】
【００１７】
（第１の実施形態）
本発明の第１の実施形態を図１ないし図３を用いて説明する。
【００１８】
図１はマイコンデバッグシステムのブロック図、図２，３はマイコンデバッグシステムにおけるデバッグ動作のタイミングチャートである。なお、本実施形態のマイコンデバッグシステムは、図８に示したマイコンを用いたＤＣモータの制御システムに適用される。
【００１９】
図１を用いてマイコンデバッグシステムの構成について説明する。
【００２０】
マイコンデバッグシステムは、大きく分けてＤＣモータを制御する制御部１０と、ＤＣモータの制御システムにおけるプログラムのデバッグを行うデバッグ部３０とからなる。制御部１０は、図中の全ての電子部品をワンチップのマイコンに収納して基板に搭載した構造、あるいは一部の電子部品をマイコンに収納し残りの電子部品を当該マイコンとともに基板に搭載した構造をしている。またデバッグ部３０は、図中のホスト３３を除く電子部品を基板に搭載した構造をしている。よって制御部１０とデバッグ部３０からなるマイコンデバッグシステムは、ホスト３３を除けば基板にマイコンと電子部品を搭載した構造となる。
【００２１】
制御部１０は、ＣＰＵ１１、デバッグ判定回路１２、優先許可フラグ１３、ＡＮＤ回路１４、メモリ切換回路１５、ユーザ用メモリ１６にて構成されている。
【００２２】
デバッグ部３０は、デバッグ要求制御回路３１、エミュレーションメモリ３２、ホスト３３にて構成されている。
【００２３】
まず制御部１０の各部について詳細に説明する。
【００２４】
ＣＰＵ１１は、ＰＣ（プログラムカウンタ）およびＰＳＷ（プログラムステータスワード）１７と、割り込み発生時にＰＣおよびＰＳＷ１７を退避させるスタック１８とを備えている。また、デバッグ判定回路１２にレベル信号を出力し、デバッグ判定回路１２からＤＩＮＴ信号が入力される。レベル信号はプログラムを処理する際の優先度であるユーザレベルを示す信号であり、ＤＩＮＴ信号はデバッグの実行を指示する信号である。本実施形態のＣＰＵ１１は２つのユーザレベル０，１とデバッグレベルの計３つのレベルを有しており、その優先度は、優先度の高いプログラムを処理する際に使用するユーザレベル０、デバッグレベル、通常のプログラムを処理する際に使用するユーザレベル１の順となる。ユーザレベル１の状態でユーザレベル０の割り込み要求が発生すると、ユーザレベル１のＰＣおよびＰＳＷをスタック１８に退避し、ＣＰＵ１１をユーザレベル０に変更した上でユーザレベル０の割り込みプログラムを処理する。また、優先許可フラグ１３にデバッグレベル信号を出力し、ＡＮＤ回路１４からＵＩＮＴ信号が入力される。デバッグレベル信号はデバッグプログラムが実行されていることを知らせる信号であり、ＵＩＮＴ信号は割り込みプログラムの実行を指示する信号である。さらに、メモリ１６，３２にそれぞれ記憶されたプログラムのうち、何れのプログラムにアクセスするかを指示するため、アクセスするプログラムのアドレスをメモリ切換回路１５に出力する。
【００２５】
デバッグ判定回路１２は、モード選択信号、デバッグ要求制御回路３１からＤＩＲＱ信号、ＣＰＵ１１から上記レベル信号がそれぞれ入力され、ＣＰＵ１１に上記ＤＩＮＴ信号を出力する。モード選択信号はＤＣモータが接続されていない場合はデバッグモード０、ＤＣモータが接続されている場合はデバッグモード１を選択する。ＤＩＲＱ信号はデバッグを要求する信号であって、デバッグモード０の場合はそのままＣＰＵ１１にデバッグを実行させるＤＩＮＴ信号を出力し、デバッグモード１の場合はＣＰＵ１１から受信したレベル信号に基づきユーザレベル１ならデバッグを実行させるＤＩＮＴ信号を出力し、ユーザレベル０ならＤＩＮＴ信号を出力しない。
【００２６】
優先許可フラグ１３は、モード選択信号、ＣＰＵ１１から上記デバッグレベル信号が入力され、ＡＮＤ回路１４に優先許可フラグ信号を出力する。優先許可フラグ信号は、デバッグモード１の場合に、デバッグプログラムの実行中に割り込みプログラムの実行を許可する信号であり、割り込みを許可する設定を行った区間に限り"Ｈ"を出力する。デバッグモード０の場合は、デバッグプログラムの実行中は”Ｌ"を出力する。ここで優先許可フラグ１３の必要性について説明する。デバッグプログラムの実行中に割り込み要求が発生した時、ＣＰＵ１１の内部情報（レジスタの内容、周辺回路の設定状況）をホスト３３で表示するための処理が行われているので、緊急度の高い割込みが発生しても、デバッグプログラムの処理を途中で中断すると、ホスト３３で表示する内容がおかしくなる可能性が高くなる。このため、デバッグプログラムを中断しても問題のない区間を定義するために、優先許可フラグ１３が必要となる。
【００２７】
ＡＮＤ回路１４は、ＵＩＲＱ信号と、優先許可フラグ１３から上記優先許可フラグ信号がそれぞれ入力され、ＣＰＵ１１に上記ＵＩＮＴ信号を出力する。ＵＩＲＱ信号は緊急度の高いプログラムの割り込み処理を要求する信号であり、このＵＩＲＱ信号と優先許可フラグ信号とのアンドを取りＵＩＮＴ信号を出力するか否かが決定される。なお、デバッグプログラムが実行されていない場合は、ＵＩＲＱ信号がそのままＵＩＮＴ信号として出力される。
【００２８】
メモリ切換回路１５は、ＣＰＵ１１から上記アクセスするプログラムのアドレスが入力され、そのアドレスに対応するユーザ用メモリ１６に記憶されたプログラムまたはエミュレーションメモリ３２に記憶されたプログラムのいずれかが実行される。
【００２９】
ユーザ用メモリ１６には、ＤＣモータの制御システムにおける各種プログラムが記憶されており、その中にはＤＣモータの制御用の緊急度の高いプログラムも含まれている。
【００３０】
次にデバッグ部３０の各部について詳細に説明する。
【００３１】
デバッグ要求制御回路３１は、ホスト３３との間でデバッグの要求や進行状況などの各種情報の入出力を行う。また、ホスト３３からの要求やＣＰＵ動作による条件設定によりデバッグ判定回路１２に上記ＤＩＲＱ信号を出力する。
【００３２】
エミュレーションメモリ３２には、デバッグプログラムが記憶されている。また、ユーザ用メモリ１６の内容を全て記憶し、ユーザの使用する全てのプログラムをエミュレーションメモリから実行することも可能である。
【００３３】
ホスト３３はパーソナルコンピュータからなり、デバッグ要求制御回路３１との間で、上記デバッグの要求や進行状況などの各種情報の入出力を行い、ディスプレイ上にデバッグ進行状況などの情報が表示される。
【００３４】
次に図２，３を用いてマイコンデバッグシステムのデバッグ動作について説明する。図２はモード選択によりデバッグモード０が選択された場合であり、図３はモード選択によりデバッグモード１が選択された場合である。
【００３５】
まずデバッグモード０の場合について図２を用いて説明する。デバッグモード０とはマイコンデバッグシステムにＤＣモータが接続されていない状態であって、例えばＤＣモータの制御システムの製造段階であって未だＤＣモータが接続されていない状態でプログラムのデバッグを実施する場合に相当する。なお、デバッグモード０の場合には、デバッグレベルはユーザレベル０，１に優先される。
【００３６】
ユーザレベル１の緊急度の低いプログラムが実行されている状態にてユーザレベル０の緊急度の高いプログラムの割り込み要求が発生し、ＵＩＲＱ信号が"Ｈ"となる。また、デバッグプログラムが実行されていないので、ＵＩＲＱ信号がそのままＵＩＮＴ信号として出力され、ユーザレベル０の緊急度の高い割り込みプログラムが実行される（同図中５０）。
【００３７】
デバッグの要求が発生してデバッグ判定回路１２にＤＩＲＱ信号が入力される。デバッグモード０であるため、ＤＩＲＱ信号に同期してＣＰＵ１１にデバッグを実行させるＤＩＮＴ信号が出力され、最優先のデバッグレベルに移行してデバッグプログラムが実行される（同図中５１）。
【００３８】
デバッグが完了するとユーザレベル０に戻り緊急度の高い割り込みプログラムが実行される（同図中５２）。
【００３９】
割り込みプログラムの実行が完了すると、ユーザレベル１に戻って緊急度の低いプログラムが実行される（同図中５３）。
【００４０】
ユーザレベル１の緊急度の低いプログラムが実行されている状態にてデバッグの要求が発生すると、デバッグ判定回路１２にＤＩＲＱ信号が入力される。デバッグモード０であるため、ＤＩＲＱ信号に同期してＣＰＵ１１にデバッグを実行させるＤＩＮＴ信号が出力され、最優先のデバッグレベルに移行してデバッグプログラムが実行される（同図中５４）。
【００４１】
デバッグの実行中にユーザレベル０の緊急度の高いプログラムの割り込み要求が発生すると、ＵＩＲＱ信号が"Ｈ"となる。デバッグモード０のため、デバッグプログラム実行中は、優先許可フラグ１３からの優先許可フラグは"Ｌ”となる。よってＵＮＩＮＴ信号が出力されず、割り込みプログラムは実行されない（同図中５５）。
【００４２】
デバッグが完了するとユーザレベル１に戻り緊急度の低いプログラムが実行される（同図中５６）。
【００４３】
ＵＩＲＱ信号に同期してＵＩＮＴ信号を出力されているので、ユーザレベル０の緊急度の高い割り込みプログラムが実行される（同図中５７）。
【００４４】
割り込みプログラムの実行が完了すると、ユーザレベル１に戻って緊急度の低いプログラムが実行される（同図中５８）。
【００４５】
次にデバッグモード１の場合について図３を用いて説明する。デバッグモード１とは製造段階であってＤＣモータが接続されている状態でプログラムのデバッグを実施する場合や、トラブル等により製品を回収して検査する場合などに相当する。
【００４６】
ユーザレベル１の緊急度の低いプログラムが実行されている状態にてユーザレベル０の緊急度の高いプログラムの割り込み要求が発生し、ＵＩＲＱ信号が"Ｈ"となる。また、デバッグプログラムが実行されていないので、ＵＩＲＱ信号がそのままＵＩＮＴ信号として出力され、ユーザレベル０の緊急度の高い割り込みプログラムが実行される（同図中６０）。
【００４７】
デバッグの要求が発生してデバッグ判定回路１２にＤＩＲＱ信号の入力される。デバッグモード１であるため、ＣＰＵ１１から受信したレベル信号を参照してユーザレベル０であるためＤＩＮＴ信号を出力せず、デバッグプログラムは実行されない（同図中６１）。
【００４８】
割り込みプログラムの実行が完了すると、ユーザレベル１に戻って緊急度の低いプログラムが実行される（同図中６２）。
【００４９】
デバッグ判定回路１２にＤＩＲＱ信号の入力されているので、ＣＰＵ１１から受信したレベル信号を参照してユーザレベル１であるためデバッグを実行させるＤＩＮＴ信号が出力され、デバッグレベルに移行してデバッグプログラムが実行される（同図中６３）。
【００５０】
デバッグが完了するとユーザレベル１に戻り緊急度の低いプログラムが実行される（同図中６４）。
【００５１】
ユーザレベル１の緊急度の低いプログラムが実行されている状態にてデバッグの要求が発生すると、デバッグ判定回路１２にＤＩＲＱ信号の入力される。デバッグモード１であるため、ＣＰＵ１１から受信したレベル信号を参照してユーザレベル１であるためデバッグを実行させるＤＩＮＴ信号が出力され、デバッグレベルに移行してデバッグプログラムが実行される（同図中６５）。
【００５２】
デバッグの実行中にユーザレベル０の緊急度の高いプログラムの割り込み要求が発生すると、ＵＩＲＱ信号が"Ｈ"となる。また、デバッグモード１で、緊急度の高い割り込みプログラムの実行を優先的に許可する設定がされていないので優先許可フラグ１３からの優先許可フラグ信号は"Ｌ"となる。よって、ＵＩＮＴ信号が出力されず、ユーザレベル０の緊急度の高い割り込みプログラムは実行されない（同図中６６）。
【００５３】
緊急度の高い割り込みプログラムの実行を優先的に許可する設定がなされると、優先許可フラグ１３からの優先許可フラグ信号は"Ｈ"となり、ＵＩＲＱ信号の"Ｈ"に同期してＵＩＮＴ信号が出力され、デバッグプログラムが中断されてユーザレベル０の緊急度の高い割り込みプログラムが実行される（同図中６７）。
【００５４】
割り込みプログラムの実行が完了すると、デバッグレベルに戻ってデバッグプログラムが実行される（同図中６８）。
【００５５】
デバッグの実行中にユーザレベル０の緊急度の高いプログラムの割り込み要求が発生しても、デバッグモード１で緊急度の高い割り込みプログラムの実行を優先的に許可する設定がされていないので優先許可フラグ１３からの優先許可フラグ信号は"Ｌ"となり、割り込みプログラムは実行されない（同図中６９）。
【００５６】
デバッグが完了するとユーザレベル１に戻り緊急度の低いプログラムが実行される（同図中７０）。
【００５７】
ＵＩＲＱ信号が"Ｈ"であり、デバッグプログラムが実行されていないので、ＵＩＲＱ信号がそのままＵＩＮＴ信号として出力され、ユーザレベル０の緊急度の高い割り込みプログラムが実行される（同図中７１）。
【００５８】
このように構成されたマイコンデバッグシステムによると、ＤＣモータを接続していない状態ではデバッグモード０によって緊急度の高いプログラムをデバッグしておき、ＤＣモータを接続した状態ではデバッグモード１によって緊急度の高いプログラムを除くシステム全体のデバッグを行うことができ、緊急度の高いＤＣモータの制御プログラムが中断されるのを防止でき、ＤＣモータが制御不能となりモータのコイルを焼き切るといったシステム異常を回避することができる。
【００５９】
また、デバッグモード１によって緊急度の高いプログラムを除くシステム全体のデバッグを行う際、優先許可フラグ１３によってデバッグプログラムを中断して割り込みプログラムを処理する期間を限定することで、デバッグプログラムを簡易にでき、ホストで表示されるデバッグ情報を誤ることのないデバッグシステムを提供できる。
【００６０】
（第２の実施形態）
本発明の第２の実施形態を図４および図５を用いて説明する。
【００６１】
図４はマイコンデバッグシステムのブロック図、図５はマイコンデバッグシステムにおけるデバッグ動作のタイミングチャートである。なお、第１の実施形態と同一部分は同一符号を付してその説明を省略する。
【００６２】
本実施形態は、第１の実施形態と比べてレベル設定レジスタ１９、２個のＡＮＤ回路２０，２１を備え、優先許可フラグ１３が優先許可レベルフラグ２２に変更されたことを特徴としている。また、ＣＰＵ１１は３つのユーザレベル０，１，２とデバッグレベルの計４つのレベルを有している。
【００６３】
レベル設定レジスタ１９は、３つのユーザレベル０，１，２とデバッグレベルの優先度について設定する。すなわち、デバッグレベルより優先されるユーザレベルを設定するものであって、本実施形態ではユーザレベル０，１がデバッグレベルより優先されることを意味するユーザレベル１が設定される。
【００６４】
ＡＮＤ回路２０は、ＵＩＲＱ０信号と、優先許可レベルフラグ２２から入力される優先許可レベルフラグ信号とのアンドを取りＵＩＮＴ０信号を出力するか否かを決定する。またＡＮＤ回路２１は、ＵＩＲＱ１信号と、優先許可レベルフラグ２２から入力される優先許可レベルフラグ信号とのアンドを取りＵＩＮＴ１信号を出力するか否かを決定する。
【００６５】
優先許可レベルフラグ２２は、モード選択信号、ＣＰＵ１１から上記デバッグレベル信号、上記レベル設定レジスタ１９からデバッグレベルに優先するユーザレベル信号が入力され、ＡＮＤ回路２０、２１に優先許可レベルフラグ信号を出力する。
【００６６】
次に図５を用いてマイコンデバッグシステムのデバッグ動作について説明する。図５はモード選択によりデバッグモード１（ＤＣモータが接続されている状態）が選択された場合である。なお、モード選択によりデバッグモード０が選択された場合については、デバッグが最優先されるものであって第１の実施形態の場合と特に変わりはないので説明を省略する。
【００６７】
ユーザレベル２の緊急度の低いプログラムが実行されている状態にてデバッグの要求が発生すると、デバッグ判定回路１２にＤＩＲＱ信号が入力される。デバッグモード１であるため、ＣＰＵ１１から受信したレベル信号を参照してユーザレベル２であるためデバッグを実行させるＤＩＮＴ信号が出力され、デバッグレベルに移行してデバッグプログラムが実行される（同図中８０）。
【００６８】
デバッグの実行中にユーザレベル１の緊急度の高いプログラムの割り込み要求が発生すると、ＵＩＲＱ１信号が"Ｈ"となる。また、デバッグモード１でかつレベル設定レジスタの値は１であるが、緊急度の高い割り込みプログラムの実行を優先的に許可する設定がされていないので優先許可レベルフラグ２２からの優先許可レベルフラグ信号は"Ｌ"となる。よって、ＵＩＮＴ１信号が出力されず、ユーザレベル１の緊急度の高い割り込みプログラムは実行されない（同図中８１）。
【００６９】
緊急度の高い割り込みプログラムの実行を優先的に許可する設定がなされると、優先許可レベルフラグ２２からの優先許可フラグ信号は"Ｈ"となり、ＵＩＲＱ１信号の"Ｈ"に同期してＵＩＮＴ１信号が出力され、デバッグプログラムが中断されてユーザレベル１の緊急度の高い割り込みプログラムが実行される（同図中８２）。
【００７０】
ユーザレベル１の緊急度の高い割り込みプログラムの実行中により緊急度の高いユーザレベル０のプログラムの割り込み要求が発生すると、ＵＩＲＱ０信号が"Ｈ"となり、また優先許可レベルフラグ２２からの優先許可フラグ信号は"Ｈ"であるので、ＵＩＲＱ０信号に同期してＵＩＮＴ０信号が出力され、ユーザレベル１のプログラムが中断されてユーザレベル０のより緊急度の高い割り込みプログラムが実行される（同図中８３）。
【００７１】
ユーザレベル０の割り込みプログラムが完了するとユーザレベル１に戻り割り込みプログラムが実行される（同図中８４）。
【００７２】
ユーザレベル１の割り込みプログラムの実行が完了すると、デバッグレベルに戻ってデバッグプログラムが実行される（同図中８５）。
【００７３】
デバッグの実行中にユーザレベル１の緊急度の高いプログラムの割り込み要求が発生すると、ＵＩＲＱ１信号が"Ｈ"となる。また、緊急度の高い割り込みプログラムの実行を優先的に許可する設定がされていないので優先許可レベルフラグ２２からの優先許可レベルフラグ信号は"Ｌ"となる。よって、ＵＩＮＴ１信号が出力されず、ユーザレベル１の緊急度の高い割り込みプログラムは実行されない（同図中８６）。
【００７４】
デバッグが完了するとユーザレベル２に戻り緊急度の低いプログラムが実行される（同図中８７）。
【００７５】
ＵＩＲＱ１信号が"Ｈ"であり、デバッグプログラムが実行されていないので、ＵＩＲＱ１信号がそのままＵＩＮＴ１信号として出力され、ユーザレベル１の緊急度の高い割り込みプログラムが実行される（同図中８８）。
【００７６】
デバッグの要求が発生してデバッグ判定回路１２にＤＩＲＱ信号の入力される。デバッグモード１であるため、ＣＰＵ１１から受信したレベル信号を参照してユーザレベル１であるためＤＩＮＴ信号を出力せず、デバッグプログラムは実行されない（同図中８９）。
【００７７】
ユーザレベル１の割り込みプログラムの実行が完了すると、ユーザレベル２に戻って緊急度の低いプログラムが実行される（同図中９０）。
【００７８】
デバッグ判定回路１２にＤＩＲＱ信号が入力されているので、ＣＰＵ１１から受信したレベル信号を参照してユーザレベル２であるためデバッグを実行させるＤＩＮＴ信号が出力され、デバッグレベルに移行してデバッグプログラムが実行される（同図中９１）。
【００７９】
このように構成されたマイコンデバッグシステムによると、ＤＣモータを制御する緊急度の高いプログラムが複数種類ある場合においても、ＤＣモータが制御不能となりモータコイルを焼き切るといったシステム異常を回避できる。
【００８０】
（第３の実施形態）
本発明の第３の実施形態を図６を用いて説明する。
【００８１】
図６はマイクロコンピュータのブロック図である。なお、第１の実施形態と同一部分は同一符号を付してその説明を省略する。
【００８２】
本実施形態は、第１の実施形態の制御部１０と、ホスト３３を除くデバッグ部３０とをワンチップのマイコン４０に収納したものである。このオンチップデバッガのデバッグ動作は第１の実施形態と同様である。
【００８３】
このように構成されたマイクロコンピュータによると第１の実施形態と同様の効果が得られる。さらに、ホスト３３を除く全電子部品をワンチップのマイコン４０に収納したので小型化、低コスト化が図れる。
【００８４】
（第４の実施形態）
本発明の第４の実施形態を図７を用いて説明する。
【００８５】
図７はマイクロコンピュータのブロック図である。なお、第２の実施形態と同一部分は同一符号を付してその説明を省略する。
【００８６】
本実施形態は、第２の実施形態の制御部１０と、ホスト３３を除くデバッグ部３０とをワンチップのマイコン４０に収納したものである。このオンチップデバッガのデバッグ動作は第２の実施形態と同様である。
【００８７】
このように構成されたマイクロコンピュータによると第２の実施形態と同様の効果が得られる。さらに、ホスト３３を除く全電子部品をワンチップのマイコン４０に収納したので小型化、低コスト化が図れる。
【００８８】
なお、本発明のマイコンデバッグシステムにおいて、ＣＰＵ１１にて設定可能なユーザレベルは、最低ユーザレベル０，１とデバッグレベルの計３つのレベルを有していればよく、それ以上いくらの数のレベルを有していてもよい。また、割込み発生時にＰＣ及びＰＳＷ１７を退避させるスタックを、ＣＰＵ１１に備えず、別の記憶手段に退避するシステムにも適用できる。また、本発明のマイコンデバッグシステムはＤＣモータの制御システム以外に適用してもよいことは言うまでもない。
【産業上の利用可能性】
【００８９】
本発明は、マイコンを用いてＤＣモータを制御するシステムに有用である。
【図面の簡単な説明】
【００９０】
【図１】本発明の第１の実施形態に係るマイコンデバッグシステムのブロック図
【図２】本発明の第１の実施形態に係るマイコンデバッグシステムのデバッグ動作のタイミングチャート
【図３】本発明の第１の実施形態に係るマイコンデバッグシステムのデバッグ動作のタイミングチャート
【図４】本発明の第２の実施形態に係るマイコンデバッグシステムのブロック図
【図５】本発明の第２の実施形態に係るマイコンデバッグシステムのデバッグ動作のタイミングチャート
【図６】本発明の第３の実施形態に係るマイクロコンピュータのブロック図
【図７】本発明の第４の実施形態に係るマイクロコンピュータのブロック図
【図８】マイコンを用いたＤＣモータの制御システムのブロック図
【図９】従来例に係るデバッグ動作のタイミングチャート
【符号の説明】
【００９１】
１０  制御部
１１  ＣＰＵ
１２  デバッグ判定回路
１３  優先許可フラグ
１４，２０，２１  ＡＮＤ回路
１５  メモリ切換回路
１６  ユーザ用メモリ
１７  ＰＣ／ＰＳＷ
１８  スタック
１９  レベル設定レジスタ
２２  優先許可レベルフラグ
３０  デバッグ部
３１  デバッグ要求制御回路
３２  エミュレーションメモリ
３３  ホスト
４０  マイコン
４１  メモリ
４２  モード選択回路
【図１】
2008090390.tif 000003
【図２】
2008090390.tif 000004
【図３】
2008090390.tif 000005
【図４】
2008090390.tif 000006
【図５】
2008090390.tif 000007
【図６】
2008090390.tif 000008
【図７】
2008090390.tif 000009
【図８】
2008090390.tif 000010
【図９】
2008090390.tif 000011