JP2006133836A - マイクロコンピュータ及びマイクロコンピュータの製造方法 - Google Patents

マイクロコンピュータ及びマイクロコンピュータの製造方法 Download PDF

Info

Publication number
JP2006133836A
JP2006133836A JP2004318814A JP2004318814A JP2006133836A JP 2006133836 A JP2006133836 A JP 2006133836A JP 2004318814 A JP2004318814 A JP 2004318814A JP 2004318814 A JP2004318814 A JP 2004318814A JP 2006133836 A JP2006133836 A JP 2006133836A
Authority
JP
Japan
Prior art keywords
microcomputer
program
memory
debugging
data
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.)
Withdrawn
Application number
JP2004318814A
Other languages
English (en)
Inventor
Yoichi Hijikata
陽一 土方
Hiroki Matsuoka
弘樹 松岡
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004318814A priority Critical patent/JP2006133836A/ja
Publication of JP2006133836A publication Critical patent/JP2006133836A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Microcomputers (AREA)

Abstract

【課題】 ICチップ内に搭載されるデバッグ回路を削減したオンチップデバッグ方式のマイクロコンピュータを提供する。
【解決手段】 このマイクロコンピュータは、データを格納する内部レジスタ11aを含み、プログラムに従ってコマンドを実行する中央処理装置11と、ユーザが作成した第1のプログラムを格納する不揮発性メモリ12と、中央処理装置が第1のプログラムを実行することによって作成されるデータを一時的に格納するランダムアクセスメモリ13と、デバッグのための第2のプログラムを格納し、デバッグの際に、内部レジスタに書き込まれているデータをランダムアクセスメモリの一部の記憶領域に退避させた後に、外部のデバッグツール50から受信したデータに基づいて中央処理装置にコマンドを実行させるモニタ部20とを具備する。
【選択図】 図2

Description

本発明は、デバッグ機能を有するマイクロコンピュータ、及び、マイクロコンピュータの製造方法に関する。
近年、ゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末等の電子機器に組み込まれ、高度な情報処理を実現できるマイクロコンピュータに対する需要が高まっている。このような組み込み型のマイクロコンピュータは、通常、ターゲットシステムと呼ばれるユーザボードに実装される。そして、このターゲットシステムを動作させるソフトウェアのデバッグ作業を行うために、イン−サーキット・エミュレータ(ICE:登録商標)と呼ばれるソフトウェア開発支援システム(デバッグシステム)が広く使用されている。このようなデバッグ作業において、ユーザは、ICEを用いてプログラムのバグを見つけ出し、フラッシュメモリ等に格納されているプログラムを修正して書き換える。
従来は、特許文献1又は2の図1(A)に示されているようなCPU置き換え型と呼ばれるICEが主流を占めていた。CPU置き換え型ICEにおいては、デバッグ時に、ターゲットシステムからマイクロコンピュータを取り外して、その代わりにデバッグツールのプローブを接続し、デバッグツールがマイクロコンピュータの動作をエミュレート(模倣)することによりデバッグを行う。
しかしながら、CPU置き換え型ICEによれば、プローブのピン数が多くなると、配線が増加してしまうという欠点があった。このため、マイクロコンピュータの高速動作をエミュレートすることは困難である。また、マイクロコンピュータをターゲットシステムに実装して動作させる実動作時と、デバッグツールがマイクロコンピュータの動作をエミュレートするデバッグ時との間で、ターゲットシステムの動作環境が変化してしまう。
そこで、このようなCPU置き換え型ICEの欠点を解消するために、特許文献1又は2の図1(B)に示されているようなモニタプログラム実装型ICEが用いられるようになった。モニタプログラム実装型ICEにおいては、ターゲットシステムに実装されているメモリにモニタプログラムが格納され、マイクロコンピュータがモニタプログラムを実行することによってデバッグが行われる。
しかしながら、モニタプログラム実装型ICEによれば、プログラムのロード、GO、ステップ実行、メモリのリード・ライト、内部レジスタのリード・ライト、ブレークポイントの設定・解除を含む全てのデバッグコマンドを実行する機能を、モニタプログラムに持たせる必要があった。従って、モニタプログラムの命令コードサイズが非常に大きくなってしまい、ユーザが自由に使用できるメモリ領域が減ってしまうという問題があった。
このようなモニタプログラム実装型ICEの問題点を解決するために、従来ICE上に搭載していたデバッグ回路の一部をICチップ内に搭載するオンチップデバッグと呼ばれる方式が用いられている。特許文献1又は2の図3に示されているオンチップデバッグ方式によれば、CPU及びミニモニタ部を内蔵するマイクロコンピュータに、メインモニタ部を含むデバッグツールが接続され、さらに、デバッグツールにホストシステムが接続される。
ミニモニタ部には、制御レジスタと、ミニモニタROMと、ミニモニタRAM(ランダムアクセスメモリ)と、デバッグツールとの間でデータを送受信するためのシリアル入出力回路(SIO)とが含まれている。デバッグモードにおいては、制御レジスタが、ミニモニタROMに格納されているミニモニタプログラムに基づいて、各種のデバッグ処理を制御する。ミニモニタプログラムは、GO、リード、ライト等のプリミティブなコマンドの処理のみをCPUに実行させるので、ミニモニタROMのメモリ容量を、例えば256バイト程度に抑えることができる。一方、ミニモニタRAMには、デバッグモード移行時にCPUの内部レジスタの内容が退避される。これにより、デバッグモードの終了後にユーザプログラムの実行を適正に再スタートできるようになる。
このように、従来のオンチップデバッグ方式のマイクロコンピュータにおいては、ビット単価の高いASICのゲートアレイによって構成されるミニモニタRAMを含むデバッグ回路がICチップ内に搭載されていたので、チップコストの上昇や設計・製造の煩雑化を招いていた。
特開平11−282715号公報(第5〜6頁、図1〜図3) 特開平11−282720号公報(第2〜3頁、図1〜図3)
そこで、上記の点に鑑み、本発明は、ICチップ内に搭載されるデバッグ回路を削減したオンチップデバッグ方式のマイクロコンピュータを提供することを目的とする。さらに、本発明は、ICチップ内に搭載されるデバッグ回路を削減したマイクロコンピュータの製造方法を提供することを目的とする。
上記課題を解決するため、本発明の第1の観点に係るマイクロコンピュータは、オンチップデバッグ機能を有するマイクロコンピュータであって、データを格納する内部レジスタを含み、プログラムに従ってコマンドを実行する中央処理装置と、ユーザが作成した第1のプログラムを格納する第1のメモリと、中央処理装置が第1のプログラムを実行することによって作成されるデータを一時的に格納する第2のメモリと、デバッグのための第2のプログラムを格納し、デバッグの際に、内部レジスタに書き込まれているデータを第2のメモリの一部の記憶領域に退避させた後に、外部のデバッグツールから受信したデータに基づいて中央処理装置にコマンドを実行させるモニタ部とを具備する。
また、本発明の第2の観点に係るマイクロコンピュータは、オンチップデバッグ機能を有するマイクロコンピュータであって、データを格納する内部レジスタを含み、プログラムに従ってコマンドを実行する中央処理装置と、ユーザが作成した第1のプログラムを格納するメモリと、外部のメモリにアクセスするためのインタフェースと、デバッグのための第2のプログラムを格納し、デバッグの際に、内部レジスタに書き込まれているデータを外部のメモリの一部の記憶領域に退避させた後に、外部のデバッグツールから受信したデータに基づいて中央処理装置にコマンドを実行させるモニタ部とを具備する。
以上において、第2のメモリ又は外部のメモリの一部の記憶領域のアドレス値が、マイクロコンピュータのピンの接続状態、又は、マイクロコンピュータの少なくとも一部が含まれているマクロセルのピンの接続状態に基づいて指定されるようにしても良いし、マイクロコンピュータの設計においてハードウェア・デスクリプション・ランゲージのパラメータを用いて指定されるようにしても良いし、内部レジスタに含まれている、割り込み先のアドレス値を格納するレジスタを参照することにより指定されるようにしても良い。
また、第2のメモリ又は外部のメモリの一部の記憶領域のアドレスが、第1のプログラムを実行することによってアクセスされないようにプロテクトされるようにしても良い。
本発明の第1の観点に係るマイクロコンピュータの製造方法は、データを格納する内部レジスタを含み、プログラムに従ってコマンドを実行する中央処理装置と、ユーザが作成した第1のプログラムを格納する第1のメモリと、中央処理装置が第1のプログラムを実行することによって作成されるデータを一時的に格納する第2のメモリと、デバッグのための第2のプログラムを格納し、外部のデバッグツールから受信したデータに基づいて中央処理装置にコマンドを実行させるモニタ部とを含む第1のマイクロコンピュータを作成するステップと、内部レジスタに書き込まれているデータを第2のメモリの一部の記憶領域に退避させた後に、外部のデバッグツールから受信したデータに基づいて中央処理装置にコマンドを実行させることにより、第1のマイクロコンピュータのデバッグを行うステップと、第1のマイクロコンピュータからモニタ部を削除した第2のマイクロコンピュータを作成するステップとを具備する。
また、本発明の第2の観点に係るマイクロコンピュータの製造方法は、データを格納する内部レジスタを含み、プログラムに従ってコマンドを実行する中央処理装置と、ユーザが作成した第1のプログラムを格納するメモリと、外部のメモリにアクセスするためのインタフェースと、デバッグのための第2のプログラムを格納し、外部のデバッグツールから受信したデータに基づいて中央処理装置にコマンドを実行させるモニタ部とを含む第1のマイクロコンピュータを作成するステップと、内部レジスタに書き込まれているデータを外部のメモリの一部の記憶領域に退避させた後に、外部のデバッグツールから受信したデータに基づいて中央処理装置にコマンドを実行させることにより、第1のマイクロコンピュータのデバッグを行うステップと、第1のマイクロコンピュータからモニタ部を削除した第2のマイクロコンピュータを作成するステップとを具備する。
本発明に係るマイクロコンピュータによれば、モニタ部においてランダムアクセスメモリを必要としないので、ICチップ内に搭載されるデバッグ回路を削減したオンチップデバッグ方式のマイクロコンピュータを提供することができる。また、デバッグの際に、モニタ部の外部のメモリを用いることにより、大きなメモリ領域を確保して、デバッグ機能を向上させることができる。さらに、本発明に係るマイクロコンピュータの製造方法によれば、モニタ部を削除することが可能である。
以下、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図1は、本発明の第1の実施形態に係るオンチップデバッグ方式のマイクロコンピュータ及びそのデバッグシステムの構成を示す図である。図1に示すように、デバッグの対象となるマイクロコンピュータ10は、プログラムを実行することによって各種の処理を行うCPU(中央処理装置)11と、ユーザプログラムを格納するフラッシュメモリ12と、ユーザプログラムを実行することによって作成されるデータを一時的に格納するRAM13と、ユーザプログラムのデバッグ時に用いられるミニモニタ部20とを含んでいる。必要に応じて、SRAMやDRAM等の外部メモリ40が、マイクロコンピュータ10に接続される。
ユーザプログラムのデバッグ時には、マイクロコンピュータ10に、メインモニタ部51を含むデバッグツール50が接続され、さらに、デバッグツール50にホストコンピュータ60が接続される。ここで、ミニモニタ部20と、デバッグツール50と、ホストコンピュータ60とが、デバッグシステムを構成している。
ホストコンピュータ60においては、プログラムロード、GO、ステップ実行、メモリライト、メモリリード、内部レジスタライト、内部レジスタリード、ブレークポイント設定、ブレークポイント解除等のデバッグコマンドが用いられる。デバッグツール50のメインモニタ部51は、このようなデバッグコマンドを、例えば、GO、ライト、リード等のシンプルなプリミティブコマンドに変換するための処理を行う。これにより、ミニモニタ部20において、デバッグ処理を行うミニモニタプログラムの命令コードサイズを、格段に小さくすることができる。
図2は、本発明の第1の実施形態に係るマイクロコンピュータの詳細な構成を示す図である。図2に示すように、マイクロコンピュータ10は、CPU11、フラッシュメモリ12、RAM13、タイマー14、DMA(ダイレクトメモリアクセス)転送制御部15、シリアル入出力回路(SIO)16、USBインタフェース(I/F)17、外部メモリインタフェース(I/F)18、クロック生成部19、ミニモニタ部20、トレース部30を含んでいる。ここで、CPU11とミニモニタ部20とは、マクロセル10aを構成しており、それ以外の構成要素は、ユーザの希望により、任意に追加したり削除したりすることができる。
CPU11は、内部レジスタ11aを有している。内部レジスタ11aには、汎用レジスタや、スタックポインタレジスタや、積和結果データの上位及び下位レジスタ等が含まれている。
クロック生成部19は、マイクロコンピュータ10内で使用される各種のクロック信号を生成すると共に、ミニモニタ部20及びデバッグツール50において使用されるクロック信号BCLKを生成する。
ミニモニタ部20は、制御レジスタ21と、ミニモニタROM22と、シリアル入出力回路(SIO)23とを含んでいる。制御レジスタ21は、デバッグモードにおいて各種のデバッグ処理を制御するために用いられるレジスタであり、ステップ実行イネーブルビット、ブレークイネーブルビット、ブレークアドレスビット、トレースイネーブルビット等を有している。
ミニモニタROM22には、ミニモニタプログラムが格納されている。デバッグモードにおいて、CPU11が、ミニモニタプログラムに基づいて、制御レジスタ21の各ビットにデータをライトしたり、各ビットのデータをリードしたりすることにより、各種のデバッグ処理が実現される。ミニモニタプログラムは、GO、リード、ライト等のプリミティブなコマンドの処理のみをCPU11に実行させるので、ミニモニタROM22のメモリ容量を、例えば256バイト程度に抑えることができる。
シリアル入出力回路23は、デバッグツール50との間でデータを送受信するためのものである。シリアル入出力回路23とデバッグツール50との間は、送信データTXD及び受信データRXDを伝送するためのデータ送受信ラインによって接続されている。
トレース部30は、リアルタイムトレース機能を実現するためのものである。トレース部30とデバッグツール50との間は、CPU11の命令実行のステートを表す3ビットのデータDST[2:0]と、分岐先のPC(プログラムカウンタ)値を表す1ビットのデータDPCOとを伝送するための4本のラインによって接続されている。ここで、[2:0]は、ビット番号2〜0のデータを意味する。なお、本願においては、一般にならい、最下位ビットのビット番号を0とし、上位ビットに向かってビット番号をカウントする。
再び図1を参照すると、デバッグツール50は、メインモニタ部51を含み、デバッグの対象となるマイクロコンピュータ10、及び、デバッグ作業の操作端末であるホストコンピュータ60に接続されている。ユーザの操作に基づいて、ホストコンピュータ60が、プログラムロードやステップ実行等のデバッグコマンドを発行すると、メインモニタ部51が、これらのデバッグコマンドをプリミティブコマンドに変換するための処理を行う。メインモニタ部51が、プリミティブコマンドの実行を指示するデータをミニモニタ部20に送信すると、ミニモニタ部20は、指示されたプリミティブコマンドを実行するための処理を行う。
従来は、ミニモニタ部20内に、デバッグモード移行時にCPU11の内部レジスタ11aの内容が退避されるミニモニタRAMが設けられており、デバッグモードの終了後にユーザプログラムの実行を適正に再スタートできるようになっていた。しかしながら、ミニモニタRAMは、ビット単価の高いASICのゲートアレイによって構成されるので、チップコストの上昇や設計・製造の煩雑化を招いていた。そこで、本実施形態においては、図2に示すように、ミニモニタ部20内のミニモニタRAMを削除して、その機能をマイクロコンピュータ10内のRAM13又は外部メモリ40に持たせるようにしている。
ミニモニタRAMを有する従来のマイクロコンピュータに対応したデバッグツール50をそのまま使用できるようにするためには、本実施形態に係るマイクロコンピュータ10において、ミニモニタRAMのアドレス値を変換する必要がある。そのための手段としては、マイクロコンピュータ10又はマクロセル10aの複数(例えば25個)のピン(パッド又は端子)の設定によって、デバッグモードにおけるメモリのアドレス値を外部から指定できるようにする。即ち、複数のピンの接続状態に応じてそれらのピンに印加される電位に基づいて、デバッグモードにおけるメモリのアドレス値が指定される。さらに、多数のアドレス値が必要な場合には、第1のアドレス値Aをピン設定によって指定することにより、他のアドレス値を(A+1)、(A+2)、(A+3)、・・・のようにして求めれば良い。
従来のミニモニタRAMのアドレス値が入力された場合には、制御レジスタ21内のアドレスレジスタを参照する替わりに、ピン設定によって指定されたアドレス値を参照することにより、従来のミニモニタRAMのアドレス値をRAM13又は外部メモリ40の一部の記憶領域(ミニモニタ領域)のアドレス値に変換するように、ミニモニタROM22に格納されるミニモニタプログラムを変更しておく。
あるいは、HDL(ハードウェア・デスクリプション・ランゲージ)を用いてマイクロコンピュータ10の設計を行う際に、HDLのパラメータを変更して論理回路を変更することにより、デバッグモードにおけるメモリのアドレス値を変換しても良い。これにより、RAM13又は外部メモリ40のミニモニタ領域のアドレス値が、マイクロコンピュータの設計においてHDLのパラメータを用いて指定される。
あるいは、CPU11の内部レジスタ11aには、割り込み先のテーブルのアドレス値を格納するトラップテーブルベースレジスタ(TTBR)と呼ばれるレジスタが含まれているので、デバッグモードにおけるメモリのアドレス値をTTBRに格納しておき、その内容をCPU11が参照して取り込むように、ミニモニタプログラムの内容を変更しても良い。
図3の(A)は、従来のマイクロコンピュータにおけるデバッグモード時のメモリマップの例を示す図であり、図3の(B)は、本実施形態に係るマイクロコンピュータにおけるデバッグモード時のメモリマップの例を示す図である。この例においては、従来のミニモニタRAMの機能を、マイクロコンピュータ10内のRAM13(以下、「内部RAM」ともいう)の一部の記憶領域(ミニモニタ領域)に移している。
従来は、図3の(A)に示すように、データD1〜D3を格納するために、制御レジスタのアドレスと、ミニモニタRAMのアドレスと、ミニモニタROMのアドレスとが、メモリマップ上にそれぞれ割り付けられていた。これに対し、本実施形態においては、図3の(B)に示すように、データD1〜D3を格納するために、図2に示す制御レジスタ21のアドレスと、内部RAM13のミニモニタ領域のアドレスと、ミニモニタROM22のアドレスが、メモリマップ上にそれぞれ割り付けられている。
その結果、データD2を格納するための内部RAM13のミニモニタ領域が、データD4を格納するための内部RAM13の記憶領域と重複して使用されるおそれがあるので、デバッグ時にミニモニタ領域がユーザプログラムによって使用できないことを、スペックにおいて明確に規定しておく。さらに、本実施形態においては、ユーザプログラムにおいてミニモニタ領域のアドレスが指定されても、デバッグモードにおいてはミニモニタ領域に対してデータの書込みや読出しを行わないように、ミニモニタプログラムにおいてプロテクションをかけている。
一方、従来のミニモニタRAMの替わりに、図1に示す外部メモリ40を使用する場合には、データD2を格納するために、外部メモリ40の一部の記憶領域(ミニモニタ領域)が使用される。その場合には、データの書込み及び読出しが、図2に示す外部メモリインタフェース18を介して行われる。
次に、本実施形態におけるコマンド変換処理について説明する。
図4に、各種のデバッグコマンドをプリミティブなコマンドに変換する処理を模式的に示す。図4の(A)は、プログラムロードコマンドの変換を示している。図4の(A)に示すように、(ADD・・・、SUB・・・、AND・・・、OR・・・、XOR・・・、LD.W・・・)という12バイトのプログラムを80010h番地にロードするというデバッグコマンドは、ライト(80010h、ADD・・・、SUB・・・)と、ライト(80014h、AND・・・、OR・・・)と、ライト(80018h、XOR・・・、LD.W・・・)という3つのプリミティブなコマンドに変換される。ミニモニタプログラムが、これらのプリミティブなコマンドを実行することにより、プログラムロードコマンドが実現されたことになる。
図4の(B)は、ステップ実行コマンドの変換を示している。ステップ実行というデバッグコマンドは、図2に示す制御レジスタ21のステップ実行イネーブルビットへのライトコマンド(図3に示すメモリマップにおけるデータD1の所定のアドレスへのライトコマンド)と、GOコマンドという2つのプリミティブなコマンドに変換される。
図4の(C)は、内部レジスタリードコマンドの変換を示している。内部レジスタリードというデバッグコマンドは、図2に示す内部RAM13のミニモニタ領域(内部レジスタの内容の退避先)からのリードコマンド(図3の(B)に示すメモリマップにおけるデータD2のリードコマンド)というプリミティブなコマンドに変換される。また、内部レジスタライトコマンドは、内部RAM13のミニモニタ領域へのライトコマンドというプリミティブなコマンドに変換される。同様に、メモリリードコマンド、メモリライトコマンド等のデバッグコマンドも、プリミティブなコマンドに変換される。
一方、従来のミニモニタRAMの替わりに、図1に示す外部メモリ40を使用する場合には、内部レジスタリードというデバッグコマンドは、外部メモリ40からのリードコマンドに変換される。また、内部レジスタライトコマンドは、外部メモリ40へのライトコマンドというプリミティブなコマンドに変換される。
図4の(D)は、ブレークポイント設定コマンドの変換を示している。ブレークポイント設定というデバッグコマンドは、図2に示す制御レジスタ21のブレークイネーブルビット及びブレークアドレスビットへのライトコマンドというプリミティブなコマンドに変換される。
次に、本実施形態におけるリアルタイムトレース処理について説明する。
本実施形態においては、図2に示すCPU11の命令実行のステートを表す3ビットのデータDST[2:0]と、分岐先のプログラムカウンタ(PC)値を表す複数ビットシリアルのデータDPCOとを、トレース部30からデバッグツール50に送信し、デバッグツール50内のトレースメモリに蓄える。
以下に、DSTの例について説明する。DST「000」は、通常命令(分岐なし命令)の実行を表しており、CPU11が、アドレスの順番に命令を実行した状態であることが分る。DST「001」は、相対分岐命令の実行を表しており、CPU11が、プログラム中に明示的に記述されたアドレスに分岐する命令である相対分岐命令を実行した状態であることが分る。DST「010」は、絶対分岐命令の実行を表しており、CPU11が、プログラムの実行中にレジスタの値によって分岐先のアドレスが決まる命令である絶対分岐命令を実行した状態であることが分る。
デバッグツール50は、トレースメモリに蓄えられたデータと、ユーザプログラムのソースコードとに基づいて、トレースデータを合成する。これにより、マイクロコンピュータ10とデバッグツール50との間の接続ラインの本数を少なくしながら、リアルタイムトレース機能を実現することが可能となる。
次に、ミニモニタ部とメインモニタ部との間のデータの送受信について説明する。
マイクロコンピュータ10のミニモニタ部20とデバッグツール50のメインモニタ部51との間におけるデバッグデータの通信の方法としては、送信データTXD用のラインと受信データRXD用のラインとを別々に設けて、全2重で通信を行うことも考えられる。しかしながら、デバッグデータの通信のために2本のラインを使用すると、マイクロコンピュータ10のピン数が増えてしまい、コストアップを招くことになる。そこで、本実施形態においては、図2に示すように、マイクロコンピュータ10のミニモニタ部20とデバッグツール50のメインモニタ部51との間に設けた1本の双方向通信ラインを用いて、半2重の双方向通信を行うようにしている。
本実施形態においては、スレーブとなるミニモニタ部20が、マスタとなるメインモニタ部51からデータを受信したことを条件に、その受信データに対する処理を行い、その受信データに対する応答データをメインモニタ部51に送信する。即ち、メインモニタ部51がデータ(コマンド)をミニモニタ部20に送信すると、ウエイト状態となっていたミニモニタ部20がこれを受信し、受信したデータに対応する処理を行った後に、受信したデータに対応するデータ(リプライ)をメインモニタ部51に送信する。その後、ミニモニタ部20は、メインモニタ部51から再びデータを受信するまでウエイト状態となる。これにより、ミニモニタ部20とメインモニタ部51との間の通信ラインを1本にしながら、データを適正に送受信できるようになる。
次に、ミニモニタ部の役割りについて説明する。
図5は、ユーザプログラムとミニモニタプログラムにおける処理の流れを示す図である。図5に示すように、ユーザプログラムの実行中にブレークが発生すると、ミニモニタプログラムによる処理がスタートし、ユーザプログラム実行モードからデバッグモードに処理が移行する。CPU11(図2)がミニモニタプログラムに従って所定のコマンド処理を行い、その後、リターン命令を実行すると、デバッグモードからユーザプログラム実行モードに処理が戻る。
図6は、デバッグモードにおけるミニモニタプログラムによる処理を示すフローチャートである。デバッグモードに処理が移行すると、図2に示すCPU11が、ステップS1において、内部レジスタ11aの内容を内部RAM13のミニモニタ領域に退避させ、ステップS2において、ミニモニタプログラムにおいて使用する制御レジスタ21の設定処理を行う。
ステップS3において、CPU11が、デバッグツール50から受信した14バイトの受信データを受信バッファに書き込む。この14バイトの受信データは、1バイトのコマンド識別情報(ID)と、1バイトのデータサイズ情報と、4バイトのアドレスと、4バイトの第1のデータと、4バイトの第2のデータとによって構成されている。ステップS4において、CPU11が、受信バッファに書き込まれた14バイトの受信データにおける先頭の1バイト(コマンド識別情報)をチェックする。
ステップS5において、コマンド識別情報がリードコマンドを示すものであるか否かが判定され、コマンド識別情報がリードコマンドを示す場合には処理がステップS6に移行し、そうでない場合には処理がステップS9に移行する。CPU11は、ステップS6において、受信バッファからリードアドレスを取得し、ステップS7において、取得したリードアドレスからデータをリードし、リードされたデータを送信バッファにライトし、ステップS8において、送信バッファのデータをデバッグツール50に送信する。
ステップS9において、コマンド識別情報がライトコマンドを示すものであるか否かが判定され、コマンド識別情報がライトコマンドを示す場合には処理がステップS10に移行し、そうでない場合には処理がステップS12に移行する。CPU11は、ステップS10において、受信バッファからライトアドレスを取得し、ステップS11において、受信バッファからライトデータを取得し、ステップS10において取得されたライトアドレスにライトデータをライトする。
ステップS12において、コマンド識別情報が外部ルーチンジャンプコマンドを示すものであるか否かが判定され、コマンド識別情報が外部ルーチンジャンプコマンドを示す場合には処理がステップS13に移行し、そうでない場合には処理がステップS15に移行する。CPU11は、ステップS13において、受信バッファからルーチンアドレスを取得し、ステップS14において、外部ルーチンにジャンプした後、ミニモニタプログラムにリターンする。
ステップS15において、コマンド識別情報がGOコマンドを示すものであるか否かが判定され、コマンド識別情報がGOコマンドを示す場合には処理がステップS16に移行し、そうでない場合には処理がステップS18に移行する。CPU11は、ステップS16において、内部RAM13のミニモニタ領域に退避させたデータを内部レジスタ11aにリストアし、ステップS17において、ユーザプログラムにリターンしてデバッグモードから抜ける。
一方、コマンド識別情報が、リード、ライト、外部ルーチンジャンプ、GOコマンドのいずれでもない場合には、ステップS18において、処理が必要でないと判断し、ステップS19において、送信バッファにダミーのデータを書き込み、ステップS8において、送信バッファのデータをデバッグツール50に送信する。ステップS8の後、処理はステップS3に戻り、CPU11が、次に受信した受信データを受信バッファに書き込む。
次に、本発明の第2の実施形態について説明する。
図7は、本発明の第2の実施形態に係るマイクロコンピュータの構成を示す図である。図7の(A)に示すマイクロコンピュータにおいては、半導体基板(チップ)71に、プログラムを実行することによって各種の処理を行うCPU11と、ユーザプログラムを格納するフラッシュメモリ12と、ユーザプログラムを実行することによって作成されるデータを一時的に格納するRAM13と、ユーザプログラムのデバッグ時に用いられるミニモニタ部20とが形成されている。本実施形態においては、少なくともミニモニタ部20が、フィールド・プログラマブル・ゲートアレイ(FPGA)を用いて構成される。これにより、ミニモニタ部20と他の部分とのインタフェースをシンプルにすることができ、ミニモニタ部20を分離し易くなる。デバッグの必要がなくなった際には、図7の(A)に示すマイクロコンピュータからミニモニタ部20を削除して、図7の(B)に示すマイクロコンピュータとすることができる。
図7の(A)に示すミニモニタ部20の構成は図2に示すものと同様であるが、制御レジスタ21のアドレスを可変とし、それに対応して制御レジスタ21のアドレスデコーダを変更することにより、従来のデバッグツール50を用いたデバッグを可能としながら、回路構成の自由度を高めている。即ち、追加のタイマーやメモリをマイクロコンピュータ内に取り込む場合に、ミニモニタ部20内の制御レジスタ21のアドレス値を後にずらして、追加のタイマーやメモリのアドレス値をその前に挿入することが可能となる。
次に、本発明の第2の実施形態に係るマイクロコンピュータの製造方法について説明する。
本発明の第2の実施形態に係るマイクロコンピュータの製造方法によれば、試作段階において、図7の(A)に示すマイクロコンピュータを作成する。その後、図1に示すようなデバッグシステムを用いて、マイクロコンピュータにおいて動作するユーザプログラムのデバッグを行う。ユーザプログラムのデバッグが完了したら、量産段階において、ミニモニタ部20を含まない図7の(B)に示すマイクロコンピュータを作成する。これにより、量産段階においては、デバッグ回路分のコストを低減したマイクロコンピュータを提供することができる。
また、制御レジスタ21(図2)のアドレスを可変としておくことにより、追加のタイマーやメモリのアドレス値をミニモニタ部20内の制御レジスタ21のアドレス値の前に挿入できるので、ミニモニタ部20を削除したマイクロコンピュータにおいて、アドレス値の良好な連続性を確保することが可能となる。
図8は、本発明の第3の実施形態に係るマイクロコンピュータの構成を示す図である。図8に示すマイクロコンピュータにおいては、半導体基板(チップ)81に、プログラムを実行することによって各種の処理を行うCPU11と、ユーザプログラムを格納するフラッシュメモリ12と、ユーザプログラムを実行することによって作成されるデータを一時的に格納するRAM13とが形成されており、半導体基板(チップ)82に、ユーザプログラムのデバッグ時に用いられるミニモニタ部20が形成されている。チップ81に形成された回路とチップ82に形成された回路とは、インタフェースを介して電気的に接続されている。本実施形態においては、少なくともミニモニタ部20を、フィールド・プログラマブル・ゲートアレイによって構成する。これにより、ミニモニタ部20と他の部分とのインタフェースをシンプルにすることができ、ミニモニタ部20を分離し易くなる。デバッグの必要がなくなった際には、図8に示すマイクロコンピュータから、ミニモニタ部20を削除することができる。
図8に示すミニモニタ部20の構成は図2に示すものと同様であるが、制御レジスタ21のアドレスを可変とし、それに対応して制御レジスタ21のアドレスデコーダを変更することにより、従来のデバッグツール50を用いたデバッグを可能としながら、回路構成の自由度を高めている。即ち、追加のタイマーやメモリをマイクロコンピュータ内に取り込む場合に、ミニモニタ部20内の制御レジスタ21のアドレス値を後にずらして、追加のタイマーやメモリのアドレス値をその前に挿入することが可能となる。
次に、本発明の第3の実施形態に係るマイクロコンピュータの製造方法について説明する。
本発明の第3の実施形態に係るマイクロコンピュータの製造方法によれば、試作段階において、図8に示すチップ81とチップ82とを含むマイクロコンピュータを作成する。その後、図1に示すようなデバッグシステムを用いて、マイクロコンピュータにおいて動作するユーザプログラムのデバッグを行う。ユーザプログラムのデバッグが完了したら、量産段階において、図8に示すチップ81のみを含むマイクロコンピュータを作成する。これにより、量産段階においては、デバッグ回路分のコストを低減したマイクロコンピュータを提供することができる。
本実施形態においても、制御レジスタ21(図2)のアドレスを可変としておくことにより、追加のタイマーやメモリのアドレス値をミニモニタ部20内の制御レジスタ21のアドレス値の前に挿入できるので、ミニモニタ部20を削除したマイクロコンピュータにおいて、アドレス値の良好な連続性を確保することが可能となる。
本発明の第1の実施形態に係るマイクロコンピュータ等を示す図。 本発明の第1の実施形態に係るマイクロコンピュータの詳細な構成を示す図。 従来と本発明の第1の実施形態におけるメモリマップの例を示す図。 各種のデバッグコマンドをプリミティブなコマンドに変換する処理を示す図。 ユーザプログラムとミニモニタプログラムにおける処理の流れを示す図。 デバッグモードにおけるミニモニタプログラムの処理を示すフローチャート。 本発明の第2の実施形態に係るマイクロコンピュータの構成を示す図。 本発明の第3の実施形態に係るマイクロコンピュータの構成を示す図。
符号の説明
10 マイクロコンピュータ、 10a マクロセル、 11 CPU(中央処理装置)、 11a 内部レジスタ、 12 フラッシュメモリ、 13 RAM、 14 タイマー、 15 DMA(ダイレクトメモリアクセス)転送制御部、 16 シリアル入出力回路(SIO)、 17 USBインタフェース(I/F)、 18 外部メモリインタフェース(I/F)、19 クロック生成部、 20 ミニモニタ部、 21 制御レジスタ、 22 ミニモニタROM、 23 シリアル入出力回路(SIO)、 30 トレース部、 40 外部メモリ、 50 デバッグツール、 60 ホストコンピュータ、 71、72、81、82 半導体基板(チップ)

Claims (8)

  1. オンチップデバッグ機能を有するマイクロコンピュータであって、
    データを格納する内部レジスタを含み、プログラムに従ってコマンドを実行する中央処理装置と、
    ユーザが作成した第1のプログラムを格納する第1のメモリと、
    前記中央処理装置が前記第1のプログラムを実行することによって作成されるデータを一時的に格納する第2のメモリと、
    デバッグのための第2のプログラムを格納し、デバッグの際に、前記内部レジスタに書き込まれているデータを前記第2のメモリの一部の記憶領域に退避させた後に、外部のデバッグツールから受信したデータに基づいて前記中央処理装置にコマンドを実行させるモニタ部と、
    を具備するマイクロコンピュータ。
  2. オンチップデバッグ機能を有するマイクロコンピュータであって、
    データを格納する内部レジスタを含み、プログラムに従ってコマンドを実行する中央処理装置と、
    ユーザが作成した第1のプログラムを格納するメモリと、
    外部のメモリにアクセスするためのインタフェースと、
    デバッグのための第2のプログラムを格納し、デバッグの際に、前記内部レジスタに書き込まれているデータを前記外部のメモリの一部の記憶領域に退避させた後に、外部のデバッグツールから受信したデータに基づいて前記中央処理装置にコマンドを実行させるモニタ部と、
    を具備するマイクロコンピュータ。
  3. 前記第2のメモリ又は前記外部のメモリの前記一部の記憶領域のアドレス値が、前記マイクロコンピュータのピンの接続状態、又は、前記マイクロコンピュータの少なくとも一部が含まれているマクロセルのピンの接続状態に基づいて指定される、請求項1又は2記載のマイクロコンピュータ。
  4. 前記第2のメモリ又は前記外部のメモリの前記一部の記憶領域のアドレス値が、前記マイクロコンピュータの設計においてハードウェア・デスクリプション・ランゲージのパラメータを用いて指定される、請求項1又は2記載のマイクロコンピュータ。
  5. 前記第2のメモリ又は前記外部のメモリの前記一部の記憶領域のアドレス値が、前記内部レジスタに含まれている、割り込み先のアドレス値を格納するレジスタを参照することにより指定される、請求項1又は2記載のマイクロコンピュータ。
  6. 前記第2のメモリ又は前記外部のメモリの前記一部の記憶領域のアドレスが、前記第1のプログラムを実行することによってアクセスされないようにプロテクトされている、請求項1〜5のいずれか1項記載のマイクロコンピュータ。
  7. マイクロコンピュータの製造方法であって、
    データを格納する内部レジスタを含み、プログラムに従ってコマンドを実行する中央処理装置と、ユーザが作成した第1のプログラムを格納する第1のメモリと、前記中央処理装置が前記第1のプログラムを実行することによって作成されるデータを一時的に格納する第2のメモリと、デバッグのための第2のプログラムを格納し、外部のデバッグツールから受信したデータに基づいて前記中央処理装置にコマンドを実行させるモニタ部とを含む第1のマイクロコンピュータを作成するステップと、
    前記内部レジスタに書き込まれているデータを前記第2のメモリの一部の記憶領域に退避させた後に、前記外部のデバッグツールから受信したデータに基づいて前記中央処理装置にコマンドを実行させることにより、前記第1のマイクロコンピュータのデバッグを行うステップと、
    前記第1のマイクロコンピュータから前記モニタ部を削除した第2のマイクロコンピュータを作成するステップと、
    を具備する製造方法。
  8. マイクロコンピュータの製造方法であって、
    データを格納する内部レジスタを含み、プログラムに従ってコマンドを実行する中央処理装置と、ユーザが作成した第1のプログラムを格納するメモリと、外部のメモリにアクセスするためのインタフェースと、デバッグのための第2のプログラムを格納し、外部のデバッグツールから受信したデータに基づいて前記中央処理装置にコマンドを実行させるモニタ部とを含む第1のマイクロコンピュータを作成するステップと、
    前記内部レジスタに書き込まれているデータを前記外部のメモリの一部の記憶領域に退避させた後に、前記外部のデバッグツールから受信したデータに基づいて前記中央処理装置にコマンドを実行させることにより、前記第1のマイクロコンピュータのデバッグを行うステップと、
    前記第1のマイクロコンピュータから前記モニタ部を削除した第2のマイクロコンピュータを作成するステップと、
    を具備する製造方法。
JP2004318814A 2004-11-02 2004-11-02 マイクロコンピュータ及びマイクロコンピュータの製造方法 Withdrawn JP2006133836A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004318814A JP2006133836A (ja) 2004-11-02 2004-11-02 マイクロコンピュータ及びマイクロコンピュータの製造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004318814A JP2006133836A (ja) 2004-11-02 2004-11-02 マイクロコンピュータ及びマイクロコンピュータの製造方法

Publications (1)

Publication Number Publication Date
JP2006133836A true JP2006133836A (ja) 2006-05-25

Family

ID=36727371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004318814A Withdrawn JP2006133836A (ja) 2004-11-02 2004-11-02 マイクロコンピュータ及びマイクロコンピュータの製造方法

Country Status (1)

Country Link
JP (1) JP2006133836A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694704A (zh) * 2019-03-12 2020-09-22 杭州海康威视数字技术股份有限公司 调试信息输出方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694704A (zh) * 2019-03-12 2020-09-22 杭州海康威视数字技术股份有限公司 调试信息输出方法、装置、电子设备及存储介质
CN111694704B (zh) * 2019-03-12 2023-10-10 杭州海康威视数字技术股份有限公司 调试信息输出方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US7401257B2 (en) Microcomputer and method for developing system program
CN111414325B (zh) 一种Avalon总线转Axi4总线的方法
CN108052750B (zh) 基于fpga的spi flash控制器及其设计方法
US9935637B2 (en) Systems and methods for FPGA development and operation
US6708289B1 (en) Microcomputer, electronic equipment and debugging system
US7437616B2 (en) Dual CPU on-chip-debug low-gate-count architecture with real-time-data tracing
US9367488B1 (en) System on a chip (SoC) RHBD structured ASIC
US20030191624A1 (en) Debug function built-in type microcomputer
KR100801759B1 (ko) 슬레이브의 디버깅 방법 및 시스템
JP2005070950A (ja) プログラム処理装置
CN115454881B (zh) Risc-v架构的调试系统及调试方法
JP2008293076A (ja) エラー判定プログラム、エラー判定方法、及び、電子機器
US6598176B1 (en) Apparatus for estimating microcontroller and method thereof
JP2006133836A (ja) マイクロコンピュータ及びマイクロコンピュータの製造方法
JP2006331391A (ja) データ処理装置及びデータ処理方法
JP2020140380A (ja) 半導体装置及びデバッグシステム
KR20000060737A (ko) 프로세서와 재설정가능 칩을 사용한 집적회로 에뮬레이터
JP2004013289A (ja) マイクロコントローラのオンチップデバッグ方法
US11841782B2 (en) Semiconductor device and debugging system
JP4324149B2 (ja) エミュレータ及びそれを用いた開発支援システム
JP5036448B2 (ja) インサーキットエミュレータにおけるfifoメモリ読出方法およびfifoメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータ
JP3913931B2 (ja) エミュレーションプローブボード及びデバッグシステム
US6854047B2 (en) Data storage device and data transmission system using the same
JP2006331147A (ja) マイクロコンピュータ、並びに、デバッグシステム及び方法
JP2006318172A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070403

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090901

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091029