(57)【要約】      （修正有）【課題】マイクロコンピュータの評価を簡易に行う。【解決手段】マイクロコンピュータ１００が、評価を行うための所定コマンドに対応する第２プログラムをメモリに書き込み、情報処理装置２０が、所定コマンド並びに当該所定コマンドの対象とするＲＯＭの第１アドレスをマイクロコンピュータ１００に送信し、マイクロコンピュータ１００が、ＲＯＭ内の第１プログラムの実行順序を制御する第２アドレスを順次生成し、情報処理装置２０から受信した所定コマンドに対応づけられる第２プログラムを識別し、順次生成される第２アドレスが、情報処理装置２０から受信した第１アドレスと一致したとき、第１プログラムの実行を中断させ、識別された第２プログラムを実行すべく割り込みを行うこと、とする。【選択図】  図１
2006155098.tif 000002
【特許請求の範囲】
【請求項１】
第１プログラムが書き込まれるＲＯＭを有するとともに基板上に実装された状態にあるマイクロコンピュータに対し、通信可能に接続された情報処理装置によって前記マイクロコンピュータの動作の評価を行うためのマイクロコンピュータの評価方法において、
前記マイクロコンピュータが、前記評価を行うための所定コマンドに対応づけられた第２プログラムをメモリに書き込み、
前記情報処理装置が、前記所定コマンド並びに当該所定コマンドの対象とする前記ＲＯＭの第１アドレスを前記マイクロコンピュータに送信し、
前記マイクロコンピュータが、
前記ＲＯＭにおける前記第１プログラム内での実行順序を制御するための第２アドレスを順次生成し、
前記情報処理装置から受信した前記所定コマンドに対応づけられる前記第２プログラムを識別し、
前記順次生成される前記第２アドレスが、前記情報処理装置から前記所定コマンドと併せて受信した前記第１アドレスと一致したとき、前記第１プログラムの実行を中断させるとともに前記識別された第２プログラムを実行すべく割り込みを行うこと、
を特徴とするマイクロコンピュータの評価方法。
【請求項２】
前記情報処理装置から受信した前記所定コマンドは、前記情報処理装置から受信した前記第１アドレスに応じたブレークポイントにて前記第１プログラムの実行をブレークさせるためのブレークコマンドとし、
前記マイクロコンピュータが、
前記割り込みが生じた場合に前記ブレークコマンドに応じた前記第２プログラムを実行するとき、前記割り込みが生じたときから前記情報処理装置から新たなコマンドを受信するまでの間、前記新たなコマンド受信したか否かを識別するとともに前記割り込みが生じたときの前記第２アドレスを保持すること、
を特徴とする請求項１に記載のマイクロコンピュータの評価方法。
【請求項３】
前記情報処理装置から受信した前記所定コマンドは、前記情報処理装置から受信した前記第１アドレスに応じた前記第１プログラムのブレークポイントにおいて、前記メモリ、前記ＲＯＭ、又はその他のメモリの少なくともいずれかの状態を前記情報処理装置へと通知させるメモリ表示コマンドとし、
前記マイクロコンピュータが、
前記割り込みが生じた場合にメモリ表示コマンドに応じた前記第２プログラムを実行するとき、前記メモリ、前記ＲＯＭ、又はその他のメモリの少なくともいずれかから読み出したデータを、前記情報処理装置へと送信すること、
を特徴とする請求項１に記載のマイクロコンピュータの評価方法。
【請求項４】
前記情報処理装置から受信した前記所定コマンドは、前記情報処理装置から受信した前記第１アドレスに応じた前記第１プログラムのブレークポイントにおいて、前記メモリ又はその他のメモリに対して所定のデータを書き込むメモリ書き込みコマンドとし、
前記マイクロコンピュータが、
前記割り込みが生じた場合に前記メモリ表示コマンドに応じた前記第２プログラムを実行するとき、前記メモリ又はその他のメモリに対して前記所定のデータを書き込むこと、
を特徴とする請求項１に記載のマイクロコンピュータの評価方法。
【請求項５】
前記マイクロコンピュータが、
前記メモリには、前記第１アドレスで指定される前記ＲＯＭのデータをその他のメモリのデータへと置き換えるＲＯＭ訂正機能用の第３プログラムを書き込み、
前記情報処理装置から受信したコマンドに対応づけられるプログラムが、前記第２プログラム又は前記第３プログラムのいずれであるかを識別すること、
を特徴とする請求項１に記載のマイクロコンピュータの評価方法。
【請求項６】
前記情報処理装置と前記マイクロコンピュータとの間に通信プロトコル変換装置を介在させ、
前記通信プロトコル変換装置が、
前記情報処理装置から前記マイクロコンピュータへの通信が行われる場合、前記前記情報処理装置の第１通信プロトコルに対応したデータを前記マイクロコンピュータの第２通信プロトコルに対応したデータへと変換し、
前記マイクロコンピュータから前記情報処理装置への通信が行われる場合、前記マイクロコンピュータの前記第２通信プロトコルに対応したデータを前記情報処理装置の前記第１通信プロトコルに対応したデータへと変換すること、
を特徴とする請求項１に記載のマイクロコンピュータの評価方法。
【請求項７】
第１プログラムが書き込まれるＲＯＭを有するとともに基板上に実装された状態にあるマイクロコンピュータに対し、通信可能に接続された情報処理装置によって前記マイクロコンピュータの動作の評価を行うマイクロコンピュータの評価システムにおいて、
前記情報処理装置は、
前記評価を行うための所定コマンド並びに当該所定コマンドの対象とする前記ＲＯＭの第１アドレスを前記マイクロコンピュータに送信し、
前記マイクロコンピュータは、
前記所定コマンドに対応づけられた第２プログラムが書き込まれる記憶部と、
前記ＲＯＭにおける前記第１プログラム内での実行順序を制御するための第２アドレスを順次生成するアドレス生成部と、
前記情報処理装置から受信した前記所定コマンドに対応づけられる前記第２プログラムを識別するデコーダ部と、
前記アドレス生成部において順次生成される前記第２アドレスが、前記情報処理装置から前記所定コマンドと併せて受信した前記第１アドレスと一致したとき、前記第１プログラムの実行を中断させるとともに前記識別された第２プログラムを実行すべく割り込みを行う制御部と、
を有することを特徴とするマイクロコンピュータの評価システム。
【請求項８】
第１プログラムが書き込まれるＲＯＭを有するとともに基板上に実装された状態にあるマイクロコンピュータにおいて、
通信可能に接続された情報処理装置から動作の評価を行うための所定コマンド並びに当該所定コマンドの対象とする前記ＲＯＭの第１アドレスを受信する受信部と、
前記所定コマンドに対応づけられた第２プログラムが書き込まれる記憶部と、
前記ＲＯＭにおける前記第１プログラム内での実行順序を制御するための第２アドレスを順次生成するアドレス生成部と、
前記情報処理装置から受信した前記所定コマンドに対応づけられる前記第２プログラムを識別するデコーダ部と、
前記アドレス生成部において順次生成される前記第２アドレスが、前記情報処理装置から前記所定コマンドと併せて受信した前記第１アドレスと一致したとき、前記第１プログラムの実行を中断させるとともに前記識別された第２プログラムを実行すべく割り込みを行う制御部と、
を有することを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータの評価方法、マイクロコンピュータの評価システム、マイクロコンピュータ、に関する。
【背景技術】
【０００２】
ＲＯＭを内蔵するマイクロコンピュータを搭載したシステムを設計／開発する段階において、ＲＯＭに記憶させるプログラムが、設計／開発者による人為的なミスや、ＲＯＭへの書き込み時の誤動作などで欠陥（以下、バグと称す。）を有する可能性がある。しかし、マイクロコンピュータに内蔵するＲＯＭとしては書き換え不可能なマスクＲＯＭが主に採用されており、このマスクＲＯＭに一旦書き込まれたデータにバグがあったとしても、マスクＲＯＭのデータを書き換えることが不可能である。そのため、マイクロコンピュータを量産化する前には、まずは、書き換え可能なＥＥＰＲＯＭ（ＦlashＲＯＭ等）へデータを書き込んでデバッグした後に、マイクロコンピュータに内蔵されるマスクＲＯＭへと書き込んでいた。
【０００３】
従来、このようなデバッグを実施すべく、ＩＣＥ（In-Circuit Emulator）と呼ばれる設計／開発支援ツールが用いられている。特に、ＩＣＥとしては、ＣＰＵ置き換え型ＩＣＥが主に用いられている。ＣＰＵ置き換え型ＩＣＥは、ＥＶＡ（Evaluation）チップを搭載したプリント配線版（以下、評価用ボードと称す。）と、設計／開発対象とするシステムを構成するプリント配線板（以下、ターゲットボードと称す。）のソケットに接続可能なプローブと、パーソナルコンピュータと接続可能なコネクタと、を有する。ここで、ターゲットボードのソケットから実装すべきマイクロコンピュータを取り外し、ＣＰＵ置き換え型ＩＣＥのプローブをこのソケットへ接続させる。そして、パーソナルコンピュータからのデバッグ用コマンドをもとに、評価用ボードのＥＶＡチップがマイクロコンピュータの機能をエミュレーションすることとなる。
【０００４】
しかし、ＥＶＡチップとマイクロコンピュータの電気的特性の相違や、ターゲットボードとＩＣＥ間ならびにＩＣＥとＰＣ間のケーブルの引き回しによる配線遅延等の要因によって、ＥＶＡチップは厳格なタイミング制約下ではマイクロコンピュータと同等な動作をするとは限らない点や、ＩＣＥ自体が高価な点、ターゲットボードやＰＣとの接続が煩雑である点などが指摘されている。そこで、マイクロコンピュータにデバッグ機能そのものを内蔵させる、所謂オンチップ・デバッグが注目されている（例えば、以下に示す特許文献１を参照。）。すなわち、オンチップ・デバッグでは、ターゲットボードにマイクロコンピュータが実装された状態でパーソナルコンピュータからのデバッグが可能となるのである。
【特許文献１】特開２００４−３８４６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、オンチップ・デバッグでは、デバッグ専用ハードウェアであるＩＣＥが有していたデバッグ機能を、マイクロコンピュータの一つの機能として内蔵させることとなるため、マイクロコンピュータの回路規模が増大化し、複雑な仕組みとなることが免れない。すなわち、オンチップ・デバッグを実現する場合において、マイクロコンピュータ内にデバッグ機能を如何に効率よく実装させるかが課題であった。
【課題を解決するための手段】
【０００６】
前述した課題を解決する主たる本発明は、第１プログラムが書き込まれるＲＯＭを有するとともに基板上に実装された状態にあるマイクロコンピュータに対し、通信可能に接続された情報処理装置によって前記マイクロコンピュータの動作の評価を行うためのマイクロコンピュータの評価方法において、前記マイクロコンピュータが、前記評価を行うための所定コマンドに対応づけられた第２プログラムをメモリに書き込み、前記情報処理装置が、前記所定コマンド並びに当該所定コマンドの対象とする前記ＲＯＭの第１アドレスを前記マイクロコンピュータに送信し、前記マイクロコンピュータが、前記ＲＯＭにおける前記第１プログラム内での実行順序を制御するための第２アドレスを順次生成し、前記情報処理装置から受信した前記所定コマンドに対応づけられる前記第２プログラムを識別し、前記順次生成される前記第２アドレスが、前記情報処理装置から前記所定コマンドと併せて受信した前記第１アドレスと一致したとき、前記第１プログラムの実行を中断させるとともに前記識別された第２プログラムを実行すべく割り込みを行うこと、とする。
【発明の効果】
【０００７】
本発明によれば、マイクロコンピュータの評価を簡易に行うことが可能な、マイクロコンピュータの評価方法、マイクロコンピュータの評価システム、マイクロコンピュータを提供することができる。
【発明を実施するための最良の形態】
【０００８】
＝＝＝システム構成＝＝＝
図１は、本発明の一実施形態に係るマイクロコンピュータの評価システムの構成を示すものである。同図に示すように、マイクロコンピュータの評価システムは、ターゲットボード１０、情報処理装置２０、通信プロトコル変換ボード３０、によって構成される。
【０００９】
ターゲットボード１０は、設計／開発のターゲットとするシステムのプリント配線版である。ここで、ターゲットボード１０には、当該システムの全体の制御を司るマイクロコンピュータ１００が所定のソケットに実装された場合とする。すなわち、マイクロコンピュータ１００に内蔵されたＲＯＭ（マスクＲＯＭ、ＥＥＰＲＯＭ等）には、設計／開発段階のアプリケーション用プログラムが予め記憶されており、システム検証によるデバッグのために、ターゲットボード１０に実装された状態にある。なお、マイクロコンピュータ１００は、デバッグ用の通信プロトコル（以下、『第２通信プロトコル』と称する。）として、例えば、ＪＴＡＧやＵＡＲＴ等を採用することとする。
【００１０】
情報処理装置２０は、パーソナルコンピュータやワークステーション等である。情報処理装置２０からのデバッグ用コマンドによって、ターゲットボード１０に実装された状態にあるマイクロコンピュータ１００の動作の評価、所謂オンチップ・デバッグが行われることとなる。なお、デバッグ用コマンドとしては、後述する、『ブレークコマンド』、『メモリ表示コマンド』、『メモリ書き込みコマンド』等がある。
【００１１】
すなわち、ＣＰＵ置き換え型のＩＣＥを用いたデバッグの場合と異なり、情報処理装置２０から直接的にターゲットボード１０に実装されたマイクロコンピュータ１００のデバッグが可能となる。なお、情報処理装置２０は、デバッグ用の通信プロトコル（以下、『第１通信プロトコル』と称する。）として、シリアル通信方式（ＵＳＢ、ＩＥＥＥ１３９４、ＲＳ−２３２Ｃ、ＩｒＤＡ等）や、パラレル通信方式（ＳＣＳＩ、ＩＥＥＥ１２８４等）を採用することとする。
【００１２】
通信プロトコル変換ボード３０は、マイクロコンピュータ１００と情報処理装置２０との間の通信を制御するプリント配線板である。すなわち、通信プロトコル変換ボード３０は、情報処理装置２０からマイクロコンピュータ１００への通信が行われる場合において、情報処理装置２０の第１通信プロトコルに対応したデータをマイクロコンピュータ１００の第２通信プロトコルに対応したデータへと変換する。また、通信プロトコル変換ボード３０は、マイクロコンピュータ１００から情報処理装置２０への通信が行われる場合において、マイクロコンピュータ１００の第２通信プロトコルに対応したデータを情報処理装置２０の第１通信プロトコルに対応したデータへと変換する。
【００１３】
ところで、通信プロトコル変換ボード３０と情報処理装置２０との間は、第１通信プロトコルに準拠した第１通信ケーブル４０を介して接続される。また、通信プロトコル変換ボード３０とマイクロコンピュータ１００との間は、第２通信プロトコルに準拠した第２通信ケーブル５０を介して接続される。なお、本実施形態において、第２通信ケーブル５０はシリアルケーブルであり、マイクロコンピュータ１００のデバッグ用Ｉ／Ｏポートに対応する１ピンに接続される形態をとる。この結果として、デバッグ用のピンを設けることに伴うトータルピン数の増加を防止できる。勿論、ターゲットボード１０に第２通信ケーブル５０を接続するためのコネクタを設けておき、当該コネクタに第２通信ケーブル５０を接続する形態としてもよい。
【００１４】
マイクロコンピュータ１００が情報処理装置２０の第１通信プロトコルに対応している場合には、通信プロトコル変換ボード３０を介在させることなく、情報処理装置２０とマイクロコンピュータ１００との間で直接的に通信を行うこともできる。この場合、マイクロコンピュータ１００と情報処理装置２０との間の通信ケーブルが一本で済むので接続が容易となり、また、通信ケーブルによるＲＣ遅延の影響も少なく、厳格なタイミング制約下でのデバッグが可能となる。
【００１５】
＝＝＝ＲＯＭ訂正機能＝＝＝
図２は、書き換え不可能なＲＯＭ内蔵のマイクロコンピュータ１００において一般的に備えられるＲＯＭ訂正機能の概要を説明する図である。
【００１６】
ＲＯＭ訂正機能では、まず、ＲＯＭ１１０のアプリケーション用プログラムの実行順序を制御するプログラムカウンタ１１１の値（以下、ＰＣアドレスと称する。）が、ＲＯＭ訂正アドレスレジスタ１０７に設定されたＲＯＭ訂正アドレスと一致しており、且つ、ＲＯＭ訂正許可レジスタ１０９にＲＯＭ訂正許可を示すフラグ値（例えば“１”）が設定されている場合、割り込みハンドラとしてＲＯＭ訂正用のプログラムを実行させるべく、割り込み制御回路１１５において割り込み要求を生じさせる。この結果、ＲＯＭ１１０のアプリケーション用プログラムの実行が一時中断して、ＲＡＭ１１４に予め書き込んでおいた修正プログラムが実行される。そして、修正プログラムの実行が終了した後、一時中断されたアプリケーション用プログラムの実行が再開される。
【００１７】
例えば、同図に示すように、ＲＯＭ１１０の“１０００ｈ”番地においてバグが確認され、この番地のデータ修正が行われる場合とする。この場合、まず、ＲＯＭ訂正アドレスレジスタ１０７に“１０００ｈ”が設定されるとともにＲＯＭ訂正許可レジスタ１０９にフラグ値“１”が設定される。さらに、ＲＡＭ１１４にはバグを取り除くための修正内容（プログラム若しくはデータ）が書き込まれる。なお、ＲＡＭ１１４に付与されたアドレスは、ＲＯＭ訂正のための割り込み要求発生時において、ＲＯＭ１１０の所定番地と見なされるべく予め設定されてある。
【００１８】
そして、マイクロコンピュータ１００は、ＲＯＭ１１０のアプリケーション用プログラムをＰＣアドレスに基づいて順次実行する。ＰＣアドレスが“１０００ｈ”番地を示すとき、ＲＡＭ１１４に付与された所定番地がＰＣアドレスとして自動的に設定され、ＲＡＭ１１４に書き込まれた修正プログラムが実行される。さらに、修正プログラムの実行後、“１０００ｈ”番地のアプリケーション用プログラムの実行がなされず、つぎの“１００１ｈ”番地以降のアプリケーション用プログラムが実行されることとなる。
【００１９】
＝＝＝マイクロコンピュータの構成＝＝＝
図３を参照しつつ、本発明の実施形態に係るマイクロコンピュータ１００について説明する。なお、図２に符号を示した要素と同一の機能を有する要素については同一の符号を付与する。
【００２０】
マイクロコンピュータ１００の複数の内部要素が、内部バス１０１を介して接続されている。なお、内部バス１０１は、アドレスバスやデータバスのことである。
【００２１】
Ｉ／Ｏポート群１０２は、マイクロコンピュータ１００の入出力インタフェースである複数のＩ／Ｏポートを有する。なお、Ｉ／Ｏポート群１０２の中には、マイクロコンピュータ１００と通信プロトコル変換ボード３０との間の入出力インタフェースであるデバッグ用Ｉ／Ｏポート（『受信部』）が設定される。
【００２２】
命令デコーダ１０３（『デコード部』）は、命令レジスタ１０４を有する。命令レジスタ１０４は、ＲＯＭ１１０から読み出されたプログラムを格納するレジスタである。さらに、命令レジスタ１０４は、情報処理装置２０から通信プロトコル変換ボード３０を介して転送されてきたデバッグ用コマンドを格納するものである。
【００２３】
命令デコーダ１０３は、命令レジスタ１０４に格納されたＲＯＭ１１０のプログラム又はデバッグ用コマンドを解読する。なお、デバッグ用コマンドを解読した結果、ＲＡＭ１１４の記憶領域１１４ｂに書き込まれたデバッグ用プログラム（『第２プログラム』）のうち、解読されたデバッグ用コマンドに対応づけられるプログラムを識別する。
【００２４】
レジスタ群１０５は、汎用レジスタ１０６の他、マイクロコンピュータ１００の内部状態を示すステータス・レジスタ、アドレス計算を行うためのアドレスレジスタ、ＡＬＵ１１３の演算結果を格納するアキュムレータ、を有する。さらに、レジスタ群１０５は、ＲＯＭ訂正機能用として、ＲＯＭ訂正アドレスレジスタ１０７、ＲＯＭ訂正許可レジスタ１０９を有する。
【００２５】
ＲＯＭ訂正アドレスレジスタ１０７は、ＲＯＭ１１０内でＲＯＭ訂正対象とするアプリケーション用プログラムのアドレス（以下、ＲＯＭ訂正アドレスと称する。）が格納されるレジスタである。さらに、本発明では、ＲＯＭ訂正アドレスレジスタ１０７には、デバッグ対象とするアプリケーション用プログラムの指定アドレス（以下、デバッグアドレスと称する。）が格納されることとする。すなわち、ＲＯＭ訂正アドレスレジスタ１０７は、情報処理装置２０から通信プロトコル変換ボード３０を介して転送されてきたデバッグ用コマンドに付帯するデバッグアドレスを格納することとなる。
【００２６】
ＲＯＭ訂正許可レジスタ１０９は、ＲＯＭ訂正機能の有効／無効を設定するためのフラグ値を格納するレジスタである。例えば、フラグ値は、ＲＯＭ訂正機能を有効とする場合に“１”とし、無効とする場合に“０”とする。
【００２７】
ＲＯＭ１１０は、書き換え不可能なマスクＲＯＭ等であり、マイクロコンピュータ１００が演算処理を適宜実行するためのアプリケーション用プログラムが予め書き込まれている。なお、ＲＯＭ１１０は、アプリケーション用プログラムが書き込まれる記憶領域１１０ａの他に、デバッグ用プログラムが書き込まれる記憶領域１１０ｂが区画される。記憶領域１１０ｂに書き込まれるデバッグ用プログラムは、本発明に係るＲＯＭ訂正機能を利用したデバッグの際に、後述するＲＡＭ１１４の記憶領域１１４ｂに書き込まれたデバッグ用プログラム（メインルーチン）の実行時にコールされるサブルーチンとする。
【００２８】
プログラムカウンタ１１１（『アドレス生成部』）は、ＲＯＭ１１０のアプリケーション用プログラム（『第１プログラム』）の実行順序を制御すべく、記憶領域１１０ａのアドレス（『第２アドレス』）、すなわちＰＣアドレスを順次生成するものである。
【００２９】
具体的に、ＰＣアドレスとしては、まず、マイクロコンピュータ１００が電源投入されたとき、マイクロコンピュータ１００を初期化するためのプログラムが記憶されているＲＯＭ１１０のアドレスがプリセットされる。その後、ＰＣアドレスは、システムクロックのタイミングで＋１インクリメントされるか、ＲＯＭ１１０から読み出されるプログラムの解読結果または割り込み要求に従って所定アドレスに分岐（ジャンプ）される。
【００３０】
ＡＬＵ１１３は、２入力１出力からなり、命令デコーダ１０３の解読結果に基づいて２入力データを演算処理した結果を内部バス１０１へと転送するものである。なお、ＡＬＵ１１３は、必要に応じて、出力データを一方の入力に供給して再度演算処理を実行する。
【００３１】
ＲＡＭ１１４（『記憶部』）は、ＳＲＡＭやＤＲＡＭ等であり、ＲＯＭ訂正機能における修正プログラムが書き込まれる記憶領域１１４ａと、デバッグ用コマンドに対応づけられたデバッグ用プログラム（『第２プログラム』）が書き込まれる記憶領域１１４ｂと、に区画される。なお、記憶領域１１４ａには割り込みベクタＸが設定されており、記憶領域１１４ｂには割り込みベクタＹが設定されることとする。
【００３２】
割り込み制御回路１１５は、予め設定しておいた割り込み要因が発生したとき、現プログラムルーチンとは異なるプログラムルーチン、所謂割り込みハンドルを実行すべく割り込み制御を行うものである。なお、割り込み制御回路１１５は、割り込み要因毎の割り込みハンドルが書き込まれてあるメモリのアドレス、所謂割り込みベクタ群１１６が設定される。そこで、割り込みベクタ群１１６の中に、割り込みベクタＸ及びＹが設定されることとする。
【００３３】
スタックポインタ１１７は、所定の割り込み処理に応じて現プログラムルーチンとは異なるプログラムルーチンへ移行するとき、現プログラムルーチンの復帰先となるＲＯＭ１１０のアドレス、すなわちＰＣアドレスを保持するものである。
【００３４】
ＲＯＭ訂正制御回路１１８は、割り込み要求生成部１１９を有しており、図２をもとに説明したＲＯＭ訂正時の割り込み要求を生成する。具体的には、ＲＯＭ訂正制御回路１１８は、プログラムカウンタ１１１において順次生成されるＰＣアドレスが、情報処理装置２０からデバッグコマンドと併せて受信したデバッグアドレスと一致したとき、アプリケーション用プログラムの実行を中断させるとともに識別されたデバッグ用プログラムを実行すべく割り込みを行うこととなる。
【００３５】
＝＝＝  デバッグ用コマンド／プログラム  ＝＝＝
＜デバッグ用コマンド＞
本発明の一実施形態に係るＲＯＭ訂正機能を利用したデバッグ用コマンドとして、ブレークコマンド、メモリ表示コマンド、メモリ書き込みコマンドを提案する。なお、各コマンドを実行する主体は、マイクロコンピュータ１００である。
【００３６】
ブレークコマンドは、情報処理装置２０から受信したデバッグアドレスに応じたブレークポイントにおいて、ＲＯＭ１１０のアプリケーション用プログラムの実行をブレークさせるためのコマンドとする。ブレークコマンドは、例えば、アプリケーション用プログラム内におけるバグを発見すべく、ＲＯＭ１１０のアプリケーション用プログラムを任意の行でブレークさせる目的で利用される。
【００３７】
メモリ表示コマンドは、情報処理装置２０から受信したデバッグアドレスに応じたアプリケーション用プログラム内でのブレークポイントにおいて、ＲＡＭ１１４、ＲＯＭ１１０、又はその他のメモリ（Ｉ／Ｏポート群１０２のバッファや、レジスタ群１０５の各レジスタ等）の少なくともいずれかの状態を情報処理装置２０へと通知させるためのコマンドとする。なお、メモリ表示コマンドの場合、デバッグアドレスと併せて、状態表示させるメモリの種別や、当該メモリにおける状態の読み出し先アドレス等がマイクロコンピュータ１００へと送信される。メモリ表示コマンドは、例えば、設計／開発者によるバグの検証が容易なものとすべく、マイクロコンピュータ１００より通知された各種メモリの状態を情報処理装置２０の表示装置へと表示させる目的で利用される。
【００３８】
メモリ書き込みコマンドは、情報処理装置２０から受信したデバッグアドレスに応じたアプリケーション用プログラム内でのブレークポイントにおいて、ＲＡＭ１１４又はその他のメモリ（レジスタ群１０５の各レジスタ等）に対して所定データを書き込むためのコマンドとする。なお、メモリ書き込みコマンドの場合、デバッグアドレスと併せて、所定データの書き込み先となるメモリの種別や、当該書き込み先アドレス並びに書き込みを行う所定データ等がマイクロコンピュータ１００へと送信される。メモリ書き込みコマンドは、例えば、設計／開発者によるバグの検証を容易なものとすべく、所定のメモリへ検証用データを書き込む目的で利用される。
【００３９】
＜デバッグ用プログラム＞
各デバッグ用コマンドに対応するデバッグ用プログラムとしては、例えば、つぎのように設定することができる。
【００４０】
まず、ブレークコマンドに対応づけられたデバッグ用プログラムの場合、情報処理装置２０から通信プロトコル変換ボード３０を介して受信された各種コマンドの解析や、解析されたコマンドの実行、通信制御等から構成される割り込みハンドルＡと、当該プログラム実行後にプログラムカウンタ１１１のＰＣアドレスとして、情報処理装置２０から受信したデバッグアドレスを再設定するための割り込みハンドルＢと、から構成される。
【００４１】
マイクロコンピュータ１００は、ＰＣアドレスとデバッグアドレスが一致してＲＯＭ訂正制御回路１１８において割り込み要求が生じた場合にブレークコマンドに応じた前述の割り込みハンドルＡ及びＢを実行するとき、当該割り込み要求が生じたときから情報処理装置２０より新たなコマンドを受信するまでの間、新たなコマンド受信したか否かを識別するとともに、ＰＣアドレスとしてデバッグアドレスを再設定し続けることとなる。
【００４２】
このようにして、当該割り込み要求が生じたときから情報処理装置２０より新たなコマンドを受信するまでの間、ＲＯＭ訂正制御回路１１８において割り込み要求の発生が繰り返し行われるとともに、割り込みハンドルＡ及びＢが繰り返し実行されることとなり、この結果、ＲＯＭ訂正機能を利用した擬似的なブレーク動作を実現することができる。
【００４３】
つぎに、メモリ表示コマンドに対応づけられたデバッグ用プログラムの場合、前述の割り込みハンドルＡにおいて、ＲＡＭ１１４、ＲＯＭ１１０、又はその他のメモリの少なくともいずれかの指定された読み出し先より、一回限り、データをロードする（読み出す）とともに情報処理装置２０へと送信するルーチンを追加する。
【００４４】
よって、マイクロコンピュータ１００は、ＰＣアドレスとデバッグアドレスが一致してＲＯＭ訂正制御回路１１８において割り込み要求が生じた場合にメモリ表示コマンドに応じた前述の割り込みハンドルＡを実行するとき、ＲＡＭ１１４、ＲＯＭ１１０、又はその他のメモリの少なくともいずれかより読み出された指定データを情報処理装置２０へと送信することとなる。このようにして、ＲＯＭ訂正機能を利用したデバッグ目的のメモリ表示動作を実現することができる。
【００４５】
つぎに、メモリ書き込みコマンドに対応づけられたデバッグ用プログラムの場合、前述の割り込みハンドルＡにおいて、ＲＡＭ１１４、又はその他のメモリの指定された書き込み先に対して、一回限り、所定データをストアする（書き込む）ルーチンを追加する。
【００４６】
よって、マイクロコンピュータ１００は、ＰＣアドレスとデバッグアドレスが一致してＲＯＭ訂正制御回路１１８において割り込み要求が生じた場合にメモリ書き込みコマンドに応じた前述の割り込みハンドルＡを実行するとき、ＲＡＭ１１４、又はその他のメモリの指定された書き込み先に所定データを書き込むこととなる。このようにして、ＲＯＭ訂正機能を利用したデバッグ目的のメモリ書き込み動作を実現することができる。
【００４７】
＝＝＝  マイクロコンピュータの評価方法  ＝＝＝
図４は、本発明の一実施形態に係るマイクロコンピュータの評価方法を説明するフローチャートである。なお、特に断らない限り、以下の動作の主体はマイクロコンピュータ１００とする。
【００４８】
まず、デバッグ用コマンドに対応づけられたデバッグ用プログラムが、ＲＡＭ１１４に予め書き込まれている場合とする。さらに、ＲＯＭ訂正許可レジスタ１０９にはＲＯＭ訂正許可機能を有効とさせるためのフラグ値“１”が設定されており、プログラムカウンタ１１１ではＲＯＭ１１０のアプリケーション用プログラムを実行すべくＰＣアドレスが順次生成される場合とする（Ｓ４００）。
【００４９】
ここで、ターゲットボード１０の設計／開発者が操作する情報処理装置２０は、オンチップ・デバッグを実施すべく、マイクロコンピュータ１００に対して、デバッグ用コマンド（ブレークコマンド、メモリ表示コマンド、又はメモリ書き込みコマンド）並びにデバッグアドレスを送信する。なお、このとき、ＲＯＭ訂正許可レジスタ１０９へのフラグ値“１”の設定を併せて実施してもよい。
【００５０】
マイクロコンピュータ１００は、情報処理装置２０からデバッグ用コマンド並びにデバッグアドレスを受信したとき（Ｓ４０１）、デバッグ用コマンドを命令レジスタ１０４に格納するとともに、命令デコーダ１０３において命令レジスタ１０４に格納されたデバッグ用コマンドの解析を行う（Ｓ４０２）。
【００５１】
マイクロコンピュータ１００は、命令デコーダ１０３におけるコマンド解析の結果、デバッグ用コマンドである旨並びにデバッグ用コマンドに対応づけられたＲＡＭ１１４のデバッグ用プログラムを識別したとき、デバッグ用コマンドと併せて受信したデバッグアドレスをＲＯＭ訂正アドレスレジスタ１０７に格納する（Ｓ４０３）。
【００５２】
ここで、ＲＯＭ訂正許可レジスタ１０９にフラグ値“１”が設定されているため、ＲＯＭ訂正制御回路１１８は稼動状態にある。よって、ＲＯＭ訂正制御回路１１８では、プログラムカウンタ１１１において順次生成されるＰＣアドレスが、デバッグアドレスと一致するか否かが監視されることとなる（Ｓ４０４）。
【００５３】
ここで、ＰＣアドレスがデバッグアドレスと一致したとき（Ｓ４０４：ＹＥＳ）、割り込み要求生成部１１９において、ＲＯＭ訂正機能に伴う割り込み要求が発生し、ＲＯＭ１１０のアプリケーション用プログラムの実行が中断される。なお、中断されたときのＰＣアドレスは、スタックポインタ１１７に保持される（Ｓ４０５）。
【００５４】
割り込み制御回路１１５は、ＲＯＭ訂正制御回路１１８からの割り込み要求を受け付けたとき、割り込みベクタ群１１６の中からデバッグ用プログラムの書き込み先を示す割り込みベクタＹを検索する。そして、検索された割り込みベクタＹをもとに、ＲＡＭ１１４の記憶領域１１４ｂに書き込まれたデバッグ用プログラム（メインルーチン）が読み出されて実行される（Ｓ４０６）。なお、このとき、ＲＯＭ１１０の記憶領域１１０ｂに書き込まれたデバッグ用プログラム（サブルーチン）がコールされる。
【００５５】
そして、デバッグ用プログラムの実行中において、情報処理装置２０から新たなコマンドを受信したか否かを識別すべくコマンド解析のルーチンが実行され、情報処理装置２０から新たなコマンドを受信したものと識別されなかった場合（Ｓ４０７：ＮＯ）、プログラムカウンタ１１１に対してデバッグアドレスが再設定される（Ｓ４０８）。この結果、Ｓ４０４以降の処理が繰り返し行われることとなる。
【００５６】
一方、デバッグ用プログラムの実行中において、情報処理装置２０から新たなコマンドを受信したものと識別された場合（Ｓ４０７：ＹＥＳ）、ＲＯＭ訂正アドレスレジスタ１０７に設定されたデバッグアドレスをリセットするとともに、プログラムカウンタ１１１のＰＣアドレスとして、スタックポインタ１１７に保持しておいた割り込み発生前のＰＣアドレスを設定する。そして、プログラムカウンタ１１１におけるＰＣアドレスの更新が行われる（Ｓ４０９）。この結果、割り込みによって中断されたＲＯＭ１１０のアプリケーション用プログラムの実行が再開される（Ｓ４１０）。
【００５７】
本発明では、このように、ＲＯＭ１１０を内蔵するマイクロコンピュータ１００が元々有するＲＯＭ訂正機能を利用することで、オンチップ・デバッグを簡易且つ効率よく実現することが可能となる。すなわち、マイクロコンピュータ１００においてオンチップ・デバッグ用に新たなハードウェアを設けることが不要であり、ＲＯＭ訂正機能に係る既存のハードウェアである、ＲＯＭ訂正アドレスレジスタ１０７、ＲＯＭ訂正許可レジスタ１０９、ＲＯＭ訂正制御回路１１８等を、有効活用するものである。また、従来のデバッグとして基本的な機能である、ブレーク、メモリ表示、メモリ書き込みを、本発明に係るマイクロコンピュータの評価システムにおいても提供するものである。
【００５８】
以上、本実施の形態について説明したが、前述した実施例は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良され得るととともに、本発明にはその等価物も含まれる。
【００５９】
＝＝＝  モード選択  ＝＝＝
例えば、前述した実施形態において、マイクロコンピュータ１００は、前述したようなＲＯＭ訂正機能を利用したデバッグ機能を稼動させるデバッグモードか、それとも、元々のＲＯＭ訂正機能を稼動させるＲＯＭ訂正モードかを、Ｉ／Ｏポート群１０２のポート情報等に基づいて、モード選択させる仕組みを設けてもよい。
【００６０】
具体的には、マイクロコンピュータ１００は、前述したように、ＲＡＭ１１４において、デバッグ用プログラム以外に、図２で説明したような修正プログラム（『第３プログラム』）を予め書き込んでおく。なお、修正プログラムとは、元々のＲＯＭ訂正機能用として、ＲＯＭ１１０に書き込まれたバグ内容（プログラム又はデータ）を、ＲＡＭ１１４の記憶領域１１４ａに対して本修正プログラムのメインルーチンと同様に予め書き込んでおいた内容へと置き換えるためのプログラムのことである。
【００６１】
ここで、マイクロコンピュータ１００は、命令デコーダ１０３において、情報処理装置２０から受信したコマンドに対応づけられるプログラムが、デバッグ用プログラム又は修正プログラムのいずれであるかを識別することとする。ＲＯＭ訂正制御回路１１８は、割り込み要求生成部１１９において、当該識別結果をもとに割り込み要求を発生させる。
【００６２】
そして、割り込み制御回路１１５は、ＲＯＭ訂正制御回路１１８より受け付けた割り込み要求をもとに、割り込みベクタ群１１６のうち、修正プログラムの書き込み先を示す割り込みベクタＸ、又は、デバッグ用プログラムの書き込み先を示す割り込みベクタＹのいずれかを検索することとなる。また、検索された割り込みベクタＸ又は割り込みベクタＹをもとにＲＡＭ１１４から読み出されたデバッグ用プログラム又は修正プログラムが実行されることとなる。
【００６３】
このようなモード選択の仕組みを設けることで、例えば、製品として出荷されたマイクロコンピュータ１００搭載のターゲットボード１０において、出荷後に発生したバグに対して、まずは、デバッグモードを選択してバグの解析を行い、その後、ＲＯＭ訂正モードを選択して、バグを取り除く等の対策を実行することが可能となる。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係るマイクロコンピュータの評価システムの構成を示す図である。
【図２】本発明の一実施形態に係るＲＯＭ訂正機能の概要を説明する図である。
【図３】本発明の一実施形態に係るマイクロコンピュータの構成を示す図である。
【図４】本発明の一実施形態に係るマイクロコンピュータの動作を説明するフローチャートである。
【符号の説明】
【００６５】
１０  ターゲットボード
２０  情報処理装置
３０  通信プロトコル変換ボード
４０  第１通信ケーブル
５０    第２通信ケーブル
１００  マイクロコンピュータ
１０１  内部バス
１０２  Ｉ／Ｏポート群
１０３  命令デコーダ
１０４  命令レジスタ
１０５  レジスタ群
１０６  汎用レジスタ
１０７  ＲＯＭ訂正アドレスレジスタ
１０９  ＲＯＭ訂正許可レジスタ
１１０  ＲＯＭ
１１１  プログラムカウンタ
１１３  ＡＬＵ
１１４  ＲＡＭ
１１５  割り込み制御回路
１１６  割り込みベクタ群
１１７  スタックポインタ
１１８  ＲＯＭ訂正制御回路
１１９  割り込み要求生成部
【図１】
2006155098.tif 000003
【図４】
2006155098.tif 000004
【図２】
2006155098.tif 000005
【図３】
2006155098.tif 000006