(57)【要約】【課題】ターゲットマイコンであるＭＣＵ９がデバッグ回路１８を内蔵している場合には、フラッシュメモリ１５に格納されているプログラムの各命令を順番に実行しながらデバッグを行うことができるが、ＭＣＵ９がデバッグ回路１８を内蔵していない場合には、プログラムの各命令を順番に実行しながらデバッグを行うことができない課題があった。【解決手段】シングルステップ命令受信部３１がシングルステップの実行命令を受信すると、ターゲットマイコンであるＭＣＵ２９からプログラムの実行状態に関する情報を取得して実行対象の命令を解析し、その命令の実行結果を模擬して、その実行結果をＭＣＵ２９に反映する。【選択図】　　　　図１
2004046716.tif 000002
【特許請求の範囲】
【請求項１】
シングルステップの実行命令又は実行要求を受ける受信受付手段と、上記受信受付手段がシングルステップの実行命令又は実行要求を受けると、ターゲットマイコンからプログラムの実行状態に関する情報を取得する情報取得手段と、上記情報取得手段により取得された実行状態に関する情報から実行対象の命令を解析し、その命令の実行結果を模擬する実行結果模擬手段と、上記実行結果模擬手段により模擬された命令の実行結果を上記ターゲットマイコンに反映する実行結果反映手段とを備えたデバッグ装置。
【請求項２】
実行結果模擬手段は、ターゲットマイコンと同一のマイコンを搭載している場合、そのマイコンに命令を実行させることを特徴とする請求項１記載のデバッグ装置。
【請求項３】
情報取得手段は、プログラムの実行状態に関する情報として、プログラムアドレス又は命令コードを取得することを特徴とする請求項１記載のデバッグ装置。
【請求項４】
情報取得手段は、実行結果模擬手段により解析された実行対象の命令が前命令の実行結果を必要とする命令である場合、プログラムの実行状態に関する情報として、前命令の実行結果を取得することを特徴とする請求項３記載のデバッグ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ターゲットマイコンに実装されるプログラムをデバッグするデバッグ装置及びデバッグプログラムに関するものである。
【０００２】
【従来の技術】
図５は従来のデバッグ装置を示す構成図であり、図において、１はターゲットマイコンであるＭＣＵ９に実装されるプログラムをデバッグする際にユーザが操作するパソコン、２はパソコン１とコントロールボード３を接続するＲＳ−２３２ＣケーブルなどのＩ／Ｆケーブル、３はパソコン１から出力される命令にしたがってＭＣＵ９を制御するコントロールボード、４はコントロールボード３のＭＣＵ、５はコントロールボード３のメモリ、６はコントロールボード３とターゲットボード７を接続するＩ／Ｆケーブル、７はターゲットボード、８はエミュレーションボード、９はデバッグ回路を内蔵しているＭＣＵである。
【０００３】
図６はＭＣＵ９の機能ブロックを示すブロック図であり、図において、１１はＣＰＵ、１２はバスＩ／Ｆ、１３は周辺機能実現回路、１４はクロック発生回路、１５はデバッグ対象のプログラムを格納しているフラッシュメモリ、１６はＲＡＭ、１７はＩ／Ｏポート、１８はコントロールボード３の指示の下、プログラムのデバッグを行うデバッグ回路である。
【０００４】
次に動作について説明する。
ＭＣＵ９のフラッシュメモリ１５に格納されているプログラムの各命令を順番に実行しながらデバッグを行う場合、ユーザがパソコン１を操作してシングルステップの実行命令を発行させる。
【０００５】
コントロールボード３のＭＣＵ４は、パソコン１からシングルステップの実行命令を受信すると、ターゲットマイコンであるＭＣＵ９のデバッグ回路１８におけるアドレス比較レジスタＡ，Ｂに実行対象命令のプログラムアドレスを格納して（図７を参照）、シングルステップコマンドをＭＣＵ９のＣＰＵ１１に出力する。
【０００６】
ＭＣＵ９のＣＰＵ１１は、コントロールボード３からシングルステップコマンドを受けると、フラッシュメモリ１５に格納されているプログラムの実行を開始する。
ＭＣＵ９のデバッグ回路１８は、ＣＰＵ１１がプログラムの実行を開始すると、そのプログラムアドレスとアドレス比較レジスタＡ，Ｂに格納されているプログラムアドレスの比較を開始し、両者の一致を検出すると、割込み信号をＣＰＵ１１に出力する。
ＭＣＵ９のＣＰＵ１１は、デバッグ回路１８から割込み信号を受けると、プログラムの実行を停止する。
【０００７】
【発明が解決しようとする課題】
従来のデバッグ装置は以上のように構成されているので、ターゲットマイコンであるＭＣＵ９がデバッグ回路１８を内蔵している場合には、フラッシュメモリ１５に格納されているプログラムの各命令を順番に実行しながらデバッグを行うことができるが、ＭＣＵ９がデバッグ回路１８を内蔵していない場合には、プログラムの各命令を順番に実行しながらデバッグを行うことができない課題があった。
なお、ソフトウエア処理によってフラッシュメモリ１５に格納されているプログラムの命令を適宜ブレイク命令等に書き換えるようにすれば、ＭＣＵ９がデバッグ回路１８を内蔵していない場合でも、プログラムの各命令を順番に実行しながらデバッグを行うことができるが、フラッシュメモリ１５は書換可能回数に制限があるため、現実的な方法ではない。
【０００８】
この発明は上記のような課題を解決するためになされたもので、ＭＣＵがデバッグ回路を内蔵していない場合でも、プログラムの各命令を順番に実行しながらデバッグを行うことができるデバッグ装置を得ることを目的とする。
【０００９】
【課題を解決するための手段】
この発明に係るデバッグ装置は、受信受付手段がシングルステップの実行命令又は実行要求を受けると、ターゲットマイコンからプログラムの実行状態に関する情報を取得して実行対象の命令を解析し、その命令の実行結果を模擬して、その実行結果をターゲットマイコンに反映するようにしたものである。
【００１０】
この発明に係るデバッグ装置は、ターゲットマイコンと同一のマイコンを搭載している場合、そのマイコンに命令を実行させるようにしたものである。
【００１１】
この発明に係るデバッグ装置は、プログラムの実行状態に関する情報として、プログラムアドレス又は命令コードを取得するようにしたものである。
【００１２】
この発明に係るデバッグ装置は、実行結果模擬手段により解析された実行対象の命令が前命令の実行結果を必要とする命令である場合、プログラムの実行状態に関する情報として、前命令の実行結果を取得するようにしたものである。
【００１３】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるデバッグ装置を示す構成図であり、図において、２１はターゲットマイコンであるＭＣＵ２９に実装されるプログラムをデバッグする際にユーザが操作するパソコン、２２はパソコン２１とコントロールボード２３を接続するＲＳ−２３２ＣケーブルなどのＩ／Ｆケーブル、２３はパソコン２１から出力される命令にしたがってＭＣＵ２９を制御するコントロールボード、２４はコントロールボード２３のＭＣＵ、２５はＭＣＵ２９に実装されるプログラムと同一のプログラム等をロードするメモリ、２６はコントロールボード２３とターゲットボード２７を接続するＩ／Ｆケーブル、２７はターゲットボード、２８はエミュレーションボード、２９はターゲットマイコンであるＭＣＵである。
【００１４】
図２はコントロールボード２３のＭＣＵ２４とターゲットマイコンであるＭＣＵ２９の内部を示す構成図であり、図において、３１はパソコン２１からシングルステップの実行命令を受信するシングルステップ命令受信部（受信受付手段）、３２はシングルステップ命令受信部３１がシングルステップの実行命令を受信すると、プログラムの実行状態に関する情報の転送要求をＭＣＵ２９に送信して、そのＭＣＵ２９からプログラムの実行状態に関する情報を受信するデータ送受信部（情報取得手段）である。なお、データ送受信部３２は命令シミュレーション部３３によるシミュレーション結果をＭＣＵ２９に送信する実行結果反映手段も構成している。
【００１５】
３３はデータ送受信部３２により取得された実行状態に関する情報から実行対象の命令を解析し、その命令の実行結果を模擬する命令シミュレーション部（実行結果模擬手段）、３４はＭＣＵ２９のデータ送受信部、３５はモニタプログラムを実行するＣＰＵ、３６はモニタプログラムを格納する内蔵メモリ、３７はデバッグ対象のプログラムを格納するフラッシュメモリである。
【００１６】
次に動作について説明する。
ＭＣＵ２９のフラッシュメモリ３７に格納されているプログラムの各命令を順番に実行しながらデバッグを行う場合、ユーザがパソコン２１を操作してシングルステップの実行命令を発行させる。
これにより、パソコン２１は、シングルステップの実行命令をコントロールボード２３のＭＣＵ２４に送信するが、コントロールボード２３のメモリ２５にデバッグ対象のプログラムと同一のプログラムが未だロードされていない場合には、デバッグ対象のプログラムと同一のプログラムをコントロールボード２３のメモリ２５に送信する。
【００１７】
ＭＣＵ２４のシングルステップ命令受信部３１は、パソコン２１からシングルステップの実行命令を受信すると、シングルステップの実行命令をデータ送受信部３２に出力する。
ＭＣＵ２４のデータ送受信部３２は、シングルステップ命令受信部３１からシングルステップの実行命令を受けると、プログラムの実行状態に関する情報の転送要求をＭＣＵ２９に送信する。
【００１８】
ＭＣＵ２９のデータ送受信部３４は、ＭＣＵ２４からプログラムの実行状態に関する情報の転送要求を受信すると、ＣＰＵ３５に対してモニタプログラムの実行を要求する。
ＣＰＵ３５は、モニタプログラムの実行を開始すると、フラッシュメモリ３７に格納されているプログラムの実行状態の調査を行う。具体的には、図示せぬプログラムカウンタのカウント値を参照して、次に実行する命令のプログラムアドレスを調査し、そのプログラムアドレスをデータ送受信部３４に出力する。
データ送受信部３４は、ＣＰＵ３５からプログラムの実行状態に関する情報としてプログラムアドレスを受けると、そのプログラムアドレスをＭＣＵ２４に送信する。
【００１９】
ＭＣＵ２４のデータ送受信部３２は、ＭＣＵ２９からプログラムアドレスを受信すると、そのプログラムアドレスを命令シミュレーション部３３に出力する。ＭＣＵ２４の命令シミュレーション部３３は、データ送受信部３２からプログラムアドレスを受けると、そのプログラムアドレスをキーにして、メモリ２５から次に実行するプログラムの命令を検索する。
この際、実行対象の命令が前命令の実行結果を必要とする命令である場合（例えば、前命令の実行結果にレジスタの格納値を加算する加算命令などが該当する）、データ送受信部３２を介して、前命令の実行結果の送信要求をＭＣＵ２９に送信する。
【００２０】
ＭＣＵ２９のＣＰＵ３５は、データ送受信部３４がＭＣＵ２４から前命令の実行結果の送信要求を受信すると、図示せぬレジスタやメモリに格納されている前命令の実行結果をデータ送受信部３４を介してＭＣＵ２４に送信する。
ＭＣＵ２４の命令シミュレーション部３３は、データ送受信部３２がＭＣＵ２９から前命令の実行結果を受信すると、前命令の実行結果を参照して、実行対象の命令の実行結果をシミュレーションする。なお、シミュレーションはＭＣＵ２９のハードウエア構成等を考慮して実行するが、シミュレーション自体は従来の手法を用いるため詳細な説明を省略する。
【００２１】
ＭＣＵ２４のデータ送受信部３２は、命令シミュレーション部３３のシミュレーション結果である命令の実行結果をＭＣＵ２９に送信する。
ＭＣＵ２９のＣＰＵ３５は、データ送受信部３４がＭＣＵ２４から命令の実行結果を受信すると、その実行結果を図示せぬレジスタやメモリに格納することにより、ＣＰＵ３５が自ら命令を実行した場合と同様の状態に設定する。
【００２２】
以上で明らかなように、この実施の形態１によれば、シングルステップ命令受信部３１がシングルステップの実行命令を受信すると、ターゲットマイコンであるＭＣＵ２９からプログラムの実行状態に関する情報を取得して実行対象の命令を解析し、その命令の実行結果を模擬して、その実行結果をＭＣＵ２９に反映するように構成したので、ＭＣＵ２９がデバッグ回路を内蔵していない場合でも、プログラムの各命令を順番に実行しながらデバッグを行うことができる効果を奏する。
【００２３】
なお、この実施の形態１では、ＭＣＵ２９がプログラムカウンタのカウント値を参照して、次に実行する命令のプログラムアドレスをＭＣＵ２４に送信するものについて示したが、プログラムカウンタのカウント値を参照して、次に実行する命令コードを把握し、その命令コードをデータ送受信部３４に出力するようにしてもよい。
この場合、ＭＣＵ２４の命令シミュレーション部３３は、その命令コードから実行対象の命令を特定する。
【００２４】
また、この実施の形態１においては、シングルステップ命令受信部３１、データ送受信部３２及び命令シミュレーション部３３の全てをハードウエアで構成してもよいが、シングルステップ命令受信部３１、データ送受信部３２及び命令シミュレーション部３３の機能を実現するソフトウエア（デバッグプログラム）を用意し、コンピュータであるＭＣＵ２４が当該デバッグプログラムを実行するようにしてもよい。
【００２５】
実施の形態２．
上記実施の形態１では、ＭＣＵ２４の命令シミュレーション部３３が命令の実行結果をシミュレーションするものについて示したが、コントロールボード２３のＭＣＵ２４とＭＣＵ２９が同一のマイコンである場合、命令シミュレーション部３３が命令の実行結果をシミュレーションしなくても、単に、その命令を実行すれば、命令の実行結果が得られるので、命令シミュレーション部３３が実行対象の命令を実行するようにする。
これにより、簡単に命令の実行結果が得られる効果を奏する。
【００２６】
実施の形態３．
上記実施の形態１，２では、コントロールボード２３がパソコン２１から出力される命令にしたがってＭＣＵ２９を制御するものについて示したが、パソコン２１がコントロールボード２３の機能を実現するプログラム等を搭載している場合には、図３に示すように、パソコン２１が直接ＭＣＵ２９を制御するようにしてもよい。
この場合、パソコン２１は、図２のＭＣＵ２４のデータ受信部３２と命令シミュレーション部３３を搭載し、また、ユーザからのシングルステップの実行要求を受け付けるシングルステップ要求受付部（受信受付手段）４０を搭載している。
【００２７】
なお、この実施の形態３では、シングルステップ要求受付部４０、データ送受信部３２及び命令シミュレーション部３３の全てをハードウエアで構成してもよいが、シングルステップ要求受付部４０、データ送受信部３２及び命令シミュレーション部３３の機能を実現するソフトウエア（デバッグプログラム）を用意し、コンピュータであるパソコン２１が当該デバッグプログラムを実行するようにしてもよい。
【００２８】
【発明の効果】
以上のように、この発明によれば、受信受付手段がシングルステップの実行命令又は実行要求を受けると、ターゲットマイコンからプログラムの実行状態に関する情報を取得して実行対象の命令を解析し、その命令の実行結果を模擬して、その実行結果をターゲットマイコンに反映するように構成したので、ターゲットマイコンがデバッグ回路を内蔵していない場合でも、プログラムの各命令を順番に実行しながらデバッグを行うことができる効果がある。
【００２９】
この発明によれば、ターゲットマイコンと同一のマイコンを搭載している場合、そのマイコンに命令を実行させるように構成したので、簡単に命令の実行結果が得られる効果がある。
【００３０】
この発明によれば、プログラムの実行状態に関する情報として、プログラムアドレス又は命令コードを取得するように構成したので、プログラムの実行状態を容易に把握することができる効果がある。
【００３１】
この発明によれば、実行結果模擬手段により解析された実行対象の命令が前命令の実行結果を必要とする命令である場合、プログラムの実行状態に関する情報として、前命令の実行結果を取得するように構成したので、前命令の実行結果を必要とする命令でも、命令の実行結果が得られる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるデバッグ装置を示す構成図である。
【図２】コントロールボードのＭＣＵとターゲットマイコンであるＭＣＵの内部を示す構成図である。
【図３】この発明の実施の形態３によるデバッグ装置を示す構成図である。
【図４】コントロールボードのＭＣＵとターゲットマイコンであるＭＣＵの内部を示す構成図である。
【図５】従来のデバッグ装置を示す構成図である。
【図６】ＭＣＵの機能ブロックを示すブロック図である。
【図７】デバッグ回路の処理を示す説明図である。
【符号の説明】
２１　パソコン、２２　Ｉ／Ｆケーブル、２３　コントロールボード、２４　ＭＣＵ、２５　メモリ、２６　Ｉ／Ｆケーブル、２７　ターゲットボード、２８エミュレーションボード、２９　ＭＣＵ（ターゲットマイコン）、３１　シングルステップ命令受信部（受信受付手段）、３２　データ送受信部（情報取得手段、実行結果反映手段）、３３　命令シミュレーション部（実行結果模擬手段）、３４　データ送受信部、３５　ＣＰＵ、３６　内蔵メモリ、３７　フラッシュメモリ、４０　シングルステップ要求受付部（受信受付手段）。
【図１】
2004046716.tif 000003
【図２】
2004046716.tif 000004
【図３】
2004046716.tif 000005
【図４】
2004046716.tif 000006
【図５】
2004046716.tif 000007
【図６】
2004046716.tif 000008
【図７】
2004046716.tif 000009