(57)【要約】【課題】  プログラムやデータの書き換え毎にＣＰＵを停止させずにデバッグを行うことが可能なマイクロコンピュータ及びデバッグ方法を提供すること。【解決手段】  本発明の一実施形態におけるマイクロコンピュータは、第１のプログラムを記憶する第１のメモリ領域と、第２のプログラムを記憶する第２のメモリ領域と、第１及び第２のプログラムに従って動作するプロセッサと、第１のプログラムのデバッグ処理の間、プロセッサによる第１のメモリ領域へのアクセスを禁止し、第２のメモリ領域へのアクセスするように制御する、デバッグ処理回路とを備えるマイクロコンピュータであるこのような構成により、プログラムやデータの書き換え毎にＣＰＵを停止させずにデバッグを行うことが可能となる。【選択図】図２
2006313421.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラムを記憶する第１のメモリ領域と、
第２のプログラムを記憶する第２のメモリ領域と、
前記第１及び第２のプログラムに従って動作するプロセッサと、
前記第１のプログラムのデバッグ処理の間、前記プロセッサによる前記第１のメモリ領域へのアクセスを禁止し、前記第２のメモリ領域へのアクセスするように制御する、デバッグ処理回路と、
を備える、マイクロコンピュータ。
【請求項２】
前記デバッグ処理回路は、前記第２のメモリ領域に格納されたプログラムのデバッグ処理の間、前記プロセッサによる前記第２のメモリ領域へのアクセスを禁止し、前記第１のメモリ領域へアクセスするように制御することを特徴とする、請求項１記載のマイクロコンピュータ。
【請求項３】
前記第１のメモリ領域と前記第２のメモリ領域は、それぞれ異なるメモリ装置内に存在することを特徴とする請求項１記載のマイクロコンピュータ。
【請求項４】
前記マイクロコンピュータは電気的に書き換えが可能な不揮発性メモリをさらに備え、
前記第１及び第２のメモリ領域はそれぞれＲＡＭ領域であり、
前記第１及び第２のプログラムは、前記不揮発性メモリに格納されているプログラムの一部である、請求項１に記載のマイクロコンピュータ。
【請求項５】
前記デバッグ処理回路は、前記プロセッサのアクセスするメモリ領域を特定する特定信号を出力し、
前記プロセッサは、前記信号によって特定されたメモリ領域にアクセスすることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項６】
前記マイクロコンピュータは電気的に書き換えが可能な不揮発性メモリをさらに備え、
前記第１及び第２のプログラムは、前記不揮発性メモリに格納されているプログラムの一部であり、
前記プロセッサは、前記電気的に書き換えが可能な不揮発性メモリに格納されているプログラムに従って前記特定信号を参照し、その特定信号によってアクセスするメモリ領域を決定する、
請求項５に記載のマイクロコンピュータ。
【請求項７】
不揮発性メモリ及びプロセッサを備えるマイクロコンピュータにおけるデバッグ方法であって、
前記不揮発性メモリに格納されるプログラムの一部を第１のメモリ領域に格納し、
前記不揮発性メモリに格納されたプログラムの一部を第２のメモリ領域に格納し、
前記第１のメモリ領域に格納されたデータについてのデバッグ処理を行う際に前記プロセッサによる前記第１のメモリ領域へのアクセスを禁止し、前記プロセッサを前記第２のメモリ領域に対してアクセスさせる、デバッグ方法。
【請求項８】
前記デバッグ方法は、更に、前記第２のメモリ領域に格納されたデータについてのデバッグ処理を行う際に前記プロセッサによる前記第２のメモリ領域へのアクセスを禁止し、前記プロセッサを前記第１のメモリ領域に対してアクセスさせる、請求項７記載のデバッグ方法。
【請求項９】
前記プロセッサは、前記不揮発性メモリに格納されるプログラムの命令及びアクセス先のメモリ領域を特定する特定信号に従ってアクセスするメモリ領域を決定する、請求項７記載のデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ及びデバッグ方法に関するものであり、より詳細には、メモリの内容を書き換えながら動作確認を行うマイクロコンピュータ及びデバッグ方法に関する。
【背景技術】
【０００２】
フラッシュメモリは、ハードディスクに比べて耐衝撃性が優れているため、外部から衝撃を受けやすい車等に内蔵するマイクロコンピュータの記憶装置として適している。近年は、フラッシュメモリの大容量化も進み、より多くのプログラムやデータを格納できるようになってきた。
【０００３】
フラッシュメモリにプログラムやデータを記録する回路を備えていないマイクロコンピュータの動作確認を行う場合、フラッシュライタ等の専用の記録装置を用いてフラッシュメモリにプログラムやデータの書き込みが行った後、動作確認が行われる。
【０００４】
このようなマイクロコンピュータのデバッグを行う際に、プログラムやデータの修正毎にフラッシュメモリをマイクロコンピュータから取り外し、フラッシュライタを用いてフラッシュメモリの内容を書き換え、再度マイクロコンピュータに載せるのは効率が悪い。また、何度もフラッシュメモリを書き換えることにより、フラッシュメモリの耐久性を損ねてしまうという問題もあった。
【０００５】
そこで、デバッグ時のフラッシュメモリの載せ換えの手間を省くために、デバッグ用に代替ＲＡＭ（以下ＴＲＡＭ）と呼ばれるメモリをマイクロコンピュータに搭載し、書き換えを行うプログラムやデータはＴＲＡＭに書き込み、ＣＰＵは書き換えを行う箇所のプログラムやデータは、デバッグ時にはフラッシュメモリではなくＴＲＡＭから読み込む方法が考えられた（例えば、特許文献１など）。このようにすることにより、デバッグ時にプログラムやデータを書き換えたい時にはフラッシュメモリではなくＴＲＡＭのプログラムやデータを書き換えればよいため、フラッシュメモリを載せ換えることなくデバッグを行うことが可能となる。
【０００６】
しかしながら、このような構成では、ＣＰＵとＴＲＡＭを接続するバスが１本しかなく、また、ＴＲＡＭを書き換えるデバッグ回路からバスの状態を把握することができないため、ＣＰＵとデバッグ回路が同時にＴＲＡＭにアクセスすることを防止する必要があった。
【０００７】
そのため、従来のデバッグ方法では、デバッグ回路はＴＲＡＭの書き換えを行う時には、ＣＰＵに対してブレーク信号を送信し、ＣＰＵの動作を強制的に停止させて、ＣＰＵがＴＲＡＭにアクセスしていないことを保証していた。
【０００８】
しかしながら、このような方法では、プログラムやデータの書き換え毎にＣＰＵを停止させなければならず、作業効率が悪い上に、ＣＰＵを停止させているため実際の動作に即した動作確認を行うことができないという問題点があった。
【特許文献１】特開平１１−１１０２４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
このように、従来のデバッグ方法では、プログラムやデータの書き換え毎にＣＰＵを停止させなければならず、作業効率が悪い上に、実際の動作に即した動作確認を行うことができないという問題点があった。
【課題を解決するための手段】
【００１０】
本発明におけるマイクロコンピュータは、第１のプログラムを記憶する第１のメモリ領域と、第２のプログラムを記憶する第２のメモリ領域と、前記第１及び第２のプログラムに従って動作するプロセッサと、前記第１のプログラムのデバッグ処理の間、前記プロセッサによる前記第１のメモリ領域へのアクセスを禁止し、前記第２のメモリ領域へのアクセスするように制御する、デバッグ処理回路と、を備えるものである。
【００１１】
このような構成により、プログラムの書き換え毎にＣＰＵを停止させずにデバッグを行うことが可能となる。
【００１２】
本発明におけるデバッグ方法は、不揮発性メモリ及びプロセッサを備えるマイクロコンピュータにおけるデバッグ方法であって、前記不揮発性メモリに格納されるプログラムの一部を第１のメモリ領域に格納し、前記不揮発性メモリに格納されたプログラムの一部を第２のメモリ領域に格納し、前記第１のメモリ領域に格納されたデータについてのデバッグ処理を行う際に前記プロセッサによる前記第１のメモリ領域へのアクセスを禁止し、前記プロセッサを前記第２のメモリ領域に対してアクセスさせるものである。このようにすることにより、フラッシュメモリをデバッグの度に書き換えることなく、また、プログラム書き換え毎にプロセッサを停止させずにデバッグを行うことが可能となる。
【発明の効果】
【００１３】
本発明によれば、プログラムの書き換え毎にプロセッサを停止させずにデバッグを行うことが可能なマイクロコンピュータ及びデバッグ方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００１４】
本発明におけるマイクロコンピュータは、自動車に搭載されるマイクロコンピュータのデバッグの用途に利用することができる。図１は、本発明におけるマイクロコンピュータを利用したデバッグの実施形態の一例を示す図である。
【００１５】
図１に示すマイクロコンピュータ１は、接続されたコントロール信号処理回路３に対してコントロール信号を出力することにより、自動車のエンジンの制御を行うマイクロコンピュータである。マイクロコンピュータ１は、製品出荷時は自動車のエンジンに搭載されるマイクロコンピュータであるが、デバッグ時は図１に示すように外部に接続することができる。
【００１６】
マイクロコンピュータ１は、ＩＣＥ（In-Circuit Emulator）２と接続されている。ＩＣＥ２は、マイクロコンピュータ１のデバッグを行うためのエミュレータ回路である。ＩＣＥ２は、マイクロコンピュータ１内のＣＰＵやメモリの状況をマイクロコンピュータ１の備えるデバッグ回路を介して監視することが可能である。また、マイクロコンピュータ１内のメモリの値を変更して動作確認を行うことも可能である。ＩＣＥ２の制御はＩＣＥ２と接続されたＰＣ等から行う。
【００１７】
マイクロコンピュータ１は、コントロール信号処理回路３を介してエンジン４とも接続されている。コントロール信号処理回路３は、マイクロコンピュータ１から入力するコントロール信号に基づいて実際にエンジン４の制御を行う回路である。エンジン４は、自動車を動作させるエンジンであり、コントロール信号処理回路３の制御により動作する。
【００１８】
続いて、本発明におけるマイクロコンピュータの具体的構成について説明する。図２は、本発明におけるマイクロコンピュータの構成を示すブロック図である。本発明におけるマイクロコンピュータ１は、プロセッサの一例であるＣＰＵ１１、電気的に書き換え可能な不揮発性メモリであるフラッシュメモリ１２、それぞれが異なるＲＡＭマクロであるＴＲＡＭ１３及びＴＲＡＭ１４、そしてＮＢＤ（Non-Breaking Debug）１５を備える。また、マイクロコンピュータ１は、ＮＢＤ１５を介してＩＣＥ２と接続されている。
【００１９】
ＣＰＵ１１は、マイクロコンピュータ１の各種制御を行う演算装置である。ここでのＣＰＵは、ＩＣＥ２によりエミュレート可能なＣＰＵが用いられる。ＣＰＵ１１は、フラッシュメモリ１２、ＴＲＡＭ１３、ＴＲＡＭ１４とバス１０を介して接続されており、フラッシュメモリ１２、ＴＲＡＭ１３、ＴＲＡＭ１４からプログラムの読み出しが可能である。ＣＰＵ１１は、フラッシュメモリ１２、ＴＲＡＭ１３、ＴＲＡＭ１４からプログラムを読み出し、読み出したプログラムを実行する。また、ＣＰＵ１１はＮＢＤ１５からアクセス先のＴＲＡＭを特定する切替信号を入力し、入力した切替信号に応じてＴＲＡＭ１３とＴＲＡＭ１４を切り替えてアクセスする。なお、本明細書において、プログラムはＣＰＵ１１その動作において使用する全てのデータを含み、コマンド及び数値データなどを含む。
【００２０】
フラッシュメモリ１２は、マイクロコンピュータ１で動作するプログラムを格納する記憶手段である。フラッシュメモリ１２は、バス１０を介してＣＰＵ１１と接続されており、ＣＰＵ１１により格納されているプログラムが読み出される。
【００２１】
図３はフラッシュメモリ１２のアドレス空間の一例を示す図である。図３の例ではフラッシュメモリのメモリサイズは１ＭＢで、アドレスは００００ｈ〜ｆｆｆｆｈであるが、実際のメモリサイズはこれに限定されない。００００ｈ〜３ｆｆｆｈまでがブート・システムプログラムが格納されている領域、４０００ｈ〜７ｆｆｆｈまでがアプリケーション・プログラムの格納されている領域、残りの８０００ｈ〜ｆｆｆｆｈまでがアプリケーション・データ領域である。
【００２２】
ブート・システム領域は、起動時に最初に読み込まれ実行されるプログラムが格納されている。ここで読み込まれるプログラムは、マイクロコンピュータ１のシステム制御を行うプログラムである。アプリケーション・プログラム領域は、システム上で動作するプログラムが格納されている領域で、コントロール信号処理回路３へ制御信号の出力を行うプログラムである。アプリケーション・データ領域は、アプリケーション・プログラムがプログラム内で使用するデータを格納する領域である。
【００２３】
ＴＲＡＭ１３、ＴＲＡＭ１４は、フラッシュメモリ１２に格納されているプログラムの一部を格納するメモリ装置である。ＴＲＡＭ１３、ＴＲＡＭ１４は、マイクロコンピュータに一般的に使用されているＲＡＭをそのまま利用可能である。ＴＲＡＭ１３、ＴＲＡＭ１４は同一構成の回路としてもよいし、サイズの異なるＲＡＭを用いてもよい。ＴＲＡＭ１３、ＴＲＡＭ１４はそれぞれメモリ領域を備えている。
【００２４】
ＴＲＡＭ１３、ＴＲＡＭ１４は、ＣＰＵ１１とバス１０を介して接続されており、ＣＰＵ１１により格納されているプログラムが読み出される。また、ＴＲＡＭ１３、ＴＲＡＭ１４は、ＮＢＤ１５と接続されており、ＮＢＤ１５により格納しているプログラムを書き換え可能である。ＴＲＡＭ１３、ＴＲＡＭ１４のデータ容量は、フラッシュメモリ１２のデータ容量より小さくてよい。また、ＴＲＡＭ１３とＴＲＡＭ１４のデータ容量は必ずしも同一である必要は無い。
【００２５】
ＮＢＤ１５は、マイクロコンピュータ１のデバッグを行うためのデバッグ回路であり、プログラムを停止させずにデバッグを行えることを特徴とする。ＮＢＤ１５は、ＴＲＡＭ１３及びＴＲＡＭ１４と接続されており、ＴＲＡＭ１３、ＴＲＡＭ１４に格納されているプログラムを書き換えることが可能である。また、ＣＰＵ１１に対して切替信号を送信することが可能である。また、ＮＢＤ１５はＩＣＥ２と接続されており、ＩＣＥ２から入力される命令に応じてＴＲＡＭ１３及びＴＲＡＭ１４の書き換えを行う。
【００２６】
ＩＣＥ２は、マイクロコンピュータ１のデバッグを行うためのエミュレータ回路である。ＩＣＥ２はＮＢＤ１５を介してマイクロコンピュータ１内のＴＲＡＭ１３、ＴＲＡＭ１４の読み書きが可能である。ＩＣＥ２によるマイクロコンピュータ１の制御は別途接続されたＰＣなどからユーザーが操作することにより行われる。
【００２７】
続いて、図４に示すフローチャートを用いて、本発明におけるマイクロコンピュータ１のデバッグ時の処理の流れについて説明する。なお、本明細書におけるデバッグは、プログラムのエラー修正の他、制御用にプログラム内のデータを調整する処理なども含むものである。
【００２８】
初期状態は、フラッシュメモリ１２にアプリケーション・プログラム及びアプリケーション・データが格納されている状態であるとする。フラッシュメモリ１２に格納するプログラムは予めフラッシュライタにより書き込みが行われている。ただし、デバッグされている場合、アプリケーション・プログラムのうち、特定アドレスのアプリケーション・データを読み出すことを指示するコマンドが変更されている。
【００２９】
アプリケーション・プログラムの変更例を図５に示す。書き換えられたアプリケーション・データが格納されているアドレスを８０００ｈとすると、「フラッシュメモリから８０００ｈのデータを読む」というコマンドに該当する箇所の変更が行われる。このコマンドは、「切替信号を確認し、切替信号がＴＲＡＭ１３ならＴＲＡＭ１３内の特定アドレスのデータを読み、それ以外ならＴＲＡＭ１４内の特定アドレスのデータを読む」という命令に書き換えられる。
【００３０】
あるいは、ＩＣＥ２がＮＢＤ１５を介してＣＰＵ１１のフラッシュメモリ１２へのアクセスを監視し、アクセス先が上記のように書き換えられたデータのアドレス（８０００ｈ）に該当した場合に、ＣＰＵ１１のアクセス先を変更するように制御してもよい。
【００３１】
この状態で、ＩＣＥ２は接続されたコンピュータ（図示しない）からＴＲＡＭ１３、ＴＲＡＭ１４に格納されているデータや、コントロール信号処理回路１３に出力するコントロール信号を監視することが可能である。ユーザーは、ＴＲＡＭ１３、ＴＲＡＭ１４に格納されているデータや出力されるコントロール信号に基づいてデバッグを行う。
【００３２】
デバッグ開始時にユーザーは変更したいデータをＩＣＥ２に入力する（Ｓ１）。ＩＣＥ２は、入力された変更データをＮＢＤ１５に出力する。ＮＢＤ１５はＩＣＥ２から入力した変更データをＴＲＡＭ１３の該当するアドレスに書き込む（Ｓ２）。
【００３３】
ＮＢＤ１５は、ＴＲＡＭ１３に変更データの書き込みを完了すると、ＣＰＵ１１に対して切替信号の出力を行う（Ｓ３）。切替信号は、該当するデータを読み出すときにＴＲＡＭ１３とＴＲＡＭ１４のどちらから読み出しを行うかを決定する信号である。切替信号は通常「０」「１」などのビットデータであるが、ここでは説明のため、ＴＲＡＭ１３から読み出しを行う指示をする切替信号を「ＴＲＡＭ１３」、ＴＲＡＭ１４から読み出しを行う指示をする信号を「ＴＲＡＭ１４」とする。
【００３４】
ＮＢＤ１５は、ＣＰＵ１１に対して「ＴＲＡＭ１３」の信号を出力する。その後、ＣＰＵ１１は、フラッシュメモリ１２に格納されたプログラムの実行を開始する（Ｓ４）。ＣＰＵ１１は、必要に応じてフラッシュメモリ１２からデータの読み出しも行う。ただし、先ほどＴＲＡＭ１３に書き込んだデータに該当するアドレスのデータを読み出すときは、ＮＢＤ１５から入力した切替信号を参照し、切替信号の内容に基づいてデータの読み出しを行う。ここでは「ＴＲＡＭ１３」の信号を入力しているため、該当するアドレスのデータは「ＴＲＡＭ１３」から読み出しを行う。
【００３５】
ユーザーは、プログラムの動作状況を確認し、再度データの修正が必要と判断した場合（Ｓ５）、修正データをＩＣＥ２に入力する（Ｓ６）。ＩＣＥ２は、入力された変更データをＮＢＤ１５に出力する。先ほど書き込みを行った対象がＴＲＡＭ１３であるかＴＲＡＭ１４であるかを判定し（Ｓ７）、ＴＲＡＭ１３であった場合はＴＲＡＭ１４に（Ｓ８）、ＴＲＡＭ１４であった場合はＴＲＡＭ１３に変更データの書き込みを行う（Ｓ９）。ここの例では、先ほど書き込みを行ったのはＴＲＡＭ１３であったので、ＮＢＤ１５はＩＣＥ２から入力した変更データをＴＲＡＭ１４の該当するアドレスに書き込む。
【００３６】
ＮＢＤ１５は、ＴＲＡＭ１４に変更データの書き込みを完了すると、ＣＰＵ１１に対して切替信号の出力を行う（Ｓ１０）。ここで出力する切替信号は、「ＴＲＡＭ１４」である。もし、ＴＲＡＭ１４に変更データの書き込みを行った場合は、「ＴＲＡＭ１３」の切替信号を出力する（Ｓ１１）。切替信号の出力を行うまでは、ＣＰＵ１１はＴＲＡＭ１３にアクセスするので、ＣＰＵ１１とＮＢＤ１５が同時にＴＲＡＭ１３またはＴＲＡＭ１４にアクセスするという問題は発生しない。更に、ＣＰＵ１１をブレークする必要も無い。
【００３７】
ＮＢＤ１５が「ＴＲＡＭ１４」の切替信号を出力した後は、ＣＰＵ１１は該当するアドレスのデータの読み込みを行う場合、入力した切替信号に基づいてＴＲＡＭ１４からデータの読み込みを行う。
【００３８】
ユーザーは、プログラムの動作状況を確認し、再度データの修正が必要と判断した場合、修正データをＩＣＥ２に入力する。ＩＣＥ２は、入力された変更データをＮＢＤ１５に出力する。先ほど書き込みを行った対象がＴＲＡＭ１３であるかＴＲＡＭ１４であるかを判定し、ＴＲＡＭ１３であった場合はＴＲＡＭ１４に、ＴＲＡＭ１４であった場合はＴＲＡＭ１３に変更データの書き込みを行う。ここの例では、先ほど書き込みを行ったのはＴＲＡＭ１４であったので、ＮＢＤ１５はＩＣＥ２から入力した変更データをＴＲＡＭ１３の該当するアドレスに書き込む。
【００３９】
このように、データ変更の度に変更データの書き込みを行うメモリをＴＲＡＭ１３とＴＲＡＭ１４を切り替えて使用することにより、ＣＰＵ１１とＮＢＤ１５が同時に同一のＴＲＡＭにアクセスすることなく、またＣＰＵ１１を停止させることなくデバッグを行うことが可能となる。
【００４０】
その他の発明の実施の形態．
上述の例では、ＴＲＡＭ１３、ＴＲＡＭ１４は異なるメモリ装置であったが、同一のメモリ内の異なるメモリ領域間切替を行うようにしてもよい。ただし、ＮＢＤ１５からのアクセス経路が異なっている必要がある。デバッグ処理のために使用するＴＲＡＭは、３以上用意することも可能である。また、上述の例では、マイクロコンピュータ１をエンジン４の制御に利用していたが、エンジン以外の制御に利用するマイクロコンピュータのデバッグに本発明におけるマイクロコンピュータを利用してもよい。
【図面の簡単な説明】
【００４１】
【図１】本発明におけるマイクロコンピュータの利用形態の一例を示す図である。
【図２】本発明におけるマイクロコンピュータの構成を示すブロック図である。
【図３】本発明におけるマイクロコンピュータの備えるフラッシュメモリのアドレスマップを示す図である。
【図４】本発明におけるマイクロコンピュータの処理の流れを示すフローチャートである。
【図５】本発明におけるマイクロコンピュータのアプリケーション・プログラムの変更例を示す図である。
【符号の説明】
【００４２】
１  マイクロコンピュータ
２  ＩＣＥ
３  コントロール信号処理回路
４  エンジン
１０  バス
１１  ＣＰＵ
１２  フラッシュメモリ
１３  ＴＲＡＭ
１４  ＴＲＡＭ
１５  ＮＢＤ
【図１】
2006313421.tif 000003
【図２】
2006313421.tif 000004
【図３】
2006313421.tif 000005
【図４】
2006313421.tif 000006
【図５】
2006313421.tif 000007