(57)【要約】【課題】ターゲットプログラムを変更することなくその検証が可能となるデバッグ装置及びデバッグ方法を提供する。【解決手段】デバッグ装置１は、ユーザ応用システム４０に搭載されるターゲットプログラムを実行するインサーキットエミュレータ（ＩＣＥ）２０と、ＩＣＥ２０を介してプログラムのデバッグを行なうホストコンピュータ１０と、ＩＣＥ２０及びホストコンピュータ１０と接続される信号ボード３０とを有する。信号ボード３０は、ＩＣＥ２０又はホストコンピュータ１０からの信号を選択してユーザ応用システム４０に入力する信号調停回路３１を有する。【選択図】図１
2008084088.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットプログラムを実行してユーザ応用システムを制御するインサーキットエミュレータと、
前記ターゲットプログラムのデバッグを行なうホストコンピュータと、
前記インサーキットエミュレータ及び前記ホストコンピュータと接続される信号調停回路とを有し、
前記信号調停回路は、前記インサーキットエミュレータ又は前記ホストコンピュータからの信号を選択して前記ユーザ応用システムに出力する、デバッグ装置。
【請求項２】
前記信号調停回路は、
前記ホストコンピュータから入力される優先順位に基づいて前記インサーキットエミュレータ、前記ホストコンピュータ、及び前記ユーザ応用システムからの信号の優先順位を決定し、優先順位が最も高い信号を有効にする
ことを特徴とする請求項１記載のデバッグ装置。
【請求項３】
前記信号調停回路は、
前記ホストコンピュータから指定された優先順位を保持するレジスタと、
前記レジスタに格納された優先順位に従って前記インサーキットエミュレータからの信号、前記ユーザ応用システムからの信号、又は前記ホストコンピュータからの信号を選択出力するセレクタとを有する
ことを特徴とする請求項１記載のデバッグ装置。
【請求項４】
前記ホストコンピュータは、前記インサーキットエミュレータのメモリに格納される内部情報を表示する第１の表示部と、前記インサーキットエミュレータと前記ユーザ応用システムとの間でやり取りされる信号を表示する第２の表示部とを有する
ことを特徴とする請求項１記載のデバッグ装置。
【請求項５】
前記インサーキットエミュレータ、前記ホストコンピュータ及び前記ユーザ応用システムからの入出力信号を格納するメモリを更に有する
ことを特徴とする請求項１記載のデバッグ装置。
【請求項６】
前記ホストコンピュータからの指示に基づき前記インサーキットエミュレータの各端子を、ディジタル信号用端子、アナログ信号用端子、又はクロック信号用端子に割り当てる端子コンフォグレーション回路を更に有する
ことを特徴とする請求項１記載のデバッグ装置。
【請求項７】
前記信号調停回路は、プルアップ抵抗／プルダウン抵抗設定回路を更に有し、前記優先順位に基づき調停した結果を当該プルアップ抵抗／プルダウン抵抗設定回路を介して前記ユーザ応用システム、前記インサーキットエミュレータ又は前記ホストコンピュータに出力する
ことを特徴とする請求項１記載のデバッグ装置。
【請求項８】
前記信号調停回路は、前記インサーキットエミュレータ又は前記ユーザ応用システムからの信号を選択して前記ホストコンピュータに出力する
ことを特徴とする請求項１記載のデバッグ装置。
【請求項９】
前記信号調停回路は、前記ホストコンピュータ又は前記ユーザ応用システムからの信号を選択して前記インサーキットエミュレータに出力する
ことを特徴とする請求項１記載のデバッグ装置。
【請求項１０】
ターゲットプログラムを実行してユーザ応用システムを制御するインサーキットエミュレータと、前記ターゲットプログラムのデバッグを行なうホストコンピュータとを備えたデバッグ装置におけるデバッグ方法であって、
前記インサーキットエミュレータ又は前記ホストコンピュータからの出力信号を信号調停回路により選択して前記ユーザ応用システムへ出力する、デバッグ方法。
【請求項１１】
前記インサーキットエミュレータ又は前記ユーザ応用システムからの信号を前記信号調停回路により選択して前記ホストコンピュータに出力する
ことを特徴とする請求項１０記載のデバッグ方法。
【請求項１２】
前記ホストコンピュータ又は前記ユーザ応用システムからの信号を前記信号調停回路により選択して前記インサーキットエミュレータに出力する
ことを特徴とする請求項１０記載のデバッグ方法。
【請求項１３】
ターゲットプログラムを実行してユーザ応用システムを制御するインサーキットエミュレータと、前記ターゲットプログラムをデバッグするホストコンピュータと共にデバッグ装置を構成する信号調停回路であって、
前記ホストコンピュータから指定された優先順位を格納するレジスタと、
前記レジスタに格納された優先順位に基づき、前記インサーキットエミュレータからの信号、又は前記ホストコンピュータからの信号を選択するセレクタとを有する、信号調停回路。
【請求項１４】
前記インサーキットエミュレータからの信号は、前記プログラムに基づき生成した信号であり、前記ホストコンピュータからの信号は、ユーザの指示に基づき生成された信号である
ことを特徴とする請求項１５記載の信号調停回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ応用システムのデバッグをするデバッグ装置、デバッグ方法、及び当該デバッグ装置を構成する信号調停回路に関する。
【背景技術】
【０００２】
一般に、マイクロコンピュータのプログラム開発用エミュレータは、パーソナルコンピュータ（ＰＣ）をホストコンピュータとして接続すると共に、応用システム内のプログラム開発対象であるマイクロコンピュータの代わりに応用システムに接続されている。ホストコンピュータは、エミュレータにターゲットプログラムをロードして実行させデバッグを行うためのデバッガを有している。
【０００３】
使用者は、ホストコンピュータのキーボードや表示装置を通じて、ブレーク条件の設定、ステップ実行、実行トレースデータの収集と表示等、エミュレータが有するデバッグ支援機能を操作し、ターゲットプログラムのデバッグを行うことができる。
【０００４】
従来、例えば特許文献１には、デバッグ対象のプログラムを、タイミングチャートを変更することによって任意に変更することができるシステム開発装置が開示されている。図７は、特許文献１に記載のシステム開発装置を示す図である。このシステム開発装置は、エミュレータ６０３と、エミュレータ６０３に接続され、応用システム６０１とデータの入出力を行なう入出力手段６０２とを有している。
【０００５】
応用システム６０１は、ユーザプログラムを記憶するためのユーザメモリ６０１ａを有する。入出力手段６０２は、キーボード６０２ａ及びマウス６０２ｂ、データを記憶するフレキシブルディスクドライブ６０２ｃ、データの入出力制御を行うＩ／Ｏ６０２ｄ、並びに入出力されるデータの表示を行うディスプレイ６０２ｅから構成されている。
【０００６】
エミュレータ６０３は、スレーブマイコン６０４とマスタマイコン６０５とを有する。スレーブマイコン６０４は、ターゲットマイクロコンピュータの機能を代行するＣＰＵ（Central Processing Unit）であり、マスタマイコン６０５は、デバッグ機能の制御を司るＣＰＵである。このマスタマイコン６０５は、トレース６０６、エミュレーション制御回路６０７、ワークメモリ６０８、フレームメモリ６０９の制御をマスタバス６１０を介して行っている。
【０００７】
トレース６０６は、実行したユーザプログラムをトレースする。エミュレーション制御回路６０７は、全てのプログラムデータにおける信号の入出力を制御する。ワークメモリ６０８は、入出力手段６０２のキーボード６０２ａ又はマウス６０２ｂによりユーザが変換入力したプログラムデータを記憶する。フレームメモリ６０９は、ディスプレイ６０２ｅに表示するデータを記憶する。
【０００８】
スレーブマイコン６０４は、バス６１１を介してトレース６０６、エミュレーション制御回路６０７及びユーザインタフェース６１２に接続されている。さらに、このユーザインタフェース６１２は、ユーザメモリ６０１ａとエミュレータ６０３との間でデータ通信を行うためのものであり、応用システム６１０に接続される。そして、エミュレーション制御回路６０７から発生される信号は、ユーザインタフェース６１２のケーブルを介してユーザメモリ６０１ａに出力される。
【０００９】
入出力手段６０２によってユーザプログラムの実行開始指定を行い、ユーザメモリ６１１ａにメモリされているユーザプログラムを実行させ、その内容をトレース６０６に取得させる。そして、ユーザプログラムが停止した後、ユーザは、ユーザプログラムの実行内容を確認するために、ワークメモリ６０８にメモリされている内容をフレームメモリ６０９に転送し、ディスプレイ６０２ｅに表示させることでディスアセンブル表示を行う。ユーザは、そのタイミングチャートを任意に変更することにより、様々な条件設定によるプログラムデバッグを行う。
【特許文献１】特開平８−３０４８３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、マイクロプロセッサの高性能、高機能、高速度動作が一般的になった現在では、マイクロプロセッサを使用したシステムのタイミング的なデバッグが困難になっている。ユーザは、デバッガの実行と停止を繰り返しながら、デバッグ（内部レジスタ状態、又は内部メモリ状態と、任意の外部端子の信号状態の観測や変更操作）を行う。しかしながら、通常のデバッグ装置は、デバッグの任意の時点における内部レジスタ状態及び内部メモリ状態と、任意の外部端子の信号状態とを正確なタイミングで同時に検出・表示できる構成とはなっておらず、これらを同時に観測したり、変更したしすることができない。
【００１１】
また、上述の特許文献１に記載の技術は、タイミングチャートにより、ユーザプログラムが変更される方式である。よって、ユーザプログラムをデバッグするために、デバッグ対象であるマイコンに対して、ユーザプログラム自体は変更することなく、タイミングチャートを任意に変更することで様々な条件設定を与える、といったことができない。すなわち、特許文献１に記載のシステム開発装置においては、検証のためタイミングチャートを変更したい場合、プログラムを変更する必要がある。また、そのプログラムの変更が容易ではない場合に処理が複雑になるという問題点がある。
【課題を解決するための手段】
【００１２】
本発明にかかるデバッグ装置は、ターゲットプログラムを実行してユーザ応用システムを制御するインサーキットエミュレータと、前記ターゲットプログラムのデバッグを行なうホストコンピュータと、前記インサーキットエミュレータ及び前記ホストコンピュータと接続される信号調停回路とを有し、前記信号調停回路は、前記インサーキットエミュレータ又は前記ホストコンピュータからの信号を選択して前記ユーザ応用システムに出力するものである。
【００１３】
本発明にかかるデバッグ方法は、ターゲットプログラムを実行してユーザ応用システムを制御するインサーキットエミュレータと、前記ターゲットプログラムのデバッグを行なうホストコンピュータとを備えたデバッグ装置におけるデバッグ方法であって、前記インサーキットエミュレータ又は前記ホストコンピュータからの出力信号を信号調停回路により選択して前記ユーザ応用システムへ出力するものである。
【００１４】
本発明においては、エミュレータとユーザ応用システムとの間に、ホストコンピュータと接続された信号調停回路を設ける。したがって、この信号調停回路により、エミュレータからの信号と、ホストコンピュータからの信号とを選択してユーザ応用システムに入力することができる。
【発明の効果】
【００１５】
本発明によれば、ターゲットプログラムを変更することなくその検証が可能となるデバッグ装置及びデバッグ方法を提供することができる。
【発明を実施するための最良の形態】
【００１６】
実施の形態１．
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、マイクロコンピュータ上で動作するソフトウェアのデバッグにおいて、マイコン周辺機能を使用しているプログラムの検証が可能となる新規機能を備えたデバッグ装置に適用したものである。
【００１７】
図１は、本実施の形態にかかるデバッグ装置を示す図である。本実施の形態にかかるデバッグ装置１は、デバッガ１１を搭載したホストコンピュータ１０と、インサーキットエミュレータ（ＩＣＥ）２０と、信号調停回路３１を有する信号ボード３０とを有する。
【００１８】
ここで、本実施の形態において、デバッグ装置によるデバッグとは、ターゲットプログラムの不具合に対するデバッグ、及びユーザ応用システムからの信号観測等により異常検出がされた場合のユーザ応用システムのデバッグの総称とする。また、本実施の形態の説明では、ターゲットプログラムのデバッグと表現するがこれに限るものではなく、ユーザ応用システムのデバッグも対象とすることができる。また、デバッグを支援するソフトウェア（プログラム）のことをデバッガと呼び、ホストコンピュータ内のメモリに格納されてホストコンピュータにより実行される。
【００１９】
なお、ユーザ応用システムはターゲットシステムとも言われるが本明細書においてはユーザ応用システムという。また、ユーザプログラムは、最終的にユーザ応用システムに搭載されるマイクロコンピュータを動作させるためのプログラムであり、デバッグ完了後、マイクロコンピュータの内部または外部のプログラムメモリに搭載される。ターゲットシステム用プログラム、またはターゲットプログラムとも呼ぶことができるが本明細書においてはターゲットプログラムということとする。ターゲットプロプログラムは、本実施の形態にかかるデバッグ装置によるデバッグ時には、ホストコンピュータからインサーキットエミュレータ上のメモリにロードされる。
【００２０】
ホストコンピュータ１０とＩＣＥ２０の間の通信接続は、シリアル通信などで実現される。ホストコンピュータ１０と信号ボード３０の間の通信接続は、シリアル通信などで実現される。ＩＣＥ２０と信号ボード３０の間の信号接続は、ＩＣＥ２０がエミュレートするマイコンが有する全て又は一部の端子の信号接続からなる。信号ボード３０とユーザ応用システム４０の間の信号接続は、ＩＣＥ２０がエミュレートするマイコンが有する全て又は一部の端子の信号接続からなる。
【００２１】
ホストコンピュータは、パーソナルコンピュータ（ＰＣ）等からなり、ユーザ応用システム４０のためのデバック対象となるターゲットプログラムのデバッグを行なうデバッガ１１を有する。また、入出力信号表示・操作部１２を有し、ＩＣＥ２０とユーザ応用システム４０とのやりとりを表示し、操作することができる。
【００２２】
ＩＣＥ２０は、ターゲットプログラムのデバッグ後にユーザ応用システム４０に搭載されるマイクロコンピュータ（マイコン）と同等の機能を実現する回路（エミュレータ）を有し、ターゲットプログラムに基づきマイコンを代行してユーザ応用システム４０を制御する。ターゲットプログラムの実行結果をホストコンピュータ１０に送信し、その結果に基づきデバッガ１１がターゲットプログラムのデバッグを行なう。
【００２３】
信号ボード３０は、ホストコンピュータ１０、ＩＣＥ２０、及びユーザ応用システム４０と接続され、相互の信号のやり取りを可能とする。このため、ホストコンピュータ１０、ＩＣＥ２０、及びユーザ応用システム４０からの各信号が衝突（collision）しないよう調停する信号調停回路３１を有する。信号調停回路３１は、ホストコンピュータ１０、ＩＣＥ２０、及びユーザ応用システム４０に接続され、それらの入出力信号の調停を行なう。詳細は後述するが、ホストコンピュータ１０から設定された優先順位に基づき、いずれの入出力信号が有効になるかを判断し、有効な信号を選択出力する。
【００２４】
例えば、ＩＣＥ２０からの入力信号、ユーザ応用システム４０からの入力信号、ホストコンピュータ１０からの入力信号が、ユーザプログラムの不具合、又はユーザ応用システム４０の不具合により衝突することがある。信号調停回路３１を備えることで、これらの衝突の検出を行い、ユーザの指定した優先順位に従って調停された信号が、デバッガ１１、ＩＣＥ２０、ユーザ応用システム４０への出力信号となる。よって、信号の衝突があっても、ユーザの意図どおりの信号出力により、意図しない信号の出力によりユーザ応用システム４０が破壊されることを防ぎ、デバッガ１１からの信号観測を意図どおり行うことができる。
【００２５】
そして本実施の形態にかかるデバッグ装置１においては、この信号調停回路３１により、ユーザ応用システム４０に対し、ＩＣＥ２０で生成した信号ではなく、ユーザの指示により生成された信号をホストコンピュータ１０から入力させることができる。よって、ターゲットプログラムを書き換えることなく、ユーザ応用システム４０の検証を行なうことができる。なお、本実施の形態においては、ＩＣＥ２０、ホストコンピュータ１０、ユーザ応用システム４０の間の信号を調停する信号調停機能を信号ボード３０の信号調停回路３１により実現するものとして説明するが、ＩＣＥ２０を信号調停機能を有したものとしてもよい。
【００２６】
次に、本実施の形態にかかるデバッグ装置について詳細に説明する。先ず、入出力信号表示部・操作部について説明する。本実施の形態にかかるデバッグ装置１は、デバッガ１１が入出力信号表示・操作部を有するため、ＣＰＵ内部情報と、外部信号情報とを同時に表示することができる。図２は、入出力信号表示・操作部のＧＵＩ（Graphical User Interface）ウィンドウを示す図である。図２に示すように、入出力信号表示・操作部１２は、実行してからの時間軸を表示する時間ライン１２１と、入出力選択したデータ（レジスタ、命令、外部端子）を表示するデータライン１２２とを有する。そして、それらはＩＣＥ２０又はユーザ応用システム４０に出力されたデータを表示する出力データカラム１２３と、ＩＣＥ２０又はユーザ応用システム４０に入力するデータを操作する入力データカラム１２４とからなる。データライン１２２は、ＣＰＵ内部情報のデータ表示をするＣＰＵ内部情報データライン１２２ａと、外部信号のデータ表示をする外部情報データライン１２２ｂからなる。ＣＰＵ内部情報データライン１２２ａには、例えばレジスタやメモリに格納される値や、実行命令が表示される。外部情報データライン１２２ｂには、ＩＣＥ２０やユーザ応用システム４０の各端子の入出力信号が表示される。
【００２７】
ＣＰＵ内部情報データライン１２２ａは、ＩＣＥ２０から通信接続を経由して入出力され、表示及び操作がなされる。外部情報データライン１２２ｂは、信号ボード３０から通信接続を経由して入出力され、表示及び操作がなされる。
【００２８】
この入出力信号表示・操作部１２により、ＩＣＥ２０のデータ出力であるレジスタの状態、実行した命令、メモリの状態と、信号ボード３０の出力である信号データを時系列に同時に表示することができる。よって、デバッガの実行と停止を繰り返しながら、デバッグの任意の時点における内部レジスタ状態及び内部メモリ状態と、任意の外部端子の信号状態とを正確なタイミングで同時に検出・表示でき、これらを同時に観測したり、変更したしすることができる。
【００２９】
次に、信号ボードについて説明する。図３は、信号ボード３０を示すブロック図である。図３に示すように、信号ボード３０は、ホスト入出力コントローラ３１０、メモリ３２０、バッファリング回路３３０、ＤＡ（Digital-to-Analog）変換部３４１、ＡＤ（Analog-to-Digital）変換部３４２、クロック生成回路３４３、クロックサンプリング回路３４４、端子コンフィグレーション回路３５０、信号調停回路３６０、インサーキットエミュレータ入出力コントローラ（ＩＣＥ入出力コントローラ）３７０、ユーザ応用システム入出力コントローラ３８０、及びクロックカウンタ３９０を有する。
【００３０】
ホスト入出力コントローラ３１０は、ホストコンピュータとの入出力を制御するもので、ホストコンピュータに送信するデータを一時的に格納するホスト送信バッファ３１１と、ホストコンピュータからの受信データを一時的に格納するホスト受信バッファ３１２を有する。
【００３１】
メモリ３２０は、ホストコンピュータからの入力データを格納すると共に、ＩＣＥ又はユーザ応用システムからの入力信号をホストコンピュータへの出力データとして格納する。このメモリ３２０は、ディジタルデータの入力用メモリ３２１、ディジタルデータの出力用メモリ３２２、アナログ信号へ変換するためのディジタルデータの入力用メモリ３２３、アナログ信号をディジタル変換したデータの出力用メモリ３２４、クロック信号の入力用メモリ３２５、クロック信号の出力用メモリ３２６を有する。ここで、入力用メモリの入力は、ホストコンピュータからメモリ３２０への入力を指し、出力メモリの出力は、メモリ３２０からホストコンピュータへの出力を示す。
【００３２】
バッファリング回路３３０は、ＩＣＥからのランブレーク状態がラン状態になると動作を開始し、ブレーク状態になると動作を停止し、クロックカウンタ３９０がカウントアップするタイミングでバファリングを行う。このバッファリング回路３３０は、ディジタル信号の入力バッファリングを行うバッファリング回路３３１、ディジタル信号の出力バッファリングを行うバッファリング回路３３２、アナログ信号の入力バッファリングを行うバッファリング回路３３３、アナログ信号の出力バッファリングを行うバッファリング回路３３４、クロック信号の入力バッファリングを行うバッファリング回路３３５、クロック信号の出力バッファリングを行うバッファリング回路３３６を有する。このバッファリング回路３３０を有することで、ＩＣＥ２０からのランブレーク状態の入力により、バッファリングの動作の開始又は停止をすることができる。
【００３３】
ＤＡ変換部３４１は、バッファリング回路３３３からのディジタル値をアナログ信号に変換する。ＡＤ変換部３４２は、端子コンフィグレーション回路３５０からのアナログ信号をディジタル値に変換する。
【００３４】
クロック生成回路３４３は、バッファリング回路３３５からの周波数値のクロック信号を生成する。クロック生成回路３４３は、周波数という数値データ、例えば２０ＭＨｚという数値(２０＊１０００＊１０００)から２０ＭＨｚのクロック信号を生成する。
【００３５】
クロックサンプリング回路３４４は、端子コンフィグレーション回路３５０からのクロック信号のサンプルリングを行い、周波数値を算出する。クロックサンプリング回路３４４は、サンプリングを行うことで、クロック信号を数値に変換する。
【００３６】
端子コンフィグレーション回路３５０は、ホスト入出力コントローラ３１０の設定によって、ＩＣＥの各端子への入出力信号を、ディジタル信号、アナログ信号、又はクロック信号に割り当てる。この端子コンフィグレーション回路３５０は、バッファリング回路３３１からのＬ（Ｌは１以上の整数）個の入力端子（入力信号ＩＤ１，ＩＤ２,・・・，ＩＤｌ・・・，ＩＤＬ）、ＤＡ変換部３４１からのＭ（Ｍは１以上の整数）個の入力端子（入力信号ＩＡ１，ＩＡ２,・・・、ＩＡｍ，・・・，ＩＡＭ）、クロック生成回路３４３からＮ（Ｎは１以上の整数）個の入力端子（入力信号ＩＣ１，ＩＣ２,・・・，ＩＣｎ，・・・，ＩＣＮ）を、信号調停回路３６０へのＰ（Ｐは１以上の整数）個の入力端子（入力信号ＩＢ１，ＩＢ２，・・・，ＩＢｐ，・・・，ＩＢＰ）と接続する。すなわち、ホスト入出力コントローラ３１０からのコンフィグレーションに従って、入力端子（入力信号ＩＢｐ）と接続する端子を各端子（ＩＤｌ、ＩＡｍ、ＩＣｎ）のうちから選択する。
【００３７】
端子コンフィグレーション回路３５０は、同様に出力信号についても同様の処理をおこなう。すなわち、信号調停回路３６０からのＰ個の出力端子（出力信号ＯＢ１，ＯＢ２，・・・，ＯＢｐ，・・・，ＯＢＰ）を、バッファリング回路３３２へのＬ個の出力端子（出力信号ＯＤ１，ＯＤ２，・・・，ＯＤｌ，・・・，ＯＤＬ）、ＡＤ変換部３４２へのＭ個の出力端子（出力端子ＯＡ１，ＯＡ２，・・・，ＯＡｍ，・・・，ＯＡＭ）、クロックサンプリング回路３４４へのＮ個の出力端子（出力信号ＯＣ１，ＯＣ２，・・・，ＯＣｎ，・・・，ＯＣＮ）と接続する。つまり、ホスト入出力コントローラ３１０からのコンフィグレーションに従って、出力端子（出力信号ＯＢｐ）と接続する端子を、各端子（ＯＤｌ、ＯＡｍ、ＯＣｎ）のうちから選択して接続する。
【００３８】
信号調停回路３６０は、ホスト入出力コントローラ３１０が設定した優先順位に基づき、ホストコンピュータとＩＣＥとユーザ応用システムへの出力信号を決定する。本例においては、ホストコンピュータからの入力信号、ＩＣＥからの入力信号、ユーザ応用システムからの入力信号の順の優先順位とし、ホストコンピュータからの入力信号を優先的に出力させる。なお、優先順位はホストコンピュータから任意の順位に設定することができる。具体的にはホスト入出力コントローラ３１０と信号線６７を介して設定される。
【００３９】
ＩＣＥ入出力コントローラ３７０は、ＩＣＥ２０との入出力を制御する。ＩＣＥ入出力コントローラ３７０は、ホスト入出力コントローラ３１０からの設定に従い、ＩＣＥと接続する各端子をマイコン側（ＩＣＥ２０側）からみて、入力端子として扱うか、出力端子として扱うか、又は入出力端子として扱うかの設定を行う。端子が入力端子として設定された場合、信号調停回路３６０からＩＣＥ２０への向きの信号のみ出力させる。端子が出力端子として設定された場合、ＩＣＥ２０から信号調停回路３６０への向きの信号のみ入力させる。端子が入出力端子として設定された場合、ＩＣＥ２０から信号調停回路３６０への向きと、信号調停回路３６０からＩＣＥ２０への向きの両方の信号の入出力を行わせる。
【００４０】
ユーザ応用システム入出力コントローラ３８０は、ユーザ応用システム４０との入出力を制御する。ユーザ応用システム入出力コントローラ３８０は、ホスト入出力コントローラ３１０からの設定に従い、ユーザ応用システム４０と接続する各端子を信号調停回路３６０側からみて、入力端子として扱うか、出力として扱うか、又は入出力端子として扱うかの設定を行う。端子が入力端子として設定された場合、ユーザ応用システム４０から信号調停回路３６０への向きの信号のみ入力させる。端子が出力端子として設定された場合、信号調停回路３６０からユーザ応用システム４０への向きの信号のみ出力させる。入出力端子として設定された場合、ユーザ応用システム４０から信号調停回路３６０への向きと、信号調停回路３６０からユーザ応用システム４０への向きの両方の信号の入出力を行わせる。
【００４１】
次に、この信号ボード３０のホスト入出力コントローラ３１０の動作について説明する。図４は、ホスト入出力コントローラの動作を示すフローチャートである。ホスト入出力コントローラ３１０は、ホストコンピュータから送られたデータの種類に応じて、データをメモリ３２０、端子コンフィグレーション回路３５０、又は信号調停回路３６０に送る。すなわち、信号データであればメモリ３２０へ送り、端子コンフィグレーション回路３５０のコンフィグレーション用のデータ（端子コンフィグレーションデータ）であれば端子コンフィグレーション回路３５０へ送り、信号調停回路３６０のコンフィグレーション用のデータ（信号コンフィグレーションデータ）であれば信号調停回路３６０へ送る。
【００４２】
具体的には、図４に示すように、先ず、ホスト入出力コントローラ３１０は、ホストと送受信可能か判定を行い（ステップＳ１）、送受信可能ならステップＳ２に進む。送受信不可の場合はステップＳ１に戻る。送受信可能であった場合、出力用メモリ３２２、３２４、３２６における信号データの有無の判定を行い、信号データがあるならステップＳ３へ進む。出力用メモリ３２２、３２４、３２６に信号データがある場合、ホスト送信バッファ３１１に空きがあるか否かの判定を行う。空きがあれば、出力用メモリ３２２、３２４、３２６のデータをホスト送信バッファ３１１に転送する（ステップＳ４）。そして、転送したデータを出力用メモリ３２２、３２４、３２６から削除する（ステップＳ５）。
【００４３】
ホスト送信バッファ３１１から転送データを削除した後、及びステップＳ２において、出力用メモリ３２２、３２４、３２６に信号データがなかった場合、ホストコンピュータと送受信を行う（ステップＳ６）。そして、ホストコンピュータからの受信データの有無を判定し（ステップＳ７）、受信データがあれば、受信データが信号データか否かの判定を行う（ステップＳ８）。受信データが信号データであれば、信号データをメモリ３２０に転送し（ステップＳ９）、ステップＳ１に戻る。一方、受信データが信号データでなければ、調停コンフィグレーションデータか否かの判定を行う（ステップＳ１０）。調停コンフィグレーションデータ（優先順位設定データ）であれば調停コンフィグレーションデータを信号調停回路３６０に転送して、ステップＳ１に戻る。
【００４４】
さらに、受信データが調停コンフィグレーションデータではない場合、端子コンフィグレーションデータか否かの判定を行い（ステップＳ１２）、端子コンフィグレーションデータであれば端子コンフィグレーションデータを端子コンフィグレーション回路３５０に転送して、ステップＳ１に戻る。
【００４５】
このように、ホスト入出力コントローラ３１０は、ホストからの受信データが信号データであるか、調停コンフィグレーションデータであるか、端子コンフィグレーションデータであるかを判定し、データの種類に応じてメモリ３２０、端子コンフィグレーション回路３５０、信号調停回路３６０へ転送している。
【００４６】
次に、信号調停回路３６０の詳細について説明する。図５は、信号調停回路を示すブロック図である。図５に示すように、信号調停回路３６０には、端子コンフィグレーション回路３５０の出力６１（ＩＢｐ：ｐ＝１〜Ｐ）、ユーザ応用システム入出力コントローラ３８０の出力６３（ＯＸｐ：ｐ＝１〜Ｐ)、及びＩＣＥ入出力コントローラ３７０からの出力６２（ＯＩｐ：ｐ＝１〜Ｐ)が入力され、更にホスト入出力コントローラ３１０から優先順位の設定のために信号線６７が入力される。
【００４７】
信号調停回路３６０は、デバッグ対象となるマイコンの端子数に等しいＰ（Ｐは１以上の整数）個の信号調停ブロック５０(５０ｐ：ｐ＝１〜Ｐ)を有する。すなわち、上述のようにＩＣＥ入出力コントローラ３７０からの信号数、ユーザ応用システム入出力コントローラ３８０からの信号数はそれぞれＰ個となっている。
【００４８】
各信号調停ブロック５０は、優先順位レジスタ部５１、信号セレクタ５２〜５４、信号衝突検出回路５５、信号ゲート５６、５７を有する。優先順位レジスタ部５１は、優先順位レジスタ５１１〜５１３を有し、優先順位レジスタ５１１は信号セレクタ５２への出力、優先順位レジスタ５１２は信号セレクタ５３への出力、優先順位レジスタ５１３は信号セレクタ５４への出力を有する。優先順位レジスタ部５１の優先順位レジスタ５１１〜５１３には、ホストコンピュータから信号線６７を介して送られた優先順位の設定データが格納される。
【００４９】
信号セレクタ５２には、信号ＩＢｐ（ｐ＝１〜Ｐ）と、信号ＯＸｐ（ｐ＝１〜Ｐ）と、信号ＯＩｐ（ｐ＝１〜Ｐ）が入力され、信号ＩＢｐ、ＯＸｐ、ＯＩｐをそのまま信号セレクタ５３へ出力する。
【００５０】
信号セレクタ５２は、優先順位レジスタ５１１から入力される優先順位に従って、信号ＩＢｐ、ＯＸｐ、ＯＩｐのうちから優先順位が最も高い信号を選択し、信号ゲート５６へ出力する。信号セレクタ５３は、優先順位レジスタ５１２から入力される優先順位に従って、信号ＩＢｐ、ＯＸｐ、ＯＩｐのうちから優先順位が２番目に高い信号を選択して、信号ゲート５６へ出力する。信号セレクタ５４は、優先順位レジスタ５１３から入力される優先順位によって、信号ＩＢｐ、ＯＸｐ、ＯＩｐのうちから優先順位が３番目に高い信号を選択して、信号ゲート５７へ出力する。
【００５１】
信号ゲート５６は、信号セレクタ５２からの出力がハイインピーダンス（ＨｉＺ）でなければ、信号セレクタ５２からの出力を信号ゲート５７へ出力し、信号セレクタ５２からの出力がＨｉＺなら、信号セレクタ５３からの出力を信号ゲート５７へ出力する。
【００５２】
信号ゲート５７は、信号ゲート５６からの出力がＨｉＺでなければ、信号ゲート５６から出力を出力信号ＯＨｐとして、信号ゲート５６からの出力がＨｉＺなら、信号セレクタ５４からの出力を出力信号ＯＨｐとする。出力信号ＯＨｐは端子コンフィグレーション回路３５０への出力６４、ＩＣＥ入出力コントローラ３７０への出力６５、ユーザ応用システム入出力コントローラ３８０への出力６６となる。
【００５３】
信号衝突検出回路５５は、信号ＩＢｐ、ＯＩｐ、ＯＸｐの信号の衝突の検出を行い、ホスト入出力コントローラ３１０へ出力する。衝突の検出は、信号ＩＢｐ、ＯＩｐ、ＯＸｐの電位のうち、ＨｉＺを除いて、２つ以上の信号が０か１である場合に、衝突したと判断することができる。衝突検出結果を信号線６８を介してホスト入出力コントローラ３１０に出力することで、ユーザに衝突があったことを知らせる。この場合、例えば、ホストコンピュータ１０は、タイミングチャート上に衝突があったことがわかるよう表示する。
【００５４】
本実施の形態においては、ＩＣＥ２０の全端子、及びユーザ応用システム４０の全端子を、ホストコンピュータ１０に接続された信号ボード３０と接続する。そして、信号ボード３０にて、その入出力データをメモリ３２０にバッファリングしホスト入出力とすることができる。すなわち、ディジタル信号、アナログ信号、クロック信号の信号入出力をホストコンピュータ１０上のデバッガ１１から行なうことができるため、ユーザは、ターゲットプログラムを変更することなく、所望の信号入力を行なってターゲットプログラムの検証を行なうことができる。
【００５５】
したがって、ユーザ応用システム４０に対する入出力のタイミング、及びＩＣＥ２０に対する入出力タイミングをホストコンピュータ１０からの出力により任意に変更することでターゲットプログラムの変更なしに制御することができるため、デバッグ効率を上げることができる。また、ユーザ応用システム４０ができる前に、ユーザ応用システム４０を接続せずに、信号ボード３０を介してホストコンピュータとＩＣＥ２０との間で必要な信号を入出力させることによりＩＣＥ２０に搭載した内蔵周辺機能を使用した統合検証ができるようになる。
【００５６】
さらに、ユーザ応用システム４０に接続する前に、ターゲットプログラムの出力タイミングを検証することができるので、ターゲットプログラムのバグによりＩＣＥ２０からユーザ応用システム４０へ誤った信号が出力されて信号の衝突が発生しユーザ応用システム４０へ物理的ダメージを与えるといった従来の問題を防止することができる。さらにまた、ユーザ応用システム４０の接続後であっても、信号調停回路３６０の信号調停により信号衝突を防止することも可能となる。
【００５７】
また、信号ボード３０の信号調停回路３６０が、指定された優先順位で入出力信号の調整を行うために、ホストコンピュータ１０から指定された優先順位を保持するレジスタと、そのレジスタに従って、ＩＣＥ２０からの入力信号、ユーザ応用システム４０からの入力信号、ホストコンピュータ１０からの入力信号を優先順位順に選択するセレクタを有する。これにより、信号ボード３０は、ＩＣＥ２０からの入力信号、ユーザ応用システム４０からの入力信号、ホストコンピュータ１０からの入力信号を指定された優先順位で調停することができる。
【００５８】
さらに、入出力信号表示・操作部１２を有するので、ＩＣＥ２０のデータ出力であるレジスタの状態、実行した命令、メモリの状態と、信号ボード３０の出力である信号データを同時に、時系列に表示することができる。
【００５９】
実施の形態２．
次に、本発明の実施の形態２について説明する。本実施の形態においては、信号ボードの信号調停回路にプルアップ抵抗／プルダウン抵抗設定回路を設けた点が実施の形態１とは異なる。その他の点は、実施の形態１と同様である。図６は本発明の実施の形態２にかかる信号ボードを示すブロック図である。図６に示す本実施の形態において、図３に示す実施の形態１と同一の構成要素には同一の符号を付してその詳細な説明を省略する。
【００６０】
信号調停回路３６０からの出力信号ＯＨｐ(ｐ＝１〜Ｐ)を、プルアップ抵抗／プルダウン抵抗設定回路３６１を通して、ユーザ応用システム入出力コントローラ３８０、ＩＣＥ入出力コントローラ３７０、端子コンフィグレーション回路３５０に出力する。プルアップ抵抗／プルダウン抵抗設定回路３６１では、ホスト入出力コントローラ３１０からのプルアップ抵抗／プルダウン抵抗の設定にしたがって、プルアップ抵抗、またプルダウン抵抗の接続又は何も接続せずに、ユーザ応用システム入出力コントローラ３８０、ＩＣＥ入出力コントローラ３７０、端子コンフィグレーション回路３５０に出力する。
【００６１】
プルアップ抵抗／プルダウン抵抗のエミュレーションができるため、プルアップ抵抗／プルダウン抵抗を用いているユーザ応用システムにおいても、評価ボードなどのユーザ応用システムができる前に、内蔵周辺機能を使った統合検証ができるようになる。
【００６２】
本実施の形態においては、上述の実施の形態と同様の効果を奏すると共に、プルアップ抵抗／プルダウン抵抗設定回路を備えるため、プルアップ抵抗／プルダウン抵抗のエミュレーションを行なうことができる。よって、プルアップ抵抗／プルダウン抵抗を使用しているユーザ応用システムにおいても、評価ボードなどユーザ応用システムができる前に内蔵周辺機能を使用した統合検証を行なうことができる。
【００６３】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態１にかかるデバッグ装置を示す図である。
【図２】本発明の実施の形態１にかかるデバッグ装置における入出力信号表示・操作部のＧＵＩウィンドウを示す図である。
【図３】本発明の実施の形態１にかかるデバッグ装置における信号ボードを示すブロック図である。
【図４】本発明の実施の形態１にかかるデバッグ装置におけるホスト入出力コントローラの動作を示すフローチャートである。
【図５】本発明の実施の形態１にかかるデバッグ装置における信号調停回路を示すブロック図である。
【図６】本発明の実施の形態２にかかるデバッグ装置における信号ボードを示すブロック図である。
【図７】特許文献１に記載のシステム開発装置を示す図である。
【符号の説明】
【００６５】
１０  ホストコンピュータ
１１  デバッガ
１２  入出力信号表示・操作部
３０  信号ボード
３１  信号調停回路
４０  ユーザ応用システム
５０、５０ｐ  信号調停ブロック
５１  優先順位レジスタ部
５２−５４  信号セレクタ
５５  信号衝突検出回路
５６、５７  信号ゲート
１２１  時間ライン
１２２  データライン
１２２ｂ  外部情報データライン
１２２  外部信号情報データライン
ＣＰＵ内部情報データライン１２２ａ
１２３  出力データカラム
１２４  入力データカラム
３１０  ホスト入出力コントローラ
３１１  ホスト送信バッファ
３１２  ホスト受信バッファ
３２０  メモリ
３２１、３２３、３２５  入力用メモリ
３２２、３２４、３２６  出力用メモリ
３３０−３１６  バッファリング回路
３４１  ＤＡ変換部
３４２  ＡＤ変換部
３４３  クロック生成回路
３４４  クロックサンプリング回路
３５０  端子コンフィグレーション回路
３６０  信号調停回路
３６１  プルダウン抵抗設定回路
３７０  ＩＣＥ入出力コントローラ
３８０  ユーザ応用システム入出力コントローラ
３９０  クロックカウンタ
５１１−５１３  優先順位レジスタ
【図１】
2008084088.tif 000003
【図２】
2008084088.tif 000004
【図３】
2008084088.tif 000005
【図４】
2008084088.tif 000006
【図５】
2008084088.tif 000007
【図６】
2008084088.tif 000008
【図７】
2008084088.tif 000009