JP3684832B2 - マイクロコンピュータ、電子機器及びデバッグシステム - Google Patents
マイクロコンピュータ、電子機器及びデバッグシステム Download PDFInfo
- Publication number
- JP3684832B2 JP3684832B2 JP10372198A JP10372198A JP3684832B2 JP 3684832 B2 JP3684832 B2 JP 3684832B2 JP 10372198 A JP10372198 A JP 10372198A JP 10372198 A JP10372198 A JP 10372198A JP 3684832 B2 JP3684832 B2 JP 3684832B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- microcomputer
- monitor
- command
- frequency division
- 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.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 claims description 63
- 238000005070 sampling Methods 0.000 claims description 39
- 238000012544 monitoring process Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 14
- 230000007175 bidirectional communication Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 3
- 230000006854 communication Effects 0.000 description 59
- 238000004891 communication Methods 0.000 description 59
- 230000005540 biological transmission Effects 0.000 description 54
- 238000000034 method Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 19
- 101000633445 Homo sapiens Structural maintenance of chromosomes protein 2 Proteins 0.000 description 12
- 102100029540 Structural maintenance of chromosomes protein 2 Human genes 0.000 description 12
- 102100029538 Structural maintenance of chromosomes protein 1A Human genes 0.000 description 11
- 108010004731 structural maintenance of chromosome protein 1 Proteins 0.000 description 11
- 238000001514 detection method Methods 0.000 description 9
- 230000010365 information processing Effects 0.000 description 7
- QDSRUIDWGNCDAY-LIRRHRJNSA-N (2s)-2-[(2r)-1-chloro-2-hydroxypropan-2-yl]-10-hydroxy-5-methoxy-1,2-dihydrofuro[2,3-c]xanthen-6-one Chemical compound O1C2=C(O)C=CC=C2C(=O)C2=C1C(C[C@H](O1)[C@@](C)(O)CCl)=C1C=C2OC QDSRUIDWGNCDAY-LIRRHRJNSA-N 0.000 description 6
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 6
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 6
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 6
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 239000000523 sample Substances 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 101100042788 Caenorhabditis elegans him-1 gene Proteins 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Description
【発明の属する技術分野】
本発明は、マイクロコンピュータ、マイクロコンピュータを含む電子機器、及びデバッグシステムに関する。
【0002】
【背景技術及び発明が解決しようとする課題】
近年、ゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末などの電子機器に組み込まれ、高度な情報処理を実現できるマイクロコンピュータに対する需要が高まっている。そして、このような組み込み型のマイクロコンピュータは、通常、ターゲットシステムと呼ばれるユーザボードに実装される。そして、このターゲットシステムを動作させるソフトウェアの開発を支援するためにICE(In-Circuit Emulator)と呼ばれるソフトウェア開発支援ツールが広く使用されている。
【0003】
さて、このようなICEとしては、従来、図1(A)に示すようなCPU置き換え型と呼ばれるICEが主流を占めていた。このCPU置き換え型ICEでは、デバッグ時にターゲットシステム300からマイクロコンピュータ302を取り外し、その代わりにデバッグツール304のプローブ306を接続する。そして、このデバッグツール304に、取り外したマイクロコンピュータ302の動作をエミュレートさせる。また、このデバッグツール304に、デバッグのために必要な種々の処理を行わせる。
【0004】
しかしながら、このCPU置き換え型ICEには、プローブ306のピン数が多くなると共にプローブ306の線308が増えるという欠点があった。このため、マイクロコンピュータ302の高周波数動作をエミュレートすることが困難になる(例えば33MHZ程度が限界)。またターゲットシステム300の設計も困難になる。更に、マイクロコンピュータ302を実装して動作させる実動作時とデバッグツール304でマイクロコンピュータ302の動作をエミュレートするデバッグモード時とで、ターゲットシステム300の動作環境(信号のタイミング、負荷条件)が変化してしまう。またこのCPU置き換え型ICEには、マイクロコンピュータが異なれば、たとえそれが派生品であっても、設計が異なるデバッグツールや、ピン数やピンの位置が異なるプローブを使用しなければならないという問題もあった。
【0005】
一方、このようなCPU置き換え型ICEの欠点を解消するものとして、図1(B)に示すような、モニタプログラム310をターゲットシステム312に実装するタイプのICEが知られている。しかしながら、これまでのモニタプログラム実装型ICEでは、モニタプログラム310に、全てのデバッグコマンド(プログラムのロード、GO、ステップ実行、メモリのリード・ライト、内部レジスタのリード・ライト、ブレークポイントの設定・解除)を実行する機能を持たせる必要があった。したがって、モニタプログラム310の命令コードサイズが非常に大きくなってしまう(例えば30〜50Kバイト)。このため、ユーザが自由に使用できるメモリ領域が減ってしまうと共に、デバッグ時とデバッグ時以外でシステムが異なってしまうという問題があった。図1(B)の問題点を解決する方法として、モニタプログラムをチップ上にのせるオンチップデバッグという方法があるが、命令コードサイズが大きなモニタプログラムをチップ内に設けると、チップのサイズを大きくしてしまうという問題点がある。
【0006】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、小さな命令コードサイズ又は回路規模でオンチップデバッグ機能を実現できるマイクロコンピュータ、これを含む電子機器、及びデバッグシステムを提供することにある。
【0007】
【課題を解決するための手段】
上記課題を解決するために本発明は、オンチップデバッグ機能を有するマイクロコンピュータであって、命令の実行処理を行う中央処理ユニットと、マイクロコンピュータの外部に設けられデバッグコマンドを少なくとも1つのプリミティブコマンドに変換するための処理を行う第2のモニタ手段との間でデータを送受信し、実行するプリミティブコマンドを前記第2のモニタ手段からの受信データに基づいて決定し、決定したプリミティブコマンドを実行するための処理を行う第1のモニタ手段とを含むことを特徴とする。
【0008】
本発明によれば、マイクロコンピュータの外部に設けられた第2のモニタ手段が、ホストシステム等が発行したデバッグコマンドをプリミティブコマンドに変換(分解)するための処理を行う。そして、第1のモニタ手段は、この第2のモニタ手段からデータを受信し、この受信データに基づいて決定されたプリミティブコマンドを実行するための処理を行う。本発明によれば、第1のモニタ手段の処理を実行するためのモニタプログラムに、各デバッグコマンドを実行するための複雑なルーチンを持たせる必要がなくなる。したがって、モニタプログラムの命令コードサイズを格段に小さくできるようになり、小さなハードウェア規模でオンチップデバッグ機能を実現できるようになる。
【0009】
また本発明は、前記プリミティブコマンドが、ユーザプログラムの実行を開始するコマンド、デバッグモード時におけるメモリマップ上のアドレスにデータをライトするコマンド、及び前記メモリマップ上のアドレスからデータをリードするコマンドを含むことを特徴とする。このようにプリミティブコマンドをシンプルにすることで、モニタプログラムの命令コードサイズを更に小さくできるようになる。
【0010】
また本発明は、前記中央処理ユニットの命令実行処理に使用され、デバッグモード時におけるメモリマップ上にそのアドレスが割り付けられる制御レジスタを含むことを特徴とする。このようにすれば、デバッグモード時に制御レジスタを用いたデバッグ処理を行うことが可能になり、処理の簡易化、ハードウェアの小規模化を図れるようになる。
【0011】
また本発明は、前記中央処理ユニットの内部レジスタの内容が退避され、デバッグモード時におけるメモリマップ上にそのアドレスが割り付けられるモニタRAMを含むことを特徴とする。このようにすれば、デバッグモード時に、内部レジスタの内容をリードしたりすることが可能になり、より多様なデバッグ機能を実現できるようになる。
【0012】
また本発明は、前記第2のモニタ手段との間で半2重の双方向通信を行うための1本の双方向通信ラインが接続される端子を含み、スレーブとなる前記第1のモニタ手段が、マスタとなる前記第2のモニタ手段からデータを受信したことを条件に、該受信データに対応する処理を行い該受信データに対応する応答データを前記第2のモニタ手段に送信することを特徴とする。このようにすれば、マイクロコンピュータの端子(ピン)数を減らすことが可能となり、マイクロコンピュータの低コスト化を図れるようになる。また、第1、第2のモニタ手段の間の通信プロトコルを単純化でき、モニタプログラムの命令コードサイズを更に小さくできるようになる。
【0013】
また本発明は、前記第2のモニタ手段からの受信データが、前記第1のモニタ手段が実行するプリミティブコマンドの識別データを含むことを特徴とする。このようにすることで、プリミティブコマンドの実行の指示を簡易に第2のモニタ手段から第1のモニタ手段に伝えることが可能になる。
【0014】
また本発明は、前記第1のモニタ手段が、前記第2のモニタ手段との間で固定長のデータを送受信することを特徴とする。このようにすることで、第1のモニタ手段のモニタプログラムの命令コードサイズを更に小さくすることが可能になる。
【0015】
また本発明は、前記第1のモニタ手段の処理を実行するためのモニタプログラムがROMに格納されていることを特徴とする。このようにすることで、RAMに比べて占有面積の小さいROMにモニタプログラムが格納されると共に、モニタプログラムをRAMにロードするロジック回路等が不要になる。したがって、マイクロコンピュータの更なる小規模化を図れるようになる。
【0016】
また本発明は、前記第1のモニタ手段が、第1のクロックを分周し、調歩同期式で送受信されるデータの各ビットをサンプリングするための第1のサンプリングクロックを生成する第1の分周回路と、前記第1のサンプリングクロックに基づいてデータを送受信する回路とを含み、前記第1のモニタ手段が、前記第2のモニタ手段が含む第2の分周回路が第2のサンプリングクロックを生成するための信号として、前記第1のクロックを、前記第2のモニタ手段に供給することを特徴とする。このように、サンプリングクロックを生成するための第1のクロックを第1、第2のモニタ手段で共有することで、通信データのサンプリングエラーの発生率を格段に低くすることが可能になると共に、通信速度の最適化、高速化を図れるようになる。
【0017】
また本発明は、前記第1のモニタ手段がリード及びライト可能なモニタRAMを含み、前記第1のモニタ手段が、ユーザプログラムの実行がブレークしデバッグモードに移行した場合に、前記中央処理ユニットのプログラムカウンタ値及び内部レジスタの内容を前記モニタRAMに待避することを特徴とする。このようにすることで、デバッグモードからユーザプログラム実行モードに戻った時に適正にユーザプログラムを実行できるようになる。また第1のモニタ手段が内部レジスタの内容等を利用して各種の処理を行うことも可能になる。
【0018】
また本発明に係る電子機器は、上記のいずれかのマイクロコンピュータと、前記マイクロコンピュータの処理対象となるデータの入力源と、前記マイクロコンピュータにより処理されたデータを出力するための出力装置とを含むことを特徴とする。このようにすれば、電子機器を動作させるプログラムなどのデバッグ作業の効率化を図れるようになり、電子機器の開発期間の短縮化、低コスト化を図れるようになる。
【0019】
また本発明は、マイクロコンピュータを含むターゲットシステムのためのデバッグシステムであって、ホストシステムが発行したデバッグコマンドを少なくとも1つのプリミティブコマンドに変換するための処理を行う第2のモニタ手段と、前記第2のモニタ手段との間でデータを送受信し、実行するプリミティブコマンドを前記第2のモニタ手段からの受信データに基づいて決定し、決定したプリミティブコマンドを実行するための処理を行う第1のモニタ手段とを含むことを特徴とする。
【0020】
本発明によれば、第1のモニタ手段の処理を実行するためのモニタプログラムの命令コードサイズを格段に小さくできる。これにより、ユーザが自由に使用できるメモリ領域を増やすことが可能になる。また、ターゲットシステムを、実動作時の環境と同一の環境でデバッグできるデバッグシステムを提供できるようになる。
【0021】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【0022】
1.本実施形態の特徴
まず本実施形態の特徴について図2を用いて説明する。
【0023】
図2に示すように、本実施形態では、マイクロコンピュータ10が、CPU(中央処理ユニット)12及び本実施形態の要部であるミニモニタ部(第1のモニタ手段)14を含む。また、マイクロコンピュータ10の外部にはメインモニタ部(第2のモニタ手段)16が設けられている。ここでメインモニタ部16は、例えばホストシステムなどが発行したデバッグコマンドをプリミティブコマンドに変換(分解)するための処理を行う。また、ミニモニタ部14は、メインモニタ部16との間でデータを送受信する。そして、ミニモニタ部14は、実行するプリミティブコマンドを、メインモニタ部16からの受信データに基づいて決定し、プリミティブコマンドを実行するための処理を行う。
【0024】
ここで、メインモニタ部16の変換処理の対象となるデバッグコマンドとしては、プログラムロード、GO、ステップ実行、メモリライト、メモリリード、内部レジスタライト、内部レジスタリード、ブレークポイント設定、ブレークポイント解除などのコマンドを考えることができる。メインモニタ部16は、これらの多様で複雑なデバッグコマンドを、例えばGO、ライト(デバッグモード時におけるメモリマップ上の所与のアドレスへのライト)、リード(メモリマップ上の所与のアドレスからのリード)などの、シンプルでプリミティブなコマンドに変換する処理を行う。このようにすることで、ミニモニタ部14の処理を行うミニモニタプログラムの命令コードサイズを格段に小さくすることができる。これにより、マイクロコンピュータ10のオンチップデバッグ機能を実現できるようになる。
【0025】
即ち、図1(B)に示すようなタイプのICEでは、モニタプログラム310は、プログラムロード、GO、ステップ実行などのデバッグコマンドの全ての処理ルーチンを有している。このため、モニタプログラム310の命令コードサイズが非常に大きくなり(例えば30〜50Kバイト)、モニタプログラム310をマイクロコンピュータ314に内蔵することは事実上困難となる。
【0026】
これに対して、本実施形態では、ミニモニタ部14の処理を行うミニモニタプログラムは、GO、ライト、リードなどのシンプルなプリミティブコマンドの処理ルーチンのみを有し、命令コードサイズが非常に小さい(例えば256バイト)。したがって、ミニモニタプログラムをマイクロコンピュータ10に内蔵することが可能となり、オンチップデバッグ機能を実現できるようになる。また、ユーザが自由に使用できるメモリ領域の減少を最小限に抑える、あるいは全く減少させないようにすることが可能になる。
【0027】
2.詳細な構成例
図3に本実施形態のマイクロコンピュータ及びデバッグシステムの詳細な構成例を示す。図3に示すように、マイクロコンピュータ20は、CPU22、BCU(バス制御ユニット)26、内部メモリ(ミニモニタROM42及びミニモニタRAM44以外の内部ROM及び内部RAM)28、クロック生成部30、ミニモニタ部40(第1のモニタ手段)、トレース部50を含む。
【0028】
ここでCPU22は、種々の命令の実行処理を行うものであり、内部レジスタ24を含む。内部レジスタ24は、汎用レジスタであるR0〜R15や、特殊レジスタであるSP(スタックポインタレジスタ)、AHR(積和結果データの上位レジスタ)、ALR(積和結果データの下位レジスタ)などを含む。
【0029】
BCU26はバスを制御するものである。例えば、CPU22に接続されるハーバードアーキテクチャのバス31や、内部メモリ28に接続されるバス32や、外部メモリ36に接続される外部バス33や、ミニモニタ部40、トレース部50などに接続される内部バス34の制御を行う。
【0030】
またクロック生成部30は、マイクロコンピュータ20内で使用される各種のクロックを生成するものである。クロック生成部30はBCLKを介して外部のデバッグツール60にもクロックを供給している。
【0031】
ミニモニタ部40は、ミニモニタROM42、ミニモニタRAM44、制御レジスタ46、SIO48を含む。
【0032】
ここで、ミニモニタROM42には、ミニモニタプログラムが格納される。本実施形態では、このミニモニタプログラムは、GO、リード、ライトなどのシンプルでプリミティブなコマンドの処理のみを行うようになっている。このため、ミニモニタROM42のメモリ容量を例えば256バイト程度に抑えることができ、オンチップデバッグ機能を持たせながらマイクロコンピュータ20を小規模化できるようになる。
【0033】
ミニモニタRAM44には、デバッグモードへの移行時に(ユーザプログラムのブレーク発生時に)、CPU22の内部レジスタ24の内容が退避される。これにより、デバッグモードの終了後にユーザプログラムの実行を適正に再スタートできるようになる。また内部レジスタの内容のリード等を、ミニモニタプログラムが持つプリミティブなリードコマンド等で実現できるようになる。
【0034】
制御レジスタ46は、各種のデバッグ処理を制御するためのレジスタであり、ステップ実行イネーブルビット、ブレークイネーブルビット、ブレークアドレスビット、トレースイネーブルビットなどを有する。ミニモニタプログラムにより動作するCPU22が制御レジスタ46の各ビットにデータをライトしたり、各ビットのデータをリードすることで、各種のデバッグ処理が実現される。
【0035】
SIO48は、マイクロコンピュータ20の外部に設けられたデバッグツール60との間でデータを送受信するためのものである。SIO48とデバッグツール60との間は、TXD/RXD(データ送受信ライン)で接続されている。
【0036】
トレース部50は、リアルタイムトレース機能を実現するためのものである。トレース部50とデバッグツール60との間は、CPU22の命令実行のステートを表す3ビットのDST[2:0]と、分岐先のPC(プログラムカウンタ)値を表すDPCOという4本のラインで接続されている。
【0037】
デバッグツール60はメインモニタ部62を含み、パーソナルコンピュータ等により実現されるホストシステム66に接続される。ホストシステム66が、ユーザの操作により、プログラムロード、ステップ実行などのデバッグコマンドを発行すると、メインモニタ部62が、このデバッグコマンドをプリミティブコマンドに変換(分解)するための処理を行う。そして、メインモニタ部62が、プリミティブコマンドの実行を指示するデータをミニモニタ部40に送信すると、ミニモニタ部40が、指示されたプリミティブコマンドを実行するための処理を行うことになる。
【0038】
図4に、デバッグモード時のメモリマップの例を示す。図4のD1、D2、D3に示すように、デバッグモード時には、図3の制御レジスタ46、ミニモニタRAM44、ミニモニタROM42のアドレスも、メモリマップ上に割り付けられる。
【0039】
3.プリミティブコマンドへの変換
図5(A)、(B)、(C)、(D)に、各種のデバッグコマンドをプリミティブコマンドへ変換する処理について模式的に示す。
【0040】
例えば図5(A)に示すように、(ADD・・・、SUB・・・、AND・・・、OR・・・、XOR・・・、LD.W・・・)という12バイトのプログラムを80010h番地にロードするというデバッグコマンドが発行されたとする。この場合、このプログラムロードコマンドは、ライト(80010h、ADD・・・、SUB)、ライト(80014h、AND・・・、OR・・・)、ライト(80018h、XOR・・・、LD.W・・・)という3つのプリミティブなライトコマンドに変換される。即ち、ミニモニタプログラムが、この3つのプリミティブなライトコマンドを実行することで、プログラムロードコマンドが実現されるようになる。
【0041】
また図5(B)に示すようにステップ実行コマンドというデバッグコマンドが発行されたとする。すると、このステップ実行コマンドは、図3の制御レジスタ46のステップ実行イネーブルビットへのライトコマンド(図4のD1のアドレスへのライトコマンド)とGOコマンドに変換される。即ち、ミニモニタプログラムが、このプリミティブなライトコマンドとGOコマンドを実行することで、ステップ実行コマンドが実現されるようになる。
【0042】
また図5(C)に示すように内部レジスタリードコマンドというデバッグコマンドが発行されたとする。すると、この内部レジスタリードコマンドは、メモリマップ上のミニモニタRAM44(内部レジスタの内容の退避先)からのリードコマンド(図4のD2のアドレスからのリードコマンド)に変換される。即ち、ミニモニタプログラムが、このプリミティブなリードコマンドを実行することで、内部レジスタリードコマンドが実現されるようになる。内部レジスタライトコマンド、メモリリードコマンド、メモリライトコマンドも同様にして実現される。
【0043】
また図5(D)に示すようにブレークポイント設定コマンドというデバッグコマンドが発行されたとする。すると、このブレークポイント設定コマンドは、制御レジスタ46のブレークイネーブルビット及びブレークアドレスビットへのライトコマンドに変換される。即ち、ミニモニタプログラムが、このプリミティブなライトコマンドを実行することで、ブレークポイント設定コマンドが実現されるようになる。
【0044】
このように本実施形態では、複雑で多様なデバッグコマンドが、プリミティブでシンプルなリード、ライト、GOコマンドに変換される。そして、ミニモニタプログラムは、このプリミティブなリード、ライト、GOコマンドを実行するだけでよいため、ミニモニタプログラムの命令コードサイズは非常に小さくなる。この結果、ミニモニタROM42のメモリ容量も小さくでき、小さなハードウェア規模でオンチップデバッグ機能を実現できるようになる。
【0045】
4.SIOの構成例
図6にSIO48の構成例を示す。SIO48は、送受信バッファ70、シフトレジスタ76、送受信切替部78、クロック制御部80及び制御レジスタ84を含む。
【0046】
ここで送受信バッファ70は、送信データ、受信データを一時的に蓄えるためのものであり、送信バッファ72、受信バッファ74を有する。シフトレジスタ76は、送信バッファ72からの送信データをパラレルデータからシリアルデータに変換し送受信切替部78に出力する機能を有する。また送受信切替部78からの受信データをシリアルデータからパラレルデータに変換し受信バッファ74に出力する機能も有する。送受信切替部78は、データの送信と受信とを切り替えるためのものである。これにより、TXD/RXDを使用した半2重のデータ送受信が可能になる。
【0047】
クロック制御部80は、内蔵する分周回路82によりBCLKを分周し、この分周により得られたサンプリングクロックSMC1をシフトレジスタ76に出力する。シフトレジスタ76は、このSMC1に基づき動作する。またクロック制御部80は、デバッグツール60にBCLKを供給する。これにより、マイクロコンピュータ20とデバッグツール60により、BCLKが共有されるようになる。
【0048】
分周回路82での分周比は制御レジスタ84により設定される。即ちCPU22により実行されるミニモニタプログラムが、所望の分周比を制御レジスタ84に書き込むことで、分周回路82での分周比が設定されることになる。なお、制御レジスタ84のアドレスも、図3の制御レジスタ46と同様に、図4のD1の位置に割り付けられている。
【0049】
5.デバッグツールの構成例
図7にデバッグツール60の構成例を示す。
【0050】
CPU90は、ROM108に格納されるプログラムを実行したり、デバッグツール60の全体の制御を行うものである。送受信切替部92は、データの送信と受信とを切り替えるためのものである。クロック制御部94は、CPU90のSCLK端子、アドレスアップカウンタ100、トレースメモリ104に供給するクロックを制御するものである。このクロック制御部94には、マイクロコンピュータ20(SIO48)からのBCLKが入力される。クロック制御部94は周波数検出回路95、分周回路96を含む。周波数検出回路95は、BCLKの周波数が属する周波数範囲を検出して、その結果を制御レジスタ98に出力する。また分周回路96での分周比は制御レジスタ98により制御される。即ちCPU90により実行されるメインモニタプログラム(メインモニタROM110に格納)が、制御レジスタ98からBCLKの周波数範囲を読み出す。そして、メインモニタプログラムは、この周波数範囲に応じた最適な分周比を決定し、この分周比を制御レジスタ98に書き込む。そして、分周回路96は、この分周比でBCLKを分周してSMC2を生成し、CPU90のSCLK端子に出力する。
【0051】
アドレスアップカウンタ100は、トレースメモリのアドレスをカウントアップするためのものである。セレクタ102は、ライン122(アドレスアップカウンタ100が出力するアドレス)とライン124(アドレスバス120からのアドレス)のいずれかを選択し、トレースメモリ104のアドレス端子にデータを出力する。またセレクタ106は、ライン126(図3のトレース部50の出力であるDST[2:0]、DPCO)とライン128(データバス118)のいずれかを選択し、トレースメモリ104のデータ端子にデータを出力したり、データ端子からデータを取り出す。
【0052】
ROM108はメインモニタROM110(図3のメインモニタ部62に相当)を含み、メインモニタROM110には、メインモニタプログラムが格納される。このメインモニタプログラムは、図5(A)〜図5(D)で説明したように、デバッグコマンドをプリミティブコマンドに変換するための処理を行う。RAM112は、CPU90のワーク領域となるものである。
【0053】
RS232Cインターフェース114、パラレルインターフェース116は、図3のホストシステム66とのインターフェースとなるものであり、ホストシステム66からのデバッグコマンドはこれらのインターフェースを介してCPU90に入力されることになる。クロック生成部118は、CPU90を動作させるクロックなどを生成するものである。
【0054】
次に本実施形態でのリアルタイムトレース処理について簡単に説明する。本実施形態では、図3のCPU22の命令実行のステートを表す3ビットのDST[2:0]と、分岐先のPC値を表すDPCOをトレースメモリ104に蓄える。そして、トレースメモリ104に蓄えられたデータと、ユーザプログラムのソースコードとに基づいて、トレースデータを合成する。このようにすることで、マイクロコンピュータ20とデバッグツール60との間の接続ラインの本数を少なくしながら、リアルタイムトレース機能を実現することが可能になる。
【0055】
ユーザプログラム実行モードにおいては、ライン122が選択され、セレクタ102を介してアドレスアップカウンタ100の出力がトレースメモリ104のアドレス端子に入力される。また、ライン126が選択され、セレクタ106を介してDST[2:0]、DPCOがトレースメモリ105のデータ端子に入力される。ここでアドレスアップカウンタ100には、まず最初に、データバス118、アドレスバス120を用いてCPU90により図8(A)に示すようなスタートアドレスが設定される。またアドレスアップカウンタ100のST/SP(開始/停止)端子には、トレース範囲を特定するDST[2]のラインが接続される。そして図8(B)に示すように、DST[2]のラインに第1のパルス130が入力されると、アドレスアップカウンタ100のアドレスアップカウントが開始する。そして、DST[2]のラインに第2のパルス132が入力されると、アドレスアップカウンタ100のアドレスアップカウントが停止し、トレース動作が停止する。このようにして、所望のトレース範囲でのデータ(DST[2:0]、DPCO)をトレースメモリ104に蓄えることが可能になる。
【0056】
一方、ユーザプログラム実行モードからデバッグモードに移行すると、ライン124が選択され、セレクタ102を介してアドレスバス120からのアドレスがトレースメモリ104のアドレス端子に入力される。またライン128が選択され、セレクタ106を介してトレースメモリ104からのデータがデータバス118に出力される。これにより、トレースメモリ104に蓄えられたデータ(DST[2:0]、DPCO)を、デバッグモード時にCPU90(メインモニタプログラム)が読み出すことが可能になる。そして、読み出されたデータとユーザープログラムのソースコードとに基づいて、トレースデータを合成することが可能になる。
【0057】
6.データの送受信
さて、図9(A)に示すように、ミニモニタ部40とメインモニタ部62の間でのデバッグデータの通信の手法としては、TXD(送信)とRXD(受信)のラインを別々に設け、全2重で通信する手法が考えられる。
【0058】
しかしながら、このようにデバッグデータの通信のために2本のライン(端子)を使用してしまうと、その分だけマイクロコンピュータの端子数(ピン数)が増えてしまい、これはマイクロコンピュータの高コスト化を招く。
【0059】
そこで本実施形態では、図9(B)に示すように、ミニモニタ部40とメインモニタ部62との間に1本のTXD/RXDライン(双方向通信ライン)を設け、半2重の双方向通信を行う。このようにすることで、マイクロコンピュータの端子数の増加を最小限に抑えることができ、マイクロコンピュータの低コスト化を図れる。
【0060】
そして更に本実施形態では、図9(C)に示すように、スレーブとなるミニモニタ部40が、マスタとなるメインモニタ部62からデータを受信したことを条件に、その受信データに対応する処理を行い、その受信データに対応する応答データをメインモニタ部62に送信する。即ち、メインモニタ部62がデータ(コマンド)をミニモニタ部40に送信すると、ウェイト状態となっていたミニモニタ部40がこれを受信し、その受信データに対応する処理を行う。そして、その受信データに対応するデータ(リプライ)をメインモニタ部62に送信する。その後、ミニモニタ部40は、メインモニタ部62からデータを受信するまでウェイト状態になる。即ちミニモニタ部40は、メインモニタ部62からデータを受信するまで動作を停止し、データを受信したことを条件に動作を開始する。このようにすることで、ミニモニタ部40とメインモニタ部62との間の通信ラインを1本にしながら、データを適正に送受信できるようになる。
【0061】
さて、図9(A)の通信手法は、TXDとRXDが別ラインになっているため、図9(B)に比べてデータを高速に通信できるという利点がある。また、ミニモニタ部40、メインモニタ部62の一方で通信エラーが発生した場合に、即座にエラーメッセージを他方に返すことができるという利点もある。例えば、ミニモニタ部40で通信エラーが発生した場合には、RXDでのデータ受信の終了を待つことなくTXDを使用して即座にエラーメッセージをメインモニタ部62に返すことができる。
【0062】
一方、本実施形態では後述するように、ミニモニタ部40とメインモニタ部62とでBCLKを共有させている。これにより後述するように、最適な速度で高速にデータを通信できるようになる。したがって、図9(A)のような通信ラインを2本設ける構成にせずに、図9(B)のように通信ラインを1本だけ設ける構成にしても、問題なくデバッグデータを高速に送受信できるようになる。
【0063】
また、本実施形態では後述するように、送受信データは固定長でありデータ長が短い(例えば14バイト)。したがって、例えばミニモニタ部40で通信エラーが発生した場合、受信処理の終了を待ってからエラーメッセージを送信しても、時間的な遅れはそれほど大きくならない。また、送受信データのデータ長が短いため、通信エラーの発生自体も最小限に抑えることができる。
【0064】
このように本実施形態では、デバッグデータの通信ラインを1本だけ設ける構成にすることでマイクロコンピュータの端子数を減らすという利益を得ている。そしてこの利益を得るために生じる不利益(通信速度の低下、エラーメッセージの遅延)を、BCLKを共有化したり送受信データを固定長の短いデータにすることで解消している。
【0065】
7.送受信データのフォーマット及び種類
図10(A)に、TXD/RXDのラインで送受信されるデータのフォーマット例を示す。送受信データは、1バイトのID(コマンド識別データ)、1バイトのデータサイズ、4バイトのアドレス、4バイトのデータ1、4バイトのデータ2から成る14バイトの固定長データになっている。
【0066】
図10(B)に示すように、メインモニタ部62がミニモニタ部40にGOコマンドの実行を指示する場合、ミニモニタ部40が受信するデータのIDには、GOコマンドの識別データである00hが設定される。そしてこの場合には、ミニモニタ部40は、メインモニタ部62にデータを送信しない。
【0067】
図10(C)に示すように、メインモニタ部62がライトコマンドの実行を指示する場合、ミニモニタ部40の受信データのIDには、ライトコマンドの識別データである01hが設定される。また受信データのアドレス、データ1、データ2には、各々、ライトアドレス、ライトデータ1、ライトデータ2が設定される。そして、ミニモニタ部40の送信データのデータ1には01hが設定される。
【0068】
なお、ライトコマンドを、バイトデータのライトコマンド、ハーフワードデータのライトコマンド、ワードデータのライトコマンド、ダブルワードデータのライトコマンドというように、ライトするデータの長さに応じて複数種類用意するようにしてもよい。このようにした場合には、各々のライトコマンドに対して異なったIDを割り振ることになる。
【0069】
図10(D)に示すように、メインモニタ部62がリードコマンドの実行を指示する場合、ミニモニタ部40の受信データのIDには、リードコマンドの識別データである02hが設定される。また受信データのアドレスにはリードアドレスが設定される。そして、ミニモニタ部40の送信データのデータ1、データ2には、各々、リードコマンド処理で得られたリードデータ1、リードデータ2が設定される。
【0070】
さて、本実施形態では、ミニモニタ部62が実行するプリミティブコマンドとして、GO、ライト、リードコマンド以外にも、外部ルーチンジャンプ、データフィルなどのコマンドを用意している。
【0071】
ここで外部ルーチンジャンプコマンドは、外部ルーチンにジャンプすることを指示するコマンドである。このような外部ルーチンジャンプコマンドを用いることで、例えばフラッシュメモリ(EEPROM)の初期化プログラムや書き込みプログラムのルーチンへのジャンプが可能になる。そして図11(A)に示すように、メインモニタ部62が外部ルーチンジャンプコマンドの実行を指示する場合、ミニモニタ部40の受信データのIDには、外部ルーチンジャンプコマンドの識別データである03hが設定される。また受信データのデータサイズ、アドレス、データ1、データ2には、各々、18h(誤動作防止チェック)、%R12(ルーチンアドレス)、%R13(ライトデータ)、%R14(データアドレス)が設定される。そして、ミニモニタ部40の送信データのデータ1には、%R10(戻り値。戻り値が0の場合に正常終了)が設定される。
【0072】
またデータフィルコマンドは、メモリを所与の値(例えば0)でフィルするためのコマンドである。例えば大容量のメモリの全てのビットを0の値に設定する場合、ライトコマンドを用いたのでは処理時間が非常に長くなる。このような場合、データフィルコマンドが有効になる。そして図11(B)に示すように、メインモニタ部62がデータフィルコマンドの実行を指示する場合、ミニモニタ部40の受信データのIDには、データフィルコマンドの識別データである04hが設定される。また受信データのデータサイズ、アドレス、データ1、データ2には、各々、データサイズである1、2又は4、スタートアドレス、フィル回数、フィルパターンが設定される。
【0073】
このように本実施形態では、メインモニタ部62からの受信データに、ミニモニタ部40が実行するプリミティブコマンドの識別データIDを含ませている。このようにすることで、プリミティブコマンドの実行の指示を簡易にミニモニタ部40に伝えることが可能になる。
【0074】
8.固定長の送受信データ
本実施形態では図10(A)に示すように、ミニモニタ部40、メインモニタ部62間の送受信データを14バイトの固定長のデータにしている。このようにすることで、ミニモニタプログラムの命令コードサイズを更に小さくすることが可能になる。
【0075】
即ち送受信データを可変長にすると、図12(A)のE1、E2、E3に示す処理部分(命令列)が、ほとんど全てのコマンドについて必要になる。これらのE1、E2、E3の処理部分は、どれだけのデータ数の処理が必要かを判断する部分である。即ち可変長データを処理する場合には、送受信データに含まれるデータサイズに基づいて、処理すべきデータの数を調べる必要がある。そして、そのデータ数を、例えばワーク領域であるRAM上に保持しておいて、1つのデータの処理が終了する毎にこのデータ数をデクリメントしたり、データ数が0になったか否かを判断したりする処理が必要になる。このため、図12(A)に示すように、ミニモニタプログラムのソースコードのサイズが大きくなる。
【0076】
これに対して、本実施形態では、送受信データを固定長にしている。このため、図12(A)と図12(B)を比較すればわかるように、ミニモニタプログラムのソースコードのサイズを可変長の場合に比べて例えば2/3程度にできる。これにより、図3のミニモニタROM42のサイズを更に小さくでき、小さなハードウェア規模でオンチップデバッグ機能を実現できるようになる。
【0077】
なお、送受信データを固定長にすると通信効率が悪化するため、可変長にする場合に比べて通信速度が低下するという問題が生じる。そこで、本実施形態では後述するように、ミニモニタ部40とメインモニタ部62にBCLKを共有させている。これにより、最適な速度で高速にデータを通信できるようになり、上記の問題を解消できる。
【0078】
9.ミニモニタROM
本実施形態では図3に示すように、マイクロコンピュータ20内にミニモニタROM42を設け、このミニモニタROM42にミニモニタプログラムを格納するようにしている。このようにすることで、ハードウェアの小規模化、マイクロコンピュータの低コスト化を図れるようになる。
【0079】
例えば図13(A)に示す構成では、マイクロコンピュータ330にローダロジック回路332及びRAM334を設ける。そして、このローダロジック回路332を用いて、JTAGインターフェース336を介して外部からRAM334にモニタプログラムをロードする。しかしながら、この構成では、ローダロジック回路332や、サイズがROMの5〜10倍程度になるRAM334をマイクロコンピュータ330内に設ける必要がある。このため、マイクロコンピュータ330の大規模化、高コスト化の問題を招く。
【0080】
これに対して、本実施形態では図13(B)に示すように、ミニモニタプログラムは、サイズがRAMの1/5〜1/10倍程度になるミニモニタROM42に格納される。またローダロジック回路も必要ない。したがって、図13(A)の構成に比べて、マイクロコンピュータ20の小規模化、低コスト化を図れるようになる。
【0081】
また図13(A)の構成では、電源投入時又はリセット時に、CPUを一旦停止し、次にローダロジック回路332でモニタプログラムをRAM334にロードし、その後、CPUをデバッグモードで再スタートする必要がある。このため、処理が複雑化すると共に、デバッグモードのスタートに時間を要するようになってしまう。
【0082】
これに対して、図13(B)の本実施形態では、RAMにミニモニタプログラムをロードする必要がない。このため、電源投入時又はリセット時に、CPUを一旦停止することなく、CPUのデバッグモードの動作をすぐにスタートできるようになる。
【0083】
10.BCLKの共有化
さて、マイクロコンピュータとデバッグツールとの間でのデータの通信方式としては、いわゆる同期式と呼ばれるものや調歩同期式と呼ばれるものを採用できる。そしてICEにおいては、マイクロコンピュータとデバッグツールとの間の通信ラインの本数をできる限り少なくすることが望まれる。更に通信データのサンプリングエラーをできる限り防止することも望まれる。
【0084】
ところが同期式で通信を行う場合には、図14(A)に示すように、マイクロコンピュータ340(第1の情報処理装置)とデバッグツール342(第2の情報処理装置)との間に4本の通信ラインを設ける必要がある。即ち、送信データであるTXDのライン、TXDのサンプリングクロックであるTCLKのライン、受信データであるRXDのライン、RXDのサンプリングクロックであるRCLKのラインが必要になる。このため、通信ラインの本数が不要に増えてしまう。
【0085】
一方、調歩同期式で通信を行う場合には、図14(B)に示すように、マイクロコンピュータ340とデバッグツール342は、別々にほぼ同一周波数のクロックを持つことになる。例えばマイクロコンピュータ340はクロックCLK1を持ち、デバッグシステム342はクロックCLK2を持ち、CLK1とCLK2の周波数をほぼ同一にする。そしてマイクロコンピュータ340は、図15(A)に示すように、CLK1を分周することでサンプリングクロックSMC1を生成し、調歩同期式で通信されるデータの各ビット(スタートビット、D0〜D7、ストップビット)を、このSMC1でサンプリングする。またデバッグツール342は、図15(B)に示すように、CLK2を分周することでサンプリングクロックSMC2を生成し、調歩同期式で通信されるデータの各ビット(ステートビット、D0〜D7、ストップビット)をこのSMC2でサンプリングする。
【0086】
しかしながら、この調歩同期式では、マイクロコンピュータ340に含まれるCPUの動作周波数が高くなりCLK1及びCLK2の周波数が高くなると、SMC1及びSMC2の周波数も高くなり、通信データのサンプリングエラーが生じやすくなってしまう。逆に言えば、通信データのサンプリングエラーが生じない程度までしか、CLK1及びCLK2の周波数を高くできない。これは、マイクロコンピュータ340が高速動作する環境でのデバッグ作業ができないということを意味する。即ち、デバッグ作業時においては、マイクロコンピュータのクロック周波数を下げなければいけなくなる。
【0087】
このような問題を解決するために本実施形態では、図16に示すように、マイクロコンピュータ140とデバッグツール150とで、サンプリングクロックを生成するためのBCLKを共有させている。
【0088】
より具体的には、マイクロコンピュータ140(第1の情報処理装置)は、通信部142(図3のSIO48に相当)を含む。そして通信部142は、送受信回路144(図6の送受信バッファ70、シフトレジスタ76及び送受信切替部78に相当)、分周回路146(図6の分周回路82に相当)を含む。この分周回路146は、図17(A)に示すように、BCLK(第1のクロック)を分周し、調歩同期式で送受信されるデータの各ビットをサンプリングするためのサンプリングクロックSMC1を生成する。そして、送受信回路144は、このSMC1に基づいてデータを送受信する。更にマイクロコンピュータ140は、BCLKをデバッグツール150に供給する。
【0089】
デバッグツール150(第2の情報処理装置)は、通信部152を含む。そして通信部152は、送受信回路154(図7のCPU90、送受信切替部92に相当)、分周回路156(図7の分周回路96に相当)を含む。この分周回路156は、図17(B)に示すように、マイクロコンピュータ140から供給されたBCLKを分周し、サンプリングクロックSMC2を生成する。そして、送受信回路154は、このSMC2に基づいてデータを送受信する。
【0090】
このように本実施形態では、調歩同期式でありながら、サンプリングクロックSMC1、SMC2を生成するためのBCLKをマイクロコンピュータ140とデバッグツール150とで共有する。これにより、通信データのサンプリングエラーの発生率を、図14(B)に示す一般的な調歩同期式通信に比べて格段に減少できる。また、図14(A)の同期式通信では、4本の通信ラインが必要であったが、本実施形態では図16に示すように2本の通信ラインで済む(全2重の場合には3本)。したがって、マイクロコンピュータ140とデバッグツール150との間の通信ラインの本数を、図14(A)に比べて少なくできる。この結果、マイクロコンピュータ140の端子数を減らすことが可能になり、マイクロコンピュータ140の低コスト化を図れるようになる。
【0091】
特に、図14(B)の構成では、CLK1(及びCLK2)の周波数が高くなればなるほど、通信データのサンプリングエラーの発生率も高くなる。このため、デバッグ作業時においてマイクロコンピュータ340のクロック周波数を高くできず、マイクロコンピュータ340が高速動作する環境でのデバッグ作業ができなかった。
【0092】
これに対して、図16の本実施形態では、マイクロコンピュータ140もデバッグツール150もBCLKに基づいてサンプリングクロックを生成している。このため、BCLKの周波数が高くなっても、サンプリングエラーの発生率がそれほど高くならない。この結果、マイクロコンピュータ140が高速動作する環境でのデバッグ作業が可能になり、より実動作時に近い環境でのデバッグ作業が可能になる。
【0093】
更に本実施形態では、図18に示すように、通信部142に分周比制御部148(図6の制御レジスタ84に相当)を含ませると共に、通信部152に分周比制御部158(図7の制御レジスタ98に相当)、周波数検出回路159(図7の周波数検出回路95に相当)を含ませている。これにより、SMC1を生成する際の分周比FD1と、SMC2を生成する際の分周比FD2を可変に制御することが可能になる。この結果、BCLKの周波数が変化しても、最適で高速な通信速度でデータを通信することが可能になる。
【0094】
即ち図19(A)に示すようにBCLKの周波数が低くなった場合には、図17(A)、(B)で16であった分周比FD1、FD2が例えば8に変更される。これにより、サンプリングクロックSMC1、SMC2は、BCLKを16分周したクロックから8分周したクロックに変更される。この結果、1ビットのデータに対応するBCLKのクロック数が、16であったものが(16クロックモード)、8に変更される(8クロックモード)。
【0095】
また図19(B)に示すようにBCLKの周波数が更に低くなった場合には、図19(A)で8であった分周比FD1、FD2が例えば4に変更される。これにより、サンプリングクロックSMC1、SMC2は、BCLKを8分周したクロックから4分周したクロックに変更される。この結果、1ビットのデータに対応するBCLKのクロック数が、8であったものが(8クロックモード)、4になるように変更される(4クロックモード)。
【0096】
このようにすることで、BCLKの周波数が低くなった場合にも、データの通信速度は結局低くならなくなる。この結果、最適で高速な通信速度でデータを通信することが可能になる。
【0097】
特に、マイクロコンピュータのクロック周波数は、マイクロコンピュータを使用するユーザ毎に異なったものになるのが一般的である。即ち、あるユーザは60MHZのクロックでマイクロコンピュータを動作させ、別のユーザは20MHZのクロックでマイクロコンピュータを動作させる。
【0098】
しかしながら、図14(A)、(B)の通信方式では、マイクロコンピュータのクロック周波数が変化すると、データの通信速度も変化してしまう。即ち、クロック周波数が低くなるとデータの通信速度も低くなってしまう。したがって、最大限の通信速度でデータを通信することができなくなる。
【0099】
これに対して、本実施形態では、マイクロコンピュータのクロック周波数が、マイクロコンピュータを使用するユーザに応じて変化すると、分周比FD1、FD2も変化し、1ビットのデータに対応するクロック数も変化する。即ちクロック周波数が低くなると、分周比FD1、FD2も小さくなり、1ビットのデータに対応するクロック数も少なくなる。この結果、通信速度は結局低くならず、最適で高速な通信速度で通信を行えるようになる。即ち、多様な周波数のクロックを使用するユーザに応じて、最適な通信速度で通信を行えるようになる。
【0100】
次に、通信部142、152での処理について図20、図21のフローチャートを用いて更に詳細に説明する。
【0101】
図20に示すように、まず、図18の通信部152内の周波数検出回路159が、マイクロコンピュータ140から供給されるBCLKの周波数を検出する(ステップV1)。そして、BCLKの周波数が30MHZ以上であるか否かを判断し(ステップV2)、30MHZ以上である場合には、分周比制御部158が分周比FD2を16に設定する(ステップV3)。そして、FD2が16であることを知らせる分周比データを、送受信回路154を介してマイクロコンピュータ140に送信する(ステップV4)。次に、分周回路156がFD2=16でBCLKを分周しSMC2を生成する(ステップV5)。そして、以降は、このSMC2によりデータの送受信を行う。
【0102】
BCLKの周波数が30MHZより低い場合には、周波数が15MHZ以上か否かを判断する(ステップV6)。そして、周波数が15MHZ以上である場合にはFD2=8に設定し(ステップV7)、ステップV4、V5と同様の処理を行う(ステップV8、V9)。また、BCLKの周波数が15MHZより低い場合にはFD2=4に設定し(ステップV10)、ステップV4、V5と同様の処理を行う(ステップV11、V12)。
【0103】
一方、マイクロコンピュータ140側では図21のフローチャートに示すような処理を行う。即ち、まず、デバッグツール150から送受信回路144を介して分周比データを受信する(ステップW1)。次に、受信した分周比データに基づいて分周比制御部148が分周比FD1を決定する(ステップW2)。そして、分周回路146は、このFD1でBCLKを分周しSMC1を生成する。そして、以降は、このSMC1でデータの送受信を行う。
【0104】
11.ミニモニタ部の詳細な処理例
次にミニモニタ部の詳細な処理例について説明する。
【0105】
図22に示すように、ユーザプログラムの実行中にブレークが発生すると、ミニモニタプログラムの処理がスタートし、ユーザプログラム実行モードからデバッグモードに移行する。そして、ミニモニタプログラムが所与のコマンド処理を行いリターン命令を実行すると、デバッグモードからユーザプログラム実行モードに戻る。
【0106】
図23、図24に、デバッグモードでのミニモニタプログラムの処理を表すフローチャートを示す。
【0107】
デバッグモードに移行すると、ミニモニタプログラムは、まず、図3のCPU22の内部レジスタ24の内容をミニモニタRAM44に退避する(ステップS1)。そして、ミニモニタプログラムが使用する制御レジスタ46の設定処理を行う(ステップS2)。
【0108】
次に、デバッグツール60から受信した14バイトのデータ(図10(A)参照)を、受信バッファ74(図6参照)にライトする(ステップS3)。そして、受信バッファ74のデータの先頭の1バイト(コマンド識別データID)をチェックする(ステップS4)。
【0109】
そして図24に示すように、IDがリードコマンドを示すものであった場合には(図10(D)参照)、受信バッファ74からリードアドレスを取得する(ステップS5、S6)。そして、取得したリードアドレスからデータをリードし、送信バッファ72にライトする(ステップS7)。次に、送信バッファ72のデータをデバッグツール60に送信する(ステップS8)。そして、図23のステップS3に戻り、次の受信データを受信バッファ74にライトする。
【0110】
IDがライトコマンドを示すものであった場合には(図10(C)参照)、受信バッファ74からライトアドレスを取得する(ステップS9、S10)。そして、受信バッファ74からライトデータを取得し、ステップS10で取得したライトアドレスにライトする(ステップS11)。
【0111】
IDが外部ルーチンジャンプコマンドを示すものであった場合には(図11(A)参照)、受信バッファ74からルーチンアドレスを取得する(ステップS12、S13)。そして、外部ルーチンにジャンプ後、ミニモニタプログラムにリターンする(ステップS14)。
【0112】
IDがGOコマンドを示すものであった場合には(図11(B)参照)、ミニモニタRAM44に退避したデータを内部レジスタ24にリストアする(ステップS15、S16)。そして、図22に示すようにユーザプログラムにリターンし、デバッグモードから抜ける(ステップS17)。
【0113】
一方、IDがリード、ライト、外部ルーチンジャンプ、GOコマンドのいずれでもなかった場合には、処理が必要ないと判断する(ステップS15、S18)。そして送信バッファ72にダミーのデータをライトする(ステップS19)。なお、図24では、データフィルコマンドの処理については省略している。
【0114】
以上のようにして、デバッグコマンドを変換することで得られたプリミティブコマンドが、ミニモニタプログラムにより実行されることになる。
【0115】
12.電子機器
次に、以上の本実施形態のマイクロコンピュータを含む電子機器に関して説明する。
【0116】
例えば図25(A)に電子機器の1つであるカーナビゲーションシステムの内部ブロック図を示し、図26(A)にその外観図を示す。カーナビゲーションシステムの操作はリモコン510を用いて行われ、GPSやジャイロからの情報に基づいて位置検出部520が車の位置を検出する。地図などの情報はCDROM530(情報記憶媒体)に格納されている。画像メモリ540は画像処理の際の作業領域になるメモリであり、生成された画像は画像出力部550を用いて運転者に表示される。マイクロコンピュータ500は、リモコン510、位置検出部520、CDROM530などのデータ入力源からデータを入力し、種々の処理を行い、処理後のデータを画像出力部550などの出力装置を用いて出力する。
【0117】
図25(B)に電子機器の1つであるゲーム装置の内部ブロック図を示し、図26(B)にその外観図を示す。このゲーム装置では、ゲームコントローラ560からのプレーヤの操作情報、CDROM570からのゲームプログラム、ICカード580からのプレーヤ情報等に基づいて、画像メモリ590を作業領域としてゲーム画像やゲーム音を生成し、画像出力部610、音出力部600を用いて出力する。
【0118】
図25(C)に電子機器の1つであるプリンタの内部ブロック図を示し、図26(C)にその外観図を示す。このプリンタでは、操作パネル620からの操作情報、コードメモリ630及びフォントメモリ640から文字情報に基づいて、ビットマップメモリ650を作業領域として、印刷画像を生成し、プリント出力部660を用いて出力する。またプリンタの状態やモードを表示パネル670を用いてユーザに伝える。
【0119】
本実施形態のマイクロコンピュータ又はデバッグシステムによれば、図25(A)〜図26(C)の電子機器を動作させるユーザプログラムの開発の容易化、開発期間の短縮化を図れるようになる。またマイクロコンピュータが実動作する環境と同じ環境で、ユーザプログラムのデバッグ作業を行うことができるため、電子機器の信頼性を高めることができる。また電子機器に組み込まれるマイクロコンピュータのハードウェアを小規模化、低コスト化できるため、電子機器の低コスト化も図れるようになる。更にミニモニタプログラムの命令コードサイズは小さいため、ユーザがプログラムや各種データの格納に使用するメモリ領域を最大限に確保でき、場合によれば、ユーザーが使用する該メモリ領域を全く使用せずにモニタプログラムを載せることができる。
【0120】
なお本実施形態のマイクロコンピュータを適用できる電子機器としては、上記以外にも例えば、携帯電話(セルラーフォン)、PHS、ページャ、オーディオ機器、電子手帳、電子卓上計算機、POS端末、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、パーソナルコンピュータ、テレビ、ビューファインダ型又はモニタ直視型のビデオテープレコーダなど種々のものを考えることができる。
【0121】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0122】
例えば本発明のプリミティブコマンドとしては、本実施形態で説明したものが特に望ましいが、これに限定されるものではない。
【0123】
またマイクロコンピュータやミニモニタ部(第1のモニタ手段)の構成も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【0124】
またデバッグシステムの構成も図7に示すものに限られるものではない。
【0125】
【図面の簡単な説明】
【図1】図1(A)はCPU置き換え型のICE、図1(B)はモニタプログラム実装型ICEの例を示す図である。
【図2】本実施形態の特徴について説明するための図である。
【図3】本実施形態のマイクロコンピュータ、デバッグシステムの構成例を示す機能ブロック図である。
【図4】デバッグモード時のメモリマップを示す図である。
【図5】図5(A)、(B)、(C)、(D)は、デバッグコマンドをプリミティブコマンドへ変換(分解)する処理について説明するための図である。
【図6】SIOの構成例を示す機能ブロック図である。
【図7】デバッグツールの構成例を示す機能ブロック図である。
【図8】図8(A)、(B)は、リアルタイムトレース処理について説明するための図である。
【図9】図9(A)、(B)、(C)は、ミニモニタ部とメインモニタ部との間の通信手法について説明するための図である。
【図10】図10(A)、(B)、(C)、(D)は、送受信データのフォーマット及び種類について説明するための図である。
【図11】図11(A)、(B)も、送受信データのフォーマット及び種類について説明するための図である。
【図12】図12(A)、(B)は、送受信データが可変長、固定長の場合のミニモニタプログラムのソースコードのサイズについて説明するための図である。
【図13】図13(A)、(B)は、ミニモニタプログラムをROMに格納する手法について説明するための図である。
【図14】図14(A)、(B)は、同期式、調歩同期式の通信手法について説明するための図である。
【図15】図15(A)、(B)は、一般的な調歩同期式でのクロックとサンプリングクロックとサンプリングデータのタイミング波形を示す図である。
【図16】本実施形態の通信手法について説明するための図である。
【図17】図17(A)、(B)は、図16の手法でのクロックとサンプリングクロックとサンプリングデータのタイミング波形を示す図である。
【図18】本実施形態の通信手法について説明するための図である。
【図19】図19(A)、(B)は、図18の手法でのクロックとサンプリングクロックとサンプリングデータのタイミング波形を示す図である。
【図20】デバッグツール側での分周比設定処理について説明するためのフローチャートである。
【図21】マイクロコンピュータ側での分周比設定処理について説明するためのフローチャートである。
【図22】ユーザプログラム実行モードからデバッグモードへの移行について説明するための図である。
【図23】本実施形態の詳細な処理例を説明するためのフローチャートである。
【図24】本実施形態の詳細な処理例を説明するためのフローチャートである。
【図25】図25(A)、(B)、(C)は、種々の電子機器の内部ブロック図の例である。
【図26】図26(A)、(B)、(C)は、種々の電子機器の外観図の例である。
【符号の説明】
10 マイクロコンピュータ
12 CPU(中央処理ユニット)
14 ミニモニタ部(第1のモニタ手段)
16 メインモニタ部(第2のモニタ手段)
20 マイクロコンピュータ
22 CPU(中央処理ユニット)
24 内部レジスタ
26 BCU(バス制御ユニット)
28 内部メモリ
30 クロック生成部
31 バス
32 バス
33 外部バス
34 内部バス
36 外部メモリ
40 ミニモニタ部(第1のモニタ手段)
42 ミニモニタROM
44 ミニモニタRAM
46 制御レジスタ
48 SIO
50 トレース部
60 デバッグツール
62 メインモニタ部(第2のモニタ手段)
66 ホストシステム
70 送受信バッファ
72 送信バッファ
74 受信バッファ
76 シフトレジスタ
78 送受信切替部
80 クロック制御部
82 分周回路
84 制御レジスタ
90 CPU
92 送受信切替部
94 クロック制御部
95 周波数検出部
96 分周回路
98 制御レジスタ
100 アドレスアップカウンタ
102 セレクタ
104 トレースメモリ
106 セレクタ
108 ROM
110 メインモニタROM
112 RAM
114 RS232Cインターフェース
116 パラレルインターフェース
118 クロック生成部
140 マイクロコンピュータ(第1の情報処理装置)
142 通信部
144 送受信回路
146 分周回路
148 分周比制御部
150 デバッグツール(第2の情報処理装置)
152 通信部
154 送受信回路
156 分周回路
158 分周比制御部
159 周波数検出回路
Claims (11)
- オンチップデバッグ機能を有するマイクロコンピュータであって、
命令の実行処理を行う中央処理ユニットと、
マイクロコンピュータの外部に設けられデバッグコマンドを少なくとも1つのプリミティブコマンドに変換するための処理を行う第2のモニタ手段との間でデータを送受信し、実行するプリミティブコマンドを前記第2のモニタ手段からの受信データに基づいて決定し、決定したプリミティブコマンドを実行するための処理を行う第1のモニタ手段とを含み、
前記第1のモニタ手段は、
第1のクロックを分周し、調歩同期式で送受信されるデータの各ビットをサンプリングするための第1のサンプリングクロックを生成する第1の分周回路と、
前記第1の分周回路での分周比を制御する第1の分周比制御手段と、
前記第1のサンプリングクロックに基づいてデータを送受信する回路とを含み、
前記第1のモニタ手段は、
前記第2のモニタ手段が含む第2の分周回路が第2のサンプリングクロックを生成するための信号として、前記第1のクロックを、前記第2のモニタ手段に供給し、
前記第1の分周比制御手段は、
前記第2のモニタ手段が含む第2の分周比制御手段が前記第1のクロックの周波数に応じて分周比を変化させ変化後の分周比を知らせる分周比データを前記第1のモニタ手段に通信した場合に、前記分周比データに基づいて前記第1の分周回路での分周比を変化させることを特徴とするマイクロコンピュータ。 - 請求項1において、
前記プリミティブコマンドが、
ユーザプログラムの実行を開始するコマンド、デバッグモード時におけるメモリマップ上のアドレスにデータをライトするコマンド、及び前記メモリマップ上のアドレスからデータをリードするコマンドを含むことを特徴とするマイクロコンピュータ。 - 請求項1又は2において、
前記中央処理ユニットの命令実行処理に使用され、デバッグモード時におけるメモリマップ上にそのアドレスが割り付けられる制御レジスタを含むことを特徴とするマイクロコンピュータ。 - 請求項1乃至3のいずれかにおいて、
前記中央処理ユニットの内部レジスタの内容が退避され、デバッグモード時におけるメモリマップ上にそのアドレスが割り付けられるモニタRAMを含むことを特徴とするマイクロコンピュータ。 - 請求項1乃至4のいずれかにおいて、
前記第2のモニタ手段との間で半2重の双方向通信を行うための1本の双方向通信ラインが接続される端子を含み、
スレーブとなる前記第1のモニタ手段が、
マスタとなる前記第2のモニタ手段からデータを受信したことを条件に、該受信データに対応する処理を行い該受信データに対応する応答データを前記第2のモニタ手段に送信することを特徴とするマイクロコンピュータ。 - 請求項1乃至5のいずれかにおいて、
前記第2のモニタ手段からの受信データが、前記第1のモニタ手段が実行するプリミティブコマンドの識別データを含むことを特徴とするマイクロコンピュータ。 - 請求項1乃至6のいずれかにおいて、
前記第1のモニタ手段が、
前記第2のモニタ手段との間で固定長のデータを送受信することを特徴とするマイクロコンピュータ。 - 請求項1乃至7のいずれかにおいて、
前記第1のモニタ手段の処理を実行するためのモニタプログラムがROMに格納されていることを特徴とするマイクロコンピュータ。 - 請求項1乃至8のいずれかにおいて、
前記第1のモニタ手段がリード及びライト可能なモニタRAMを含み、
前記第1のモニタ手段が、
ユーザプログラムの実行がブレークしデバッグモードに移行した場合に、前記中央処理ユニットのプログラムカウンタ値及び内部レジスタの内容を前記モニタRAMに待避することを特徴とするマイクロコンピュータ。 - 請求項1乃至9のいずれかのマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力源と、
前記マイクロコンピュータにより処理されたデータを出力するための出力装置とを含むことを特徴とする電子機器。 - マイクロコンピュータを含むターゲットシステムのためのデバッグシステムであって、
ホストシステムが発行したデバッグコマンドを少なくとも1つのプリミティブコマンドに変換するための処理を行う第2のモニタ手段と、
前記第2のモニタ手段との間でデータを送受信し、実行するプリミティブコマンドを前記第2のモニタ手段からの受信データに基づいて決定し、決定したプリミティブコマンドを実行するための処理を行う第1のモニタ手段とを含み、
前記第1のモニタ手段は、
第1のクロックを分周し、調歩同期式で送受信されるデータの各ビットをサンプリングするための第1のサンプリングクロックを生成する第1の分周回路と、
前記第1の分周回路での分周比を制御する第1の分周比制御手段と、
前記第1のサンプリングクロックに基づいてデータを送受信する回路とを含み、
前記第1のモニタ手段は、
前記第2のモニタ手段が含む第2の分周回路が第2のサンプリングクロックを生成するための信号として、前記第1のクロックを、前記第2のモニタ手段に供給し、
前記第1の分周比制御手段は、
前記第2のモニタ手段が含む第2の分周比制御手段が前記第1のクロックの周波数に応じて分周比を変化させ変化後の分周比を知らせる分周比データを前記第1のモニタ手段に通信した場合に、前記分周比データに基づいて前記第1の分周回路での分周比を変化させることを特徴とするデバッグシステム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10372198A JP3684832B2 (ja) | 1998-03-31 | 1998-03-31 | マイクロコンピュータ、電子機器及びデバッグシステム |
US09/424,667 US7100086B1 (en) | 1998-03-31 | 1999-03-31 | Microcomputer, electronic equipment and debugging system |
US10/724,885 US7114101B2 (en) | 1998-03-31 | 2003-12-02 | Microcomputer, electronic equipment and debugging system |
US10/981,770 US7047443B2 (en) | 1998-03-31 | 2004-11-05 | Microcomputer, electronic equipment and debugging system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10372198A JP3684832B2 (ja) | 1998-03-31 | 1998-03-31 | マイクロコンピュータ、電子機器及びデバッグシステム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005091910A Division JP2005251217A (ja) | 2005-03-28 | 2005-03-28 | マイクロコンピュータ、電子機器及びデバッグシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11282720A JPH11282720A (ja) | 1999-10-15 |
JP3684832B2 true JP3684832B2 (ja) | 2005-08-17 |
Family
ID=14361556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10372198A Expired - Lifetime JP3684832B2 (ja) | 1998-03-31 | 1998-03-31 | マイクロコンピュータ、電子機器及びデバッグシステム |
Country Status (2)
Country | Link |
---|---|
US (3) | US7100086B1 (ja) |
JP (1) | JP3684832B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210089419A1 (en) * | 2019-09-25 | 2021-03-25 | Alibaba Group Holding Limited | Debugging unit and processor |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US6892322B1 (en) * | 2000-10-26 | 2005-05-10 | Cypress Semiconductor Corporation | Method for applying instructions to microprocessor in test mode |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
EP1283422A1 (en) * | 2001-08-07 | 2003-02-12 | Lucent Technologies Inc. | Testbench for the validation of a device under test |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US7007157B2 (en) * | 2001-10-30 | 2006-02-28 | Microsoft Corporation | Network interface sharing methods and apparatuses that support kernel mode data traffic and user mode data traffic |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US20030120970A1 (en) * | 2001-12-24 | 2003-06-26 | Chih-Yung Chen | Method and apparatus for debugging an electronic product using an internal I/O port |
US6973593B1 (en) * | 2002-03-18 | 2005-12-06 | Emc Corporation | System analyzer for a data storage system |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
JP4161814B2 (ja) | 2003-06-16 | 2008-10-08 | ソニー株式会社 | 入力方法および入力装置 |
JP2005070950A (ja) * | 2003-08-21 | 2005-03-17 | Sanyo Electric Co Ltd | プログラム処理装置 |
JP2005070949A (ja) * | 2003-08-21 | 2005-03-17 | Sanyo Electric Co Ltd | プログラム処理装置 |
US7437623B2 (en) * | 2003-11-05 | 2008-10-14 | Texas Instruments Incorporated | Apparatus and method for performing speculative reads from a scan control unit using FIFO buffer units |
US7457986B2 (en) * | 2003-11-05 | 2008-11-25 | Texas Instruments Incorporated | Apparatus and method for using variable end state delay to optimize JTAG transactions |
US7284153B2 (en) * | 2003-11-17 | 2007-10-16 | International Business Machines Corporation | Apparatus, method, and system for logging diagnostic information |
US7475303B1 (en) * | 2003-12-29 | 2009-01-06 | Mips Technologies, Inc. | HyperJTAG system including debug probe, on-chip instrumentation, and protocol |
US7269756B2 (en) * | 2004-03-24 | 2007-09-11 | Intel Corporation | Customizable event creation logic for hardware monitoring |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
JP4409349B2 (ja) * | 2004-04-27 | 2010-02-03 | Okiセミコンダクタ株式会社 | デバッグ回路およびデバッグ制御方法 |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
US7395454B1 (en) * | 2005-01-04 | 2008-07-01 | Marvell Israel (Misl) Ltd. | Integrated circuit with integrated debugging mechanism for standard interface |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US7917914B2 (en) * | 2005-06-09 | 2011-03-29 | Whirlpool Corporation | Event notification system for an appliance |
US8856036B2 (en) * | 2005-06-09 | 2014-10-07 | Whirlpool Corporation | Method of providing product demonstrations |
US8676656B2 (en) | 2005-06-09 | 2014-03-18 | Whirlpool Corporation | Method for product demonstration |
US20080137670A1 (en) * | 2005-06-09 | 2008-06-12 | Whirlpool Corporation | Network System with Message Binding for Appliances |
US7813831B2 (en) * | 2005-06-09 | 2010-10-12 | Whirlpool Corporation | Software architecture system and method for operating an appliance in multiple operating modes |
US20070162158A1 (en) * | 2005-06-09 | 2007-07-12 | Whirlpool Corporation | Software architecture system and method for operating an appliance utilizing configurable notification messages |
US20070288331A1 (en) | 2006-06-08 | 2007-12-13 | Whirlpool Corporation | Product demonstration system and method |
US7921429B2 (en) * | 2005-06-09 | 2011-04-05 | Whirlpool Corporation | Data acquisition method with event notification for an appliance |
US8571942B2 (en) * | 2005-06-09 | 2013-10-29 | Whirlpool Corporation | Method of product demonstration |
EP2247067B1 (en) * | 2005-06-09 | 2016-05-11 | Whirlpool Corporation | Appliance with embedded virtual router |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
US7555676B2 (en) * | 2005-07-18 | 2009-06-30 | Dell Products L.P. | Systems and methods for providing remotely accessible in-system emulation and/or debugging |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US8682733B2 (en) * | 2006-06-08 | 2014-03-25 | Whirlpool Corporation | System for product demonstration |
US7707459B2 (en) | 2007-03-08 | 2010-04-27 | Whirlpool Corporation | Embedded systems debugging |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
JP2008282154A (ja) * | 2007-05-09 | 2008-11-20 | Nec Electronics Corp | デバッグシステム及びデバッグ方法 |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
JP4525762B2 (ja) * | 2008-02-04 | 2010-08-18 | 株式会社デンソー | 車両用電子制御装置 |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
CN103218294B (zh) * | 2013-04-16 | 2015-12-02 | 华为技术有限公司 | 一种嵌入式系统的调试方法、调试转换装置和系统 |
US9568547B2 (en) | 2015-03-17 | 2017-02-14 | Intel Corporation | Method, apparatus and system for dynamic bandwidth management in systems |
US9852045B2 (en) * | 2015-10-13 | 2017-12-26 | International Business Machines Corporation | Debugging program code |
CN116028291B (zh) * | 2023-03-29 | 2023-07-21 | 北京象帝先计算技术有限公司 | 调试信号输出系统、pcie设备、电子设备及方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6072034A (ja) | 1983-09-28 | 1985-04-24 | Nec Corp | エミュレ−ション装置 |
JPH0719214B2 (ja) | 1987-06-03 | 1995-03-06 | 日本電気株式会社 | マイクロコンピュ−タ評価装置 |
JPS643745A (en) | 1987-06-26 | 1989-01-09 | Hitachi Ltd | Emulation system |
JPH01286030A (ja) | 1988-05-12 | 1989-11-17 | Nec Corp | 情報処理装置 |
JPH01287752A (ja) | 1988-05-13 | 1989-11-20 | Fujitsu Ltd | デバッグ装置 |
JPH02264339A (ja) | 1989-04-05 | 1990-10-29 | Hitachi Ltd | 情報処理装置 |
JPH06103104A (ja) | 1992-09-18 | 1994-04-15 | Hitachi Ltd | リモートデバッグ方法 |
US6006343A (en) * | 1993-07-30 | 1999-12-21 | Texas Instruments Incorporated | Method and apparatus for streamlined testing of electrical circuits |
JPH08221297A (ja) | 1995-02-16 | 1996-08-30 | Chiyoufu Seisakusho:Kk | プログラムデバッグ装置 |
US5983017A (en) * | 1996-11-12 | 1999-11-09 | Lsi Logic Corporation | Virtual monitor debugging method and apparatus |
US5771240A (en) * | 1996-11-14 | 1998-06-23 | Hewlett-Packard Company | Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin |
US5828824A (en) * | 1996-12-16 | 1998-10-27 | Texas Instruments Incorporated | Method for debugging an integrated circuit using extended operating modes |
US5991898A (en) * | 1997-03-10 | 1999-11-23 | Mentor Graphics Corporation | Arithmetic built-in self test of multiple scan-based integrated circuits |
US6154856A (en) * | 1997-04-08 | 2000-11-28 | Advanced Micro Devices, Inc. | Debug interface including state machines for timing synchronization and communication |
US6314530B1 (en) * | 1997-04-08 | 2001-11-06 | Advanced Micro Devices, Inc. | Processor having a trace access instruction to access on-chip trace memory |
JP2000516750A (ja) * | 1997-05-30 | 2000-12-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 標準ポート手段を有するnon―bond―outバージョンのマイクロコントローラをエミュレートする方法、このようなエミュレートを行うマイクロコントローラ及びエミュレーションを実行するためのシステム情報の格納及び/又は再生システム |
US6279123B1 (en) * | 1997-09-15 | 2001-08-21 | Lucent Technologies, Inc. | System for viewing and monitoring embedded processor operation |
US6145123A (en) * | 1998-07-01 | 2000-11-07 | Advanced Micro Devices, Inc. | Trace on/off with breakpoint register |
US6502210B1 (en) * | 1999-10-01 | 2002-12-31 | Stmicroelectronics, Ltd. | Microcomputer debug architecture and method |
US6725391B2 (en) * | 2000-03-02 | 2004-04-20 | Texas Instruments Incorporated | Clock modes for a debug port with on the fly clock switching |
US6484273B1 (en) * | 2000-11-29 | 2002-11-19 | Lsi Logic Corporation | Integrated EJTAG external bus interface |
-
1998
- 1998-03-31 JP JP10372198A patent/JP3684832B2/ja not_active Expired - Lifetime
-
1999
- 1999-03-31 US US09/424,667 patent/US7100086B1/en not_active Expired - Lifetime
-
2003
- 2003-12-02 US US10/724,885 patent/US7114101B2/en not_active Expired - Lifetime
-
2004
- 2004-11-05 US US10/981,770 patent/US7047443B2/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210089419A1 (en) * | 2019-09-25 | 2021-03-25 | Alibaba Group Holding Limited | Debugging unit and processor |
US11755441B2 (en) * | 2019-09-25 | 2023-09-12 | Alibaba Group Holding Limited | Debugging unit and processor |
Also Published As
Publication number | Publication date |
---|---|
JPH11282720A (ja) | 1999-10-15 |
US20040153802A1 (en) | 2004-08-05 |
US7114101B2 (en) | 2006-09-26 |
US20050097401A1 (en) | 2005-05-05 |
US7047443B2 (en) | 2006-05-16 |
US7100086B1 (en) | 2006-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3684832B2 (ja) | マイクロコンピュータ、電子機器及びデバッグシステム | |
US6922795B2 (en) | Microcomputer, electronic equipment, and debugging system | |
US7233541B2 (en) | Storage device | |
JP3671667B2 (ja) | マイクロコンピュータ、電子機器及びデバッグシステム | |
US6886083B2 (en) | Apparatus and method for controlling a card device | |
US9213615B2 (en) | Information processing apparatus with debugging unit and debugging method therefor | |
JP2002323995A (ja) | トレース回路 | |
JP3666237B2 (ja) | 情報処理装置及び電子機器 | |
US5884074A (en) | Microcomputer utilizing flash memory for data storage | |
KR20080080799A (ko) | 메모리의 직렬 인터페이스 방법 및 장치 | |
JP2006252006A (ja) | デバッグシステム、半導体集積回路装置、マイクロコンピュータ及び電子機器 | |
US7921334B2 (en) | Program and method for error determination, and electronic apparatus | |
JP2005251217A (ja) | マイクロコンピュータ、電子機器及びデバッグシステム | |
JP3741182B2 (ja) | マイクロコンピュータ、電子機器及びデバッグシステム | |
CN112835834B (zh) | 数据传输系统 | |
US7028237B2 (en) | Internal bus testing device and method | |
US6865638B1 (en) | Apparatus and method for transferring multi-byte words in a fly-by DMA operation | |
JP2001357023A (ja) | 半導体集積回路及びそれに内蔵された不揮発性メモリへの書き込み方法 | |
JP2001092686A (ja) | 半導体装置 | |
JP2003108951A (ja) | Pcカード | |
JP2000284985A (ja) | デバッグシステム及び情報記憶媒体 | |
KR100531729B1 (ko) | 피씨 병렬포트를 이용한 주변기기와의 인터페이스 장치 및그 방법 | |
JP2002358202A (ja) | 複数形式のプログラム言語に対応した携帯情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050328 |
|
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: 20050510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050523 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090610 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100610 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110610 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110610 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120610 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130610 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130610 Year of fee payment: 8 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |