(57)【要約】【課題】ソフトウェアＩＰを流用したマイコンの応用プログラム開発において、セキュリティを保護しながら、プログラム開発者に対してデバッグ手段を提供すること。【解決手段】本発明のプログラム開発装置において、次回実行アドレスが隠蔽領域であった場合、隠蔽領域の情報を持つデバッガソフトから隠蔽領域の終端アドレスを取得し、終端アドレスまで連続してＳＴＥＰ実行を行う機能をモニタプログラムに備える。  これによりマイコンコアの内部割込みで実現しているＳＴＥＰ実行についても隠蔽領域のデバッグ情報を隠すことが可能である。【選択図】図３
2006065555.tif 000002
【特許請求の範囲】
【請求項１】
任意のプログラムの隠蔽領域に対して、次回実行アドレスをデバッガソフトに通知し、前記デバッガソフトから連続ＳＴＥＰ実行命令と前記隠蔽領域の終端アドレスを取得することで自動的に前記終端アドレスまでＳＴＥＰ実行を行い、前記ＳＴＥＰ実行が完了すると前記デバッガソフトにＳＴＥＰ実行完了通知を行なうモニタプログラムと、
取得した前記隠蔽領域の情報から先頭アドレスと前記終端アドレスのテーブル情報を作成し、前記モニタプログラムから前記次回実行アドレスを取得すると該次回実行アドレスを前記先頭アドレスと比較し、一致した場合、前記モニタプログラムに前記連続ＳＴＥＰ実行命令と前記終端アドレスを通知するデバッガソフトを備えたプログラム開発装置。
【請求項２】
モニタプログラムにおいて、
任意のプログラムの隠蔽領域に対して、次回実行アドレスをデバッガソフトに通知するステップと、
前記デバッガソフトから連続ＳＴＥＰ実行命令と前記隠蔽領域の終端アドレスを取得することで自動的に前記終端アドレスまでＳＴＥＰ実行を行うステップと、
前記ＳＴＥＰ実行が完了すると前記デバッガソフトにＳＴＥＰ実行完了通知を行なうステップを備え、
デバッガソフトにおいて、
取得した前記隠蔽領域の情報から先頭アドレスと前記終端アドレスのテーブル情報を作成するステップと、
前記モニタプログラムから前記次回実行アドレスを取得すると該次回実行アドレスを前記先頭アドレスと比較するステップと、
比較結果に応じて、前記モニタプログラムに前記連続ＳＴＥＰ実行命令と前記終端アドレスを通知するステップを備え、
前記モニタプログラムと前記デバッガソフト間での通信によりデバッグを行うプログラム開発方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアＩＰのデバッグ情報を隠蔽しながら、ソフトウェアＩＰを流用したプログラム開発を支援するプログラム開発装置に関する。
【背景技術】
【０００２】
マイコンの応用プログラム開発において、ソフトウェアＩＰを流用する場合が多いが、時としてソフトウェアＩＰ内部に、第三者に隠蔽すべき情報(暗号の復号処理など）が含まれる場合がある。
【０００３】
しかし、ソフトウェアＩＰを流用したプログラム開発においては、プログラム開発者に対してデバッグ手段を提供する必要があり、ここにジレンマが生じる。
【０００４】
このような課題に対して、オブジェクトコードに対して、任意のアドレス空間を隠蔽領域に指定する方法（例えば、特許文献１参照）と、隠蔽領域を示すアドレスと実行アドレスを比較して隠蔽領域に該当する場合はブレーク信号を無効化するハードウェアをマイコン内部に実装する方法などが知られている。
【特許文献１】特開２００２−１８９６１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１の方法では、デバッグ対象であるマイコン内部に、現在実行しているアドレスが隠蔽領域か否かを判断するアドレス比較器を実装する必要がある。
【０００６】
特に独立した隠蔽領域が複数個存在した場合は、その数だけ比較器を実装する必要があり、量産コストの観点からは問題があった。
【０００７】
また、特許文献１の方法では、ＳＴＥＰ実行のようなマイコンコア内部の割込みを用いたデバッグ機能について対応できない。
【課題を解決するための手段】
【０００８】
この目的を達成するために、本発明のプログラム開発装置は、任意のプログラムの隠蔽領域に対して、次回実行アドレスをデバッガソフトに通知し、前記デバッガソフトから連続ＳＴＥＰ実行命令と前記隠蔽領域の終端アドレスを取得することで自動的に前記終端アドレスまでＳＴＥＰ実行を行い、完了すると前記デバッガソフトにＳＴＥＰ実行完了通知を行なうモニタプログラムと、取得した前記隠蔽領域の情報から先頭アドレスと前記終端アドレスのテーブル情報を作成し、前記モニタプログラムから前記次回実行アドレスを取得すると前記先頭アドレスと比較し、一致した場合、前記モニタプログラムに前記連続ＳＴＥＰ実行命令と前記終端アドレスを通知するデバッガソフトから構成されている。
【０００９】
この構成によって、特許文献１のようにマイコン内部に比較器を実装する必要なく、ソフトウェアによって同様の効果を得ることができる。
【発明の効果】
【００１０】
本発明のプログラム開発装置によれば、モニタプログラムに、デバッガソフトから連続ＳＴＥＰ実行命令と隠蔽領域の終端アドレスを取得することで、自動的に終端アドレスまでＳＴＥＰ実行を行うことが可能となり、ソフトウェアＩＰを流用したプログラム開発時において、そのソフトウェアＩＰの作成者が指定した隠蔽領域の情報を、第三者に対して隠蔽することができる優れたプログラム開発装置を実現することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明を実施する為の最良の形態を説明する。
【００１２】
なお、ソフトウェアＩＰ上の隠蔽領域を指定する方法として、特許文献１では、コンパイル時に隠蔽領域を指定し、オブジェクトファイル中に隠蔽領域情報を持たせる方法（ファイル単位、関数単位、領域単位）と、オブジェクトファイルを読み込む前にデバッガソフト（あるいは、その他のアプリケーションソフト）を用いて隠蔽領域を指定する方法を述べているが、本発明で隠蔽領域を指定する方法については、それに準拠する。
【００１３】
図１に本発明を適用したデバッグシステムの一例を示す。
【００１４】
図１に示すように、本デバッグシステムは、プログラム開発者のインターフェースとなるデバッガソフトが動作しているホストコンピュータ１０１と、マイコンチップ１０２を有する。
【００１５】
マイコンコア１０３は、ソフトウェアＩＰを含んだユーザプログラムが動作するユーザＲＯＭ空間１０４、ユーザＲＡＭ空間１０５とモニタプログラムが動作するモニタＲＯＭ空間１０６、モニタＲＡＭ空間１０７から、それぞれのメモリ空間上のプログラムを実行する。尚、モニタＲＯＭ空間１０６、モニタＲＡＭ空間１０７はマイコンチップ１０２内部にある必要は必ずしも無い。
【００１６】
モニタＲＯＭ空間１０６上で動作するモニタプログラムは、マイコンコア１０３の内部情報を取得し、マイコンコア１０３の動作を制御する。
【００１７】
さらに、マイコンチップ１０２に実装されているデバッグ用Ｉ／Ｆ１０８を介して、ホストコンピュータ１０１上で動作するデバッガソフトと相互に通信を行なう事が可能である。
【００１８】
ユーザプログラムからモニタプログラムへの遷移時には、ユーザプログラムのＰＣ、ステータス情報等がモニタＲＡＭ空間１０７に一旦退避され、ユーザプログラム実行時に復帰される。また、ブレーク回路１０９もデバッグ用Ｉ／Ｆ１０８を介してデバッガソフトから制御可能で、マイコンコア１０３のアドレス情報、デバッグ情報などをトリガとしてマイコンコアに対してプログラム実行の停止信号を送ることができる。
【００１９】
このようなデバッグシステムにおいて任意のデバッグ機能を実現する場合、以下のような手順を取る（以下の例ではＳＴＥＰ実行を例に説明する。）。
【００２０】
図２にプログラム開発者から任意のコマンドを受理した状態のデバッガソフトのフローチャート、図３に同状態でのモニタプログラムのフローチャート、図４にデバッガソフトが有する隠蔽領域のアドレス情報テーブルを示す。
【００２１】
ここで、図２のフローチャートが動作するまでにモニタプログラムへの遷移が完了しており、モニタＲＡＭ空間１０７には、次回の実行アドレスを含むユーザプログラム実行時の情報が退避されているものとする。またデバッガソフトはユーザプログラムの読み込み時にソフトウェアＩＰの隠蔽領域情報を取得しており、複数の隠蔽領域から、それぞれ先頭アドレスと終端アドレスを抽出した図４に示すようなアドレス情報テーブルを作成しているものとする（ここで隠蔽領域の最大個数はＮ個である。）。
【００２２】
デバッガソフトは、プログラム開発者からＳＴＥＰ実行のコマンドを受け付けると、モニタプログラムに対して次回実行アドレスをモニタＲＡＭ空間１０７から読み出して送信するようコマンドを発行する（ステップＳ２０１）。
【００２３】
モニタプログラムはデバッガソフトからのコマンドを受け付けると（ステップＳ３０１）、そのコマンドの内容を判断する。
【００２４】
ここで次回実行アドレス取得のコマンドであった場合（ステップＳ３０２）、モニタＲＡＭ空間１０７から次回実行アドレスを読み出し、デバッガソフトにその内容を通知する（ステップＳ３０４）。
【００２５】
デバッガソフトが次回実行アドレスを取得すると（ステップＳ２０２）、アドレス情報テーブルの通しナンバーを１にセットし（ステップＳ２０３）その通しナンバー１に該当する先頭アドレスであるアドレスＡと次回実行アドレスを比較する（ステップＳ２０４）。
【００２６】
ここで比較の結果が一致していれば、連続ＳＴＥＰ実行のコマンドと通しナンバー１に該当する終端アドレスであるアドレスＢをモニタプログラムに通知する（ステップＳ２０８）。
【００２７】
モニタプログラムは連続ＳＴＥＰ実行コマンドを受理すると（ステップＳ３０３）、次回実行アドレスがアドレスＢを越えるまでＳＴＥＰ実行を実施し（ステップＳ３０５、Ｓ３０６）越えた場合、ＳＴＥＰ実行を停止する（ステップＳ３０７）。
【００２８】
そしてデバッガソフトに連続ＳＴＥＰ実行が完了した事を通知する（ステップＳ３０８）。デバッガソフトは連続ＳＴＥＰ実行完了の通知を受けると（ステップＳ２０９）、隠蔽領域の実行を完了した事をデバッガ画面に表示する（ステップＳ２１０）。
【００２９】
また、取得した次回実行アドレスがアドレスＡと一致しないのであれば、通しナンバーを１インクリメントし（ステップＳ２０５）、通しナンバーがＮ＋１か否かを比較する（ステップＳ２０６）。
【００３０】
通しナンバーがＮ＋１でない場合は、ステップ２０４から同様に処理を行い、通しナンバーＮに該当する先頭アドレスであるアドレスＣと次回実行アドレスを比較し、一致していれば、同様に連続ＳＴＥＰ実行コマンドと通しナンバーＮに該当する終端アドレスであるアドレスＤをモニタプログラムに通知し、一連の処理を行なう。
【００３１】
一致した場合は次回実行アドレスが隠蔽領域ではないと判断し、通常のＳＴＥＰ実行を行う（ステップＳ２０７）。
【産業上の利用可能性】
【００３２】
本発明にかかるデバッガソフトは、ソフトウェアＩＰ作成者が設定した隠蔽領域に対してデバッグ情報を隠蔽する機能をソフトウェアで実現し、例えばオンチップデバッグ環境において、任意のソフトウェアＩＰのデバッグ情報を隠蔽する場合でも、プログラム開発対象であるマイコンに対してハードウェア追加の必要無しに機能を実現することができる。
【図面の簡単な説明】
【００３３】
【図１】デバッグシステムの構成図
【図２】ＳＴＥＰ実行時におけるデバッガソフトのフローチャート
【図３】ＳＴＥＰ実行時におけるモニタプログラムのフローチャート
【図４】隠蔽領域のアドレス情報テーブルを示す図
【符号の説明】
【００３４】
１０１  ホストコンピュータ
１０２  マイコンチップ
１０３  マイコンコア
１０４  ユーザＲＯＭ空間
１０５  ユーザＲＡＭ空間
１０６  モニタＲＯＭ空間
１０７  モニタＲＡＭ空間
１０８  デバッグ用Ｉ／Ｆ
１０９  ブレーク回路
【図１】
2006065555.tif 000003
【図２】
2006065555.tif 000004
【図３】
2006065555.tif 000005
【図４】
2006065555.tif 000006