JP3955876B2 - マイクロコンピュータ及びシステムプログラムの開発方法 - Google Patents

マイクロコンピュータ及びシステムプログラムの開発方法 Download PDF

Info

Publication number
JP3955876B2
JP3955876B2 JP2005513467A JP2005513467A JP3955876B2 JP 3955876 B2 JP3955876 B2 JP 3955876B2 JP 2005513467 A JP2005513467 A JP 2005513467A JP 2005513467 A JP2005513467 A JP 2005513467A JP 3955876 B2 JP3955876 B2 JP 3955876B2
Authority
JP
Japan
Prior art keywords
interface circuit
buffer
debug
program
microcomputer
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 - Fee Related
Application number
JP2005513467A
Other languages
English (en)
Other versions
JPWO2005022390A1 (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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Publication of JPWO2005022390A1 publication Critical patent/JPWO2005022390A1/ja
Application granted granted Critical
Publication of JP3955876B2 publication Critical patent/JP3955876B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Microcomputers (AREA)

Description

本発明は、マイクロコンピュータ、特にデバッグサポート機能を有するマイクロコンピュータに関し、更にはマイクロコンピュータを動作させるシステムプログラムの開発方法に関する。
デバッグサポート機能を有するマイクロコンピュータはデバッグに際してエミュレータもしくはホストコンピュータと通信を行なうデバッグ用インタフェースを有する。このデバッグ用インタフェースには、例えばJTAG(Joint Test Action Group,IEEE Std 1149.1,IEEE Standard Test Access Port and Boundary−Scan Architecture)プロトコルに準拠したシリアル入出力インタフェースが用いられている。特許文献1にもそのようなデバッグ用インタフェースを備えたマイクロコンピュータの記載がある。
特開2002−202900号公報(段落0017)
本発明者はデバッグサポート機能(オンチップデバッグ機能とも称する)を有するマイクロコンピュータをシステムデバッグするとき(デバッグ対象マイクロコンピュータをターゲットマイクロコンピュータと称する)、そのターゲットプログラムをホストコンピュータからターゲットシステムのプログラムメモリにダウンロードする機能におけるデータ転送の高速化について検討した。例えば、ターゲットマイクロコンピュータはJTAG準拠のデバッグ用シリアルインタフェース回路を有する。USB(Unversal Seial Bus)インタフェース回路を持つパーソナルコンピュータ(PC)にUSBケーブルでエミュレータを接続し、エミュレータは専用のユーザーインターフェースケーブルでターゲットシステム(ユーザーシステムとも称する)に搭載されたターゲットマイクロコンピュータのデバッグ用シリアルインタフェースに接続する。ターゲットマイクロコンピュータはオンチップデバック機能を有する。オンチップデバッグ機能を有するターゲットマイクロコンピュータは、ユーザモードの他に、ターゲットプログラムの開発を支援するデバッグモードを有する。前記ユーザモードではターゲットシステムのためにユーザが開発するユーザプログラムとしてのシステムプログラム(ターゲットプログラムとも称する)を実行する。前記デバッグモードでは、ユーザプログラムの実行が停止されているとき、主にプログラムデバッグ支援用のプログラム(デバッグ支援プログラムとも称する)を実行する。デバッグ支援プログラムは、ターゲットマイクロコンピュータの電源投入毎にホストコンピュータ上のエミュレータソフトより転送され、ターゲットマイクロコンピュータ内部のデバッグ用アドレス空間上に書き込みされ、ホストコンピュータ上のエミュレータソフトウェアとリンクされる。ホストコンピュータから供給されるユーザプログラムは、ターゲットマイクロコンピュータがユーザモードでデバッグ支援プログラムを実行することによって、ターゲットシステム上の所定メモリ空間に書き込まれる。エミュレータとターゲットマイクロコンピュータとの間の通信には前記JTAG準拠のデバッグ用シリアルインタフェース回路が用いられる。このデバッグ用シリアルインタフェース回路は、所定バイト単位でクロック同期のシリアル転送を行なうため、転送スピードは前記クロック周波数に比例し、USBインタフェース回路に比べて低速である。例えば、USB規格1.1でも転送処理能力はフルスピードで1200キロバイト(KB)/秒であるが、JTAG準拠のインタフェースでは4バイトのような1回の最大データ転送毎にターゲットマイクロコンピュータからのアクセス許可を示すステータスを取得して次の転送データをセットするというデータ転送手順を必要とし、それによるオーバヘッド故に、同期クロック周波数を上げても230KB/秒のような転送速度限界を生ずる。このような転送速度の相違によって、比較的容量の大きなターゲットプログラムのロード転送に長い時間を必要とし、システムデバッグ効率を低下させ、更にはターゲットプログラムの開発期間短縮を阻む要因の一つになっていることが本発明者によって明らかにされた。
本発明の目的は、ターゲットマイクロコンピュータをシステムデバッグするとき、デバッグ対象のシステムプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送を高速化することにある。
本発明の別の目的は、エミュレータを利用してシステムプログラムを開発するとき、デバッグ対象のシステムプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送の高速化という点において、システムプログラムの開発期間の短縮に寄与することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕本発明に係るマイクロコンピュータは、中央処理装置、デバッグ用インタフェースに利用可能な高速シリアル通信インタフェース回路(3)、及び外部メモリに接続可能な外部バスインタフェース回路(5)を有する。前記高速シリアル通信インタフェース回路はその内部に複数の入力バッファ(EP1,EP2)を有し、相互に一の入力バッファに対する入力動作に並行して他の入力バッファからデータを出力可能とされる。前記デバッグモードにおいて、前記高速シリアル通信インタフェース回路はシステムプログラムを受信し、受信されたシステムプログラムをメモリアクセス制御信号と共に前記外部バスインタフェース回路から出力可能である。前記高速シリアル通信インタフェース回路は、例えばユニバーサルシリアルバスインタフェース回路である。システムデバッグに際して前記高速シリアル通信インタフェース回路にホストコンピュータを直結することにより、ターゲットプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送を高速化することができる。特に前記高速シリアル通信インタフェース回路は交互に入出力動作を切換えて並列動作可能な2面バッファを備えるという点でデータ転送の更なる高速化が実現される。ターゲットプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送の高速化という点において、ターゲットプログラムの開発期間の短縮に寄与する。
本発明の望ましい形態では、受信されたシステムプログラムを外部バスインタフェース回路に接続されたメモリに転送制御可能なダイレクトメモリアクセスコントローラを有する。中央処理装置の負担軽減とデータ転送の更なる高速化に好都合である。前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は、例えば前記高速シリアル通信インタフェース回路の入力バッファである。前記高速シリアル通信インタフェース回路の入力バッファに受信されたシステムプログラムを一時的に蓄積可能なランダムアクセスメモリ(7)を備える場合には、前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は前記ランダムアクセスメモリとしてよい。前記高速シリアル通信インタフェース回路の入力バッファ(EP1,EP2)とランダムアクセスメモリ(7)で多段バッファを構成してシステムプログラムを受けるから、高速シリアル通信インタフェース回路による受信処理と受信データに対する転送処理との速度差に対して更に余裕ができる。
本発明の望ましい形態では、デバッグ専用低速シリアル通信インタフェース回路(8)を有し、前記デバッグ専用低速シリアル通信インタフェース回路は、デバッグモードにおいて、前記高速シリアル通信インタフェース回路を制御する制御データの入力に利用可能である。デバッグ専用低速シリアル通信インタフェース回路は例えばJTAG準拠のシリアルインタフェース回路であり、中央処理装置の制御を必要とせずにインタフェース動作を行なうことができるようになっている。前記デバッグ専用低速シリアル通信インタフェース回路は、例えばデバッグモードにおいて、前記高速シリアル通信インタフェース回路に代えてシステムプログラムの受信に利用可能である。
デバッグサポート機能の充実という観点より、トレース制御回路を内蔵してよい。前記トレース制御回路は前記中央処理装置が前記システムプログラムを実行したときの内部状態をトレース情報として逐次蓄え、蓄えたトレース情報は前記システムプログラムの実行停止後に外部に出力される。前記トレース情報の外部出力に前記高速シリアル通信インタフェース回路を利用可能である。
〔2〕本発明に係るシステムプログラムの開発方法は、ホストコンピュータ(25)と、エミュレータ(35)と、ターゲットデバイス(33)とを用いて、ターゲットデバイスが実行するシステムプログラムを開発する方法であって、前記エミュレータによる処理として、ホストコンピュータが高速シリアル通信で出力するシステムプログラムを2面バッファの一方のバッファに蓄積する第1処理と、2面バッファの他方のバッファに蓄積されたシステムプログラムを前記第1処理に並行してターゲットデバイスに低速シリアル通信で送信する第2処理と、ターゲットデバイスとの間の前記低速シリアル通信のハンドシェーク制御を行なう第3処理を含む。2面バッファの利用により、ターゲットプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送を高速化することができるという点において、ターゲットプログラムの開発期間を短縮することができる。
本発明の具体的な形態として、前記第2処理では、前記バッファから出力するシステムプログラムを前記一つのバッファの記憶容量以上のFIFOバッファを経由してターゲットデバイスに低速シリアル通信で送信し、前記第3処理では、ターゲットデバイスからの送信許可に応答してFIFOバッファからターゲットデバイスへの送信を行ない、FIFOバッファのフル状態に応答して前記バッファからFIFOバッファへの転送を抑制する。低速シリアル通信にFIFOバッファを用いることにより、第1処理から第2処理に渡されるデータの滞留による第1処理の中断を減らすことができ、この点においても、上記データ転送を高速化することができる。
〔3〕本発明に係るマイクロコンピュータ(1)は、ユーザモードとデバッグモードを有し、中央処理装置(2)と、ユニバーサルシリアルバスインタフェース回路(3)と、第1のデバッグ用制御プログラムを保有するROM(71)と、RAM(7)と、外部バスインタフェース回路(5)とを備える。前記ユニバーサルシリアルバスインタフェース回路は、前記デバッグモードで利用可能にされる所定のエンドポイントバッファ回路(20)を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファ(EP1,EP2)を有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされる。ここで対象とするマイクロコンピュータはターゲットマイクロコンピュータであり、ユニバーサルシリアルバスインタフェース回路を介して直接デバッグ支援用のホストコンピュータに接続する場合を想定する。
前記中央処理装置は、パワーオンリセット時に前記デバッグモードが指定されているとき、前記第1のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第2のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタフェース回路で受信し、受信した第2のデバッグ用制御プログラムを前記RAMに格納し、RAMに格納した第2のデバッグ用制御プログラムの実行に移行する。これにより、マイクロコンピュータの電源投入毎に例えばホストコンピュータ上のエミュレータソフトより転送される第2のデバッグ用制御プログラムを高速にダウンロードすることができ、ホストコンピュータ上のエミュレータソフトウェアとリンクしたデバッグ制御可能な状態の立ち上げを高速化することができる。
本発明の具体的な形態として、バッファRAMとダイレクトメモリアクセスコントローラと更に有し、中央処理装置は、前記第2のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信したダウンロード要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、ユニバーサルシリアルバスインタフェース回路が受信したユーザプログラムを前記バッファRAMに転送させる。デバッグ制御可能な状態においてユーザプログラムのダウンロードを高速化することができる。更に、本発明の望ましい形態として、前記中央処理装置は、前記第2のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信した転送要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、前記バッファRAMに転送されたプログラムを外部バスインタフェース回路を介して外部のプログラムメモリに転送制御させる。この後、前記中央処理装置は、前記第2のデバッグ用制御プログラムの実行状態において、モード制御コマンドに応答してユーザモードに移行し、前記ユーザモードにおいて中央処理装置は外部バスインタフェース回路を介して前記プログラムメモリなどから命令をフェッチして、ユーザプログラムを実行する。ユーザプログラムの実行状態をトレースし、それを解析したりすることによってユーザプログラムに対するデバッグが行われる。
〔4〕別の観点による本発明のマイクロコンピュータ(40)は、中央処理装置(44)と、ユニバーサルシリアルバスインタフェース回路(48)と、第1のデバッグ用制御プログラムを保有するROM(45)と、バッファRAM(47)と、外部インタフェース回路(41)とを備え、前記ユニバーサルシリアルバスインタフェース回路は、所定のエンドポイントバッファ回路(20)を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファ(EP1,EP2)を有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされる。前記中央処理装置は、パワーオンリセット時に前記第1のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第2のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタフェース回路で受信し、受信した第2のデバッグ用制御プログラムを前記バッファRAMに格納し、バッファRAMに格納した第2のデバッグ用制御プログラムを前記外部インタフェース回路を介して出力させる。ここで対象とするマイクロコンピュータはターゲットマイクロコンピュータとデバッグ支援用のホストコンピュータとの間に配置されるエミュレータ(33)の制御用マイクロコンピュータとされる。
本発明の具体的な形態として、マイクロコンピュータはダイレクトメモリアクセスコントローラ(46)を更に有し、前記ダイレクトメモリアクセスコントローラは、前記中央処理装置による転送制御条件にしたがって、前記バッファRAMから第2のデバッグ用制御プログラムを前記外部インタフェース回路を介して外部に転送する。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、ターゲットマイクロコンピュータをシステムデバッグするとき、システムプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送を高速化することができる。要するに、システムデバッグにおいて、システムプログラムダウンロード機能の性能を向上させることができる。
エミュレータを利用してシステムプログラムを開発するとき、システムプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送の高速化という点において、システムプログラムの開発期間の短縮に寄与することができる。
[図1]本発明に係るマイクロコンピュータを例示するブロック図である。
[図2]USBIF内蔵のマイクロコンピュータを搭載したターゲットシステムとホストコンピュータとの接続形態を示す説明図である。
[図3]USBIFを備えていないマクロコンピュータを搭載したターゲットシステムとホストコンピュータとの接続形態を示す説明図である。
[図4]図3のマイクロコンピュータとエミュレータの一例を示すブロック図である。
[図5]FPGAで構成されるJTAGインタフェースロジックの詳細を示す論理回路図である。
[図6]図5の構成による動作を示すタイミングチャートである。
[図7]RAMの2面バッファBUF1,BUF2を切り換えてデータをFIFOTDOに転送する制御手順を示すフローチャーである。
[図8]図5と図9の夫々の場合におけるプログラムダウンロードの動作タイミングの相違を示すタイミングチャートである。
[図9]図5の比較例に係るエミュレータを例示するブロック図である。
[図10]図5の例と図9の比較例のそれぞれにおいてホストコンピュータからユーザープログラムファイルをダウンロードするときのダウンロード性能を例示する説明である。
[図11]本発明に係るマイクロコンピュータの更に具体的な例を示すブロック図である。
[図12]マイクロコンピュータによるオンチップデバッグの動作タイミングを例示するタイミングチャートである。
[図13]USBの通信フォーマットの説明図である。
[図14]ホストコンピュータとUSBインタフェース回路との通信ハンドシェック制御の基本形を例示するフローチャートである。
[図15]ユーザープログラムの実行中に強制ブレークさせる場合のホストコンピュータとUSBインタフェース回路との間でハンドシェーク制御内容を例示するフローチャートである。
[図16]ホストコンピュータからUSBインタフェース回路へのソフトウェアのダウンロードの制御内容を例示するフローチャートである。
[図17]図1のマイクロコンピュータの変形例を示すブロック図である。
[図18]図17のマイクロコンピュータの変形例を示すブロック図である。
符号の説明
1 マイクロコンピュータ
2 CPU
3 USBインタフェース回路
4 外部メモリ
5 外部バスインタフェース回路
6 DMAC
7 RAM
8 JTAG回路
9 トレース回路
11 エミュレーションRAM
EP1,EP2 2面バッファ
20 バッファ部
25 ホストコンピュータ
30 ターゲットシステム
33 マイクロコンピュータ
34 ターゲットシステム
35 エミュレータ
47 RAM
BUF1,BUF2 2面バッファ
FIFOTDO
48 USBインタフェース回路
71 ROM
73 パワーオンリセット回路
74 システムコントローラ
図1には本発明に係るマイクロコンピュータ1が例示される。マイクロコンピュータ1は、単結晶シリコンのような1個の半導体基板(半導体チップ)に相補型MOS集積回路製造技術等によって形成される。マイクロコンピュータ1は、中央処理装置(CPU)2、デバッグ用インタフェースに利用可能な高速シリアル通信インタフェース回路としてのUSBインタフェース回路(USBIF)3、外部メモリ(EXMRY)4に接続可能な外部バスインタフェース回路(EXIF)5、ダイレクトメモリアクセスコントローラ(DMAC)6、ランダムアクセスメモリ(RAM)7、デバッグ専用低速シリアル通信インタフェースとしてのJTAGインタフェース回路(JTAGIF)8、トレース制御回路(TRCNT)9、トレース情報の外部出力制御用のAUD(アドバンスト・ユーザ・デバッグ)インタフェース回路(AUDIF)10、及びエミュレーションRAM(EMMRY)11を有し、特に制限されないが、それらは内部バス(IBUS)12を共有する。尚、内部バス12にはタイマカウンタなどその他の回路が接続されていてよい。前期RAM7は転送データなどを一時的に保持するバッファRAMなどとして利用される。
前記USBIF3は、例えばUSB2.0規格に準拠し、USBバッファ部(BEP)20とUSBインタフェース制御部(UCNT)21を有する。USBバッファ部20は夫々512バイトのUSBバッファEP1、EP2によるダブルバッファ構造を持つ。USBバッファEP1,EP2は例えばFIFOによって構成される。UCNT21は所謂USBデバイスコントロールとデータ転送制御を行なう。UCNT21はUSBホストとして例えば図1のホストコンピュータ(パーソナルコンピュータ)に搭載されるUSBホストにUSBケーブル23で接続され、USBデバイスコントロールとして、USBホストからのコマンドに応答して所定のプロトコルでデータのシリアル送受信制御を行なう。USBホストからの受信データはバッファ部20に送られ、USBホストへの送信データはバッファ部20から供給される。UCNT21はデータ転送制御としてバッファ部20に対するリード・ライト制御と、DMAC6に対する転送要求の制御を行なう。特にバッファ部20に対するリード・ライト制御では、相互に一のUSBバッファに対する入力動作(USBホストからの受信データ入力動作)に並行して他のUSBバッファからデータ出力動作(DMA転送のための内部バス12への出力動作)を可能とする。
DMAC7はCPU2により、転送元アドレス、転送先アドレスなどのデータ転送制御条件が設定され、USBIF3等からのDMA転送要求に応答して、転送元から転送動作へのデータ転送を制御する。データ転送モードとしてデュアルアドレシングモード及びシングルアドレシングモードの双方をサポートする。例えば、USBバッファEP1,EP2とEMMRY11との間のシングルアドレスによるデータ転送、USBバッファEP1,EP2とRAM7との間のシングルアドレスによるデータ転送、RAM7とEXMRY4との間のデュアルアドレスによるデータ転送を制御することができる。
JTAGIF8は受信データを入力する入力レジスタTDI、送信データを出力する出力レジスタTDO、前記レジスタTDIと内部バス12を接続するデータレジスタSDDR、図示を省略するコマンドレジスタ、JTAG制御回路(JCNT)24を有する。JCNT24はクロック信号TCKに同期してレジスタTDOからのシリアル出力とレジスタTDIへのシリアル入力を制御する。その制御には所謂TAP(テスト・アクセス・ポート)コントロールを用い、クロック信号TCKに同期してシリアル入力される図示を省略する1ビットのモードセレクト信号のパターンによって制御を行なう。外部からJTAGIF8へのデータ入力はレジスタTDOから外部にアクセス許可ビットが出力される毎に可能にされる。例えばJTAGIF8は4バイト受信毎に外部にアクセス許可ビットを出力する。この意味において、JTAGIF8によるシリアル通信速度は遅い。規格ではTCK周波数は数十MHzであり、USB2.0規格では転送処理能力がハイスピード時480MB/秒であるのに対して低速である。
前記CPU2は図示を省略する命令制御部と演算部を備える。命令制御部は命令フェッチを制御すると共にフェッチした命令のデコードを行なう。演算部は命令のデコード信号及び命令で指定されるオペランドを用いてデータ演算やアドレス演算を行なって命令を実行する。マイクロコンピュータ1は通常モードとしてのユーザモードの他に、ターゲットプログラムの開発を支援するデバッグモードを有する。前記デバッグモードの指定は、リセット時にモード端子から指定し、或いはユーザモードにおいてブレーク割り込みで指定することができる。前記ユーザモードではEXMRY4に格納されているシステムプログラム(ユーザプログラムとも称する)を実行する。前記デバッグモードでは、ユーザプログラムの実行が停止されているとき、主にプログラムデバッグ支援用のプログラム(デバッグ支援プログラム)を実行する。デバッグ支援プログラムは、マイクロコンピュータ1の電源投入毎にホストコンピュータ25のエミュレータソフトにより転送され、EMMRY11のデバッグ用アドレス空間上に書き込みされる。ブートプログラムはマイクロコンピュータ1に内蔵される図示を省略するマスクROM又は電気的に書換え可能なフラッシュメモリが保有する。デバッグ時に、ユーザプログラムはデバッグモードでマイクロコンピュータ1が前記デバッグ支援プログラムを実行することによって、ターゲットシステム上のEXMRY4に書き込まれる。ユーザプログラムはホストコンピュータ25から供給される。
図1では、ターゲットシステムのマイクロコンピュータ1とホストコンピュータ25との間の通信にはUSBIF3が利用可能にされる。JTAGIF8を利用することも可能であるが、通信速度の点でUSBIF3の方が優れているので、USBIF3を利用するのが得策である。特にUSBIF3は交互に入出力動作を切換えて並列動作可能な2面バッファEP1,EP2を備えるという点でデータ転送の更なる高速化が実現される。ユーザプログラムをホストコンピュータ25からターゲットシステムにダウンロードするときのデータ転送の高速化という点において、ユーザプログラムの開発期間を短縮可能になる。
USBIF3で受信されたシステムプログラムをEXIF5に接続されたEXMRY4に転送するには、DMAC6を用いればよい。前記DMAC6によるシステムプログラムの転送元は、例えば前記USBIF3の入力バッファEP1,EP2である。前記USBIF3の入力バッファEP1,EP2に受信されたシステムプログラムをRAM7に一時的に蓄積する場合には、前記DMAC6により先ずバッファEP1,EP2からRAM7に転送し、タイミングを見計らって、RAM7からEXMRY4にシステムプログラムを転送すればよい。前記USBIF3の入力バッファEP1,EP2とRAM7で多段バッファを構成してシステムプログラムを受けることにより、USBIF3による受信処理と受信データに対する外部への転送処理との速度差に対して更に余裕ができる。
前記JTAGIF8は、デバッグモードにおいて、前記USBIF3を制御する制御データの入力に利用可能である。JTAGIF8は、例えばデバッグモードにおいて、前記USBIF3に代えてシステムプログラムの受信に利用可能である。その必要性は、ユーザモードにおいて前記USBIF3の使用が予約されていて、プログラムダウンロードに利用することができない環境にある場合などである。前記USBIF3は複数転送チャネルを備える構成であってもよい。その一つをオンチップデバック専用にすれば、プログラムダウンロードをJTAGIF8による代替通信で行なうことを一切要しないから、そのデータ転送の高速化を保証することができる。
前記TRCNT9はCPU2がユーザプログラムを実行しているとき、CPU2の内部状態をトレースバス13を介して順次格納する回路である。格納場所はFIFOバッファ(FBUF)26とされ、FIFOバッファ26に対するアドレス制御はアドレスカウンタ(ACOUNT)27が行なう。FIFOバッファ26に蓄えられたトレース情報は、デバッグモードにおいて前記USBIF3又はJTAGIF8によってホストコンピュータ25に転送可能である。但しFIFOバッファ26の容量は小さいので、大量のデータをトレースするには不向きである。大量のデータをトレース情報として収集する場合には前記AUDIF10を用いる。内部バス12のアドレス情報及びデータ情報等をバスアクセスサイクル毎にトレースバッファ(TRBUF)28に蓄え、TRBUF28のデータをクロック信号AUDCLKに同期して外部に出力すればよい。AUDATAは出力データ、AUDSYNCはデータ出力同期信号である。
または、FIFOバッファ26に蓄えられたトレース情報をRAM7やEXMRY4へ一時的に格納し、USBIF3を用いて一括で出力することも可能である。
図2にはマイクロコンピュータ1を搭載したターゲットシステム30とホストコンピュータ25との接続形態を示す。ターゲットシステム30にはマイクロコンピュータ1のUSBIF3に接続するUSBコネクタ31が設けられ、このUSBコネクタ31とホストコンピュータ25のUSBコネクタをUSBケーブル23で直結すればよい。マイクロコンピュータ1はデバッグ機能を有するから、ホストコンピュータ25とマイクロコンピュータ1の間にエミュレータを介在させることなく、ターゲットプログラムとしてのシステムプログラムとデバッグ支援プログラムのダウンロードを行なうことができ、その後のユーザモードでは、システムプログラムを実行しながらトレース情報を収集する。システムプログラムの実行がブレークされてデバッグモードに遷移されたとき、トレース情報を参照したりしてターゲットシステムに対する評価及びシステムプログラムの修正等が行なわれる。
図3には別の例として前記USBIF3を備えていないマクロコンピュータ33を搭載したターゲットシステム34とホストコンピュータ25との接続形態を示す。ターゲットシステム34とホストコンピュータ25との間にはエミュレータ35が配置される。エミュレータ35とホストコンピュータ25はUSBケーブル23で接続される。ターゲットシステム34とエミュレータ35はJTAGインタフェースフェースケーブル36で接続される。
図4には前記マイクロコンピュータ33とエミュレータ35の一例が示される。マイクロコンピュータ33は図1のマイクロコンピュータ1に対してUSBIF3を備えていない点が相異される。同一機能を有する回路要素には同一符号を付してその詳細な説明は省略する。
エミュレータ35は、マイクロコンピュータ40、フィールド・プログラマブル・ゲート・アレイ(FPGA)41、シンクロナス・スタティック・ランダム・アクセス・メモリ(SSRAM)42から成る。
マイクロコンピュータ40はCPU44、ROM45、DMAC46、RAM47及びUSBIF48を有し、1個の半導体基板に形成されている。USBIF48は前記USBIF3と同様に、2面でUSBバッファEP1,EP2を有するUSBバッファ部20とUCNT21によって構成され、USB2.0規格に準拠する。RAM47はUSBバッファEP1,EP2の記憶情報に対する後段の2面RAMバッファを構成し、第1RAMバッファ領域BUF1と第2RAMバッファ領域BUF2が割当てられる。望ましくは、第1RAMバッファ領域BUF1と第2RAMバッファ領域BUF2に対して夫々個別のアクセスポートを持つデュアルポートであるのがよい。即ち、一方のUSBバッファEP1がホストコンピュータ25から受信したデータを格納しているとき、他方のUSBバッファEP2から出力されるデータをRAM47の第1RAMバッファ領域BUF1に格納し、これに並行して第2バッファ領域BUF2に格納されているデータを所定のポートから外部に出力することができる。また、他方のUSBバッファEP2がホストコンピュータ25から受信したデータを格納しているとき、USBバッファEP1から出力されるデータをRAM47の第2RAMバッファ領域BUF2に格納し、これに並行して第1RAMバッファ領域BUF1に格納されているデータを所定のポートから外部に出力することができる。USBIF48からRAM47へのデータ転送にはDMAC46を用いることが望ましい。
FPGA41はフラッシュメモリセルのような不揮発性記憶素子を多数有し、それら不揮発性記憶素子のプログラム状態に応じて論理機能を所望に設定することができる回路である。ここではFPGA41は、マイクロコンピュータ33のJTAGIF8とデータ送受信を行なうためのJTAGインタフェースロジック41Aと、SSRAM42のアクセス制御を行なうアドレス生成ロジック41Bを構成する。
JTAGインタフェースロジック41Aは、出力FIFOバッファFIFOTDO、入力バッファTDI、インタフェース制御回路(JCNT)50を有する。RAM47から出力FIFOバッファFIFOTDOへのデータライトの際、USBインタフェース制御プログラムを実行するCPU44は出力FIFOバッファFIFOTDOへの書き込み可能状態(TDOST)と空き状態(TDOF)等を管理し、出力FIFOバッファFIFOTDOへ連続して転送データをセットする。マイクロコンピュータ33のJTAGIF8からのアクセス許可ビットはJCNT50が監視する。アクセス許可ビットがイネーブルになったとき出力FIFOバッファFIFOTDOから4バイトの情報送信が行なわれる。出力FIFOバッファFIFOTDOから送信された情報はマイクロコンピュータ33のJTAGIF8で受信され、データレジスタSDDRに格納される。データレジスタSDDRに格納されると、DMAC6が起動され、その情報はDMA転送にてEXMRY14に書き込まれる。
前記SSRAM42はマイクロコンピュータ33のAUDIF10から出力されるトレース情報の格納に利用される。前記FPGA41で実現されるSSRAM42のアクセス制御を行なうアドレス生成ロジックはアドレスカウンタ(ACOUNT)52と、セレクタ(ASEL)53を構成する。セレクタ53はSSRAM42のアドレシングをCPU44で行なうかアドレスカウンタ52で行なうかを選択する。どちらを選択するかはCPU44の指示に従って決定される。
このように、ホストコンピュータ25に接続するUSBIF48と、ターゲットコンピュータ33のJTAGIF8の間には、受信データの入力と出力を並列可能にするバッファBUF1,BUF2による2面バッファと、2面バッファの一方のバッファから出力される受信データをFIFO形式で蓄えることができる出力FIFOバッファFIFOTDOが設けられているから、ホストコンピュータ25とマイクロコンピュータ33がUISBインタフェースで直結されていないが、ある程度データ転送効率を上げることができる。
特に、内蔵RAM47を数キロバイトのダブルバッファ構造として、ホストコンピュータ25からのダウンロードデータをバッファBFU1またはBFU2の一方に受信中に、他方のバッファが保持しているデータを出力FIFOバッファFIFOTDOにライトするように、処理を並列化したから、バッファEP1、EP2のデータサイズとバッファFIFOTDOのデータサイズが異なる場合であっても、また、バッファEP1,EP2の動作とバッファFIFOTDOの動作が独立しているためDMAC転送を途中で中断させないという制約が必要になる場合であっても、対応することが可能になる。
図5にはFPGA41で構成されるJTAGインタフェースロジック41Aの詳細が示される。図6には図5の動作タイミングが示される。
バッファFIFOTDOは4バイト×61段(244バイト)の多段構成とされる。55はマイクロコンピュータ40に接続されるインタフェースである。バッファFIFOTDOはFIFO56とシフトレジスタ57によって構成される。コントロールブロック58とバッファコントロールブロック59はJCNT50を構成する。59A,59Bは所定のロジックである。CPUDATA(REGDATA.D)はRAM47からの出力データ、CPUWR_N(TDOWR_N)はFIFO56に対するライトリクエスト、TDOREG.QはFIFO56からのリードデータ、READQはFIFO56に対するリードリクエスト、SHIFTREG.はシフトレジスタ57の出力データ(TDO出力)である。SBUF_LOADはシフトレジスタ57のデータロード信号、S_Pはシフトレジスタ57のシフト信号である。TDOemはFIFO56のエンプティ信号、TDOflはFIFO56のフル信号である。TDOSTはバッファFIFOTDOにライト可能か否かを示し、1でライト可、0でライト不可を意味する。TDOFは1でバッファFIFOTDOのデータがすべてシフトアウトしたこと、0でバッファFIFITDOのデータがすべてシフトアウトしていない(初期値)ことを示す。TDOINTはバッファFIFITDOのデータが全てシフトアウトした時に割込要求信号IRQを出力させるための信号であり、1で割込要求を可能とし、0で割込要求を抑止する(初期値)。
マイクロコンピュータ40のRAM47より、ライトイネーブル(TDOWR_N)に応答してCPUクロックCPUCLK同期でデータ(REGDATA.D)がFIFO56に書き込まれる。FIFO56がフル状態のときは、CPUクロックCPUCLKに同期してTDOflが出力される。FIFO56がエンプティ状態の時は、クロックTCKに同期してTDOemが出力される。シフトレジスタ57へのデータ転送開始ロードパルス(SBUF_LOAD)は、FIFO56が空の時はライトイネーブル(TDOWR_N)に同期して生成され、空でない時は転送終了パルス(DONE_P)に同期して生成される。この作用はロジック59A,59Bにより実現される。DONE_Pは、ターゲットマイクロコンピュータ33からのアクセス許可ビットに基づいて生成される。アクセス許可ビットは、レジスタTDIを介して入力される。バッファコントロールブロック59ではシフトレジスタ57のデータ転送終了毎にFIFO56のデータ書き込み可能状態を示すTDOflをチェックする。TDOflがバッファFIFITDOの書き込み可能状態を示すTDOSTビットを生成し、TDOemとDONE_PによりバッファFIFOTDOの空き状態を示すTDOFビットを生成し、コントロールブロック58のJTAGレジスタに反映する。TDOFをマイクロコンピュータ40への割込み要求に使用する場合、割込み許可を示すTDOINTビットとTDOFによって割込み要求信号IRQを生成する。CPU44がこの割込み要求を受付けると、例えば図7のTDOデータセット処理実行における、次のRAMバッファへの切り換え(S7)を行う。
図7にはRAM47の2面RAMバッファBUF1,BUF2を切り換えてデータをバッファFIFOTDOに転送する制御手順が示される。先ず、この制御手順を可能にするTDOINTが1にされ(S1)、TDOST=1かによってバッファFIFOTDOの空きがチェックされ(S2)、空きがあればバッファFIFOTDOにデータが転送される(S3)。転送されたデータバイト数がチェックされる。即ち、バッファBUF1,BUF2の夫々に割当てられる領域の最大容量数か否かがチェックされる(S4)。その転送バイト数に到達すると、TDOF=1かの判定によってFIFOTDOの空きチェックを行ない(S5)、全てシフトアウトしたことが判定されると、CPU44にIRQにて割り込みを要求し、TDOFを0にクリアする(S6)。その後、転送元RAMバッファ領域が次のバッファBUF1又はBUF2に切り換えられる(S7)。上記処理を送信完了まで繰返す(S8)。完了後、TDINTを0にクリアして(S9)、制御を終了する。
このように、バッファBUF1からバッファFIFOTDOへのデータライト転送は、バッファFIFOTDOのバッファの書き込み可能状態(TDOSTビット)を参照して、RAM47の最大容量数キロバイト数を転送し、次にバッファFIFOTDOの空き状態(TDOF)を確認した後、次のバッファBUF2又はBUF1へ切り替え、指定したデータ量を転送完了する迄その処理を繰り返す。これにより、RAM47からバッファFIFITDOへのデータライトの際、TDOSTビットとTDOFビットを管理し連続して転送データをセットする。マイクロコンピュータ33からバッファTDIに送られるアクセス許可ビットはハードロジック58が監視する。それらの結果、図8の(A)に示すように、アクセス許可ビットを検出してから転送データを転送するまでのオーバーヘッドを無くし、最大数百バイトの連続転送が可能になり、ユーザプログラムなどのダウンロード転送の高速化を実現することができる。ターゲットマイクロコンピュータがUSBIF3を持たない場合にもプログラムダウンロード転送速度をある程度高速化することが可能である。尚、図8の(A)において、マイコン書き込みとはRAM47からバッファFIFOTDOへのデータ転送書込みを意味する。JTAG出力とはバッファFIFOTDOからターゲットマイクロコンピュータ33への転送データ出力を意味する。SPはターゲットマイクロコンピュータ33からのアクセス許可ビットのステータスポーリング処理を意味する。
図9には比較例に係るエミュレータが例示される。ホストコンピュータとのインタフェースにはUSBを用いる。USBドライバ61及びUSBコントローラマイコンチップ62が設けられる。USBコントローラマイコンチップ62のプログラムはROM63に格納され、SDRAM64がワークメモリとして利用される。受信したUSBデータはSDRAM64に一旦格納され、USBパケット解析等を経てSDRAM64に格納してからJTAGコントローラ65のデータ出力レジスタからターゲットマイクロコンピュータにデータを送信する。JTAG準拠のインタフェースではソフトダウンロードデータ転送方式は、送信データの終了をターゲットCPUからアクセス許可ビットを受け取ることができるステータス取得モードで行っている。また1回のデータ転送量は最大で4バイトである。エミュレータは転送の都度ターゲットマイクロコンピュータ33からステータス取得モード終了を示すアクセス許可ビットを取得する。要するに、アクセス許可ビットをポーリングしながら取得して、データ出力レジスタ(TDO)へ転送データをセットしなければならない。この場合には図8の(B)に示されるように、アクセス許可ビットの検出から転送データセットまでにオーバーヘッドT1が発生する。要するに、図8の(B)は4バイト転送毎にデータ出力レジスタ(TDO)へのデータセットを行い、図8の(A)はデータ出力レジスタ(TDO)へのデータセットを予め行い、ハードロジック58でアクセス許可ビット取得毎に4バイト単位でデータ出力を行う。
図10には図5の例と図9の比較例に関しホストコンピュータPCよりターゲットマイクロコンピュータの外付メモリに1メガバイトのユーザープログラムファイルをダウンロードするときのダウンロード性能が示される。傾向線aは図5に対応され、傾向線bは図9に対応される。これによればホストコンピュータからターゲットマイクロコンピュータへデータ転送する際、図9の比較例におけるプログラムダウンロード性能は、TCK=10MHz以上にしても230KB/秒より変化はなかった。
図5の例では、TCK=10MH以上でもダウンロード性能がリニアに上がる。また、TCK=20MHzである場合、ダウンロード性能が約2倍の400KB/秒となる。
図11にはマイクロコンピュータ1の更に具体的な例が示される。図1との相違点は、USBインタフェース回路3に複数のUSBバッファ部(BEP0〜BEP6)20を示している。更に、ブートプログラムを保有するROM71を図示している。前記エミュレーションメモリ11はSRAMで構成されるのに対し、ROM71はマスクROM又はEEPROMやフラッシュメモリなどの電気的に書き換え可能な不揮発性メモリによって構成される。その他にブレーク回路72が設けられる。ブレーク回路72は、デバッグモードにおいてCPU2を介してブレーク条件が設定され、ユーザモードにおいてブレーク条件に一致する状態の発生を検出して、CPU2にブレーク例外を要求する。
前記USBバッファ部20のBEP0〜BEP6の夫々はUSB規格におけるエンドポイントと称されるFIFO(First−In First−Out)バッファを意味する。FIFOバッファは入力用(イン)、出力用(アウト)夫々別々に備えたダブルバッファ構造とされ、図1に示されるEP1、EP2のように構成される。BEP0はエンドポイント0、BEP6はエンドポイント6と理解されたい。エンドポイントの番号は例である。一つのUSBデバイスが持つことができるエンドポイントの最大数はUSB規格で規定されている。エンドポイント0(BEP0)はコントロール転送に使用され、USBデバイスにとって必須とされる。ここではUSBインタフェース回路3はユーザモードとデバッグモードの双方で利用可能とされ、USBバッファ部(BEP0〜BEP6)20のうち、BEP1,BEP2はユーザプログラムによる使用に専用化され、BEP3〜BEP6はデバッグ支援に専用化される。BEP0は双方で共用される。BEP0はオンチップデバック専用のディスクリプタ情報をコントロール転送するのに使用される。BEP3はUSBデータのバルクアウト転送に利用されるBEP4はUSBデータのバルクイン転送用に利用される。BEP5は命令コマンドの入力に利用される。BEP6はステータス情報の出力に利用される。BEP1,BEP2はユーザモードにおいてユーザの設定に従ってデータ入出力などに利用される。USBインタフェース回路3は外部から与えられる48MHzのような周波数のクロック信号CLKに同期動作される。CLKはマイクロコンピュータ1の内部でPLL回路などを介して生成されてもよい。
前記ROM71が保有するブートプログラムは、特に制限されないが、USBインタフェース回路3を初期化するためのUSB初期化制御プログラム及び転送制御プログラムとされる。転送制御プログラムは、USBインタフェース回路3を介して受信したデバッグ支援プログラム(ASEファームソフトとも称する)をエミュレーションメモリ11に格納するためのプログラムとされる。
システムコントローラ(SYSC74)は代表的に示された外部端子としてデバッグモード端子ASEMD及びリセット端子RESに接続され、また、パワーオンリセット回路(PORES)73から出力されるパワーオンリセット信号が供給され、それら入力に従ってマイクロコンピュータ1の動作モード等を制御する。SYSC74は、デバッグモード端子ASEMDによってユーザモードが指定され、パワーオンリセット回路73からのパワーオンリセット指示又はリセット端子RESからのリセット指示があると、制御信号φ1によってCPUが初期化され、CPU2はROM71が保有する前記USB初期化制御プログラムを実行してエンドポイントBE0、BEP1、BEP2の動作を可能とし、最後にCPU2はプログラム格納領域の先頭番地から命令を実行開始可能にされる。一方、SYSC74は、デバッグモード端子ASEMDによってデバッグモードが指定され、パワーオンリセット回路73からのパワーオンリセット指示があると、制御信号φ2によってCPU2が初期化され、CPU2はROM71が保有する前記USB初期化制御プログラムを実行してエンドポイントBE0〜BEP6の動作を可能とし、その後CPU2はROM71が保有する前記転送制御プログラムを実行して、USBインタフェース回路3を介して受信したデバッグ支援プログラム(ASEファームソフトとも称する)をエミュレーションメモリ11に格納し、最後にCPU2は転送したASEファームソフトの実行が可能にされる。尚、デバッグモードにおいてユーザモードに分岐したユーザプログラムの実行状態では、RESによるリセット指示があってもデバッグモードそれ自体のリセット指示はマスクされる。デバッグモードからユーザモードに分岐してユーザープログラムを実行しているとき、リセット入力でリセットベクタへジャンプするかを検証し足りするのを可能にするためである。
ASEファームソフトによってユーザプログラムをホストコンピュータ25からダウンロードする場合、CPU2は、ASEファームソフトにしたがって、USBIF3が受信したダウンロード要求コマンドに応答して、前記DMAC6に、USBIF3が受信したユーザプログラムを前記バッファRAM7に転送させる。例えば、USBIF3との通信が完了した後、CPU2は、前記ASEファームソフトにしたがって、USBIF3が受信した転送要求コマンドに応答して、前記DMAC6に、前記バッファRAM7に転送されたプログラムを外部バスインタフェース回路5を介して外部メモリ4に転送制御させる。CPU2は、前記ASEファームソフトの実行状態において、モード制御コマンドに応答してユーザモードに移行し、前記ユーザモードにおいてCPU2は外部メモリ4から命令をフェッチして実行することができる。
図12にはマイクロコンピュータによるオンチップデバッグの動作タイミングが例示される。時刻t0にASEMDがローレベルにされてデバッグモードが指示され、時刻t1に電源が投入されて、パワーオンリセット回路73によりパワーオンリセットが指示されると(時刻t2)、制御信号φ2が活性化され、CPU2が初期化され、CPU2はROM71が保有する前記USB初期化制御プログラムを実行してUSBブート処理を行なってエンドポイントBE0〜BEP6の動作を可能とし、その後CPU2は、ROM71が保有する前記転送制御プログラムを実行する。すなわち、USBインタフェース回路が書き込みコマンドを受信すると、これに応答して、USBインタフェース回路3を介して受信したデバッグ支援プログラム(ASEファームソフトとも称する)をエミュレーションメモリ11に格納する(ASEファーム書き込み処理)。ASEファーム書き込み処理が終わった後、USBインタフェース回路3がホストコンピュータからブレークコマンドを受信することにより、CPU2はEMMRY11上のASEファームソフトを実行可能にされる。この後、USBインタフェース回路3がホストコンピュータからユーザプログラム実行コマンドを受信すると、当該ユーザプログラム実行コマンドで指定されるユーザプログラムのアドレスに処理が分岐し、CPU2はユーザプログラムを実行するユーザモードに移行される。このユーザプログラムの実行状態において、例えばUSBインタフェース回路がブレークコマンドを受信すると、CPU2にブレーク例外要求BERQが発行され、CPU2によるユーザプログラムの実行が停止され、CPU2は再びASEファームソフトを実行するデバッグモードに遷移される。
図13にはUSBの通信フォーマットが例示される。1フレームの先頭はSOF(Start of frame)とされる。USB規格におけるUSB通信フォーマットのフレーム内ではDATA0/DATA1がオンチップデバック用データパケットとされる。DATA0/DATA1のリード/ライトは各BEPで行う。オンチップデバック用USBパケットデータはヘッダーとデータから成る。ヘッダーは、識別ID、データサイズ、ステータス、命令コマンドの情報を含む。データ情報にダウンロードデータ等の情報を含む。
図14にはホストコンピュータ25(PC側)とUSBインタフェース回路3との通信ハンドシェック制御の基本形が例示される。ホストコンピュータ25から送信されてくるUSBデータパケットをEP3に受信する。次にCPU2がASEファームプログラムに従ってEP3に受信したUSBデータパケットを読込み、解析して、解析結果に応ずる制御を行い、その制御結果をEP4よりホストコンピュータ25に送信する。
図15にはユーザープログラムの実行中に強制ブレークさせる場合のホストコンピュータ25とUSBインタフェース回路3との間でハンドシェーク制御内容が例示される。EP5を命令コマンド受信専用バッファとして使用する。EP5で受信した命令コマンドパケットを解析し、これに応じてUSB制御回路21からCPU2へブレーク例外処理を要求し、ASEファームのベクタアドレスが与えられる。CPU2はユーザプログラムの実行状態からASEファームプログラムのブレークのアドレスへジャンプする。USBインタフェース制御回路21はCPU2よりブレークアクナリッジBACKを受信し、EP6にステータス情報(BACK)をセットしホストコンピュータ25に送信する。ホストコンピュータ25はステータスがブレーク状態か否かを確認する。
図16にはホストコンピュータ25からUSBインタフェース回路3へのソフトウェア(ユーザプログラム)のダウンロードの制御内容が例示される。ホストコンピュータよりソフトダウンロード送信要求と共に転送サイズ、ロード先アドレスがBEP3へ送信する。これに対し、CPU2からBEP4を介して送信許可がホストコンピュータ25に転送され、それが完了次第、ホストコンピュータ25より指定サイズ分だけダウンロードデータがUSBインタフェース回路3に向けて送信される。このとき、USBインタフェース回路のBEP3に受信した場合、USB割り込みにより、DMA転送し、直接外部メモリ4に書き込む。指定サイズ分送信終えたらEP4より送信完了をホストコンピュータに送信する。
図17にはマイクロコンピュータ1の更に別の例が示される。図11との相違点は、JTAGIF8及びAUDIF10を削除し、更に、USBIF3をデバッグモードに専用化した点である。USBIF3はBEP1,BEP2を備えていない。ユーザー資源としてUSBIF3を利用することはできない。USBIF3はオンチップデバックのときだけ使用可能にされる。AUDIF10は大容量のトレースデータの格納にユーザー資源のオンチップRAM7やEXMRY4を使用することが可能な場合は必要ないためである。
図18にはマイクロコンピュータ1の更に別の例が示される。図17との相違点は、ユーザ専用資源としてUSBIF3Aを設けた点である。ユーザ専用資源としてUSBIF3AはBEP0,BEP1,BEP2を構成するバッファ20とUSBインタフェース制御回路21Aを備える。オンチップデバッグとユーザモードの夫々において全く専用化されたUSBIFを利用可能である。
特に図示はしないが図11においてAUDIF10だけを廃止することも可能である。USBIF3はオンチップデバックとユーザモードで兼用に使用あれるから、ユーザー資源としてUSBIF3をデバックする場合は、デバッグ用インタフェースとしてJTAGIF8を利用すればよい。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、CPU2と内部バス12の間にはキャッシュメモリが配置されてもよい。仮想アドレスをサポートする場合にはCPU2と内部バス12の間にアドレス変換バッファが配置されていてよい。ロジック41A,41BはFPGAで構成することに限定されない。
図4で説明したマイクロコンピュータ40が保有するUSBIF48についても図11で説明したUSBIF3を適用可能である。この場合、ユーザ専用のBEPは必要ない。
本発明はマイクロコンピュータ、特にデバッグサポート機能を有するマイクロコンピュータ、更にはマイクロコンピュータを動作させるシステムプログラムの開発方法などに広く適用することができる。

Claims (17)

  1. 中央処理装置、デバッグ用インタフェースに利用可能な高速シリアル通信インタフェース回路、及び外部メモリに接続可能な外部バスインタフェース回路を有し、
    前記高速シリアル通信インタフェース回路はその内部に複数の入力バッファを有し、相互に一の入力バッファに対する入力動作に並行して他の入力バッファからデータを出力可能とされ、
    前記デバッグモードにおいて、前記高速シリアル通信インタフェース回路はシステムプログラムを受信し、受信されたシステムプログラムをメモリアクセス制御信号と共に前記外部バスインタフェース回路から出力可能であることを特徴とするマイクロコンピュータ。
  2. 前記高速シリアル通信インタフェース回路は、ユニバーサルシリアルバスインタフェース回路であることを特徴とする請求項1記載のマイクロコンピュータ。
  3. 受信されたシステムプログラムを外部バスインタフェースに接続されたメモリに転送制御が可能なダイレクトメモリアクセスコントローラを有することを特徴とする請求項2記載のマイクロコンピュータ。
  4. 前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は前記高速シリアル通信インタフェースの入力バッファであることを特徴とする請求項3記載のマイクロコンピュータ。
  5. 前記高速シリアル通信インタフェース回路の入力バッファに受信されたシステムプログラムを一時的に蓄積可能なランダムアクセスメモリを有し、
    前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は前記ランダムアクセスメモリであることを特徴とする請求項3記載のマイクロコンピュータ。
  6. デバッグ専用低速シリアル通信インタフェース回路を有し、前記デバッグ専用低速シリアル通信インタフェース回路は、デバッグモードにおいて、前記高速シリアル通信インタフェース回路を制御する制御データの入力に利用可能であることを特徴とする請求項1記載のマイクロコンピュータ。
  7. 前記デバッグ専用低速シリアル通信インタフェース回路は、デバッグモードにおいて、前記高速シリアル通信インタフェース回路に代えてシステムプログラムの受信に利用可能であることを特徴とする請求項6記載のマイクロコンピュータ。
  8. 前記デバッグ専用低速シリアル通信インタフェース回路はJTAGに準拠しデータレジスタを有することを特徴とする請求項6又は7記載のマイクロコンピュータ。
  9. トレース制御回路を有し、前記トレース制御回路は前記中央処理装置が前記システムプログラムを実行したときの内部状態をトレース情報として逐次蓄えることを特徴とする請求項1又は6記載のマイクロコンピュータ。
  10. 前記トレース情報の外部出力に前記高速シリアル通信インタフェース回路を利用可能であることを特徴とする請求項9記載のマイクロコンピュータ。
  11. ホストコンピュータと、エミュレータと、ターゲットデバイスとを用いて、ターゲットデバイスが実行するシステムプログラムを開発する方法であって、
    前記エミュレータによる処理として、ホストコンピュータが高速シリアル通信で出力するシステムプログラムを2面バッファの一方のバッファに蓄積する第1処理と、前記2面バッファの他方のバッファに蓄積されたシステムプログラムを前記第1処理に並行してターゲットデバイスに低速シリアル通信で送信する第2処理と、ターゲットデバイスとの間の前記低速シリアル通信のハンドシェーク制御を行なう第3処理を含み、
    前記第2処理では、前記バッファから出力するシステムプログラムを前記一つのバッファの記憶容量以上のFIFOバッファを経由してターゲットデバイスに低速シリアル通信で送信し、
    前記第3処理では、ターゲットデバイスからの送信許可に応答してFIFOバッファからターゲットデバイスへの送信を行ない、FIFOバッファのフル状態に応答して前記バッファからFIFOバッファへの転送を抑制することを特徴とするシステムプログラムの開発方法。
  12. ユーザモードとデバッグモードを有するマイクロコンピュータであって、
    中央処理装置と、ユニバーサルシリアルバスインタフェース回路と、第1のデバッグ用制御プログラムを保有するROMと、RAMと、外部バスインタフェース回路とを備え、
    前記ユニバーサルシリアルバスインタフェース回路は、前記デバッグモードで利用可能にされる所定のエンドポイントバッファ回路を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファを有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされ、
    前記中央処理装置は、パワーオンリセット時に前記デバッグモードが指定されているとき、前記第1のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第2のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタフェース回路で受信し、受信した第2のデバッグ用制御プログラムを前記RAMに格納し、RAMに格納した第2のデバッグ用制御プログラムの実行に移行するマイクロコンピュータ。
  13. バッファRAMとダイレクトメモリアクセスコントローラと更に有し、
    中央処理装置は、前記第2のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信したダウンロード要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、ユニバーサルシリアルバスインタフェース回路が受信したプログラムを前記バッファRAMに転送させる請求項12記載のマイクロコンピュータ。
  14. 前記中央処理装置は、前記第2のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信した転送要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、前記バッファRAMに転送されたプログラムを外部バスインタフェース回路を介して外部に転送制御させる請求項13記載のマイクロコンピュータ。
  15. 中央処理装置は、前記第2のデバッグ用制御プログラムの実行状態において、モード制御コマンドに応答してユーザモードに移行し、
    前記ユーザモードにおいて中央処理装置は外部バスインタフェース回路を介して命令をフェッチする請求項12記載のマイクロコンピュータ。
  16. 中央処理装置と、ユニバーサルシリアルバスインタフェース回路と、第1のデバッグ用制御プログラムを保有するROMと、バッファRAMと、外部インタフェース回路とを備え、
    前記ユニバーサルシリアルバスインタフェース回路は、所定のエンドポイントバッファ回路を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファを有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされ、
    前記中央処理装置は、パワーオンリセット時に前記第1のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第2のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタフェース回路で受信し、受信した第2のデバッグ用制御プログラムを前記バッファRAMに格納し、バッファRAMに格納した第2のデバッグ用制御プログラムを前記外部インタフェース回路を介して出力させるマイクロコンピュータ。
  17. ダイレクトメモリアクセスコントローラを更に有し、
    前記ダイレクトメモリアクセスコントローラは、前記中央処理装置による転送制御条件にしたがって、前記バッファRAMから第2のデバッグ用制御プログラムを前記外部インタフェース回路を介して外部に転送する請求項16記載のマイクロコンピュータ。
JP2005513467A 2003-08-28 2004-08-27 マイクロコンピュータ及びシステムプログラムの開発方法 Expired - Fee Related JP3955876B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003304276 2003-08-28
JP2003304276 2003-08-28
PCT/JP2004/012350 WO2005022390A1 (ja) 2003-08-28 2004-08-27 マイクロコンピュータ及びシステムプログラムの開発方法

Publications (2)

Publication Number Publication Date
JPWO2005022390A1 JPWO2005022390A1 (ja) 2006-10-26
JP3955876B2 true JP3955876B2 (ja) 2007-08-08

Family

ID=34269267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005513467A Expired - Fee Related JP3955876B2 (ja) 2003-08-28 2004-08-27 マイクロコンピュータ及びシステムプログラムの開発方法

Country Status (3)

Country Link
US (1) US7401257B2 (ja)
JP (1) JP3955876B2 (ja)
WO (1) WO2005022390A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344022A (zh) * 2018-07-22 2019-02-15 广州市星翼电子科技有限公司 一种多功能下载调试装置及调试方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI5706U1 (fi) * 2002-11-21 2003-02-26 Patria New Technologies Oy JTAG-testilaitteisto ja -testausjärjestelmä
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
US20060277435A1 (en) * 2005-06-07 2006-12-07 Pedersen Frode M Mechanism for storing and extracting trace information using internal memory in microcontrollers
US7272762B2 (en) * 2005-06-16 2007-09-18 General Electric Company Method and apparatus for testing an ultrasound system
JP4908017B2 (ja) * 2006-02-28 2012-04-04 富士通株式会社 Dmaデータ転送装置及びdmaデータ転送方法
JP2007265264A (ja) * 2006-03-29 2007-10-11 Fujitsu Ltd トレース情報処理装置、トレース情報記録方法、およびトレース情報記録プログラム
FR2901618A1 (fr) * 2006-05-24 2007-11-30 St Microelectronics Sa Controleur de dma, systeme sur puce comprenant un tel controleur de dma, procede d'echange de donnees par l'intermediaire d'un tel controleur de dma
JP2007328425A (ja) * 2006-06-06 2007-12-20 Sharp Corp 制御装置及び画像形成装置
GB2439579A (en) * 2006-06-30 2008-01-02 Advanced Risc Mach Ltd Target device programmer
JP2008226083A (ja) * 2007-03-15 2008-09-25 Nec Electronics Corp オンチップ・デバッグ・エミュレータおよびデバッグ方法並びにマイクロコンピュータ
US7725770B2 (en) * 2007-04-01 2010-05-25 International Business Machines Corporation Enhanced failure data collection system apparatus and method
JP4833907B2 (ja) * 2007-04-23 2011-12-07 ルネサスエレクトロニクス株式会社 半導体装置
TWI355582B (en) * 2008-03-05 2012-01-01 Inventec Corp Method for analyzing program with error, and metho
US8150956B2 (en) * 2009-02-09 2012-04-03 Cfph, Llc Mobile gaming alert
US9639347B2 (en) * 2009-12-21 2017-05-02 International Business Machines Corporation Updating a firmware package
TWI413904B (zh) * 2010-03-03 2013-11-01 Pixart Imaging Inc Universal Serial Bus (USB) controller and its execution method
CN102200950B (zh) * 2010-03-24 2014-01-22 原相科技股份有限公司 通用串行总线控制器及其执行方法
US8151017B2 (en) * 2010-08-23 2012-04-03 Smartech World Wide Limited Multiplexing application and debug channels on a single USB connection
US20120324302A1 (en) * 2011-06-17 2012-12-20 Qualcomm Incorporated Integrated circuit for testing using a high-speed input/output interface
JP5547701B2 (ja) * 2011-09-21 2014-07-16 日立オートモティブシステムズ株式会社 自動車用電子制御装置
US9015542B2 (en) 2011-10-01 2015-04-21 Intel Corporation Packetizing JTAG across industry standard interfaces
CN102521005A (zh) * 2011-12-31 2012-06-27 南京航空航天大学 简便的嵌入式系统软件加载和调试方法
US9047257B2 (en) * 2012-10-11 2015-06-02 Synopsys, Inc. Concurrent host operation and device debug operation with single port extensible host interface (xHCI) host controller
CN103268275B (zh) * 2013-05-03 2014-12-31 杭州电子科技大学 手持式串口模拟器
CN103500075A (zh) * 2013-10-11 2014-01-08 张维加 一种基于新材料的外接的计算机加速设备
TWI505078B (zh) * 2014-07-28 2015-10-21 Ibm 系統管理控制器、電腦系統、以及系統管理方法
US20160093377A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Nonvolatile memory module
WO2016187582A1 (en) * 2015-05-21 2016-11-24 Cloudtraq Llc Identification, location, and authentication systems and methods
CN105550005B (zh) * 2016-01-27 2022-05-03 南京沁恒微电子股份有限公司 一种通过usb口进行调试升级的方法
CN106066822B (zh) * 2016-05-26 2018-04-13 北京中电华大电子设计有限责任公司 一种支持覆盖率统计功能的仿真器及方法
CN108804160A (zh) * 2018-06-14 2018-11-13 广州华多网络科技有限公司 接口调用方法及装置
US10713207B2 (en) 2018-07-02 2020-07-14 Venturi, Llc USB to synchronous serial interface with external clock signal
CN109344099B (zh) * 2018-08-03 2020-06-19 清华大学 Fpga应用系统无线调试下载装置
CN110175139B (zh) * 2019-05-08 2021-01-05 厦门亿联网络技术股份有限公司 一种usb设备的通用调试方法及usb设备
JP7400536B2 (ja) 2020-02-27 2023-12-19 セイコーエプソン株式会社 半導体装置
JP7400537B2 (ja) 2020-02-27 2023-12-19 セイコーエプソン株式会社 半導体装置
JP7413832B2 (ja) 2020-02-27 2024-01-16 セイコーエプソン株式会社 半導体装置
TWI802792B (zh) * 2020-04-17 2023-05-21 新唐科技股份有限公司 偵錯裝置及其操作方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1139186A (ja) 1997-07-17 1999-02-12 Matsushita Electric Ind Co Ltd デバッグ支援装置およびダウンロード方法
JPH1139184A (ja) 1997-07-18 1999-02-12 Mitsubishi Electric Corp エミュレータ
US6567932B2 (en) * 1999-10-01 2003-05-20 Stmicroelectronics Limited System and method for communicating with an integrated circuit
GB0025593D0 (en) * 2000-10-18 2000-12-06 Sgs Thomson Microelectronics On-chip emulator communication
JP2002202900A (ja) 2000-12-28 2002-07-19 Seiko Epson Corp デバッグ装置
JP2002268911A (ja) 2001-03-13 2002-09-20 Computex:Kk 電子計算機用開発支援装置
US7313729B2 (en) * 2004-02-20 2007-12-25 Winbond Electronics Corp. Low-cost debugging system with a ROM or RAM emulator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344022A (zh) * 2018-07-22 2019-02-15 广州市星翼电子科技有限公司 一种多功能下载调试装置及调试方法

Also Published As

Publication number Publication date
WO2005022390A1 (ja) 2005-03-10
US20070006035A1 (en) 2007-01-04
JPWO2005022390A1 (ja) 2006-10-26
US7401257B2 (en) 2008-07-15

Similar Documents

Publication Publication Date Title
JP3955876B2 (ja) マイクロコンピュータ及びシステムプログラムの開発方法
JP3929573B2 (ja) 集積回路装置及びその通信方法
JP3929574B2 (ja) 集積回路装置及びその通信方法
JP4335999B2 (ja) プロセッサ内蔵半導体集積回路装置
US6279103B1 (en) Method and device for providing an instruction trace from an on-chip CPU using control signals from the CPU
US6430727B1 (en) Diagnostic procedures in an integrated circuit device
KR102170644B1 (ko) 낮은 레벨 프로그래밍 가능한 시퀀서와 조합한 범용 프로그래밍 가능한 프로세서를 사용한 비휘발성 메모리 채널 제어
EP0849668B1 (en) Diagnostics system and procedure in an integrated circuit device
US20110246708A1 (en) METHOD AND APPARATUS FOR EXECUTING A PROGRAM BY AN SPI INTERFACE MEMORY(amended
US5566303A (en) Microcomputer with multiple CPU'S on a single chip with provision for testing and emulation of sub CPU's
JP2015062131A (ja) Mmc/sdデバイスからホストデバイスをブートする方法,mmc/sdデバイスからブート可能なホストデバイス及びホストデバイスをブートできるmmc/sdデバイス
US8732526B1 (en) Single-wire data interface for programming, debugging and testing a programmable element
CN115858431A (zh) 数据传输控制方法、控制器及电子设备
JP3929572B2 (ja) 集積回路装置及びその通信方法
US7428661B2 (en) Test and debug processor and method
JP4504466B2 (ja) コンピュータシステム内の通信を実行する方法
JP2004094451A (ja) オンチップjtagインタフェース回路およびシステムlsi
US6877062B2 (en) Method and apparatus for increasing the memory read/write speed by using internal registers
EA039007B1 (ru) Устройство прямого отображения адресов данных, располагающихся во внешнем последовательном пзу, в адресное пространство микропроцессорного ядра, компьютерная система и способ передачи данных
JP2001092686A (ja) 半導体装置
JP2004038464A (ja) デバッグ機能内蔵マイクロコンピュータ
JP2004013289A (ja) マイクロコントローラのオンチップデバッグ方法
JP2002541582A (ja) エミュレータシステム内のユーザメモリを更新する方法およびシステム
WO2016053146A1 (ru) Компьютерная система
JP4421148B2 (ja) デバッグシステム

Legal Events

Date Code Title Description
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: 20070424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070507

R150 Certificate of patent or registration of utility model

Ref document number: 3955876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140511

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees