(57)【要約】【課題】チップ面積の増大及びマイクロコンピュータ内の資源の占有をすることなく、イベント検出機能におけるデバッグ対象プログラムの停止時間を短くする。【解決手段】  マイクロコンピュータは、ＣＰＵコア（１２）と、デバッグ対象プログラム（１４）及びデバッグ用プログラム（１５）を格納するメモリ（１１）と、イベントの成立を検出するイベント検出部（１６）と、イベントが成立した際にプログラムをデバッグ用プログラム（１５）に遷移させるデバッグ割り込み生成部（１７）と、デバッグインタフェース制御部（１８）と、を備える。ＣＰＵコア（１２）は、デバッグ用プログラム（１５）を実行することにより、成立したイベントのイベント番号を、デバッグインタフェース制御部（１８）を介してエミュレータ（２）へ通知し、その後直ちに、デバッグ対象プログラム（１４）の実行を再開する。【選択図】図２
2018045419.tif 000002
【特許請求の範囲】
【請求項１】
所定のプログラムを実行可能なＣＰＵ（Central Processing Unit）コアと、
デバッグ対象プログラム及びデバッグ用プログラムを格納するメモリと、
前記ＣＰＵコアにより実行中である前記デバッグ対象プログラムにおけるイベントの成立を検出するイベント検出部と、
前記イベントが成立した際に、デバッグ割り込みを発生することにより、前記ＣＰＵコアに実行させるプログラムを前記デバッグ対象プログラムから前記デバッグ用プログラムに遷移させるデバッグ割り込み生成部と、
エミュレータと通信を行うデバッグインタフェース制御部と、を備え、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントのイベント番号を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する、
マイクロコンピュータ。
【請求項２】
前記イベント検出部を複数備え、且つ
前記イベント番号を格納するイベント番号格納部をさらに備え、
複数の前記イベント検出部は、それぞれ成立したイベントの前記イベント番号を前記イベント番号格納部に格納し、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、前記イベント番号格納部を参照して、成立したイベントの前記イベント番号を判別する、
請求項１に記載のマイクロコンピュータ。
【請求項３】
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントの前記イベント番号を判別した後、前記イベント番号に応じて２つの異なる制御のうちのいずれかを実行する、請求項２に記載のマイクロコンピュータ。
【請求項４】
前記異なる制御のうちの一方は、成立したイベントの前記イベント番号を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する制御であり、
前記異なる制御のうちの他方は、前記デバッグ対象プログラムの停止を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知することを含む制御である、
請求項３に記載のマイクロコンピュータ。
【請求項５】
マイクロコンピュータと、
エミュレータと、を備え、
前記マイクロコンピュータは、
所定のプログラムを実行可能なＣＰＵ（Central Processing Unit）コアと、
デバッグ対象プログラム及びデバッグ用プログラムを格納するメモリと、
前記ＣＰＵコアにより実行中である前記デバッグ対象プログラムにおけるイベントの成立を検出するイベント検出部と、
前記イベントが成立した際に、デバッグ割り込みを発生することにより、前記ＣＰＵコアに実行させるプログラムを前記デバッグ対象プログラムから前記デバッグ用プログラムに遷移させるデバッグ割り込み生成部と、
前記エミュレータと通信を行うデバッグインタフェース制御部と、を備え、
前記エミュレータは、
前記デバッグインタフェース制御部と通信を行うデバッグインタフェースと、
前記デバッグインタフェースにより受信したイベント番号のイベントを検知し、当該イベントのイベント成立情報を計測するデバッグ制御部と、
ホストマシンと通信を行うホストインタフェースと、を備え、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントのイベント番号を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開し、
前記ホストインタフェースは、前記イベント成立情報を前記ホストマシンへ送信する、
デバッグシステム。
【請求項６】
前記マイクロコンピュータは、
前記イベント検出部を複数備え、且つ
前記イベント番号を格納するイベント番号格納部をさらに備え、
複数の前記イベント検出部は、それぞれ成立したイベントの前記イベント番号を前記イベント番号格納部に格納し、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、前記イベント番号格納部を参照して、成立したイベントの前記イベント番号を判別する、
請求項５に記載のデバッグシステム。
【請求項７】
前記デバッグ制御部は、異なるイベント番号のイベント間の発生間隔をさらに計測する、請求項６に記載のデバッグシステム。
【請求項８】
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントの前記イベント番号を判別した後、前記イベント番号に応じて２つの異なる制御のうちのいずれかを実行する、請求項６に記載のデバッグシステム。
【請求項９】
前記異なる制御のうちの一方は、成立したイベントの前記イベント番号を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する制御であり、
前記異なる制御のうちの他方は、前記デバッグ対象プログラムの停止を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知することを含む制御である、
請求項８に記載のデバッグシステム。
【請求項１０】
マイクロコンピュータの方法であって、
ＣＰＵコアにより実行中であるデバッグ対象プログラムにおけるイベントの成立を検出し、
前記イベントが成立した際に、前記ＣＰＵコアにより実行するプログラムを前記デバッグ対象プログラムからデバッグ用プログラムに遷移し、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントのイベント番号をエミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する、
方法。
【請求項１１】
前記イベントが成立した際に、成立したイベントの前記イベント番号を格納し、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、格納した前記イベント番号を参照して、成立したイベントの前記イベント番号を判別する、
請求項１０に記載の方法。
【請求項１２】
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントの前記イベント番号を判別した後、前記イベント番号に応じて２つの異なる制御のうちのいずれかを実行する、請求項１１に記載の方法。
【請求項１３】
前記異なる制御のうちの一方は、成立したイベントの前記イベント番号を前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する制御であり、
前記異なる制御のうちの他方は、前記デバッグ対象プログラムの停止を前記エミュレータへ通知することを含む制御である、
請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグシステム、マイクロコンピュータ及びその方法に関し、例えば、オンチップデバッグ方式によりデバッグを行うデバッグシステムと、そのマイクロコンピュータ及びその方法に関する。
【背景技術】
【０００２】
近年、マイクロコンピュータ内に、プログラムをデバッグするための機能を内蔵しているオンチップデバッグ（On-chip Debug）機能を有するものが増加している。このオンチップデバッグ機能を用いたデバッグ方式を、オンチップデバッグ方式という。オンチップデバッグ方式のデバッグシステムは、ホストマシンと、デバッグ対象のマイクロコンピュータと、ホストマシンとデバッグ対象のマイクロコンピュータとの間を中継するエミュレータと、を備えている。そして、エミュレータは、デバッグ対象のマイクロコンピュータと通信することで、マイクロコンピュータ内部のデバッグ対象プログラムの実行状況をホストマシンへ吸い上げたり、ホストマシンからデバッグ対象プログラムの書き換えを行ったりする。
【０００３】
オンチップデバッグ方式のデバッグシステムにおけるイベント検出機能について説明する。イベント検出機能とは、デバッグ対象プログラムによりＣＰＵ（Central Processing Unit）コアが特定アドレスを実行することをデバッグ回路内のイベント検出器が検知し、デバッグ回路内のデバッグ割り込み生成部によりデバッグ割り込みを発生させるものである。当該デバッグ割り込みにより、ＣＰＵコアによる制御がデバッグ対象プログラムからデバッグ用のモニタプログラムへ遷移する。これにより、デバッグ対象プログラムは停止する。その後、モニタプログラムを実行することにより、ＣＰＵコアは、デバッグインタフェースを介して、エミュレータへデバッグ対象プログラムの停止を通知する。その後、ＣＰＵコアは、エミュレータからのデバッグ制御要求コマンドの受信待ち状態となる。
【０００４】
エミュレータは、デバッグインタフェースを介して、デバッグ対象プログラムの停止を検知し、ホストインタフェースを介して、ホストマシンで動作するデバッガＧＵＩ（Graphical User Interface）へデバッグ対象プログラムの停止を通知する。
【０００５】
デバッガＧＵＩは、デバッグ対象プログラムの停止の通知を受け、デバッグ対象のマイクロコンピュータの状態を読み出すことでイベントの成立を確認する。デバッガＧＵＩは、デバッグ対象プログラムの実行を再開させる際、専用のデバッグ制御要求コマンドを、エミュレータを介してデバッグ対象のマイクロコンピュータへ送信する。当該デバッグ制御要求コマンドを受信したマイクロコンピュータは、デバッグ割り込みから復帰することで、デバッグ対象プログラムの実行を再開する。
【０００６】
上述のイベント検出機能では、ホストマシンがイベントの成立を知るためにはデバッグ対象プログラムを停止する必要ある。また、デバッグ対象プログラムが停止してから実行が再開されるまでの時間は、数ｍｓｅｃと長い。これは、デバッグ対象プログラムが停止してから実行が再開されるまでの間に、デバッグインタフェース及びホストインタフェースを介した通信が複数回発生するためである。
【０００７】
オンチップデバッグ方式のデバッグシステムにおいて、イベント検出機能におけるデバッグ対象プログラムの停止時間を短くする、又はデバッグ対象プログラムを停止しないようにする例が特許文献１及び２に開示されている。
【０００８】
特許文献１には、マイクロコンピュータにて、ＣＰＵのプログラム実行期間に発生する２つのイベント間の時間計測を行う技術が開示されている。特許文献１に開示の技術では、マイクロコンピュータは、デバッグ対象のプログラムの停止を外部に通知しないため、デバッグ対象プログラムが停止する時間を短くすることができる。
【０００９】
特許文献２には、ＭＣＵ（Micro Control Unit）において、指定されたアドレスへのメモリの書き込みが発生した場合に、そのアドレス値や発生時刻データ等をＤＭＡ（Direct Memory Access）転送により送信バッファメモリへ転送し、デバッガの受信メモリへ送信する技術が開示されている。特許文献２に開示の技術では、ＤＭＡ転送を使用することにより、デバッグ対象のプログラムの実行を停止しないようにしている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１２−１３３７５２号公報
【特許文献２】特開２００６−２９３５６０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に開示の技術では、マイクロコンピュータ内のデバッグ回路部に、イベント機能部、時間計測機能部等が必要であるため、チップ面積が増大するという問題があった。また、特許文献１に開示の技術では、イベント間の時間計測のために、マイクロコンピュータ内のタイマを占有してしまうという問題があった。
【００１２】
また、特許文献２に開示の技術では、マイクロコンピュータ内に、ＤＭＡ転送を行うためのＤＭＡコントローラ等が必要であるため、チップ面積が増大するという問題があった。また、マイクロコンピュータ内に予めＤＭＡコントローラ等が備えられている場合であっても、アドレス値や発生時刻データ等を転送するために、そのＤＭＡコントローラ等を占有してしまうという問題があった。
【００１３】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
一実施の形態によれば、マイクロコンピュータは、ＣＰＵコアがデバッグ用プログラムを実行することにより、成立したイベントのイベント番号を、デバッグインタフェース制御部を介してエミュレータへ通知し、その後直ちに、デバッグ対象プログラムの実行を再開するものである。
【発明の効果】
【００１５】
前記一実施の形態によれば、チップ面積の増大、及びマイクロコンピュータ内の資源の占有をすることなく、イベント検出機能におけるデバッグ対象プログラムの停止時間を短くすることができるマイクロコンピュータを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１にかかるデバッグシステムの構成例を示すブロック図である。
【図２】実施の形態１にかかるデバッグ対象マイクロコンピュータの構成例を示すブロック図である。
【図３】実施の形態１にかかるデバッグ用プログラムの一例を示す図である。
【図４】実施の形態１にかかるデバッグ対象マイクロコンピュータの動作例を示すフロー図である。
【図５】実施の形態１にかかるエミュレータの構成例を示すブロック図である。
【図６】実施の形態１にかかるホストマシンの構成例を示すブロック図である。
【図７】実施の形態２にかかるデバッグ対象マイクロコンピュータの構成例を示すブロック図である。
【図８】実施の形態２にかかるデバッグ用プログラムの一例を示す図である。
【図９】実施の形態２にかかるデバッグ対象マイクロコンピュータの動作例を示すフロー図である。
【図１０】実施の形態２にかかるデバッグ対象プログラムにおけるイベントの一例を示す図である。
【図１１】実施の形態３にかかるデバッグ用プログラムの一例を示す図である。
【図１２】実施の形態３にかかるデバッグ対象マイクロコンピュータの動作例を示すフロー図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１８】
実施の形態１
図１は、本実施の形態１にかかるデバッグシステム１００の構成例を示すブロック図である。デバッグシステム１００は、デバッグ対象マイクロコンピュータ１と、エミュレータ２と、ホストマシン３と、を備えている。デバッグ対象マイクロコンピュータ１とエミュレータ２とは、例えばフラットケーブルにより接続されている。また、エミュレータ２とホストマシン３とは、例えばＵＳＢ（Universal Serial Bus）ケーブルにより接続されている。
【００１９】
まず、図２のブロック図を用いて、デバッグ対象マイクロコンピュータ１の構成について説明する。図２は、図１のデバッグ対象マイクロコンピュータ１の構成例を示すブロック図である。デバッグ対象マイクロコンピュータ１は、メモリ１１と、ＣＰＵコア１２と、デバッグ回路１３と、を備えている。
【００２０】
メモリ１１は、デバッグ対象プログラム１４と、デバッグ用プログラム１５と、を格納している。デバッグ対象プログラム１４は、デバッグ対象のユーザプログラムである。また、デバッグ用プログラム１５は、例えば、デバッグ対象プログラム１４でのイベントの成立タイミング、その成立間隔や成立回数等を計測するために実行されるプログラムである。なお、図２では、デバッグ対象プログラム１４及びデバッグ用プログラム１５は、１つのメモリ１１に格納される例を示しているが、それぞれ別々のメモリに格納されてもよい。
【００２１】
ＣＰＵコア１２は、所定のプログラムを実行可能な処理部である。ＣＰＵコア１２は、デバッグ対象プログラム１４やデバッグ用プログラム１５を実行する。なお、ＣＰＵコア１２は、ＣＰＵ、ＭＰＵ（Micro Processing Unit）、マイクロプロセッサ、又はプロセッサコアとも呼ばれる。
【００２２】
デバッグ回路１３は、イベント検出機能やデバッグ対象プログラム１４のデバッグを実行する場合に使用される回路である。デバッグ回路１３は、イベント検出部１６と、デバッグ割り込み生成部１７と、デバッグインタフェース制御部（デバッグＩ／Ｆ制御部）１８と、を備えている。
【００２３】
イベント検出部１６は、ＣＰＵコア１２により実行中であるデバッグ対象プログラム１４におけるイベントの成立を検出するための機能部である。ここで、イベントとは、デバッグ対象プログラム１４内の特定アドレスのことである。イベント検出部１６には、成立を検出するイベントのイベント番号が設定されている。このイベント検出部１６へのイベント番号の設定は、ホストマシン３により、エミュレータ２を介して行うことができる。イベント検出部１６は、設定されているイベント番号のイベントが成立すると、イベントの成立を示すイベント成立通知をデバッグ割り込み生成部１７へ出力する。
【００２４】
デバッグ割り込み生成部１７は、デバッグ対象プログラム１４におけるイベントが成立した際に、デバッグ割り込みを発生することにより、ＣＰＵコア１２に実行させるプログラムをデバッグ対象プログラム１４からデバッグ用プログラム１５に遷移させる機能部である。デバッグ割り込み生成部１７は、イベント検出部１６からイベント成立通知を受け取ると、デバッグ割り込み信号を生成する。そして、デバッグ割り込み生成部１７は、生成したデバッグ割り込み信号をＣＰＵコア１２へ出力する。
【００２５】
ＣＰＵコア１２は、デバッグ割り込み生成部１７からデバッグ割り込み信号を受け取ると、デバッグ対象プログラム１４の実行を中断し、デバッグ用プログラム１５の実行を開始する。
【００２６】
ここで、図３を用いて、デバッグ用プログラム１５について説明する。デバッグ用プログラム１５は、イベント番号をエミュレータ２へ通知するための命令Ｐ１と、デバッグ対象プログラム１４の実行を再開するための命令Ｐ２と、を含む。また、デバッグ用プログラム１５には、エミュレータ２へ通知するためのイベント番号が予め記述されている。
【００２７】
図２に戻り説明を続ける。ＣＰＵコア１２は、デバッグ用プログラム１５を実行することにより、成立したイベントのイベント番号をデバッグインタフェース制御部１８に出力する。なお、ＣＰＵコア１２は、デバッグインタフェース制御部１８へのイベント番号の出力を、デバッグ用プログラム１５の実行開始後直ちに行う。また、ＣＰＵコア１２は、デバッグインタフェース制御部１８へのイベント番号の出力を行った後、直ちにデバッグ対象プログラム１４の実行を再開する。
【００２８】
デバッグインタフェース制御部１８は、エミュレータ２と通信を行う通信回路部である。デバッグインタフェース制御部１８は、ＣＰＵコア１２からイベント番号を受け取ると、そのイベント番号をエミュレータ２へ通知する。
【００２９】
なお、図２のデバッグ対象マイクロコンピュータ１では、上述の構成により、イベント検出機能におけるデバッグ対象プログラムの停止時間を短くすることができる。その理由は、デバッグ対象プログラム１４が中断されてから実行が再開されるまでの間に、デバッグ対象マイクロコンピュータ１とエミュレータ２との間で行われる通信は、デバッグインタフェース制御部１８からエミュレータ２への１度の通知のみであるためである。これにより、デバッグ対象プログラム１４が中断されてから実行が再開されるまでの時間は、数μｓｅｃにすることができる。
【００３０】
なお、上述した説明では、デバッグ用プログラム１５に、エミュレータ２へ通知するためのイベント番号が予め記述されている例を説明したが、これに限らない。エミュレータ２へ通知するためのイベント番号は、イベント検出部１６から、デバッグ割り込み生成部１７を介して、又はデバッグ割り込み生成部１７を介さずに、ＣＰＵコア１２へ出力されるようにしてもよい。この場合、ＣＰＵコア１２は、デバッグ用プログラム１５を実行することにより、イベント検出部１６から受け取ったイベント番号をデバッグインタフェース制御部１８に出力する。
【００３１】
続いて、図４のフロー図を用いて、本実施の形態１にかかるデバッグ対象マイクロコンピュータ１の動作例について説明する。
【００３２】
まず、ＣＰＵコア１２は、デバッグ対象プログラム１４の実行を開始する（ステップＳ１０１）。次に、イベント検出部１６は、デバッグ対象プログラム１４におけるイベントの成立を検出する（ステップＳ１０２）。
【００３３】
次に、デバッグ割り込み生成部１７は、デバッグ割り込みにより、ＣＰＵコア１２に実行させるプログラムをデバッグ用プログラム１５に遷移させる（ステップＳ１０３）。
【００３４】
次に、ＣＰＵコア１２は、成立したイベントのイベント番号を、デバッグインタフェース制御部１８を介してエミュレータ２へ通知する（ステップＳ１０４）。
【００３５】
ＣＰＵコア１２は、ステップＳ１０４の後直ちに、デバッグ対象プログラム１４の実行を再開する（ステップＳ１０５）。
【００３６】
以上のように、本実施の形態１にかかるデバッグ対象マイクロコンピュータ１では、ＣＰＵコア１２が、デバッグ用プログラム１５を実行することにより、成立したイベントのイベント番号を、デバッグインタフェース制御部１８を介してエミュレータ２へ通知し、その後直ちに、デバッグ対象プログラム１４の実行を再開する構成としている。これにより、本実施の形態１にかかるデバッグ対象マイクロコンピュータ１では、デバッグ回路１３内に、イベント機能部、時間計測機能部、及びＤＭＡコントローラを必要としない。また、デバッグ対象マイクロコンピュータ１では、イベント検出機能のために、マイクロコンピュータ１内のタイマやＤＭＡコントローラを占有しない。さらに、デバッグ対象マイクロコンピュータ１では、デバッグ対象プログラム１４が中断されてから実行が再開されるまでの間に、デバッグ対象マイクロコンピュータ１とエミュレータ２との間で行われる通信は、デバッグインタフェース制御部１８からエミュレータ２への１度の通知のみである。すなわち、デバッグ対象マイクロコンピュータ１では、チップ面積の増大、及びマイクロコンピュータ内の資源の占有をすることなく、イベント検出機能におけるデバッグ対象プログラムの停止時間を短くすることができる。
【００３７】
続いて、図５のブロック図を用いて、エミュレータ２について説明する。図５は、図１のエミュレータ２の構成例を示すブロック図である。エミュレータ２は、オンチップデバッグエミュレータである。エミュレータ２は、デバッグインタフェース（デバッグＩ／Ｆ）２１と、デバッグ制御部２２と、ホストインタフェース（ホストＩ／Ｆ）２３と、を備えている。
【００３８】
デバッグインタフェース２１は、デバッグインタフェース制御部１８と通信を行う通信回路部である。デバッグインタフェース２１は、成立したイベントのイベント番号をデバッグインタフェース制御部１８から受信する。また、デバッグインタフェース２１は、受信したイベント番号をデバッグ制御部２２へ出力する。
【００３９】
デバッグ制御部２２は、デバッグインタフェース２１からイベント番号を受け取ると、そのイベントの成立を検知し、そのイベントのイベント成立情報を計測する。ここで、イベント成立情報とは、例えば、イベント番号を受け取ったタイミングを示す情報である。デバッグ制御部２２は、エミュレータ２内のタイマ等を使用して、イベント番号を受け取ったタイミングをイベント成立情報として計測する。また、デバッグ制御部２２は、イベント成立情報をホストインタフェース２３へ出力する。
【００４０】
ホストインタフェース２３は、ホストマシン３との通信を行う通信回路部である。ホストインタフェース２３は、デバッグ制御部２２から受け取ったイベント成立情報をホストマシン３へ送信する。
【００４１】
以上のように、本実施の形態１にかかるエミュレータ２では、デバッグ制御部２２が、イベント番号を受け取ると、そのイベントの成立を検知し、イベント成立情報を計測する構成としている。また、ホストインタフェース２３が、デバッグ制御部２２から受け取ったイベント成立情報をホストマシン３へ送信する構成としている。これにより、本実施の形態１にかかるエミュレータ２では、成立したイベントのイベント成立情報を計測し、そのイベント成立情報をホストマシン３へ送信することができる。
【００４２】
続いて、図６のブロック図を用いて、ホストマシン３について説明する。図６は、図１のホストマシン３の構成例を示すブロック図である。ホストマシン３は、例えば、一般的なパーソナルコンピュータである。ホストマシン３は、ホストインタフェース（ホストＩ／Ｆ）３１と、デバッガＧＵＩ ３２と、を備えている。
【００４３】
ホストインタフェース３１は、イベント成立情報をホストインタフェース２３から受信する。ホストインタフェース３１は、受信したイベント成立情報をデバッガＧＵＩ ３２へ出力する。
【００４４】
デバッガＧＵＩ ３２は、受け取ったイベント成立情報をホストマシン３のディスプレイに表示する。これにより、デバッガＧＵＩ ３２は、イベント成立情報をユーザに通知することができる。すなわち、ユーザは、イベントの成立タイミング、そのイベントの成立間隔等を知ることができる。
【００４５】
また、ユーザは、デバッガＧＵＩ ３２により、デバッグ対象プログラム１４の最初の実行開始（実行の再開ではない）、デバッグ対象プログラム１４のデバッグ作業、イベント検出部１６へのイベント番号の設定等を行うことができる。
【００４６】
以上のように、本実施の形態１にかかるデバッグシステム１００は、上述したデバッグ対象マイクロコンピュータ１及びエミュレータ２を備えた構成としている。これにより、チップ面積の増大、及びマイクロコンピュータ内の資源の占有をすることなく、イベント検出機能におけるデバッグ対象プログラムの停止時間を短くすることができるデバッグ対象マイクロコンピュータを備えたデバッグシステムを提供することができる。また、デバッグシステム１００では、成立したイベントのイベント成立情報をエミュレータ２にて計測し、そのイベント成立情報をホストマシン３へ送信することができる。
【００４７】
実施の形態２
続いて、実施の形態２について説明する。実施の形態２は、複数種類のイベントを検出するデバッグシステム２００に関する実施の形態である。デバッグシステム２００は、マイクロコンピュータ１Ａと、エミュレータ２Ａと、ホストマシン３と、を備えている。なお、デバッグシステム２００の構成は、実施の形態１にかかるデバッグシステム１００の構成と同様であり、図示を省略する。
【００４８】
図７は、本実施の形態２にかかるマイクロコンピュータ１Ａの構成例を示すブロック図である。マイクロコンピュータ１Ａは、メモリ１１と、ＣＰＵコア１２と、デバッグ回路１３Ａと、を備えている。
【００４９】
メモリ１１は、デバッグ対象プログラム１４と、デバッグ用プログラム１５Ａと、を格納している。ここで、図８を用いて、デバッグ用プログラム１５Ａについて説明する。デバッグ用プログラム１５Ａは、イベント番号格納部１９を参照するための命令Ｐ３と、判別したイベント番号をエミュレータ２Ａへ通知するための命令Ｐ４と、デバッグ対象プログラム１４の実行を再開するための命令Ｐ５と、を含む。なお、ＣＰＵコア１２は、命令Ｐ３を実行することにより、成立したイベントのイベント番号を判別することができる。
【００５０】
図７に戻り説明を続ける。デバッグ回路１３Ａは、イベント検出部１６Ａと、イベント検出部１６Ｂと、デバッグ割り込み生成部１７と、デバッグインタフェース制御部１８と、イベント番号格納部１９と、を備えている。なお、図７では、マイクロコンピュータ１Ａがイベント検出部１６Ａ及びイベント検出部１６Ｂを備える例について説明するが、イベント検出部の数は２つに限らない。マイクロコンピュータ１Ａが備えるイベント検出部の数は２つ以上であればいくつでもよい。
【００５１】
イベント検出部１６Ａ及びイベント検出部１６Ｂは、それぞれ異なるイベントを検出するものである。すなわち、イベント検出部１６Ａ及びイベント検出部１６Ｂには、それぞれ異なるイベント番号が設定されている。以下、イベント検出部１６Ａが検出するイベントをイベントＡとし、イベント検出部１６Ｂが検出するイベントをイベントＢとして説明する。
【００５２】
イベント検出部１６Ａ及びイベント検出部１６Ｂは、それぞれ成立したイベントのイベント番号をイベント番号格納部１９に格納する。すなわち、イベント検出部１６Ａ及びイベント検出部１６Ｂは、自身に設定されているイベント番号のイベントを検出すると、そのイベント番号をイベント番号格納部１９へ出力する。また、イベント検出部１６Ａ及びイベント検出部１６Ｂは、自身に設定されているイベント番号のイベントを検出すると、イベントの成立を示すイベント成立通知をデバッグ割り込み生成部１７へ出力する。
【００５３】
イベント番号格納部１９は、イベント番号を格納する格納部である。イベント番号格納部１９は、イベント検出部１６Ａ又はイベント検出部１６Ｂからイベント番号を受け取ると、そのイベント番号を格納する。
【００５４】
ＣＰＵコア１２は、デバッグ割り込み生成部１７からデバッグ割り込み信号を受け取ると、デバッグ対象プログラム１４の実行を中断し、デバッグ用プログラム１５Ａの実行を開始する。
【００５５】
ＣＰＵコア１２は、デバッグ用プログラム１５Ａを実行することにより、イベント番号格納部１９を参照して、成立したイベントのイベント番号を判別する。また、ＣＰＵコア１２は、判別したイベント番号をデバッグインタフェース制御部１８に出力する。さらに、ＣＰＵコア１２は、デバッグインタフェース制御部１８へのイベント番号の出力を行った後、直ちにデバッグ対象プログラム１４の実行を再開する。
【００５６】
続いて、図９のフロー図を用いて、本実施の形態２にかかるデバッグ対象マイクロコンピュータ１Ａの動作例について説明する。
【００５７】
まず、ＣＰＵコア１２は、デバッグ対象プログラム１４の実行を開始する（ステップＳ２０１）。次に、イベント検出部１６Ａ又はイベント検出部１６Ｂは、デバッグ対象プログラム１４におけるイベントＡ又はイベントＢの成立を検出する（ステップＳ２０２）。
【００５８】
次に、イベント番号格納部１９は、成立したイベントＡ又はイベントＢのイベント番号を格納する（ステップＳ２０３）。
【００５９】
次に、デバッグ割り込み生成部１７は、デバッグ割り込みにより、ＣＰＵコア１２に実行させるプログラムをデバッグ用プログラム１５Ａに遷移させる（ステップＳ２０４）。
【００６０】
次に、ＣＰＵコア１２は、イベント番号格納部１９を参照して、成立したイベントＡ又はイベントＢのイベント番号を判別する（ステップＳ２０５）。
【００６１】
次に、ＣＰＵコア１２は、成立したイベントＡ又はイベントＢのイベント番号を、デバッグインタフェース制御部１８を介してエミュレータ２Ａへ通知する（ステップＳ２０６）。
【００６２】
ＣＰＵコア１２は、ステップＳ２０６の後直ちに、デバッグ対象プログラム１４の実行を再開する（ステップＳ２０７）。
【００６３】
続いて、本実施の形態２にかかるエミュレータ２Ａについて説明する。なお、エミュレータ２Ａの構成は、実施の形態１にかかるエミュレータ２の構成と同様であり、図示を省略する。エミュレータ２Ａは、デバッグインタフェース２１と、デバッグ制御部２２Ａと、ホストインタフェース２３と、を備えている。
【００６４】
デバッグ制御部２２Ａは、デバッグインタフェース２１からイベント番号を受け取ると、そのイベントの成立を検知し、イベント成立情報を計測する。すなわち、デバッグ制御部２２Ａは、イベントＡのイベント番号を受け取った場合は、イベントＡのイベント成立情報を計測し、イベントＢのイベント番号を受け取った場合は、イベントＢのイベント成立情報を計測する。
【００６５】
また、デバッグ制御部２２Ａは、エミュレータ２Ａ内のタイマ等を使用して、異なるイベント番号のイベント間の発生間隔を示すイベント発生間隔情報も計測する。例えば、デバッグ制御部２２Ａは、イベントＡのイベント番号を受け取り、次にイベントＢのイベント番号を受け取った場合、イベントＡのイベント番号を受け取ったタイミングとイベントＢのイベント番号を受け取ったタイミングとの時間間隔をイベント発生間隔情報として計測する。
【００６６】
また、デバッグ制御部２２Ａは、イベント成立情報又はイベント発生間隔情報を、ホストインタフェース２３を介してホストマシン３へ送信する。
【００６７】
図１０は、本実施の形態２にかかるデバッグ対象プログラム１４におけるイベントの一例を示す図である。図１０の例では、関数の開始アドレスである「｛」がイベントＡとして設定され、関数の終了アドレスである「｝」がイベントＢとして設定されている。この場合、デバッグ制御部２２Ａにおいて、イベント発生間隔情報として関数の実行時間が計測可能となる。また、イベントＡが連続で検知される等、同じイベントが連続で検知されると、致命的なバグが発生していることをユーザに知らせることができる。
【００６８】
以上のように、本実施の形態２にかかるマイクロコンピュータ１Ａでは、イベント検出部を複数備え、且つイベント番号を格納するイベント番号格納部１９をさらに備えた構成としている。また、マイクロコンピュータ１Ａでは、複数のイベント検出部は、成立したイベントのイベント番号をイベント番号格納部１９に格納する構成としている。さらに、マイクロコンピュータ１Ａでは、ＣＰＵコア１２は、デバッグ用プログラム１５Ａを実行することにより、イベント番号格納部１９を参照して、成立したイベントのイベント番号を判別する構成としている。これにより、マイクロコンピュータ１Ａでは、複数種類のイベントの成立を検出し、成立したイベントのイベント番号をエミュレータ２Ａへ通知することができる。
【００６９】
また、デバッグシステム２００では、デバッグシステム２００では、エミュレータ２Ａが、異なるイベント番号のイベント間の発生間隔を計測する構成としている。これにより、デバッグシステム２００では、エミュレータ２Ａが、イベント発生間隔情報をホストマシン３へ送信することができる。
【００７０】
実施の形態３
続いて、実施の形態３について説明する。実施の形態３は、実施の形態１で説明した機能と、背景技術で説明したデバッグ対象プログラムの停止を通知することを含む機能と、を使い分けて運用することができるデバッグシステム３００に関する実施の形態である。デバッグシステム３００は、マイクロコンピュータ１Ｂと、エミュレータ２Ｂと、ホストマシン３と、を備えている。なお、デバッグシステム３００の構成は、実施の形態１にかかるデバッグシステム１００の構成と同様であり、図示を省略する。
【００７１】
まず、マイクロコンピュータ１Ｂについて説明する。なお、マイクロコンピュータ１Ｂの構成は、実施の形態２にかかるマイクロコンピュータ１Ａの構成と同様であり、図示を省略する。マイクロコンピュータ１Ｂは、メモリ１１と、ＣＰＵコア１２と、デバッグ回路１３Ａと、を備えている。また、メモリ１１は、デバッグ対象プログラム１４と、デバッグ用プログラム１５Ｂと、を格納している。すなわち、マイクロコンピュータ１Ｂは、デバッグ用プログラム１５Ｂの内容がデバッグ用プログラム１５Ａの内容と異なる以外は、実施の形態２にかかるマイクロコンピュータ１Ａと同じ構成である。
【００７２】
以下、イベント検出部１６Ａが検出するイベントＡを、実施の形態１で説明した機能のためのイベントとし、イベント検出部１６Ｂが検出するイベントＢを、背景技術で説明したデバッグ対象プログラムの停止を通知することを含む機能のためのイベントとして説明する。
【００７３】
図１１は、本実施の形態３にかかるデバッグ用プログラム１５Ｂの一例を示す図である。デバッグ用プログラム１５Ｂは、Ｐ６からＰ１２の命令を含んでいる。Ｐ６は、イベント番号格納部１９を参照するための命令である。ＣＰＵコア１２は、このＰ６を実行することにより、成立したイベントのイベント番号を判別することができる。
【００７４】
Ｐ７からＰ１２は、ＣＰＵコア１２に対して、成立したイベントのイベント番号に応じて２つの異なる制御のうちのいずれかを実行させるための命令である。Ｐ７は、成立したイベントがイベントＡであるかイベントＢであるかを場合分けするための命令である。
【００７５】
Ｐ８及びＰ９は、成立したイベントがイベントＡである場合の命令である。Ｐ８は、イベントＡのイベント番号をエミュレータ２Ｂへ通知するための命令である。Ｐ９は、デバッグ対象プログラム１４の実行を再開するための命令である。
【００７６】
Ｐ１０からＰ１２は、成立したイベントがイベントＢである場合の命令である。Ｐ１０は、デバッグ対象プログラム１４の停止を示す停止信号をエミュレータ２Ｂへ通知するための命令である。Ｐ１１は、エミュレータ２Ｂからデバッグ制御要求コマンドを受信したか否かを判定するための命令である。Ｐ１２は、デバッグ対象プログラム１４の実行を再開するための命令である。なお、Ｐ１２は、Ｐ１１にてデバッグ制御要求コマンドを受信した場合に実行する命令である。
【００７７】
続いて、図１２のフロー図を用いて、本実施の形態３にかかるデバッグ対象マイクロコンピュータ１Ｂの動作例について説明する。
【００７８】
ステップＳ３０１からステップＳ３０５は、実施の形態２にかかるデバッグ対象マイクロコンピュータ１ＡのステップＳ２０１からステップＳ２０５の動作と同様であるため、説明を省略する。
【００７９】
ＣＰＵコア１２は、成立したイベントがイベントＡであるか否かを判定する（ステップＳ３０６）。すなわち、ＣＰＵコア１２は、ステップＳ３０５により判別したイベント番号が、イベントＡのイベント番号であるか否かを判定する。
【００８０】
成立したイベントがイベントＡである場合（Ｓ３０６にてＹＥＳ）、ＣＰＵコア１２は、成立したイベントＡのイベント番号を、デバッグインタフェース制御部１８を介してエミュレータ２Ｂへ通知する（ステップＳ３０７）。
【００８１】
ＣＰＵコア１２は、ステップＳ３０７の後直ちに、デバッグ対象プログラム１４の実行を再開する（ステップＳ３０８）。
【００８２】
成立したイベントがイベントＢである場合（Ｓ３０６にてＮＯ）、ＣＰＵコア１２は、デバッグ対象プログラムの停止を示す停止信号を、デバッグインタフェース制御部１８を介してエミュレータ２Ｂへ通知する（ステップＳ３０９）。
【００８３】
ステップＳ３０９の後、ＣＰＵコア１２は、エミュレータ２Ｂからのデバッグ制御要求コマンド待ちとなる（ステップＳ３１０）。
【００８４】
デバッグ制御要求コマンドを受信した場合（Ｓ３１０にてＹＥＳ）、ＣＰＵコア１２は、デバッグ対象プログラム１４の実行を再開する（ステップＳ３１１）。
【００８５】
続いて、本実施の形態３にかかるエミュレータ２Ｂについて説明する。なお、エミュレータ２Ｂの構成は、実施の形態１にかかるエミュレータ２の構成と同様であり、図示を省略する。エミュレータ２Ｂは、デバッグインタフェース２１と、デバッグ制御部２２Ｂと、ホストインタフェース２３と、を備えている。
【００８６】
デバッグインタフェース２１は、デバッグインタフェース制御部１８から受信した信号をデバッグ制御部２２Ｂへ出力する。すなわち、デバッグインタフェース２１は、イベント番号を受信すると、そのイベント番号をデバッグ制御部２２Ｂへ出力し、停止信号を受信すると、その停止信号をデバッグ制御部２２Ｂへ出力する。
【００８７】
また、デバッグインタフェース２１は、デバッグ制御部２２Ｂからデバッグ制御要求コマンドを受け取ると、そのデバッグ制御要求コマンドをデバッグインタフェース制御部１８へ送信する。
【００８８】
デバッグ制御部２２Ｂは、デバッグインタフェース２１からイベント番号を受け取ると、そのイベントの成立を検知し、イベント成立情報を計測する。また、デバッグ制御部２２は、イベント成立情報をホストインタフェース２３へ出力する。
【００８９】
デバッグ制御部２２Ｂは、デバッグインタフェース２１から停止信号を受け取ると、デバッグ対象プログラムの停止を検出する。また、デバッグ制御部２２Ｂは、受け取った停止信号をホストインタフェース２３へ出力する。
【００９０】
また、デバッグ制御部２２Ｂは、ホストインタフェース２３からデバッグ制御要求コマンドを受け取ると、そのデバッグ制御要求コマンドをデバッグインタフェース２１へ出力する。
【００９１】
ホストインタフェース２３は、デバッグ制御部２２Ｂから受け取った信号をホストマシン３へ送信する。すなわち、ホストインタフェース２３は、イベント成立情報を受け取ると、そのイベント成立情報をホストマシン３へ送信し、停止信号を受け取ると、その停止信号をホストマシン３へ送信する。
【００９２】
また、ホストインタフェース２３は、ホストマシン３からデバッグ制御要求コマンドを受信すると、そのデバッグ制御要求コマンドをデバッグ制御部２２Ｂへ出力する。
【００９３】
以上のように、本実施の形態３にかかるマイクロコンピュータ１Ｂでは、ＣＰＵコア１２が、デバッグ用プログラム１５Ｂを実行することにより、成立したイベントのイベント番号に応じて２つの異なる制御のうちのいずれかを実行する構成としている。また、異なる制御のうちの一方は、成立したイベントのイベント番号を、デバッグインタフェース制御部１８を介してエミュレータ２Ｂへ通知し、その後直ちに、デバッグ対象プログラム１４の実行を再開する制御としている。また、異なる制御のうちの他方は、デバッグ対象プログラム１４の停止を、デバッグインタフェース制御部１８を介してエミュレータ２Ｂへ通知することを含む制御としている。これにより、マイクロコンピュータ１Ｂでは、実施の形態１で説明したイベント番号の通知を行う機能と、背景技術で説明したデバッグ対象プログラムの停止を通知することを含む機能と、を使い分けて運用することができる。
【００９４】
なお、上述した説明では、実施の形態３は、実施の形態１で説明した機能と、背景技術で説明したデバッグ対象プログラムの停止を通知することを含む機能と、を使い分けて運用するものとして説明したが、これに限らない。実施の形態３は、実施の形態２で説明した機能と、背景技術で説明したデバッグ対象プログラムの停止を通知することを含む機能と、を使い分けて運用するものとしてもよい。
【００９５】
また、実施の形態１から３にて上述したデバッグ用プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、デバッグ用プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、デバッグ用プログラムをコンピュータに供給できる。
【００９６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【００９７】
なお、上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９８】
（付記１）
所定のプログラムを実行可能なＣＰＵ（Central Processing Unit）コアと、
デバッグ対象プログラム及びデバッグ用プログラムを格納するメモリと、
前記ＣＰＵコアにより実行中である前記デバッグ対象プログラムにおけるイベントの成立を検出するイベント検出部と、
前記イベントが成立した際に、デバッグ割り込みを発生することにより、前記ＣＰＵコアに実行させるプログラムを前記デバッグ対象プログラムから前記デバッグ用プログラムに遷移させるデバッグ割り込み生成部と、
エミュレータと通信を行うデバッグインタフェース制御部と、を備え、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントのイベント番号を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する、
マイクロコンピュータ。
【００９９】
（付記２）
前記イベント検出部を複数備え、且つ
前記イベント番号を格納するイベント番号格納部をさらに備え、
複数の前記イベント検出部は、それぞれ成立したイベントの前記イベント番号を前記イベント番号格納部に格納し、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、前記イベント番号格納部を参照して、成立したイベントの前記イベント番号を判別する、
付記１に記載のマイクロコンピュータ。
【０１００】
（付記３）
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントの前記イベント番号を判別した後、前記イベント番号に応じて２つの異なる制御のうちのいずれかを実行する、付記２に記載のマイクロコンピュータ。
【０１０１】
（付記４）
前記異なる制御のうちの一方は、成立したイベントの前記イベント番号を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する制御であり、
前記異なる制御のうちの他方は、前記デバッグ対象プログラムの停止を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知することを含む制御である、
付記３に記載のマイクロコンピュータ。
【０１０２】
（付記５）
マイクロコンピュータと、
エミュレータと、を備え、
前記マイクロコンピュータは、
所定のプログラムを実行可能なＣＰＵ（Central Processing Unit）コアと、
デバッグ対象プログラム及びデバッグ用プログラムを格納するメモリと、
前記ＣＰＵコアにより実行中である前記デバッグ対象プログラムにおけるイベントの成立を検出するイベント検出部と、
前記イベントが成立した際に、デバッグ割り込みを発生することにより、前記ＣＰＵコアに実行させるプログラムを前記デバッグ対象プログラムから前記デバッグ用プログラムに遷移させるデバッグ割り込み生成部と、
前記エミュレータと通信を行うデバッグインタフェース制御部と、を備え、
前記エミュレータは、
前記デバッグインタフェース制御部と通信を行うデバッグインタフェースと、
前記デバッグインタフェースにより受信したイベント番号のイベントを検知し、当該イベントのイベント成立情報を計測するデバッグ制御部と、
ホストマシンと通信を行うホストインタフェースと、を備え、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントのイベント番号を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開し、
前記ホストインタフェースは、前記イベント成立情報を前記ホストマシンへ送信する、
デバッグシステム。
【０１０３】
（付記６）
前記マイクロコンピュータは、
前記イベント検出部を複数備え、且つ
前記イベント番号を格納するイベント番号格納部をさらに備え、
複数の前記イベント検出部は、それぞれ成立したイベントの前記イベント番号を前記イベント番号格納部に格納し、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、前記イベント番号格納部を参照して、成立したイベントの前記イベント番号を判別する、
付記５に記載のデバッグシステム。
【０１０４】
（付記７）
前記デバッグ制御部は、異なるイベント番号のイベント間の発生間隔をさらに計測する、付記６に記載のデバッグシステム。
【０１０５】
（付記８）
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントの前記イベント番号を判別した後、前記イベント番号に応じて２つの異なる制御のうちのいずれかを実行する、付記６に記載のデバッグシステム。
【０１０６】
（付記９）
前記異なる制御のうちの一方は、成立したイベントの前記イベント番号を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する制御であり、
前記異なる制御のうちの他方は、前記デバッグ対象プログラムの停止を、前記デバッグインタフェース制御部を介して前記エミュレータへ通知することを含む制御である、
付記８に記載のデバッグシステム。
【０１０７】
（付記１０）
マイクロコンピュータの方法であって、
ＣＰＵコアにより実行中であるデバッグ対象プログラムにおけるイベントの成立を検出し、
前記イベントが成立した際に、前記ＣＰＵコアにより実行するプログラムを前記デバッグ対象プログラムからデバッグ用プログラムに遷移し、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントのイベント番号をエミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する、
方法。
【０１０８】
（付記１１）
前記イベントが成立した際に、成立したイベントの前記イベント番号を格納し、
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、格納した前記イベント番号を参照して、成立したイベントの前記イベント番号を判別する、
付記１０に記載の方法。
【０１０９】
（付記１２）
前記ＣＰＵコアは、前記デバッグ用プログラムを実行することにより、成立したイベントの前記イベント番号を判別した後、前記イベント番号に応じて２つの異なる制御のうちのいずれかを実行する、付記１１に記載の方法。
【０１１０】
（付記１３）
前記異なる制御のうちの一方は、成立したイベントの前記イベント番号を前記エミュレータへ通知し、その後直ちに、前記デバッグ対象プログラムの実行を再開する制御であり、
前記異なる制御のうちの他方は、前記デバッグ対象プログラムの停止を前記エミュレータへ通知することを含む制御である、
付記１２に記載の方法。
【０１１１】
（付記１４）
デバッグ対象プログラムにおけるイベントが成立した際に実行が開始されるモニタプログラムであって、
成立したイベントのイベント番号をエミュレータへ通知し、
前記通知の後直ちに、前記デバッグ対象プログラムの実行を再開すること、
をコンピュータに実行させるためのモニタプログラム。
【０１１２】
（付記１５）
前記イベントが成立した際に、成立したイベントの前記イベント番号が格納されているイベント番号格納部を参照して、成立したイベントの前記イベント番号を判別すること、をさらにコンピュータに実行させるための付記１４に記載のモニタプログラム。
【０１１３】
（付記１６）
成立したイベントの前記イベント番号を判別した後、前記イベント番号に応じて２つの異なる制御のうちのいずれかを実行すること、をさらにコンピュータに実行させるための付記１５に記載のモニタプログラム。
【０１１４】
（付記１７）
前記異なる制御のうちの一方は、成立したイベントの前記イベント番号を前記エミュレータへ通知し、前記通知の後直ちに、前記デバッグ対象プログラムの実行を再開する制御であり、
前記異なる制御のうちの他方は、前記デバッグ対象プログラムの停止を前記エミュレータへ通知することを含む制御である、
付記１６に記載のモニタプログラム。
【符号の説明】
【０１１５】
１、１Ａ、１Ｂ    デバッグ対象マイクロコンピュータ
２、２Ａ、２Ｂ    エミュレータ
３    ホストマシン
１１    メモリ
１２    ＣＰＵコア
１３、１３Ａ    デバッグ回路
１４    デバッグ対象プログラム
１５、１５Ａ、１５Ｂ    デバッグ用プログラム
１６、１６Ａ、１６Ｂ    イベント検出部
１７    デバッグ割り込み生成部
１８    デバッグインタフェース制御部
１９    イベント番号格納部
２１    デバッグインタフェース
２２、２２Ａ、２２Ｂ    デバッグ制御部
２３    ホストインタフェース
１００、２００、３００    デバッグシステム
【図１】
2018045419.tif 000003
【図２】
2018045419.tif 000004
【図３】
2018045419.tif 000005
【図４】
2018045419.tif 000006
【図５】
2018045419.tif 000007
【図６】
2018045419.tif 000008
【図７】
2018045419.tif 000009
【図８】
2018045419.tif 000010
【図９】
2018045419.tif 000011
【図１０】
2018045419.tif 000012
【図１１】
2018045419.tif 000013
【図１２】
2018045419.tif 000014