(57)【要約】【課題】デバッグ対象となるデバッグ対象装置において、デバッガによるプログラムの一時停止時の受信データによるオーバーランエラーの発生を防止し、デバッガによるプログラムの一時停止及び再開を繰り返し行うこと。【解決手段】本発明に係るデバッグ方法は、中央演算処理装置３１及びＤＭＡコントローラを有し、外部機器２０とデータの送受信を行なうデバッグ対象装置３０をデバッガ１０によりデバックするデバッグ方法であって、デバッガ１０がデバッグ対象装置３０に、当該デバッグ対象装置３０で動作中のプログラムを停止させるためのブレーク指示信号を送信し、ブレーク指示信号を受信した中央演算処理装置３１の指示に基づき、又はデバッガ１０から直接送信されたブレーク指示信号に基づき、ＤＭＡコントローラが外部機器２０への送信処理を停止し、デバッガ１０又は外部機器２０が外部機器２０のデバッグ対象装置３０へのデータ送信処理を停止させる。【選択図】図１
2009059292.tif 000002
【特許請求の範囲】
【請求項１】
中央演算処理装置及びＤＭＡコントローラを有し、外部機器とデータの送受信を行なうデバッグ対象装置をデバッガによりデバックするデバッグ方法であって、
前記デバッガが前記デバッグ対象装置に、当該デバッグ対象装置で動作中のプログラムを停止させるためのブレーク指示信号を送信し、
前記ブレーク指示信号を受信した前記中央演算処理装置の指示に基づき、又は前記デバッガから直接送信された前記ブレーク指示信号に基づき、前記ＤＭＡコントローラが前記外部機器への送信処理を停止し、
前記デバッガ又は前記外部機器が、前記外部機器の前記デバッグ対象装置へのデータ送信処理を停止させるデバッグ方法。
【請求項２】
前記外部機器が前記デバッグ対象装置から動作の不具合を示す不正データを受信した場合、当該外部機器が不正データ受信信号を前記デバッガに送信し、
前記デバッガが、前記不正データ受信信号に基づき、前記ブレーク指示信号の送信、及び前記外部機器から前記デバッグ対象装置へのデータ送信処理の停止を行い、
前記ブレーク指示信号を受信した前記中央演算処理装置の指示に基づき、又は前記デバッガから直接送信された前記ブレーク指示信号に基づき、前記ＤＭＡコントローラが前記外部機器への送信処理を停止する
ことを特徴とする請求項１記載のデバッグ方法。
【請求項３】
前記外部機器が前記デバッグ対象装置から動作の不具合を示す不正データを受信した場合、当該外部機器が不正データ受信信号を前記デバッガに送信すると供に、前記デバッグ対象装置へのデータ送信処理を停止し、
前記デバッガが、前記不正データ受信信号に基づいて、前記ブレーク指示信号を送信し、
前記ブレーク指示信号を受信した前記中央演算処理装置の指示に基づき、又は前記デバッガから直接送信された前記ブレーク指示信号に基づき、前記ＤＭＡコントローラが前記外部機器への送信処理を停止する
ことを特徴とする請求項１記載のデバッグ方法。
【請求項４】
前記デバッガは、前記ＤＭＡコントローラに対してＤＭＡ送信要求を行う通信コントローラの前記ＤＭＡ送信要求をマスクすることにより、前記ＤＭＡコントローラの送信処理の停止を行う
ことを特徴とする請求項１記載のデバッグ方法。
【請求項５】
中央演算処理装置及びＤＭＡコントローラを有するデバッグ対象装置のデバッグを行うデバッガであって、
前記デバッガは、前記デバッグ対象装置と信号の送受信を行う送受信部を有し、
前記送受信部は、前記デバッグ対象装置で動作しているプログラムを停止させるためのブレーク指示信号を前記デバッグ対象装置に送信し、送信停止信号を前記デバッグ対象装置とデータの送受信を行う外部機器に送信するものであって、
前記ブレーク指示信号により前記デバッグ対象装置の前記ＤＭＡコントローラから外部機器へのデータ送信処理を停止させ、前記送信停止信号により前記外部機器から前記デバッグ対象装置へのデータの送信処理を停止させるデバッガ。
【請求項６】
前記送受信部は、前記外部機器から、前記デバッグ対象装置の動作の不具合を示す不正データを受信した場合、前記ブレーク指示信号の送信及び前記送信停止信号の送信を行う
ことを特徴とする請求項５記載のデバッガ。
【請求項７】
中央演算処理装置及びＤＭＡコントローラを有するデバッグ対象装置と、前記デバッグ対象装置のデバッグを行うデバッガと、前記デバッグ対象装置とデータの送受信を行う外部機器とを有し、
前記デバッガが前記デバッグ対象装置に、当該デバッグ対象装置で動作中のプログラムを停止させるためのブレーク指示信号を送信し、
前記ブレーク指示信号を受信した前記中央演算処理装置の指示に基づき、又は前記デバッガから直接送信された前記ブレーク指示信号に基づき、前記ＤＭＡコントローラが前記外部機器への送信処理を停止し、
前記デバッガ又は前記外部機器が、前記外部機器の前記デバッグ対象装置へのデータの送信処理を停止させるデバッグシステム。
【請求項８】
前記外部機器が、前記デバッグ対象装置から動作の不具合を示す不正データを受信した場合、当該外部機器は、不正データ受信信号を前記デバッガに送信し、
前記デバッガが、前記不正データ受信信号の受信に基づき、前記ブレーク指示信号の送信、及び前記外部機器から前記デバッグ対象装置へのデータの送信処理の停止を行い、
前記ブレーク指示信号を受信した前記中央演算処理装置の指示に基づき、又は前記デバッガから直接送信された前記ブレーク指示信号に基づき、前記ＤＭＡコントローラが前記外部機器への送信処理を停止する
ことを特徴とする請求項７記載のデバッグシステム。
【請求項９】
前記外部機器が、前記デバッグ対象装置から動作の不具合を示す不正データを受信した場合、当該外部機器が不正データ受信信号を前記デバッガに送信すると供に、前記デバッグ対象装置へのデータの送信処理を停止し、
前記デバッガが、前記不正データ受信信号の受信に基づいて、前記ブレーク指示信号を送信し、
前記ブレーク指示信号を受信した前記中央演算処理装置の指示に基づき、又は前記デバッガから直接送信された前記ブレーク指示信号に基づき、前記ＤＭＡコントローラが前記外部機器への送信処理を停止する
ことを特徴とする請求項７記載のデバッグシステム。
【請求項１０】
前記デバッガは、前記デバッグ対象装置が有する前記ＤＭＡコントローラに対してＤＭＡ送信要求を行う通信コントローラの前記ＤＭＡ送信要求をマスクすることにより、前記ＤＭＡコントローラの送信処理の停止を行う
ことを特徴とする請求項７記載のデバッグシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ対象となるデバッグ対象装置のデバッグを行うデバッグ方法、デバッガ、及びデバッグシステムに関する。
【背景技術】
【０００２】
システムＬＳＩ（Large Scale Integration）等のデバッグを行う半導体集積回路が特許文献１に開示されている。図７に特許文献１に記載の半導体集積回路を示す。図７に示す半導体集積回路９０は、プロセッサ９１、ＤＭＡ（Direct Memory Access）コントローラ９２及び共有資源９３を有する。プロセッサ９１とＤＭＡコントローラ９２はバス９４を介して、例えばメモリ等の共有資源９３に接続される。この半導体集積回路９０は、当該半導体集積回路９０のデバッグを行うデバッガ装置９５に接続される。そして、デバッガ装置９５からのデバッグ指示に基づいてプロセッサ９１及びＤＭＡコントローラ９２が動作し、デバッグ結果をデバッガ装置９５に出力する。また、半導体集積回路９０は、デバッガ装置９５からブレーク指示信号が入力されると、プロセッサ９１及びＤＭＡコントローラ９２の動作を一時停止させる。
【特許文献１】特開２００６−１１３７１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載の半導体集積回路９０は、例えば、半導体集積回路９０の外部に接続される外部機器と半導体集積回路９０との間でデータの送受信を行うシステムのデバッグの際に、半導体集積回路９０内でエラーが発生する場合がある。すなわち、例えば、半導体集積回路９０に外部機器等を接続し、半導体集積回路９０で動作するシステムのデバッグを行う場合、デバッガ装置９５から半導体集積回路９０にブレーク信号が送信される。このブレーク信号に基づいてプロセッサ９１等の動作を停止させるが、特許文献１に記載の半導体集積回路９０は、半導体集積回路９０のブレークの際に、外部機器をブレークさせる手段を有していない。このため、外部機器は動作し続ける。この場合、ブレーク信号によって動作が停止している半導体集積回路９０が外部機器からデータを受信すると、半導体集積回路９０では、受信ｆｉｆｏ等でオーバーランエラーを起こし、一時停止した後のプログラムの再開が正常に行えないという問題点がある。
【課題を解決するための手段】
【０００４】
上述した課題を解決するために、本発明に係るデバッグ方法は、中央演算処理装置及びＤＭＡコントローラを有し、外部機器とデータの送受信を行なうデバッグ対象装置をデバッガによりデバックするデバッグ方法であって、前記デバッガが前記デバッグ対象装置に、当該デバッグ対象装置で動作中のプログラムを停止させるためのブレーク指示信号を送信し、前記ブレーク指示信号を受信した前記中央演算処理装置の指示に基づき、又は前記デバッガから直接送信された前記ブレーク指示信号に基づき、前記ＤＭＡコントローラが前記外部機器への送信処理を停止し、前記デバッガ又は前記外部機器が、前記外部機器の前記デバッグ対象装置へのデータ送信処理を停止させることを特徴とする。
【０００５】
上述した課題を解決するために、本発明に係るデバッガは、中央演算処理装置及びＤＭＡコントローラを有するデバッグ対象装置のデバッグを行うデバッガであって、前記デバッガは、前記デバッグ対象装置と信号の送受信を行う送受信部を有し、前記送受信部は、前記デバッグ対象装置で動作しているプログラムを停止させるためのブレーク指示信号を前記デバッグ対象装置に送信し、送信停止信号を前記デバッグ対象装置とデータの送受信を行う外部機器に送信するものであって、前記ブレーク指示信号により前記デバッグ対象装置の前記ＤＭＡコントローラから外部機器へのデータ送信処理を停止させ、前記送信停止信号により前記外部機器から前記デバッグ対象装置へのデータの送信処理を停止させることを特徴とする。
【０００６】
本発明においては、デバッグ対象装置にブレーク指示信号を送信する際に、外部機器のデータ送信処理を停止させることにより、デバッグ対象装置及び外部機器の動作を停止させることができる。また、外部機器がデバッグ対象装置から不正データを受信したと判断した場合、デバッガに不正データ受信信号を送信することで、デバッガからデバッグ対象装置にブレーク指示信号を送信し、不正データ受信信号に基づいてデバッガ又は外部機器が外部機器の送信を停止させることにより、デバッグ対象装置及び外部機器の動作を停止させることができる。
【発明の効果】
【０００７】
本発明にかかるデバッグ方法によれば、デバッグ対象となるデバッグ対象装置において、デバッガによるプログラムの一時停止時の受信データによるオーバーランエラーの発生を防止し、デバッガによるプログラムの一時停止及び再開を繰り返し行うことができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。図１に本実施の形態にかかるデバッグシステムのブロック図を示す。図１に示すデバッグシステム１は、デバッガ１０及び外部機器２０を有する。本実施の形態にかかるデバッグシステム１では、デバッグ対象装置３０のデバッグを行うこととする。
【０００９】
まず、デバッガ１０及び外部機器２０の構成について詳細に説明する。デバッガ１０は、外部機器２０と信号等の送受信を行う出力端子１１、入力端子１２、及び送受信部１３を有する。送受信部１３は、出力端子１１及び入力端子１２を介して、外部機器２０と信号の送受信を行う。また、送受信部１３は、デバッグ対象装置３０と信号の送受信を行う。デバッガ１０は、ユーザの指示に基づいて、例えば、デバッグ対象装置３０に当該デバッグ対象装置３０のプログラムを停止させるブレーク指示信号を送信する際に、外部機器２０に当該外部機器２０の送信動作を停止させる送信停止信号を送信する。このとき、デバッガ１０は、送受信部１３から出力端子１１を介して後述する外部機器２０の入力端子２２に、送信停止信号を送信する。これにより、デバッグ対象装置３０のプログラムを停止させる際に、外部機器２０の送信動作を停止させることができる。また、デバッガ１０は、ユーザの指示に基づいて、デバッグ対象装置３０にプログラム再開信号及び外部機器２０に送信再開信号を送信する。
【００１０】
次に、外部機器２０について説明する。外部機器２０は、デバッグ対象装置３０のデバッグを行う場合、当該デバッグ対象装置３０を実際に使用する際に接続される装置等の代わりに接続される装置である。そして、外部機器２０には、当該デバッグ対象装置３０に送信されるデータが評価用データとして格納されている。また、外部機器２０には、デバッグ対象装置３０が送信する予定のデータが、比較のために予め格納されている（以下、予測データという。）。そして、デバッグ対象装置３０のプログラムが実行され、デバッグ対象装置３０から出力されるデータ（以下、実行データという。）と、予測データとを比較してデバッグ対象装置３０のプログラムが正常に動作しているか否かを判断する。以下に、外部機器２０の構成について詳細に説明する。
【００１１】
外部機器２０は、出力端子２１、入力端子２２、データ送信部２３ａ、及びデータ受信部２３ｂを有する。また、外部機器２０は、デバッグ対象装置３０で受信される評価用データが格納されている格納部（図示せず）、及びデバッグ対象装置３０から送信される予定の予測データが格納されている判断部（図示せず）を有する。データ送信部２３ａは、格納部に格納されている評価用データを、後述するデバッグ対象装置３０の受信ｆｉｆｏ３５ｂに送信する。また、入力端子２２を介してデバッガ１０の送受信部１３から送信される信号を受信する。データ受信部２３ｂは、デバッグ対象装置３０が送信する実行データを受信する。判断部には、予測データが格納されている。そして、予測データと、データ受信部２３ｂが受信する実行データとが一致しているか否かを判断する。また、不正なデータを受信したと判断した場合、出力端子２１を介してデバッガ１０に不正データ受信信号を送信する。
【００１２】
次に、デバッグ対象装置３０の構成について説明する。デバッグ対象装置３０は、例えば、ＣＰＵ（Central Processing Unit）３１、メモリ３２、送信用ＤＭＡＣ（Direct Memory Access Controller）３３、受信用ＤＭＡＣ３４、及び通信コントローラ３５を有する。ＣＰＵ３１は、デバッガ１０からプログラムの開始信号、ブレーク指示信号、及び再開信号等を受信する。メモリ３２は、例えば、送信バッファ３２ａ及び受信バッファ３２ｂを有する。また、図示せぬ格納部にデバッグ対象装置３０を動作させるプログラム等が格納されている。送信用ＤＭＡＣ３３は、通信コントローラ３５の後述する送信ｆｉｆｏ３５ａからのＤＭＡ送信要求信号に基づき（図示せず）、送信バッファ３２ａからデータを読み、送信ｆｉｆｏ３５ａにデータを書き込む。ここで、送信用ＤＭＡＣ３３の送信処理は、送信用ＤＭＡＣ３３からデータを送信ｆｉｆｏ３５ａに送信し、さらに送信ｆｉｆｏ３５ａからデータを外部機器２０に送信することをいう。これにより、実行データを外部機器２０のデータ受信部２３ｂに送信する。受信用ＤＭＡＣ３４は、通信コントローラ３５の後述する受信ｆｉｆｏ３５ｂからのＤＭＡ受信要求信号に基づき、受信ｆｉｆｏ３５ｂからデータを読み、受信ｆｉｆｏ３５ｂにデータを書き込む。これにより、評価用データを受信バッファ３２ｂに送信する。通信コントローラ３５は、例えば送信ｆｉｆｏ３５ａ及び受信ｆｉｆｏ３５ｂを有する。送信ｆｉｆｏ３５ａは、ＣＰＵ３１がプログラム開始信号等を受信すると、プログラムに基づいてＣＰＵ３１が通信コントローラ３５の設定を行うことで動作を開始し、送信用ＤＭＡＣ３３にＤＭＡ送信要求信号を送信し、送信用ＤＭＡＣ３３から送信される実行データを受信し、外部機器２０に送信する。受信ｆｉｆｏ３５ｂは、外部機器２０から送信される評価用データを受信し、受信用ＤＭＡＣ３４にＤＭＡ受信要求信号を送信する。そして、評価用データが受信用ＤＭＡＣ３４に受信される。
【００１３】
次に、本実施の形態にかかるデバッグシステム１の動作について図２に示すフローチャートを用いて説明する。まず、デバッガ１０、外部機器２０、及びデバッグされるデバッグ対象装置３０がそれぞれ接続され、ユーザがデバッガ１０にプログラム開始信号を入力する（ステップＳ２１）。そして、デバッガ１０の送受信部１３からデバッグ対象装置３０のＣＰＵ３１にプログラム開始信号が送信されると供に、外部機器２０に送信開始信号が送信される（ステップＳ２２）。外部機器２０は、送信開始信号の受信に基づいて、データ送信部２３ａからデバッグ対象装置３０の受信ｆｉｆｏ３５ｂへの評価用データの送信を開始する。また、デバッグ対象装置３０では、送信ｆｉｆｏ３５ａのＤＭＡ送信要求信号に基づいて、送信用ＤＭＡＣ３３が送信バッファ３２ａからデータを読み、送信ｆｉｆｏ３５ａにデータを送信する。これにより、メモリ３２の送信バッファ３２ａから、送信用ＤＭＡＣ３３及び送信ｆｉｆｏ３５ａを介して外部機器２０のデータ受信部２３ｂへの実行データの送信が開始される。
【００１４】
ここで、ユーザがデバッガ１０にブレーク指示信号を入力する（ステップＳ２３）。そして、デバッガ１０の送受信部１３からデバッグ対象装置３０にブレーク指示信号が送信される際に、デバッガ１０の送受信部１３から出力端子１１を介して、外部機器２０に、送信停止信号が送信される（ステップＳ２４）。外部機器２０は、送信停止信号の受信に基づいて、データ送信部２３ａからデバッグ対象装置３０への評価用データの送信を停止する。すなわち、外部機器２０からデバッグ対象装置３０への評価用データの送信を停止するため、デバッグ対象装置３０の通信コントローラ３５の受信ｆｉｆｏ３５ｂの受信が停止する。このため、受信ｆｉｆｏ３５ｂから受信用ＤＭＡＣ３４にＤＭＡ受信要求信号が出力されない。これにより、受信用ＤＭＡＣ３４の動作が停止する。また、デバッガ１０の送受信部１３からデバッグ対象装置３０にブレーク指示信号を送信する際、ブレーク指示信号に基づいて送信用ＤＭＡＣ３３を停止させる、又は、ＣＰＵ３１で送信用ＤＭＡＣ３３の停止処理を実行することにより（後述する図３参照）、送信用ＤＭＡＣ３３を停止させる。これにより、外部機器２０のデータ受信部２３ｂへのデータの送信が停止する。すなわち、デバッグ対象装置３０から外部機器２０への実行データの送信が停止する。このとき、送信ｆｉｆｏ３５ａは、ＤＭＡ送信要求信号を送信用ＤＭＡＣ３３に送信し、送信用ＤＭＡＣ３３から送信されるデータを待つ状態となっている。以上により、デバッグ対象装置３０及び外部機２０の動作が停止する。ここで、送信用ＤＭＡＣ３３の停止処理について図３に示すフローチャートを用いて説明する。
【００１５】
図３は、ＣＰＵ３１がブレーク指示信号を受信したときに実行する処理を示す。ＣＰＵ３１は、送信用ＤＭＡＣ３３が起動しているか否かを判断する（ステップＳ３１）。送信用ＤＭＡＣ３３が起動していない場合、送信用ＤＭＡＣ停止処理を終了する。一方、送信用ＤＭＡＣ３３が起動している場合、ＣＰＵ３１は送信用ＤＭＡＣ３３のＤＭＡ送信要求信号をマスクする（ステップＳ３２）。すなわち、ＣＰＵ３１は、送信ｆｉｆｏ３５ａから送信用ＤＭＡＣ３３に送信されるＤＭＡ送信要求信号を無効にする。これにより、送信用ＤＭＡＣ３３の動作が停止し、デバッグ対象装置３０から外部機器２０への実行データ送信が停止する。一方、デバッガ１０から外部機器２０への送信停止信号に基づいて、外部機器２０の送信が停止することにより、デバッグ対象装置３０の評価用データの受信が停止する。ユーザは、デバッガ１０でデバッグ対象装置３０のプログラムを停止させた際、送信用ＤＭＡＣ３３による送信動作、及び受信用ＤＭＡＣ３４による受信動作を停止させることができ、デバッグ対象装置３０のプログラムの停止時の動作状況等を解析することができる。
【００１６】
図２のステップＳ２４に戻って、システムの解析の後、ユーザは、デバッガ１０にプログラム再開信号を入力する（ステップＳ２５）。そして、デバッガ１０の送受信部１３からデバッグ対象装置３０のＣＰＵ３１にプログラム再開信号が送信される際に、デバッガ１０の出力端子１１を介して、外部機器２０の入力端子２２に送信再開信号が送信される（ステップＳ２６）。外部機器２０は、送信再開信号に基づいて、データ送信部２３ａからデバッグ対象装置３０への評価用データの送信を再開する。これにより、デバッグ対象装置３０の通信コントローラ３５は、受信ｆｉｆｏ３５ｂで評価用データの受信を再開する。このとき、受信ｆｉｆｏ３５ｂは、受信用ＤＭＡＣ３４にＤＭＡ受信要求信号を送信し、受信用ＤＭＡＣ３４において、ＤＭＡ受信が再開される。また、デバッガ１０からデバッグ対象装置３０にプログラム再開信号が送信されると、当該プログラム再開信号に基づいて送信用ＤＭＡＣ３３の動作を再開させる、又は、ＣＰＵ３１で送信用ＤＭＡＣ３３の再開処理を実行することにより送信用ＤＭＡＣ３３の動作を再開させる。そして、送信用ＤＭＡＣ３３は、送信ｆｉｆｏ３５ａからのＤＭＡ送信要求信号を受信すると、送信バッファ３２ａから送信ｆｉｆｏ３５ａへの送信を再開する。これにより、デバッグ対象装置３０から外部機器２０のデータ受信部２３ｂへの実行データの送信が再開される。ここで、ＣＰＵ３１がプログラム再開信号を受信した際に実行する送信用ＤＭＡＣ３３の再開処理について図４に示すフローチャートを用いて説明する。
【００１７】
図４は、ＣＰＵ３１がプログラム再開信号を受信したときに実行する処理を示す。ＣＰＵ３１は、送信用ＤＭＡＣ３３の動作が中断しているか否かを判断する（ステップＳ４１）。送信用ＤＭＡＣ３３が動作を中断していない場合、送信用ＤＭＡＣ３３の再開処理を終了する。一方、送信用ＤＭＡＣ３３が動作を中断している場合、ＣＰＵ３１は送信用ＤＭＡＣ３３のＤＭＡ送信要求信号のマスクを解除する（ステップＳ４２）。これにより、送信用ＤＡＭＣ３３の動作が再開し、外部機器２０へのデータの送信を再開する。一方、デバッガ１０から外部機器２０への送信再開信号に基づいて、外部機器２０の送信が再開することにより、デバッグ対象装置３０のデータ受信が再開する。ユーザは、デバッガ１０でデバッグ対象装置３０のプログラムを再開させた際、送信用ＤＭＡＣ３３による送信動作、及び受信用ＤＭＡＣ３４による受信動作を再開させることができる。そして、図２のステップＳ２６に戻って、デバッガ１０からデバッグ対象装置３０のＣＰＵ３１にプログラム再開信号が送信され、外部機器２０の入力端子２２に送信再開信号が送信される。そして、デバッグ対象装置３０から外部機器２０への実行データの送信が再開され、外部機器２０からデバッグ対象装置３０への評価用データの送信が再開される。その後、ステップＳ２７において、ユーザはデバッグを終了させるか否かを決定する。ユーザがデバッグを終了させると判断した場合、ユーザは、デバッガ１０によるデバッグを終了させる。一方、デバッグを終了させないと判断した場合、ステップＳ２３に戻り、ユーザはデバッガ１０にブレーク指示信号を入力し、デバッグを続ける。すなわち、ユーザはデバッグ対象装置３０をリセットすることなくプログラムの停止及び再開を繰り返すデバッグ作業を行うことができる。
【００１８】
本実施の形態では、ユーザがデバッガ１０にプログラムのブレーク又は再開を指示し、デバッガ１０の送受信部１３からデバッグ対象装置３０にブレーク指示信号又はプログラム再開信号が送信される際に、デバッグ対象装置３０では送信用ＤＭＡＣ３３の送信動作を停止又は再開させ、外部機器２０には送信停止信号又は送信再開信号が送信される。例えば、ユーザがプログラムのブレークを指示する。この場合、デバッガ１０の送受信部１３からデバッグ対象装置３０にブレーク指示信号が送信されると供に、送信用ＤＭＡＣ３３の送信動作が停止することにより、デバッグ対象装置３０の送信動作が停止し、外部機器２０に送信停止信号が送信されることにより、外部機器２０の送信動作が停止する。これにより、デバッグ対象装置３０のプログラム停止中におけるデータ送受信を停止させることができる。そして、デバッグ対象装置３０の受信ｆｉｆｏ３５ｂでオーバーランエラーが発生することを防止することができる。受信ｆｉｆｏ３５ｂでオーバーランエラーが発生することを防止することができる理由を以下に説明する。
【００１９】
従来は、デバッグ対象装置３０がブレーク指示信号を受信した場合、ＣＰＵ３１から送信用ＤＭＡＣ３３及び受信用ＤＭＡＣ３４にそれぞれブレーク信号が送信される、又はＤＭＡＣの停止処理を実行することにより、当該送信用ＤＭＡＣ３３及び受信用ＤＭＡＣ３４の動作を停止させる。しかしながら、外部機器２０から受信ｆｉｆｏ３５ｂへの評価用データの送信は行われている。この場合、動作が停止している受信用ＤＭＡＣ３４は受信ｆｉｆｏ３５ｂから評価用データを受信することができず、受信ｆｉｆｏ３５ｂでオーバーランエラーが発生する。一方、本実施の形態では、ユーザがブレークを指示する場合、外部機器２０に送信停止信号及びデバッグ対象装置３０にブレーク指示信号が送信される。外部機器２０が送信停止信号を受信する場合、デバッグ対象装置３０への評価用データの送信を停止するため、外部機器２０からデバッグ対象装置３０の受信ｆｉｆｏ３５ｂに評価用データが送信されない。このため、受信用ＤＭＡＣ３４はＤＭＡ受信要求信号を受信しないため、受信用ＤＭＡＣ３４の動作が停止する。すなわち、外部機器２０から受信ｆｉｆｏ３５ｂへの評価用データの送信が停止するため、受信ｆｉｆｏ３５ｂのオーバーランエラーの発生を防止することができる。また、受信ｆｉｆｏ３５ｂでオーバーランエラーが発生しないため、ユーザはデバッグシステム１をリセットすることなく、デバッグ対象装置３０のプログラムを再開することができる。さらに、本実施の形態では、受信ｆｉｆｏ３５ｂからのＤＭＡ受信要求信号の送信に基づいて受信用ＤＭＡＣ３４が動作する。従来は、ＣＰＵ３１がブレーク指示信号を受信した場合、受信用ＤＭＡＣ３４にブレーク信号を送信する、又は受信用ＤＭＡＣ３４の停止処理を実行する必要があったが、ＣＰＵ３１からのブレーク信号を受信用ＤＭＡＣ３４に送信することなく、又は受信用ＤＭＡＣ３４の停止処理を実行することなく、受信用ＤＭＡＣ３４の動作を停止させることができる。このため、ＣＰＵ３１から受信用ＤＭＡＣ３４間を接続する配線が形成されていないデバッグ対象装置３０、又は受信用ＤＭＡＣ３４の停止処理プログラムを有さないデバッグ対象装置３０を用いることができる。
【００２０】
次に、外部機器２０がデバッグ対象装置３０から当該デバッグ対象装置３０の動作の不具合を示す不正データを受信した場合について説明する。上述したように、外部機器２０は、図示せぬ判断部を有する。この判断部は、デバッグ対象装置３０から出力される予定のデータである予測データが予め格納されている。そして、データ受信部２３ｂが受信した実行データと、予め判断部に格納されている予測データが一致しているか否かを判断する。実行データと予測データが一致していない場合、デバッグ対象装置３０から不正データを受信したことを示す不正データ受信信号を、出力端子２１を介してデバッガ１０に送信する。ここで、デバッガ１０で不正データ受信信号受信時に、送信停止信号を出力端子１１に出力するように設定していない場合、判断部は、データ送信部２３ａに、当該データ送信部２３ａからデバッグ対象装置３０への評価用データの送信を停止させる信号を送信する。一方、実行データと予測データが一致している場合、外部機器２０の動作はそのまま継続される。
【００２１】
デバッガ１０の送受信部１３は、外部機器２０の判断部から出力端子２１を介して送信される不正データ受信信号を受信する。そして、不正データ受信信号の受信に基づいて、出力端子１１を介して外部機器２０に送信停止信号を送信し、デバッグ対象装置３０にブレーク指示信号を送信する。ただし、外部機器２０の判断部が不正データ受信時にデータ送信部２３ａの送信を停止させるように設定している場合は、デバッガ１０は不正データ受信信号受信時に送信停止信号を出力端子１１に出力するように設定しなくてもよい。以下に、外部機器２０が不正データを受信した場合の動作について図５に示すフローチャートを用いて説明する。
【００２２】
図５に示すように、デバッグの途中において、外部機器２０のデータ受信部２３ｂが実行データを受信する（ステップＳ６１）。外部機器２０の判断部は、予測データと実行データが一致しているか否かを判断する（ステップＳ６２）。一致する場合、動作を継続する。一致しない場合、判断部は不正データを受信したとして、出力端子２１を介してデバッガ１０の送受信部１３に不正データ受信信号を送信する（ステップＳ６３）。デバッガ１０の送受信部１３は、不正データ受信信号を受信する（ステップＳ５１）。そして、デバッガ１０の送受信部１３は、外部機器２０に送信停止信号及びデバッグ対象装置３０にブレーク指示信号を送信する（ステップＳ５２）。このとき、デバッグ対象装置３０では、ブレーク指示信号に基づいて送信用ＤＭＡＣ３３の動作を停止させる、又は図３に示すＣＰＵ３１がブレーク指示信号を受信した際の送信用ＤＭＡＣ３３の停止処理によって、送信用ＤＭＡＣ３３の動作を停止させる。送信用ＤＭＡＣ３３によるＤＭＡ送信が停止されるため、通信コントローラ３５へのデータの送信が停止し、外部機器２０へのデータの送信が停止する。また、外部機器２０では、デバッガ１０の送受信部１３から送信停止信号を受信する（ステップＳ６４）。送信停止信号の受信に基づいて、データ送信部２３ａからデバッグ対象装置３０の受信ｆｉｆｏ３５ｂへの評価用データの送信を停止する（ステップＳ６５）。これにより、受信ｆｉｆｏ３５ｂから受信用ＤＭＡＣ３４にＤＭＡ受信要求信号が送信されないため、受信用ＤＭＡＣ３４の動作が停止する。以上により、外部機器２０の不正データ受信によるデバッグ対象装置３０のプログラムの停止に伴い、デバッグ対象装置３０のデータの送信が停止する。そして、デバッグ対象装置３０のデータの受信停止により、受信ｆｉｆｏ３５ｂでのオーバーランエラーの発生を防止することができる。また、ユーザは、不正データ送信直後のデバッグ対象装置３０の状態を解析することにより、不正データ送信の原因をデバッグすることができる。
【００２３】
図５に示すフローチャートにおいて、外部機器２０が不正データを受信した場合、デバッガ１０から送信される送信停止信号に基づいて外部機器２０の送信動作を停止させることとしたが、外部機器２０の判断部が不正データを受信したと判断した場合、判断部からデータ送信部２３ａに評価用データの送信を停止させる信号を送信してもよい。この場合、デバッガ１０の送受信部１３では、不正データ受信信号の受信の際に、外部機器２０への送信停止信号を送信しないように設定する。この場合、デバッガ１０から外部機器２０に送信停止信号を送信しなくてもよい。これにより、デバッガ１０の送受信部１３はデバッグ対象装置３０のみにブレーク指示信号を送信し、デバッグ対象装置３０のプログラム及び送信用ＤＭＡＣ３３の動作を停止させる。
【００２４】
本実施の形態では、外部機器２０が不正データを受信した場合、不正データ受信直後に外部機器２０及びデバッグ対象装置３０の動作を停止させる。このため、不正データ受信直後のデバッグ対象装置３０の動作状況を解析することができる。また、実行データを全て受信することなく不正データを受信した直後に外部機器２０及びデバッグ対象装置３０の動作を停止させることができるため、外部機器２０が受信する大量の実行データの中から不正データを探し出す必要がないため、デバッグ時間を短縮することができる。さらに、不正データの受信直後にデバッグシステム１の動作を停止させるため、外部機器２０がデバッグ対象装置３０から受信する実行データを全て格納しなくてもよい。このため、外部機器２０において、デバッグ対象装置３０から出力されるデータの格納部の容量を小さくすることができる。
【００２５】
ここで、図６に示す、デバッグ対象装置３０のブレークの際に、外部機器２０の評価用データの送信を停止させる手段を有していないデバッグシステム２の動作及びその問題点について説明する。図６に示すデバッグシステム２は、デバッガ１１０及び外部機器１２０を有する。そして、デバッガ１１０は、デバッグ対象装置１３０のデバッグを行うこととする。
【００２６】
外部機器１２０は、データ送信部１２３ａ及びデータ受信部１２３ｂを有する。デバッグ対象装置１３０は、ＣＰＵ１３１、送信バッファ１３２ａ及び受信バッファ１３２ｂを有するメモリ１３２、送信用ＤＭＡＣ１３３、受信用ＤＭＡＣ１３４、並びに、送信ｆｉｆｏ１３５ａ及び受信ｆｉｆｏ１３５ｂを有する通信コントローラ１３５を有する。例えばデバッガ１１０からデバッグ対象装置１３０にブレーク指示信号が送信される。これにより、ＣＰＵ１３１、送信用ＤＭＡＣ１３３、及び受信用ＤＭＡＣ１３４にブレーク指示信号が送信され、それぞれの動作が停止する。この場合、外部機器１２０から通信コントローラ１３５の受信ｆｉｆｏ１３５ｂには評価用データは送信されている。このため、受信ｆｉｆｏ１３５ｂから受信用ＤＭＡＣ１３４に、ＤＭＡ受信要求信号を送信するが、受信用ＤＭＡＣ３４は動作を停止しているため、評価用データを受信できない。このため、受信ｆｉｆｏ１３５ｂにおいて、オーバーランエラーが発生する。この場合、デバッグシステム２のリセットが必要となり、プログラムのブレーク及び再開を繰り返すデバッグ作業を行うことができないという問題点があった。
【００２７】
一方、図１に示す本実施の形態にかかるデバッグシステム１は、ユーザがデバッガ１０にブレークを指示する場合、デバッグ対象装置３０にブレーク指示信号を送信する際に、当該ブレーク指示信号に基づいて、送信用ＤＭＡＣ３３を停止させる、又は、ＣＰＵ３１の停止処理でＤＭＡＣ３３を停止させ、外部機器２０に送信停止信号を送信する。これにより、デバッグ対象装置３０から外部機器２０へのデータの送信、及び外部機器２０からデバッグ対象装置３０への評価用データの送信が停止する。外部機器２０からデバッグ対象装置３０への評価用データの送信が停止するため、デバッグ対象装置３０の通信コントローラ３５の受信ｆｉｆｏ３５ｂでオーバーランエラーが発生することを防止することができる。そして、デバッグ対象装置３０のプログラムを停止した位置から再度プログラムを再開することができるため、デバッグシステム１をリセットすることなく、プログラムのブレーク及び再開を繰り返すデバッグ作業を行うことができる。さらに、本実施の形態では、デバッガ１０から受信用ＤＭＡＣ３４にブレーク指示信号を送信することなく、受信用ＤＭＡＣ３４の動作を停止させることができるため、簡易な構成のデバッグ対象装置３０を用いることができる。
【００２８】
さらに、図６に示すデバッグシステム２は、例えば外部機器１２０が不正データを受信した直後にデバッグシステム２の動作を停止させる手段を有していない。このため、外部機器１２０において大量のデータを受信した後に、当該大量データの中から不正データを探し出す必要があり、デバッグに時間がかかっていた。また、不正データ送信直後のデバッグ対象装置１３０の状態を解析することができず、デバッグが困難であった。一方、図１に示す本実施の形態にかかるデバッグシステム１は、外部機器２０が不正データを受信した場合、外部機器２０からデバッガ１０に不正データ受信信号が送信され、当該不正データ受信信号に基づいてデバッグ対象装置３０にブレーク指示信号及び外部機器２０に送信停止信号が送信され、当該ブレーク指示信号に基づいて送信用ＤＭＡＣ３３から外部機器２０へのデータ送信処理が停止される。これにより、デバッグシステム１の動作が停止する。もしくは、外部機器２０が不正データを受信した場合、外部機器２０は不正データ受信に基づいてデバッグ対象装置３０への評価用データの送信を停止する。さらに、デバッガ１０に不正データ受信信号を送信し、当該不正データ受信信号に基づいてデバッガ１０がデバッグ対象装置３０にブレーク指示信号を送信し、当該ブレーク指示信号に基づいて送信用ＤＭＡＣ３３から外部機器２０へのデータ送信処理が停止される。これにより、デバッグシステム１の動作を停止させる。以上により、デバッグ対象装置３０が不正データを送信した直後のデバッグ対象装置３０の動作状況を解析することができ、デバッグ作業を容易にすることができる。また、外部機器２０において、大量のデータを受信した後に、当該大量データの中から不正データを探し出す必要がなくなり、デバッグの時間を削減することができる。
【００２９】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、本実施の形態では、通信コントローラを有するデバッグ対象装置と外部機器からなるデバッグシステムについて説明したが、外部機器は、例えば外部ストレージとし、デバッグ対象装置の通信コントローラは外部ストレージを制御するストレージコントローラとしてもよい。また、デバッガ１０及び外部機器２０の出力端子を介して出力する信号は、無線シグナルを用いてもよい。さらに、デバッガ１０から外部機器２０に送信される送信停止信号に完全に同期して、外部機器２０からデバッグ対象装置３０への評価用データの送信を停止させなくてもよい。例えば、評価用データの１パケット又は１バイト等の切のよいデータ単位でデータの送信を停止させればよい。同様に、外部機器２０が不正データを受信した場合、不正データ受信直後にデバッグシステム１の動作を停止させなくてもよい。すなわち、切のよいデータ単位で外部機器２０へのデータの送信を停止させればよい。また、送信用ＤＭＡＣ３３及び受信用ＤＭＡＣ３４だけでなく、その他タイマ又は他のバスマスタ等で動作するハードウエア等を、デバッガ１０から送信されるブレーク指示信号等に基づいて、動作を一時停止させてもよい。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施の形態１にかかるデバッグシステムを示すブロック図である。
【図２】本発明の実施の形態１にかかるデバッグシステムの動作を示すフローチャートである。
【図３】本発明のデバッグシステムにおける送信用ＤＭＡＣの停止処理を示すフローチャートである。
【図４】本発明のデバッグシステムにおける送信用ＤＭＡＣの再開処理を示すフローチャートである。
【図５】本発明のデバッグシステムにおける外部機器が不正データを受信した場合のデバッグシステムの動作を示すフローチャートである。
【図６】デバッグ対象装置のブレークの際に、外部機器をブレークさせる手段を有していないデバッグシステムを示すブロック図である。
【図７】従来の半導体集積装置を示すブロック図である。
【符号の説明】
【００３１】
１、２  デバッグシステム
１０、１１０  デバッガ
１１、２１  出力端子
１２、２２  入力端子
１３  送受信部
２０、１２０  外部機器
２３ａ、１２３ａ  データ送信部
２３ｂ、１２３ｂ  データ受信部
３０、１３０  デバッグ対象装置
３１、１３１  ＣＰＵ
３２、１３２  メモリ、
３２ａ、１３２ａ  送信バッファ
３２ｂ、１３２ｂ  受信バッファ
３３、１３３  送信用ＤＭＡＣ
３４、１３４  受信用ＤＭＡＣ
３５、１３５  通信コントローラ
３５ａ、１３５ａ  送信ｆｉｆｏ
３５ｂ、１３５ｂ  受信ｆｉｆｏ
９０  半導体集積回路
９１  プロセッサ
９２  ＤＭＡコントローラ
９３  共有資源
９４  バス
９５  デバッガ装置
【図１】
2009059292.tif 000003
【図２】
2009059292.tif 000004
【図３】
2009059292.tif 000005
【図４】
2009059292.tif 000006
【図５】
2009059292.tif 000007
【図６】
2009059292.tif 000008
【図７】
2009059292.tif 000009