JP6116670B2 - インタラプトステータスに基づく構成可能なブレークポイントを有するデバイス - Google Patents

インタラプトステータスに基づく構成可能なブレークポイントを有するデバイス Download PDF

Info

Publication number
JP6116670B2
JP6116670B2 JP2015511621A JP2015511621A JP6116670B2 JP 6116670 B2 JP6116670 B2 JP 6116670B2 JP 2015511621 A JP2015511621 A JP 2015511621A JP 2015511621 A JP2015511621 A JP 2015511621A JP 6116670 B2 JP6116670 B2 JP 6116670B2
Authority
JP
Japan
Prior art keywords
breakpoint
interrupt
unit
debug
interrupt service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015511621A
Other languages
English (en)
Other versions
JP2015516099A5 (ja
JP2015516099A (ja
Inventor
ケビン キルザー,
ケビン キルザー,
ジャスティン ミルクス,
ジャスティン ミルクス,
スンダール バラスブラマニアン,
スンダール バラスブラマニアン,
トーマス エドワード パーム,
トーマス エドワード パーム,
クシャラ ジャバガル,
クシャラ ジャバガル,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of JP2015516099A publication Critical patent/JP2015516099A/ja
Publication of JP2015516099A5 publication Critical patent/JP2015516099A5/ja
Application granted granted Critical
Publication of JP6116670B2 publication Critical patent/JP6116670B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

(関連出願への相互参照)
本出願は、2012年5月7日に出願された、「DEVICE HAVING CONFIGURABLE BREAKPOINT BASED ON INTERRUPT STATUS」という名称の米国仮出願第61/643,707号の利益を主張する。上記文献は、その全体として本明細書において援用される。
(技術分野)
本開示は、プロセッサデバイスに関し、特に、マイクロコントローラデバイスに関する。
(背景)
現代のマイクロプロセッサおよびマイクロコントローラは、いわゆる回路内デバッガまたはエミュレータデバイスを用いて、起動中のプログラムを分析することを効率的に可能にする、回路網を含む。この目的を達成するために、マイクロコントローラまたはマイクロプロセッサは、例えば、デバッグインターフェースとして動作するように、デバイスの複数の機能ピンをプログラムすることによってアクティブ化されることができる、デバッグ機能および具体的インターフェースをサポートする、内部回路網を提供する。そのようなインターフェースは、通常、高速シリアルインターフェースとして、実際のデバイスと外部デバッガまたはエミュレータとの間の高速通信を可能にするように構成されることができる。デバイス自体は、したがって、本インターフェースをアクティブ化させない、通常動作モードで動作されることができ、関連付けられたピンは、他の目的のために、および本インターフェースを使用して、外部ホストコンピュータからおよびそれによって動作され得る、デバッガまたはエミュレータ等の個別の外部デバイスとデータを交換する、デバッグ動作モードのために使用されることができる。デバッガまたはエミュレータはまた、プログラマとして動作されることができ、プログラムは、同一のデバッグインターフェースを介して、標的デバイスに転送される。ホストコンピュータ、外部デバッガ、またはエミュレータは、したがって、安価な分析およびデバッグシステムを形成する。
現代のプロセッサおよびマイクロコントローラは、個別のデバイス内に拡張された一式のデバッグ機能を提供する。例えば、いくつかのブレークポイントが、デバイス内に設定され、デバイスが、実際に、リアルタイムで起動することを可能にすることができ、これは、高速シリアルインターフェースだけを使用するとき、外部デバッガでは不可能であって、したがって、ボンドアウトチップおよび高価なデバッグ回路網を要求するであろう。しかしながら、これらの内部デバッグ回路網の機能性は、限定されたシリコン専有面積および他の理由のため、必然的に、幾分、制限される。しかしながら、これらのタイプのブレークポイントは、限定された量の構成のみを可能にする。
(要約)
したがって、より柔軟なデバッギングを可能にするために、マイクロコントローラまたはマイクロプロセッサ内に改良されたブレークポイント構成の必要性が存在する。例えば、インタラプトステータスに基づいて、ブレークポイントの構成を可能にすることが有益となるであろう。種々の実施形態によると、ブレークポイントのためのそのような構成可能設定は、ブレークポイントが、インタラプト状態を用いて、デバイスのそのマッチングおよび停止を制限することを可能にする。
ある実施形態によると、デバッグ能力を有するプロセッサデバイスは、中央処理ユニットと、インタラプトコントローラと、インタラプトが生じたことを示す第1のモードまたはコードの通常実行を示す第2のモードに設定されるように動作可能なステータスユニットと、ステータスユニットと連結され、構成可能ブレークポイントを備える、デバッグユニットであって、ブレークポイントが、デバイスがインタラプトサービスルーチンにおいて動作している場合のみ、アクティブ化されるという条件が設定されることができる、デバッグユニットとを備えてもよい。
さらなる実施形態によると、ステータスユニットは、最終ステージインタラプト検出ユニットと、インタラプトからの復帰検出ユニットとを備えてもよい。さらなる実施形態によると、最終ステージインタラプト検出ユニットは、デバイスがインタラプトサービスルーチンに入るように強制されるときのみ、インタラプトが生じたことを示す論理信号を生成してもよい。さらなる実施形態によると、ステータスユニットはさらに、第1の入力において論理1を受信する第1の入力を有し、最終ステージインタラプト検出ユニットによって制御される、第1のマルチプレクサと、第1の入力において論理0を受信し、第1のマルチプレクサの出力と連結される第2の入力を有する、第2のマルチプレクサであって、インタラプトからの復帰検出ユニットによって制御される、第2のマルチプレクサと、第2のマルチプレクサからの出力信号を受信し、第1のマルチプレクサの第2の入力と連結される出力を有する、クロック制御レジスタであって、レジスタの出力が、中央処理ユニットの現在のインタラプトステータスを示す、レジスタとを備えてもよい。さらなる実施形態によると、レジスタは、Dフリップフロップであることができる。さらなる実施形態によると、デバッグユニットはさらに、デバイスがインタラプトサービスルーチンを実行していないとき、ブレークポイントをアクティブ化するように構成されることができる。さらなる実施形態によると、デバッグユニットはさらに、常時、ブレークポイントをアクティブ化するように構成されることができる。さらなる実施形態によると、デバッグユニットは、3つの動作モードのうちの1つを設定する論理ゲートを備える、モード選択回路を備えてもよく、第1のモードは、中央処理ユニットがインタラプトサービスルーチンを実行するときのみ、ブレークポイントのトリガを可能にし、第2のモードは、中央処理ユニットがインタラプトサービスルーチンを実行しないときのみ、ブレークポイントのトリガを可能にし、第3のモードは、常時、ブレークポイントのトリガを可能にする。さらなる実施形態によると、本デバイスは、ブレークポイントが、以下の条件、命令アドレス、命令アドレス範囲、所定のアドレスへのデータ読取アクセス、および所定のアドレスへのデータ書込アクセスのうちの少なくとも1つによって定義されることを可能にするように構成される、ブレークポイント構成ユニットを備えてもよい。さらなる実施形態によると、ブレークポイントに対するデータ書込アクセスの条件はさらに、所定のデータアドレスのデータ値を定義してもよい。さらなる実施形態によると、いくつかのブレークポイント発生が、プログラムの実行がブレークポイントにおいて停止される前に満たされる必要があるように定義されることができる。さらなる実施形態によると、デバイスはさらに、複数のイベントを組み合わせ、プログラムの停止実行を生成するように動作可能なイベントコンバイナを備えてもよい。
別の実施形態によると、デバッグ能力を有する、プロセッサデバイス内で実行されたコードをデバッグするための方法は、中央処理ユニット(CPU)によってコードを実行することと、デバッグユニットによってコードを実行中、CPUのインタラプトサービスステータスを判定することと、CPUがインタラプトサービスルーチンを実行しているときのみ、デバッグユニット内のブレークポイントがアクティブ化されるように構成することと、ブレークポイントの発生の際、CPUがインタラプトサービスルーチン内の命令を実行している場合のみ、デバッグユニット内のブレークポイントをアクティブ化することとを含んでもよい。
本方法のさらなる実施形態によると、CPUのインタラプトサービスステータスを判定するために、デバッグユニットは、インタラプトサービスルーチンの実行を引き起こす、CPUの最終ステージインタラプト状態を判定し、インタラプトからの復帰命令の実行を判定するように構成されることができる。本方法のさらなる実施形態によると、デバッグユニットはさらに、デバイスがインタラプトサービスルーチンを実行していないとき、ブレークポイントをアクティブ化するように構成されることができる。本方法のさらなる実施形態によると、デバッグユニットはさらに、常時、ブレークポイントをアクティブ化するように構成されることができる。本方法のさらなる実施形態によると、本方法はさらに、デバッグユニットの動作モードを選択することを含んでもよく、第1のモードは、中央処理ユニットがインタラプトサービスルーチンを実行するときのみ、ブレークポイントのトリガを可能にし、第2のモードは、中央処理ユニットがインタラプトサービスルーチンを実行しないときのみ、ブレークポイントのトリガを可能にし、第3のモードは、常時、ブレークポイントのトリガを可能にする。本方法のさらなる実施形態によると、本方法はさらに、ブレークポイントが、以下の条件:命令アドレス、命令アドレス範囲、所定のアドレスへのデータ読取アクセス、および所定のアドレスへのデータ書込アクセスのうちの少なくとも1つによって定義されることを可能にするようにブレークポイント構成を構成することを含んでもよい。本方法のさらなる実施形態によると、ブレークポイントに対するデータ書込アクセスの条件はさらに、所定のデータアドレスのデータ値を定義してもよい。本方法のさらなる実施形態によると、いくつかのブレークポイント発生が、プログラムの実行が、ブレークポイントにおいて停止される前に満たされる必要があるように定義されることができる。
本願明細書は、例えば、以下の項目も提供する。
(項目1)
デバッグ能力を有するプロセッサデバイスであって、前記デバイスは、
中央処理ユニットと、
インタラプトコントローラと、
インタラプトが生じたことを示す第1のモードまたはコードの通常実行を示す第2のモードに設定されるように動作可能なステータスユニットと、
前記ステータスユニットと連結され、構成可能ブレークポイントを備える、デバッグユニットであって、ブレークポイントが、前記デバイスがインタラプトサービスルーチンにおいて動作している場合のみ、アクティブ化されるという条件が設定されることができる、デバッグユニットと
を備える、デバイス。
(項目2)
前記ステータスユニットは、
最終ステージインタラプト検出ユニットと、
インタラプトからの復帰検出ユニットと
を備える、項目1に記載のデバイス。
(項目3)
前記最終ステージインタラプト検出ユニットは、前記デバイスが前記インタラプトサービスルーチンに入るように強制されるときのみ、インタラプトが生じたことを示す論理信号を生成する、項目2に記載のデバイス。
(項目4)
前記ステータスユニットはさらに、
第1の入力において論理1を受信する第1の入力を有し、前記最終ステージインタラプト検出ユニットによって制御される、第1のマルチプレクサと、
第1の入力において論理0を受信し、前記第1のマルチプレクサの出力と連結された第2の入力を有する、第2のマルチプレクサであって、前記第2のマルチプレクサは、前記インタラプトからの復帰検出ユニットによって制御される、第2のマルチプレクサと、
前記第2のマルチプレクサからの出力信号を受信し、前記第1のマルチプレクサの第2の入力と連結された出力を有する、クロック制御レジスタであって、前記レジスタの出力は、前記中央処理ユニットの現在のインタラプトステータスを示す、クロック制御レジスタと
を備える、項目2に記載のデバイス。
(項目5)
前記レジスタは、Dフリップフロップである、項目4に記載のデバイス。
(項目6)
前記デバッグユニットはさらに、前記デバイスがインタラプトサービスルーチンを実行していないとき、ブレークポイントをアクティブ化するように構成されることができる、項目1に記載のデバイス。
(項目7)
前記デバッグユニットはさらに、常時、ブレークポイントをアクティブ化するように構成されることができる、項目6に記載のデバイス。
(項目8)
前記デバッグユニットは、3つの動作モードのうちの1つを設定する論理ゲートを備えるモード選択回路を備え、第1のモードは、前記中央処理ユニットがインタラプトサービスルーチンを実行するときのみ、ブレークポイントのトリガを可能にし、第2のモードは、前記中央処理ユニットがインタラプトサービスルーチンを実行しないときのみ、ブレークポイントのトリガを可能にし、第3のモードは、常時、ブレークポイントのトリガを可能にする、項目7に記載のデバイス。
(項目9)
ブレークポイントが、以下の条件、命令アドレス、命令アドレス範囲、所定のアドレスへのデータ読取アクセス、および所定のアドレスへのデータ書込アクセスのうちの少なくとも1つによって定義されることを可能にするように構成されている、ブレークポイント構成ユニットを備える、項目1に記載のデバイス。
(項目10)
ブレークポイントに対するデータ書込アクセスの条件はさらに、所定のデータアドレスのデータ値を定義してもよい、項目9に記載のデバイス。
(項目11)
いくつかのブレークポイント発生は、プログラムの実行が前記ブレークポイントにおいて停止される前に満たされる必要があるように定義されることができる、項目9に記載のデバイス。
(項目12)
複数のイベントを組み合わせ、プログラムの停止実行を生成するように動作可能なイベントコンバイナをさらに備える、項目9に記載のデバイス。
(項目13)
デバッグ能力を有するプロセッサデバイス内で実行されたコードをデバッグするための方法であって、前記方法は、
中央処理ユニット(CPU)によってコードを実行することと、
デバッグユニットによって前記コードを実行している間、前記CPUのインタラプトサービスステータスを判定することと、
前記CPUがインタラプトサービスルーチンを実行しているときのみ、前記デバッグユニット内のブレークポイントがアクティブ化されるように構成することと、
ブレークポイントの発生の際、前記CPUがインタラプトサービスルーチン内で命令を実行している場合のみ、前記デバッグユニット内の前記ブレークポイントをアクティブ化することと
を含む、方法。
(項目14)
前記CPUのインタラプトサービスステータスを判定するために、前記デバッグユニットは、インタラプトサービスルーチンの実行を引き起こす、前記CPUの最終ステージインタラプト状態を判定し、インタラプトからの復帰命令の実行を判定するように構成される、項目13に記載の方法。
(項目15)
前記デバッグユニットはさらに、前記デバイスがインタラプトサービスルーチンを実行していないとき、ブレークポイントをアクティブ化するように構成されることができる、項目13に記載の方法。
(項目16)
前記デバッグユニットはさらに、常時、ブレークポイントをアクティブ化するように構成されることができる、項目15に記載の方法。
(項目17)
前記デバッグユニットの動作モードを選択することをさらに含み、第1のモードは、前記中央処理ユニットがインタラプトサービスルーチンを実行するときのみ、ブレークポイントのトリガを可能にし、第2のモードは、前記中央処理ユニットがインタラプトサービスルーチンを実行しないときのみ、ブレークポイントのトリガを可能にし、第3のモードは、常時、ブレークポイントのトリガを可能にする、項目16に記載の方法。
(項目18)
ブレークポイントが、以下の条件:命令アドレス、命令アドレス範囲、所定のアドレスへのデータ読取アクセス、および所定のアドレスへのデータ書込アクセスのうちの少なくとも1つによって定義されることを可能にするようにブレークポイント構成を構成することをさらに含む、項目13に記載の方法。
(項目19)
ブレークポイントに対するデータ書込アクセスの条件はさらに、所定のデータアドレスのデータ値を定義してもよい、項目18に記載の方法。
(項目20)
いくつかのブレークポイント発生は、プログラムの実行が前記ブレークポイントにおいて停止される前に満たされる必要があると定義されてもよい、項目18に記載の方法。
図1は、種々の実施形態による、統合されたデバッグモジュールのブロック図を示す。 図2は、図1のハードウェアブレークポイントブロック図をより詳細に示す。 図3は、図1のイベントコンバイナブロック図をより詳細に示す。 図4は、高度ブレークポイント取扱ユニットを示す。 図5は、種々の実施形態による、埋め込まれたデバッグユニットを伴うマイクロコントローラと、外部回路内デバッグ(ICD)コントローラとを使用する、システムのブロック図を示す。
(詳細な説明)
ブレークポイントにインタラプト関連設定を提供することによって、マッチング条件がさらに絞り込まれ、さらに制限されることを可能にする。これは、従来のデバイスにおいて利用可能ではない機能性を提供する。これは、ブレークポイントが、インタラプトサービスルーチン(ISR)内でのみマッチングする、またはISR外でのみマッチングすることを可能にする。
種々の実施形態は、したがって、オンチップデバッグ能力における技術水準を高める。種々の実施形態によると、デバイスは、デバイスがインタラプトルーチンまたはメインラインルーチンからのコードを実行中であったかどうかを正確に判定し、本情報を使用して、あるブレークポイント特徴を適宜イネーブルまたはディスエーブルにする能力を有する。ブレークポイントのための本構成可能設定は、ブレークポイントが、インタラプト状態を用いて、デバイスのそのマッチングおよび停止を制限することを可能にする。
図1は、ある実施形態による、マイクロコントローラ内に統合され得る、回路内デバッグモジュールのブロック図を示す。しかしながら、前述のような一般的概念は、他のタイプのオンチップデバッグ回路網内に実装されることもできる。ブロック図は、例えば、マイクロコントローラ内に実装されることができ、以下の5つの基本ブロックから成り得る、モジュールを示す。
・ブレークポイント比較論理135
・ストップウォッチサイクルカウンタ論理150
・制御および状態機械論理145
・トレース論理120
・イベントコンバイナ論理125
マイクロコントローラは、中央処理ユニット(CPU)110と、CPU110と連結される関連付けられたインタラプトコントローラ112とを備える。CPU110はさらに、内部バスを通して、ハードウェアブレークポイントユニット135、イベント検出ユニット140、制御論理ユニット145、およびバックグラウンドインターフェース155と連結される。これらのブロックの具体的機能は、以下により詳細に説明される。マルチプレクサ160は、専用デバッグクロックおよびデータピン165を通して、デバッグユニットと外部デバッガの連結を可能にするために使用される。制御論理145は、1つ以上の外部ピンと連結されてもよい。図1はまた、トレースユニット120と併用され得る、例示的TRGINピン185を示す。そのようなピンは、他の機能を伴わない、専用ピンであってもよい。しかしながら、特に、低ピンデバイスでは、そのようなピンは、プログラム制御下、異なる周辺デバイスに割り当てられることができ、したがって、そのプログラムされた割当に従って、異なる機能を行うことができる、マルチ機能ピンであってもよい。例えば、そのようなピンは、構成レジスタを用いて、トレーストリガイン機能に加え、シリアルインターフェースクロックピン、デジタルI/Oピン、アナログ入力ピン等としてアクションするようにプログラムされてもよい。図1に示されるように、制御論理はまた、ピン185と同様に、マルチ機能ピンであり得る、トリガアウトピン190を提供する。トレースモジュール120は、トレース機能停止入力ピン115と、トレースクロックおよびデータ出力ピン175と連結されてもよい。図1はまた、制御論理145を通して構成可能であり得る、パルス排斥フィルタ170および180を示す。そのようなフィルタを通した信号ルーティングは、図1には示されない。いくつかの実施形態によると、ブレークポイントデバッグは、命令が実行される前に実行が一時停止されるように実装される(いわゆる「ゼロスキッド」動作)。他のデバッガ実施形態によると、これは、該当せず、コードが、停止または「スキッド」し、プロセッサが一時停止される前に命令が実行することを可能にする場合、問題を生じさせ得る。外部イベントは、(定義上)命令実行ストリームと非同期である。したがって、その動作は、ゼロスキッド概念に匹敵しない。
内部信号debug_en=1であるとき、モジュールは、イネーブルにされ、全「一時停止」イベントを監視し、イベントを生成し、データ捕捉等を行う。内部信号debug_en=0である場合、全デバッグ論理は、ディスエーブルにされ、モジュールは、最小電力モードを消費するように構成される。
低侵入性デバッグを行うために、データをデバイスからリアルタイムでストリーミングする手段を有することが有用であり得る。トレースモジュール120は、読み取られる、または具体的アドレスに書き込まれるデータを取り出し、それをトレースポートから伝送する方法をサポートする。これは、リアルタイムウォッチポイントとして説明されることができる。デバイスの通常動作は、ウォッチポイントを使用するとき、インタラプトされない。
図2は、種々の実施形態による、ハードウェアブレークポイントユニット135の通常機能を示す。拡張機能性が、以下により詳細に説明される。ハードウェアブレークポイントは、プログラムまたはデータメモリのいずれか内のマッチングアドレスをブレークするように構成されることができる。この目的を達成するために、個別のコンパレータ220および230およびデコーディングユニット240が、図2に示されるように、提供される。ブレークポイントが、データメモリ上で動作するように選択されると、ブレークポイントは、加えて、データ値およびマスクが認められ、ある値のみ、ブレークポイントイベントを生成することを可能にすることができる。データブレークポイントはまた、随意に、読取または書込サイクルのみをブレークするように設定されることができる。あらゆる場合において、ブレークポイントは、ブレークポイントイベントが生成される前に具体的イベントが、N回、生じなければならないようなカウンタ210を有する。これは、例えば、いくつかの実施形態によると、1〜256回の任意の値に設定されることができる。
図2のブロック図は、単一ブレークポイントに関して示される。しかしながら、実装されるブレークポイントの数は、種々の実施形態に従って、可変であって、多くのブレークポイントが、存在してもよい。図2は、種々のパラメータが、ブレークポイントのためのトリガ要件を定義するようにプログラムされることができる、例示的実施形態を示す。他の実施形態によると、より少ないまたはより多いそのようなパラメータが、使用されてもよい。例えば、ブレークポイントを生成するために必要なブレークポイント発生数は、カウンタ210内のBPxCNTパラメータによって設定されることができる。各ブレークポイントモジュールは、同じレジスタを有してもよい。
ブレークポイントは、イベントチャネル定義の中にリスト化され、サイクルカウンタ150を開始または停止する、イベントコンバイナステージ125を設定またはリセットする、トレースユニット120を開始または停止する、あるいはスタックスナップショットを撮影するために使用されることができる。
一実施形態によると、ブレークポイントがイネーブルにされるために、制御レジスタICDBPxCONのビットBPENが、設定されなければならない。本ビットが、クリアされる場合、本具体的ブレークポイントに対する全回路網は、ディスエーブルにされ、ブレークポイントイベントは、生成されないであろう。ブレークポイントは、認定条件のN回目の発生毎にのみ、アクションをトリガするように構成されることができる。例えば、3回目の発生毎にトリガするようにブレークポイントを設定するために、カウンタ210は、BPxCNT=2に設定される。個別の制御レジスタが、カウンタ210と組み合わせて使用され、その値をリロードし、および/または現在の状態を監視してもよい。
ブレークポイントはまた、例えば、関連付けられた構成レジスタ内に個別のビットを設定することによって、実行コンテキスト(メインラインコード、インタラプトハンドラ、または両方)に基づいて認定されてもよい。ブレークポイントは、したがって、以下により詳細に説明されるように、プログラムが選択されたコンテキストから実行するときのみ、生じてもよい。
さらに別のブレークポイントパラメータは、構成レジスタ内に、プログラムカウンタ(PC実行アドレス)を監視することを可能にする、個別のビットを設定することによって設定されてもよい。プログラムメモリブレークは、ゼロスキッドであって、動作が実行される前に生じる。PCは、トリガ命令のアドレスを示すであろう。
個別の制御ビットが、クリアされる、例えば、BPAREN=‘0’であるとき、PCが所定のアドレスに等しくなると、ブレークは、トリガされる。BPAREN=‘1’であるとき、PCがアドレスの所定の包含範囲内にあると、ブレークは、トリガされる。
いくつかの実施形態によると、実行された命令のみ、ブレークポイントを生成することができる。PCが、実行されないアドレスにあるとき、ブレークポイントは、トリガしない。これは、以下を含む。
・フロー変更命令(CALL、RETURN等)、
・スキップされた命令(BTFSS、BTFSCに従って)、または
・PCL、FSR、または他の2つのサイクル命令後の次のフェッチ。
別の制御ビットフィールドが、制御レジスタ内で01、10、または11に設定されると、ブレークポイントは、データアクセス、すなわち、アドレスおよび値の両方を監視する。関連付けられたビットの3つの状態は、読取または書込サイクルが、ブレークポイントを判定するために使用されるかどうかを選択する。
データブレークポイントは、必然的に、データが読み取られた、または書き込まれた後、命令実行終了時にブレークを生じさせる(規定通りに)。あらゆる場合において、命令は、完了するまで実行する。故に、「ブレーク」は、実際には、次の命令実行時に生じ、PCは、トリガ命令後に命令を示すであろう。ブレークはまた、メモリアドレスおよびデータ値限定子の両方が満たされるときにトリガされてもよい。
サイクルカウンタ150は、ユーザコードがプロファイル化され得るようなストップウォッチ機能を提供するために使用されるカウンタである。サイクルカウンタは、個別の制御レジスタによって制御される。カウンタ150は、4つの8−ビットカウンタ/レジスタから成ってもよい。カウンタ150は、CPUのQ−サイクルの終了毎にインクリメントされてもよい。すなわち、マルチサイクル命令(例えば、GOTO)は、複数回、カウントを行う。
複数の機能が具体的イベントによって制御されることを可能にするために、可能性として考えられるソースの全てが、1つのイベントバスに組み合わせられてもよい。これは、サイクルカウンタ150、トレースユニット120、およびイベントコンバイナユニット125が、同一の設定を使用して、そのアクションを選択することを可能にする。
イベントコンバイナ300は、図3に示されるように、複数のイベント入力320を監視し、それらの入力の組み合わせおよびシーケンスに基づいて、一時停止またはトリガアウト190を生成することができる。イベントコンバイナ300は、個別の制御ビットが設定されると、イネーブルにされる。ディスエーブルにされたコンバイナ300は、出力イベントをもたらさない。イベントコンバイナ300は、イベントチャネル定義の中にリスト化され、サイクルカウンタ150を開始または停止する、イベントコンバイナステージ310を設定またはリセットする、トレースユニット120を開始または停止する、またはスタックスナップショットを撮影するために使用されることができる。イベントコンバイナステージ310は、そのステージに対する個別の制御ビットが、関連付けられた制御レジスタ内に設定されると、独立して、イネーブルにされる。ステージの現在の出力は、関連付けられたステータスビット内に反映されるであろう。ステージ310は、図3に示されるような暗示される順序を有し、以下のいくつかの方法で組み合わせられることができる。
・ステージは、個々に、イベントによってアクティブ化されることができる。
・ステージは、次の下位ステージがアクティブである間、イベントによってアクティブ化されることができる。
・ステージは、個々に、イベントによって非アクティブ化されることができる。
・ステージは、イベントによって、または次の下位ステージが非アクティブ化されると、非アクティブ化されることができる。
個別の制御ビットを設定することによって、組み合わせられたイベントの(N+1)回目の発生のみ、出力イベントを信号伝達するであろう。Nは、0〜255に設定されることができる。組み合わせられたトリガ条件が満たされる場合、レジスタは、1だけデクリメントされる。組み合わせられたトリガ条件が満たされる場合、イベントコンバイナイベントが、生成され、カウンタに、プリセット値がリロードされる。また、新しいカウント値が個別の制御レジスタに書き込まれると、随時、カウンタ内の値が、リロードされる。例えば、3回目の発生時にトリガするようにブレークポイントを設定するために、個別のカウンタ値は、2に設定されるべきである。
ブレークポイント等のイベントが、イネーブルにされたトリガに伴って生じると、TRGOUTピン195上にパルスが、生成される。基本トリガ出力信号動作は、個別の制御ビットを設定することによって構成される。これらの制御ビットは、例えば、トリガ出力が、ほぼトリガイベントの持続時間の間、アサートされるように制御してもよい。隣接または重複イベントは、信号をアサートされた状態に保持してもよい。制御ビットはまた、出力が最短時間周期まで続くかどうか制御してもよい。TRGOUTワンショットがトリガされると、そのタイミング周期内に発生するさらなるイベントは、無視されるであろう。ワンショットがタイムアウトし、TRGOUTがゼロに戻った後、再び、別のイベントによってトリガされてもよい。ワンショットは、エッジトリガされ、イベント信号が持続する場合でも、所定の時間周期後、クリアするであろう。
ソフトウェアは、個別の制御ビットを設定することによって、トリガ出力を生じさせてもよい。デバイスが、ウェーク状態である場合、ビットは、1サイクル後、ハードウェアによってクリアされる。TRGOUTもまた、個別の制御ビットを書き込むことによって、クリアされてもよく、またはデバイスがウェックアップすると、自動的に、クリアされるであろう。
拡張ブレークポイント機能性は、図4を参照して、以下により詳細に説明される。図4に示される回路は、2つのブロック400aおよび400bを備える。
第1の回路部分400aは、CPUが、インタラプトサービス内で動作中である、またはその「通常」(非例外)ルーチンを実行中であるかどうかに関して、中央処理ユニット(CPU)の現在の状態を判定する。この目的を達成するために、第1のマルチプレクサ410は、2つの入力、出力、および制御入力を有するように提供される。第1の入力「0」は、フィードバック信号を受信し、第2の入力「1」は、論理1と有線接続される。マルチプレクサ410の制御入力は、最終ステージインタラプト検出ユニット430によって生成される論理信号を受信する。マルチプレクサ410の出力は、2つの入力、出力、および制御入力を有する第2のマルチプレクサ420の第1の入力「0」と連結される。マルチプレクサ440の制御入力は、インタラプトからの復帰検出ユニット440からさらなる論理信号を受信する。マルチプレクサ420の第2の入力「1」は、論理「0」と有線接続される。マルチプレクサ420の出力は、Dフリップフロップ450のデータ入力と連結される。フリップフロップ450は、システムクロックCLKによって駆動されるクロックであって、その出力Qにおいて、マルチプレクサ410の第1の入力にフィードバックされる、出力信号を生成する。本出力信号は、CPUがインタラプトサービスルーチン(ISR)内でコードを実行中であるかどうかを示す。
図4に示される回路の第2の部分400bは、機能選択を提供する。3つの動作モードが、選択されることができる。ブレークポイントイベント信号は、前述のように、ブレークポイントユニットによって生成されることができる。しかしながら、より多いまたはより少ない機能性を伴う他のブレークポイントユニットも、いくつかの実施形態に従って使用されてもよい。本ブレークポイントイベント信号は、3つのANDゲート460、470、および480の第1の入力にフィードされる。各ANDゲート460、470、および480の第2の入力は、動作モードを判定する論理信号を受信する。例えば、第1の信号「ISR時ブレークモード」は、CPUがインタラプトサービスルーチンを実行中であるときのみ、ブレークポイントの検出が可能であるために使用されてもよい。第2の信号「非ISR時ブレークモード」は、CPUがISRにおいてコードを実行中ではないときのみ、ブレークポイントが動作する、動作モードを提供する。第3の信号「常時ブレークモード」は、CPUがインタラプトサービスルーチンを実行するかどうかの事実にかかわらず、全アクティブブレークポイントが動作する、従来の動作モードを提供する。ANDゲート460および470は、それぞれ、フリップフロップ450からの非反転出力信号と、インバータ475を用いて反転される、フリップフロップ450からの出力信号とを受信する、第3の入力を提供する。3つの入力を有するORゲート490は、3つのANDゲート460、470、および480から出力信号を受信するように提供される。ORゲート490の出力は、最終ブレークポイント信号を提供する。
フリップフロップ450は、インタラプト実行の現在の状態を記憶する。最終ステージインタラプト検出ユニット430は、インタラプトが発生しているとき、それを判定するために使用される。最終ステージインタラプト検出ユニット430は、インタラプトが発生しないように妨害されないときのみ、アクティブである個別の出力信号を生成することが重要である。そうでなければ、これは、検出を誤らせ、誤検出は、不適切な挙動をもたらし得る。「最終ステージインタラプト検出」出力信号がアクティブになると、フリップフロップ450は、デバイスが、現在、インタラプトサービスルーチン(ISR)から実行中であることを示すように設定され、その結果、「ISR実行」信号は、高となり、そのままとなるであろう。
フリップフロップ450は、「インタラプトからの復帰検出」の際、自動的にクリアされるであろう。これは、典型的には、ISRから復帰するためにのみ使用される、特殊命令デコードである。「最終ステージインタラプト検出」および「インタラプトからの復帰検出」は、相互に排他的であることに留意されたい。
フリップフロップ450はまた、システムリセットの際、自動的にクリアされるであろう。これは、システムがリセットされた後、デバイスが、以前にISRから実行中である場合、そうでなければ、ここで、非ISRから実行していると見なされるため、重要である。
他の回路も、CPUの現在のステータスを判定するために使用されてもよい。例えば、CPUは、ISR実行信号として使用され得る、インタラプトが実際に実行中であるかどうかを示す、内部フラグを有してもよい。さらに、ネスト化されたインタラプトサービスルーチンの検出を可能にする回路が、優先化されたインタラプトの実行を可能にし、したがって、現在低優先順位のISRをより高く優先化されたISRを用いてインタラプトすることを可能にするように提供されてもよい。CPUがISRからコードを実行しているかどうかを正確に示す信号が提供されることが、不可欠である。
図4のブロック400bは、そのような「ISR実行」信号が、どのように関連付けられたブレークポイント論理によって使用され、ブレークポイントイベントの発生の許可または却下のいずれかを行い得るかを示す。本論理は、3つの相互に排他的設定、すなわち、ISR内のブレークポイントのみ可能にする、「ISR時ブレークモード」、ISR外のブレークポイントのみ可能にする、「非ISR時ブレークモード」、およびISR実行にかかわらず、ブレークポイントを可能にする、「常時ブレークモード」を有する。これらの2つの要素の組み合わせは、ブレークポイントが、インタラプトステータスに基づいて構成されることを可能にする。相互排他的信号は、1つ以上の構成レジスタを使用して、個別の構成論理によって生成されることができる。例えば、構成レジスタ内のビットフィールドは、3つの異なる動作モードをエンコードするために使用されてもよい。他の信号デコーディングも、他の実施形態に従って使用されてもよい。
インタラプトが発生中であることを正確に判定することは、困難であり得る。インタラプトが発生するであろうことを明白に示す信号を使用する必要がある。多くの場合、インタラプトプロセスにステージングが存在し、インタラプトの初期ステージは、インタラプトが発生しないように妨害するように遅延またはブロックされることができる。延期またはブロックされることができない最終信号のみ、したがって、使用されることができる。デバイスリセットの際、システムは、インタラプトせず、非ISR実行と見なされるはずである。フリップフロップ450に対する適切なリセットがない場合、リセットに先だった状態が、留保され得、不適切なブレークポイントマッチングは、発生しないであろう。
図5は、開発プログラミングを起動し、例えば、USBインターフェースを介して、外部デバッガ/プログラミングユニット520と接続される、パーソナルコンピュータ等のホストを伴う、典型的デバッグ/プログラミングシステムを示す。外部デバッガプログラミングユニット520は、デバッガ/プログラマ520内で生成された電ソース電圧を供給し得る、専用インターフェースを提供する。しかしながら、他の実施形態は、専用電源を介して、供給電圧を供給してもよく、または標的システムは、自己給電されてもよい。実際のデバッグ/プログラミングインターフェースは、デバッガ/プログラミングユニット520によって提供される単方向性クロック信号ICDCLKおよび双方向性データラインICDDataを伴う、同期シリアルインターフェースによって提供されてもよい。したがって、最低限でも、3つの接続ライン、ICDCLK、ICDData、および基準電位(GND)が、デバッガ/プログラミングユニット520と、最低限として、前述のように、種々の実施形態による、デバッグ/プログラミングインターフェースを伴うマイクロコントローラであり得る、標的システム510を連結するために使用され得る。
そのようなシステムは、ユーザが、ホスト上で起動するデバッグプログラムを、前述されたような条件を有する種々のブレークポイントを設定するようにプログラムすることを可能にする。デバッグソフトウェアは、ソースコード内のその位置に関して、種々のブレークポイントを追跡するが、デバッガ/プログラマ520は、個別のブレークポイントを設定し、その関連付けられたレジスタを構成する、ブレークポイント情報を標的デバイスに通信する。例えば、メモリ内に記憶されたデータ値のマッチングによってトリガされている、具体的ブレークポイントが、設定されてもよく、インタラプトサービスルーチンが実行されるときのみブレークポイントがトリガされる、拡張機能が、アクティブ化される。ユーザは、次いで、ホストPC530上で起動するデバッガソフトウェアを通して、標的デバイス510のソフトウェアの実行を開始する。標的ソフトウェアの実行は、両条件が該当するときのみ、すなわち、標的510のCPUがインタラプトサービスルーチンを実行し、規定されたメモリ場所が所定の値にマッチングしたときのみ、停止される。別の設定によると、サブルーチンは、標的ソフトウェアのメインルーチンおよびインタラプトサービスルーチンの両方によって使用されてもよい。ユーザが、実行されたコードに関するトラブルに遭遇する場合、特に、ISRからサブルーチンを呼び出すとき、通常、ブレークポイントが、個別のサブルーチン内に設定されるであろう。しかしながら、サブルーチンが、インタラプトサービスルーチンによって稀にしか呼び出されない場合、標的ソフトウェアの実行は、メインルーチンが別のサブルーチンを呼び出すことによって生じる、多くの実行停止をもたらし得る。これは、デバッギングを完全に役に立たなくし得る。ある実施形態によると、ユーザは、そのような状況において、デバッガ動作モードを設定し、前述のようにインタラプトルーチンを実行するときのみ、ブレークポイントを可能にすることができる。現時点では、標的ソフトウェアの実行は、サブルーチンがインタラプトサービスルーチンから呼び出されるときのみ、サブルーチン内で停止され、それによって、そうでなければ、実行を停止し、標的デバッギングを多かれ少なかれ役に立たなくするであろう、多数の他の可能性として考えられるブレークポイントイベントをフィルタリングする。

Claims (20)

  1. デバッグ能力を有するプロセッサデバイスであって、前記デバイスは、
    中央処理ユニットと、
    インタラプトコントローラと、
    インタラプトが生じたことを示す第1のモードまたはコードの通常実行を示す第2のモードに設定されるように動作可能なステータスユニットと、
    前記ステータスユニットと連結され、構成可能ブレークポイントユニットを備える、デバッグユニットであって、ブレークポイントが、前記デバイスがインタラプトサービスルーチンにおいて動作している場合のみ、アクティブ化されるという条件が設定されることができる、デバッグユニットと
    を備える、デバイス。
  2. 前記ステータスユニットは、
    最終ステージインタラプト検出ユニットと、
    インタラプトからの復帰検出ユニットと
    を備える、請求項1に記載のデバイス。
  3. 前記最終ステージインタラプト検出ユニットは、前記デバイスが前記インタラプトサービスルーチンに入るように強制されるときのみ、インタラプトが生じたことを示す論理信号を生成する、請求項2に記載のデバイス。
  4. 前記ステータスユニットはさらに、
    第1の入力において論理1を受信する第1の入力を有し、前記最終ステージインタラプト検出ユニットによって制御される、第1のマルチプレクサと、
    第1の入力において論理0を受信し、前記第1のマルチプレクサの出力と連結された第2の入力を有する、第2のマルチプレクサであって、前記第2のマルチプレクサは、前記インタラプトからの復帰検出ユニットによって制御される、第2のマルチプレクサと、
    前記第2のマルチプレクサからの出力信号を受信し、前記第1のマルチプレクサの第2の入力と連結された出力を有する、クロック制御レジスタであって、前記レジスタの出力は、前記中央処理ユニットの現在のインタラプトステータスを示す、クロック制御レジスタと
    を備える、請求項2に記載のデバイス。
  5. 前記レジスタは、Dフリップフロップである、請求項4に記載のデバイス。
  6. 前記デバッグユニットはさらに、前記デバイスがインタラプトサービスルーチンを実行していないとき、ブレークポイントをアクティブ化するように構成されることができる、請求項1に記載のデバイス。
  7. 前記デバッグユニットはさらに、常時、ブレークポイントをアクティブ化するように構成されることができる、請求項6に記載のデバイス。
  8. 前記デバッグユニットは、3つの動作モードのうちの1つを設定する論理ゲートを備えるモード選択回路を備え、第1のモードは、前記中央処理ユニットがインタラプトサービスルーチンを実行するときのみ、ブレークポイントのトリガを可能にし、第2のモードは、前記中央処理ユニットがインタラプトサービスルーチンを実行しないときのみ、ブレークポイントのトリガを可能にし、第3のモードは、常時、ブレークポイントのトリガを可能にする、請求項7に記載のデバイス。
  9. 前記構成可能ブレークポイントユニットは、ブレークポイントが、以下の条件、命令アドレス、命令アドレス範囲、所定のアドレスへのデータ読取アクセス、および所定のアドレスへのデータ書込アクセスのうちの少なくとも1つによって定義されることを可能にするように動作可能である、請求項1に記載のデバイス。
  10. ブレークポイントに対するデータ書込アクセスの条件はさらに、所定のデータアドレスのデータ値を定義してもよい、請求項9に記載のデバイス。
  11. いくつかのブレークポイント発生は、プログラムの実行が前記ブレークポイントにおいて停止される前に満たされる必要がある定義されることができる、請求項9に記載のデバイス。
  12. 複数のイベントを組み合わせ、デバッグイベントを生成するように動作可能なイベントコンバイナをさらに備える、請求項9に記載のデバイス。
  13. デバッグ能力を有するプロセッサデバイス内で実行されたコードをデバッグするための方法であって、前記方法は、
    中央処理ユニット(CPU)によってコードを実行することと、
    記コードを実行している間、前記CPUのインタラプトサービスステータスを判定することと、
    前記CPUがインタラプトサービスルーチンを実行しているときのみ、デバッグユニット内のブレークポイントがアクティブ化されるように構成することと、
    ブレークポイントの発生の際、前記CPUがインタラプトサービスルーチン内で命令を実行している場合のみ、前記デバッグユニット内の前記ブレークポイントをアクティブ化することと
    を含む、方法。
  14. 前記CPUのインタラプトサービスステータスを判定するために、前記デバッグユニットは、インタラプトサービスルーチンの実行を引き起こす、前記CPUの最終ステージインタラプト状態を判定し、インタラプトからの復帰命令の実行を判定するように構成される、請求項13に記載の方法。
  15. 前記デバッグユニットはさらに、前記デバイスがインタラプトサービスルーチンを実行していないとき、ブレークポイントをアクティブ化するように構成されることができる、請求項13に記載の方法。
  16. 前記デバッグユニットはさらに、常時、ブレークポイントをアクティブ化するように構成されることができる、請求項15に記載の方法。
  17. 前記デバッグユニットの動作モードを選択するステップをさらに含み、第1のモードは、前記中央処理ユニットがインタラプトサービスルーチンを実行するときのみ、ブレークポイントのトリガを可能にし、第2のモードは、前記中央処理ユニットがインタラプトサービスルーチンを実行しないときのみ、ブレークポイントのトリガを可能にし、第3のモードは、常時、ブレークポイントのトリガを可能にする、請求項16に記載の方法。
  18. ブレークポイントが、以下の条件:命令アドレス、命令アドレス範囲、所定のアドレスへのデータ読取アクセス、および所定のアドレスへのデータ書込アクセスのうちの少なくとも1つによって定義されることを可能にするようにブレークポイント構成を構成することをさらに含む、請求項13に記載の方法。
  19. ブレークポイントに対するデータ書込アクセスの条件はさらに、所定のデータアドレスのデータ値を定義してもよい、請求項18に記載の方法。
  20. いくつかのブレークポイント発生は、プログラムの実行が前記ブレークポイントにおいて停止される前に満たされる必要があると定義されることができる、請求項18に記載の方法。
JP2015511621A 2012-05-07 2013-05-07 インタラプトステータスに基づく構成可能なブレークポイントを有するデバイス Active JP6116670B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261643707P 2012-05-07 2012-05-07
US61/643,707 2012-05-07
PCT/US2013/039938 WO2013169767A1 (en) 2012-05-07 2013-05-07 Device having configurable breakpoint based on interrupt status

Publications (3)

Publication Number Publication Date
JP2015516099A JP2015516099A (ja) 2015-06-04
JP2015516099A5 JP2015516099A5 (ja) 2016-06-30
JP6116670B2 true JP6116670B2 (ja) 2017-04-19

Family

ID=48468809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015511621A Active JP6116670B2 (ja) 2012-05-07 2013-05-07 インタラプトステータスに基づく構成可能なブレークポイントを有するデバイス

Country Status (6)

Country Link
US (1) US9336122B2 (ja)
EP (1) EP2847681B1 (ja)
JP (1) JP6116670B2 (ja)
KR (1) KR20150008447A (ja)
CN (1) CN104471545B (ja)
WO (1) WO2013169767A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785536B2 (en) 2013-11-29 2017-10-10 Nxp Usa, Inc. Code injection for conditional breakpoints
GB2530050B (en) * 2014-09-10 2021-07-21 Advanced Risc Mach Ltd Debugging in a data processing apparatus
GB2551747B (en) * 2016-06-29 2019-04-10 Advanced Risc Mach Ltd Diagnostic data capture
US10073759B2 (en) 2016-09-29 2018-09-11 International Business Machines Corporation Identification and handling of nested breakpoints during debug session
US10761967B2 (en) * 2018-05-16 2020-09-01 Texas Instruments Incorporated Managing and maintaining multiple debug contexts in a debug execution mode for real-time processors
US11099975B2 (en) 2019-01-24 2021-08-24 International Business Machines Corporation Test space analysis across multiple combinatoric models
US11263116B2 (en) 2019-01-24 2022-03-01 International Business Machines Corporation Champion test case generation
US11010285B2 (en) 2019-01-24 2021-05-18 International Business Machines Corporation Fault detection and localization to generate failing test cases using combinatorial test design techniques
US11010282B2 (en) 2019-01-24 2021-05-18 International Business Machines Corporation Fault detection and localization using combinatorial test design techniques while adhering to architectural restrictions
US11106567B2 (en) 2019-01-24 2021-08-31 International Business Machines Corporation Combinatoric set completion through unique test case generation
WO2020186518A1 (en) * 2019-03-21 2020-09-24 Hangzhou Fabu Technology Co. Ltd Method and apparatus for debugging, and system on chip
US10970195B2 (en) 2019-06-13 2021-04-06 International Business Machines Corporation Reduction of test infrastructure
US11036624B2 (en) 2019-06-13 2021-06-15 International Business Machines Corporation Self healing software utilizing regression test fingerprints
US11422924B2 (en) 2019-06-13 2022-08-23 International Business Machines Corporation Customizable test set selection using code flow trees
US10970197B2 (en) 2019-06-13 2021-04-06 International Business Machines Corporation Breakpoint value-based version control
US10963366B2 (en) 2019-06-13 2021-03-30 International Business Machines Corporation Regression test fingerprints based on breakpoint values
US11232020B2 (en) 2019-06-13 2022-01-25 International Business Machines Corporation Fault detection using breakpoint value-based fingerprints of failing regression test cases
US10990510B2 (en) 2019-06-13 2021-04-27 International Business Machines Corporation Associating attribute seeds of regression test cases with breakpoint value-based fingerprints
CN112540288B (zh) * 2020-11-30 2023-02-21 海光信息技术股份有限公司 用于硅后芯片验证的方法、系统、设备以及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6418348U (ja) * 1987-07-23 1989-01-30
JPH0675819A (ja) * 1992-08-27 1994-03-18 Mitsubishi Electric Corp マイクロプロセッサ
US5951696A (en) * 1996-11-14 1999-09-14 Hewlett-Packard Company Debug system with hardware breakpoint trap
JP2003271416A (ja) * 2002-03-12 2003-09-26 Seiko Epson Corp 情報処理装置及び電子機器
US7334161B2 (en) * 2004-04-30 2008-02-19 Arm Limited Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus
US7865704B2 (en) * 2006-03-29 2011-01-04 Freescale Semiconductor, Inc. Selective instruction breakpoint generation based on a count of instruction source events
KR20070109432A (ko) * 2006-05-11 2007-11-15 삼성전자주식회사 커널 인지 디버깅 장치 및 방법
CN101777021B (zh) * 2010-01-21 2012-07-04 龙芯中科技术有限公司 微处理器中精确数据断点的实现装置及其方法
KR101717494B1 (ko) * 2010-10-08 2017-03-28 삼성전자주식회사 인터럽트 처리 장치 및 방법

Also Published As

Publication number Publication date
CN104471545A (zh) 2015-03-25
CN104471545B (zh) 2017-10-27
US20130297975A1 (en) 2013-11-07
US9336122B2 (en) 2016-05-10
KR20150008447A (ko) 2015-01-22
EP2847681B1 (en) 2019-08-07
EP2847681A1 (en) 2015-03-18
WO2013169767A1 (en) 2013-11-14
JP2015516099A (ja) 2015-06-04

Similar Documents

Publication Publication Date Title
JP6116670B2 (ja) インタラプトステータスに基づく構成可能なブレークポイントを有するデバイス
KR101430218B1 (ko) 디버그 상태 기계 및 이를 포함하는 프로세서
US7266725B2 (en) Method for debugging reconfigurable architectures
US10970192B2 (en) Debugging support unit for microprocessor
JP6220863B2 (ja) リセット条件トレース能力を伴うプロセッサデバイス
JP6397815B2 (ja) 命令トレース能力を有するプロセッサデバイス
JP2015516099A5 (ja)
US20070011492A1 (en) Generation of trace data
US10078113B1 (en) Methods and circuits for debugging data bus communications
US10795685B2 (en) Operating a pipeline flattener in order to track instructions for complex
US6175913B1 (en) Data processing unit with debug capabilities using a memory protection unit
US20020120801A1 (en) Technique for capturing information
US9495239B1 (en) User-configurable error handling
RU2432601C2 (ru) Метод внедрения детерминизма среди множества интервалов тактирования
US11907100B2 (en) Generation of trace messages including an instruction retirement count and a stall count
EP4073526A1 (en) Debug state machine triggered extended performance monitor counter
Stollon et al. An On-Chip Debug System
JPH0750446B2 (ja) データ処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160506

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160506

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170321

R150 Certificate of patent or registration of utility model

Ref document number: 6116670

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250