(57)【要約】【課題】  評価対象の制御装置の動作を検査する際に、プログラムに多数のブレークポイントを設定することが可能となると共に、プログラムに設定するブレークポイントの変更を短時間で行うことができるエミュレータを提供する。【解決手段】  評価用マイコン１３は、ＣＰＵ１６がＲＯＭ１７に記憶されているプログラムを実行することにより、評価対象の制御装置の動作をエミュレートするようになっている。ここで、ＲＯＭ１７の最上位ビット１７ａは停止用ビットに指定されており、ブレークポイントを設定したいアドレスの最上位ビット１７ａをセットする。ＣＰＵ１６がＲＯＭ１７にアクセスした際に、そのアドレスの最上位ビット１７ａがセットされていた場合は、ＣＰＵ１６に対してＨａｌｔ信号を与えるので、ＣＰＵ１６は、そのアドレスで停止するようになる。従って、ＣＰＵ１６の停止状態で評価用マイコン１３の状態を観察することによりプログラムを適切にデバッグすることができる。【選択図】  図１
2005276065.tif 000002
【特許請求の範囲】
【請求項１】
ＲＯＭに記憶されたプログラムをＣＰＵが実行することにより評価対象の制御装置の動作をエミュレートするエミュレータにおいて、
前記ＲＯＭの各アドレスに対応して設けられた停止用ビットと、
前記ＣＰＵにより前記ＲＯＭのアドレスがアクセスされたときは、そのアドレスに対応した停止用ビットの状態を判断し、当該停止用ビットがセットされていたときは、前記ＣＰＵに対して最優先割込の停止信号を出力する出力手段とを備えたことを特徴とするエミュレータ。
【請求項２】
前記ＲＯＭよりも小さなメモリ容量の代替ＲＡＭと、
前記ＲＯＭの所定アドレス領域が前記ＣＰＵによりアクセスされたときは、そのアクセスを無効とすると共に、前記代替ＲＡＭに対するアクセスを有効化するアクセス切替手段とを備え、
前記代替ＲＡＭに停止命令が設定されたプログラムを書込むことを特徴とする請求項１記載のエミュレータ。
【請求項３】
前記アクセス切替手段は、前記ＣＰＵによりアクセスされる際の所定アドレス領域を変更可能に設けられていることを特徴とする請求項２記載のエミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＯＭに記憶されたプログラムをＣＰＵが実行することにより評価対象の制御装置の動作をエミュレートするエミュレータに関する。
【背景技術】
【０００２】
図４は、エミュレータの動作を示している。この図４において、エミュレータ１には、評価対象の制御装置の動作をエミュレートするマイコン２が設けられている。このマイコン２は、ＣＰＵ３、ＲＯＭ４、ＲＡＭ５を備え、ホストのパソコンからＲＯＭ４に書込まれたプログラムに従ってＣＰＵ３が動作するようになっており、このマイコン２の状態を観察することによりプログラムをデバッグするようにしている。このようにマイコン２の状態を観察するには、マイコン２の動作状態では困難であることから、ＣＰＵ３を任意のアドレスであるブレークポイントで停止させた状態でマイコン２の状態を観察するようにしている。つまり、アドレス比較器６にブレークポイントのアドレスを記憶しておき、命令バスのアドレスがブレークポイントと一致したところで、アドレス比較器６から最優先でＣＰＵ３に受け付けられるＮＭＩ（Non Maskable Interrupt ）信号を出力するようにしている。これにより、ＣＰＵ３の動作がプログラムのブレークポイントで停止するので、その停止状態でマイコン２の状態を観察することにより、プログラムを適切にデバッグすることが可能となる（特許文献１参照）。
【特許文献１】特公平０７−０９３１７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、アドレス比較器６は、一般的に複数個、例えば８チャンネル分しか用意されていないので、一般的に行うＣＰＵの評価では不足している。
また、プログラムを実行途中で停止して評価する方法として、プログラムにブレークポイント（ＨＡＬＴ命令）を設定し、ブレークポイントでプログラムを停止することが行われている。このようにプログラムにブレークポイントを設定する方法では、ブレークポイントを任意に多数設定することができるものの、このようなブレークポイントの変更にはＲＯＭ４に記憶されたプログラム全体の書換えが必要であり、１回の書換えで必要となる時間が数分要することから、プログラムをデバッグするのに多大の時間を要する。
【０００４】
本発明は上記事情に鑑みてなされたもので、その目的は、評価対象の制御装置の動作を検査する際に、プログラムに多数のブレークポイントを設定することが可能となると共に、プログラムに設定するブレークポイントの変更を短時間で行うことができるエミュレータを提供することにある。
【課題を解決するための手段】
【０００５】
請求項１の発明によれば、評価対象の制御装置の動作を検査するために、ＲＯＭに記憶されたプログラムの任意のアドレスにブレークポイントを設定するには、そのアドレスに対応した停止用ビットをセットする。
そして、停止用ビットがセットされたアドレスをＣＰＵがアクセスすると、出力手段がＣＰＵに対して最優先割込の停止信号を出力する。これにより、ＣＰＵは、停止信号を最優先で受付けて停止状態となるので、その状態でＣＰＵの状態を観測することができる。従って、ＲＯＭの任意のアドレスにブレークポイントを設定することができるので、多数のブレークポイントを設定することができる。
【０００６】
請求項２の発明によれば、ＲＯＭの一部の所定アドレス領域をＲＡＭに置換えることができるので、そのＲＡＭの所定アドレス領域に停止命令を書込むことによりブレークポイントを設定した場合、ＲＡＭに対するプログラムの書換え時間はＲＯＭに対する書換え時間よりも大幅に短いことから、ブレークポイントの書換え時間を短縮することができる。
請求項３の発明によれば、ＲＯＭをＲＡＭに置換えることができる所定アドレス領域を変更することができるので、ＲＯＭ全体のアドレスにわたってブレークポイントの書換え時間を大幅に短縮することができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明を車両用ＥＣＵが搭載される回路基板をデバッグするシステムに適用した場合の一実施例について図１ないし図３を参照して説明する。図２は、システム全体の電気的構成を示すブロック図である。ホストとしてのパソコン１１にはエミュレータ１２が接続されており、パソコン１１は、エミュレータ１２との間でデータを授受する。
このエミュレータ１２とは、ユーザアプリケーションの動作確認を行うためのもので、最終的には、シングルチップマイコン（ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏを１つのパッケージに収めたマイコン）のＲＯＭに実装されるユーザプログラムの動作と同等の動作を行う装置であり、一般的には１命令毎に汎用レジスタ、ＲＡＭ、Ｉ／Ｏの変化などを確認することができる。また、ＲＯＭ上の所定のアドレス実行、ＲＡＭ、Ｉ／Ｏなどがある値になった場合の条件などにより連続実行状態によるユーザプログラムを一時停止状態に遷移させて、汎用レジスタ、ＲＡＭ、Ｉ／Ｏなどの状態を確認することができる装置である。
【０００８】
エミュレータ１２には、評価対象となるシングルチップマイコンに内蔵されているＣＰＵの動作をエミュレートするための評価用マイコン１３が搭載されており、その動作はＩＣＥコントローラ１４により制御されるようになっている。ＩＣＥコントローラ１４は、Ｉ／Ｆ１５を介してパソコン１１から制御用データを受信すると共に、評価用マイコン１３の観察データをパソコン１１に送信する。
【０００９】
パソコン１１には、オペレーティングシステム上で動作するアプリケーションとしてのＩＣＥ用コントロールソフトウエアがインストールされており、そのコントロールソフトウエアは、必要に応じてユーザにより起動される。
評価用マイコン１３は、ＣＰＵ１６、ＲＯＭ１７、ＲＡＭ１８、代替ＲＡＭ１９を備えて構成されている。ＲＯＭ１７には、パソコン１１側からＩＣＥコントローラ１４を介してプログラムがダウンロードされ、ＣＰＵ１６は、ＲＯＭ１７からプログラムを読出すことにより評価対象のシングルチップマイコンの動作をエミュレートするようになっている。
【００１０】
ここで、ＲＯＭ１７のビット数は、ＣＰＵ１６の処理ビット数よりも少なくとも１ビット付加されたビット数のものが用いられており、本実施例では、最上位ビット（停止用ビットに相当）１７ａとして１ビットが付加されたものを用いている。この付加された最上位ビット１７ａは、後述するようにＨＡＬＴ命令に対応するものである。Ｈａｌｔ信号出力回路（出力手段に相当）２０は、ＲＯＭ１７がＣＰＵ１６によりアクセスされて記憶している命令を出力した際に最上位ビット１７ａを入力するように設けられており、最上位ビット１７ａがセットされていたときはＣＰＵ１６に対してＨａｌｔ信号を出力するように構成されている。
【００１１】
評価対象としての回路基板２１は、評価対象のシングルチップマイコンが搭載される基板であり、本実施例ではドアロック制御用の車両用ＥＣＵを構成するものである。この場合、エミュレータ１２により確認したい内容は、ドアロックキー及び車速を入力要素、ドアロックを出力要素として、個別ドアロックキーの入力確認、集中ドアロックキーの入力確認、車速による集中ドアロック制御である。
【００１２】
この車両用ＥＣＵにおいて評価対象のシングルチップマイコンが搭載される部分には、当該シングルチップマイコンに代えてソケット（図示せず）が搭載されている。そのソケットには、エミュレータ１２から延びる図示しないエミュレーションケーブルの先端に配置されたプローブが接続されるようになっており、ＣＰＵ１６は、双方向バッファ２２及びＩ／Ｆ２３を介してまたは直接回路基板２１に電気的に接続されるようになっている。
【００１３】
ところで、評価対象のプログラムを評価する際はＲＯＭ１７のプログラムを頻繁に書換える必要があることから、本実施例では、ＲＯＭ１７のアドレス空間のうちの所定アドレス領域を代替ＲＡＭ１９に置換えることにより、書換え時間の短縮を図り、評価効率を向上するようにしている。但し、単純にＲＯＭ１７の全てのアドレス領域をＲＡＭに変更してしまうと、評価用マイコン１３は、データ保持の面での信頼性及びチップサイズ面でのデメリットが大きいため、ＲＯＭ１７の容量（例えば２５６Ｋバイト）未満の容量（例えば２Ｋバイト）のみ内蔵する。また、接続されるアドレスを可変（例えば１６Ｍバイト空間）とすることによりＲＯＭ１７全領域の書換えに対応するようにしている。
【００１４】
このような機能を実現するために、本実施例では、図３に示すチップセレクト回路（アクセス切替手段に相当）２４が設けられている。このチップセレクト回路２４は、アドレスデコード回路２５とＲＯＭ／ＲＡＭセレクト回路２６とからなる。ＣＰＵ１６からのアドレスバスのうち上位８ビットはチップセレクト（ＣＳ）として使用されており、アドレスデコード回路２５にてデコードすることによりＲＯＭ／ＲＡＭセレクト回路２６を通じてＲＯＭ１７、ＲＡＭ１８、代替ＲＡＭ１９の複数のチップのうち一つのチップをデータの読出し或いは書込みの対象として選択するようになっている。ＲＯＭ１７、ＲＡＭ１８、代替ＲＡＭ１９の各チップにはＣＰＵ１６からのアドレスバスの下位１６ビットが接続されており、チップセレクト回路２４によりチップセレクトされた状態でアドレスバスの下位１６ビットにより選択された所定アドレスがＣＰＵ１６によりアクセスされる。この場合、アドレスデコード回路２５には図示しないレジスタが設けられており、アドレスバスの上位８ビットのビットパターンがレジスタに書込まれたビットパターンと一致したときに本来選択されるべきＲＯＭ１７に代えて代替ＲＡＭ１９を選択するようになっており、アドレスデコード回路２５のレジスタを書換えることにより、代替ＲＡＭ１９と置換えられるＲＯＭ１７を変更することができる。
【００１５】
要するに、ＣＰＵ１６からのアドレスの上位８ビットにより代替ＲＡＭ１９がチップセレクトされたときは、代替ＲＡＭ１９のアドレス領域と一致するアドレス領域のＲＯＭ１７が無効となることから、ＲＯＭ１７の所定アドレス領域を代替ＲＡＭ１９に置換えることが可能となる。また、アドレスデコード回路２５が有する図示しないレジスタを書換えることにより、ＲＯＭ１７に代えて代替ＲＡＭ１９が有効となる所定アドレス領域をＲＯＭ１７全体のアドレス領域にわたって変更することが可能となる。
【００１６】
次に上記構成の作用について説明する。
さて、ユーザがアプリケーションのプログラムを完成したときは、そのプログラムの動作をエミュレータ１２で検査する。つまり、作成したプログラムの確度を向上させるためにデバッグするのである。
ここで、プログラムを固定的なアドレスで停止して検査したい場合は、パソコン１１のＩＣＥ用コントロールソフトウエアを起動し、プログラムの任意の位置にブレークポイントを指定する。このような指定は、プログラムをニーモニックで示したエディタ画面においてブレークポイントを示すソースコードを挿入する。
【００１７】
ＩＣＥ用コントロールソフトウエアは、プログラムのソースコードを２進数のオブジェクトコードにアセンブルする際にブレークポイントを示すソースコードを検出したときは、そのブレークポイントに対応した命令のオブジェクトコードの最上位ビット１７ａに１を付加する。従って、ユーザが複数のブレークポイントを指定した場合は、そのブレークポイントに対応する複数のアドレスの最上位ビット１７ａがセットされることになる。この場合、ブレークポイントの数が限定されることはなく、ユーザは、ブレークポイントの数を意識することなく設定することができる。
【００１８】
そして、ＩＣＥ用コントロールソフトウエアは、オブジェクトコードをＩＣＥコントローラ１４に出力し、ＩＣＥコントローラ１４がオブジェクトコードのプログラムをＲＯＭにダウンロードした状態でＣＰＵ１６を起動すると、ＣＰＵ１６は、ＲＯＭ１７に記憶されたプログラムにしたがって動作する。
ここで、ＣＰＵ１６がＲＯＭ１７の所定アドレスにアクセスした際に、そのアドレスの最上位ビット１７ａがセットされていた場合は、Ｈａｌｔ信号出力回路２０からＣＰＵ１６に対してＨａｌｔ信号が出力される。このＨａｌｔ信号はＣＰＵ１６に対して最優先で受付けられるＮＭＩ信号であることから、ＣＰＵ１６は、現在の状態にかかわらずブレークポイントが設定されたアドレスで停止することになる。従って、ユーザは、パソコン１１に対する操作によりＣＰＵ１６のレジスタの内容、アドレスバス、データバスの出力状態、ＲＡＭ１８の記憶内容を観測することにより、プログラムが正常に動作しているかを判断し、正常に動作していない場合は、プログラムをデバッグし、ＲＯＭ１７に再度ダウンロードして再実行する。この場合、必要に応じてブレークポイントの位置を変更することにより、任意のアドレスでＣＰＵ１６を停止してデバッグを効率よく行うことができる。
【００１９】
ところで、上述したようなＲＯＭ１７の最上位ビット１７ａとして停止用ビットを設けた場合、ブレークポイントを頻繁に変更するには適していない。これは、ＲＯＭ１７の書換えには数分間という比較的長時間を要することから、ＲＯＭ１７の書換えを頻繁に行った場合には、デバッグ時間に多大な時間を要するからである。
そこで、本実施例では、このようにブレークポイントを頻繁に変更するような場合は、ある特定範囲の狭いアドレス領域をデバッグするような場合であることに着目し、その所定アドレス領域をＲＯＭ１７から代替ＲＡＭ１９に置換えることにより書換え時間の短縮を図った。
【００２０】
即ち、ユーザは、ブレークポイントを頻繁に変更したい所定アドレス領域のアドレスをＣＰＵ１６が出力した場合に、その上位８ビットのデータによりチップセレクト回路２４がＲＯＭ１７に代えて代替ＲＡＭ１９をチップセレクトするようにチップセレクト回路２４のレジスタを設定する。
そして、プログラムの所定アドレス領域における任意のブレークポイントにＨＡＬＴ命令が挿入されたプログラムをＲＯＭ１７に書込む。この場合、所定アドレス領域以外のアドレスに関しては、ＲＯＭ１７がチップセレクトされることから、当該ＲＯＭ１７に命令が書込まれ、所定アドレス領域に関しては、代替ＲＡＭ１９がチップセレクトされることから、当該代替ＲＡＭ１９に命令が書込まれることになる。
【００２１】
このようなＲＯＭ１７及び代替ＲＡＭ１９への命令の書込み終了状態でエミュレータ１２を起動すると、評価用マイコン１３のＣＰＵ１６は、ＲＯＭ１７にアクセスすることにより命令を順に読込んで実行する。そして、ＣＰＵ１６が所定アドレス領域をアクセスすると、ＲＯＭ１７に代えて代替ＲＡＭ１９がチップセレクトされるようになるので、ＣＰＵ１６は、代替ＲＡＭ１９に記憶された命令を実行するようになる。
【００２２】
そして、ＣＰＵ１６が代替ＲＡＭ１９に記憶されたＨＡＬＴ命令を実行すると、そのアドレスで停止することから、その停止状態でマイコン１３の状態を観測することが可能となる。
ここで、所定アドレス領域でブレークポイントを変更したい場合は、ＨＡＬＴ命令の位置を変更したプログラムを書込む。この場合、所定アドレス領域以外のアドレスに関しては、ＲＯＭ１７に既に書込まれていることから、所定アドレス領域だけ修正された命令を書込む。これにより、代替ＲＡＭ１９のみプログラムが書換えられるので、プログラムの書換え時間を大幅に短縮することができる。
【００２３】
このような実施例によれば、ＲＯＭ１７の最上位ビット１７ａとして１ビットが付加されたものを用い、ＣＰＵ１６によりアクセスされたアドレスの最上位ビット１７ａがセットされていたときは、ＣＰＵ１６に対してＨａｌｔ信号を与えるようにしたので、アドレス比較器を用いてブレークポイントを設定する従来例のものと違って、固定的なブレークポイントを多数設定することができる。
【００２４】
また、所定アドレス領域においてブレークポイントが頻繁に変更されるような場合は、ＣＰＵ１６が所定アドレス領域をアクセスした際にチップセレクト回路２４によるチップセレクトをＲＯＭ１７から代替ＲＡＭ１９に変更するようにしたので、ブレークポイントが設定されたプログラムをＲＯＭに書換える従来例のものに比較して、ブレークポイントを頻繁に変更する場合の書換え時間を大幅に短縮することができる。
【００２５】
しかも、チップセレクト回路２４により代替ＲＡＭ１９が有効となる所定アドレス領域をＲＯＭ１７全体にわたって変更可能としたので、ＲＯＭ１７の何れのアドレス領域にＨＡＬＴ命令を挿入し、そのＨＡＬＴ命令の位置を所定アドレス領域で頻繁に変更するにしても、プログラムの書換え時間の短縮を図ることができる。
本発明は、上記実施例に限定されることなく、次のように変形または拡張できる。
【００２６】
ＲＯＭ１７のビット数としては、ＣＰＵ１６の処理ビット数に１ビットを加えたものを必ずしも使用する必要はなく、汎用のものを用いることにより複数ビットが付加されたものを用いるようにしてもよい。
停止用ビットをＲＯＭ１７の最上位ビット１７ａに設けるのに代えて、ＲＯＭの各アドレスと対応したアドレスを有するメモリの１ビットを用いるようにしてもよい。
【００２７】
チップセレクト回路２４によるチップセレクトに代えて、ＣＰＵ１６により所定アドレス領域が選択されたときは、ＲＯＭ１７に代えて代替ＲＡＭ１９へアクセスを切替えるようにしてもよい。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施例における動作状態を説明するための図
【図２】エミュレータの機能ブロック図
【図３】チップセレクト回路を示すブロック図
【図４】従来例を示す図１相当図
【符号の説明】
【００２９】
図面中、１１はパソコン、１２はエミュレータ、１３は評価用マイコン、１６はＣＰＵ、１７はＲＯＭ、１７ａは最上位ビット（停止用ビット）、１８はＲＡＭ、１９は代替ＲＡＭ、２０はＨａｌｔ信号出力回路（出力手段）、２４はチップセレクト回路（アクセス切替手段）である。
【図１】
2005276065.tif 000003
【図２】
2005276065.tif 000004
【図３】
2005276065.tif 000005
【図４】
2005276065.tif 000006