JP2011159126A - 集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法 - Google Patents
集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法 Download PDFInfo
- Publication number
- JP2011159126A JP2011159126A JP2010020577A JP2010020577A JP2011159126A JP 2011159126 A JP2011159126 A JP 2011159126A JP 2010020577 A JP2010020577 A JP 2010020577A JP 2010020577 A JP2010020577 A JP 2010020577A JP 2011159126 A JP2011159126 A JP 2011159126A
- Authority
- JP
- Japan
- Prior art keywords
- debug
- mode
- terminal
- user
- chip
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】全端子をエミュレーションすることができる集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法を提供する。
【解決手段】デバッグシステムは、オンチップデバックが可能なマイコン400を搭載したターゲットシステム300とオンチップデバッグエミュレータ200とを有する。マイコン400は、CPU411と、デバッグモード時にデバッグ端子として機能すると共に、ユーザモード時にはユーザ端子として機能するDEBUG/USER端子407と、デバッグモードの際にデバック機能を制御するデバッグ機能制御部402と、ユーザモードの際にポート機能を制御する汎用出力ポート401と、モードに応じて端子407をデバッグ機能制御部402又は汎用出力ポート401のいずれかに接続するセレクタ403とを有する。CPU411は、現在のモードの検知結果に応じてセレクタを制御する。
【選択図】図1
【解決手段】デバッグシステムは、オンチップデバックが可能なマイコン400を搭載したターゲットシステム300とオンチップデバッグエミュレータ200とを有する。マイコン400は、CPU411と、デバッグモード時にデバッグ端子として機能すると共に、ユーザモード時にはユーザ端子として機能するDEBUG/USER端子407と、デバッグモードの際にデバック機能を制御するデバッグ機能制御部402と、ユーザモードの際にポート機能を制御する汎用出力ポート401と、モードに応じて端子407をデバッグ機能制御部402又は汎用出力ポート401のいずれかに接続するセレクタ403とを有する。CPU411は、現在のモードの検知結果に応じてセレクタを制御する。
【選択図】図1
Description
本発明は、デバッグ機能を有するマイコンを搭載した集積回路装置及びその制御方法、並びに、当該集積回路装置をターゲットデバイスとし、オンチップデバッグエミュレータと接続してデバッグを行うデバッグシステム及びその制御方法に関する。
従来、エンドユーザにとって不要な端子を削減することを目的としたデバッグシステムが特許文献1に開示されている。この特許文献1に記載のデバッグシステムは、マイクロコンピュータとデバッグツールとを有する。マイクロコンピュータは、CPUと、固定値入力用端子と、リセット信号が第1のレベルの時に固定値入力用端子から入力された信号を受け取って固定値を保持する固定値保持部と、リセット信号が第2のレベルの時に固定値が変化しないように制御する制御部とを有する。固定値入力用端子は、リセット信号が第1のレベルの時には固定値の入力のために使用され、リセット信号が第2のレベルの時にはデバッグモジュールの通信のために使用される。デバッグモジュールは、リセット信号が第2のレベルの時に、固定値入力用端子を介して外部のデバッグツールと通信を行う。
マイコンのオンチップデバッグエミュレーションは、ユーザのターゲットシステムに搭載されたマイコンに、通信手段を設ける必要がある。すなわち、ターゲットシステムにオンチップデバッグエミュレータとのデバッグ通信端子、起動時のモード設定端子、マイコン内部のデバッグ制御回路、デバッグのためのプロクラム格納手段などを設け、オンチップデバッグエミュレータと通信させる必要がある。この通信を行うためには、少なくともモード設定端子1本と、デバッグ通信端子1本が必要となる。これをモード設定専用、デバッグ通信専用の専用端子とすると、ユーザモード時にユーザ端子として使用できないという問題点がある。
マイコンの種類に応じては、電源及びGND端子以外のユーザ端子が数ピンしかないものがあり、そのようなマイコンにおいてもオンチップデバッグを実施するために、上記のような専用端子を設けることは困難な場合がある。
特許文献1に記載の技術は、リセット時のモード設定のための端子をその端子入力をリセット後も保持し、リセットが解除されたならば端子モードがデバッグ専用端子に切り替わるものである。これにより、デバッグ専用端子を限られた数内に削減することは可能であるものの、全端子をユーザが使用可能な、すなわち、デバッグ時にエミュレーション可能な端子とすることはできない、という問題点がある。すなわち、モード設定端子とデバッグ通信端子の兼用を可能としても、デバッグ通信用の端子と排他使用となる端子が依然存在することになり、全ての端子をユーザ端子とし、エミュレーションすることはできないという問題点がある。
本発明にかかる集積回路装置は、オンチップデバックが可能な集積回路装置であって、CPU(central processing unit)と、デバッグモード時にオンチップデバッグエミュレータとの間で信号の入出力を行うデバッグ端子として機能すると共に、ユーザモード時にはユーザ端子として機能する兼用端子と、前記デバッグモードの際にデバック機能を制御するデバッグ機能制御部と、前記ユーザモードの際にポート機能を制御するポート機能制御部と、モードに応じて前記兼用端子を前記デバッグ機能制御部又はポート機能制御部のいずれかに接続するモード切替部とを有し、前記CPUは、現在のモードの検知結果に応じて前記モード切替部を制御するものである。
本発明においては、デバッグモード時にオンチップデバッグエミュレータとの間で信号の入出力を行うデバッグ端子として機能すると共に、ユーザモード時にはユーザ端子として機能する兼用端子と、モード切替部により切り換える。このことにより、デバッグモード時にはデバッグ通信用に使用しつつ、ユーザモード時にはユーザ端子として使用することができ、全端子のエミュレーションを可能とする。
なお、本発明にかかる集積回路装置は、マイコン単体は勿論、マイコンとデバイスのターゲットシステムを含むものである。
本発明にかかる集積回路装置の制御方法は、デバッグモードの際にデバック機能を制御するデバッグ機能制御部と、ユーザモードの際にポート機能を制御するポート機能制御部とを有し、オンチップデバックが可能な集積回路装置の制御方法であって、ユーザモードとデバッグモードの切り替わりを検知し、前記ユーザモード時には、兼用端子をユーザ端子とし、前記ポート機能制御部との間で信号の入出力をさせ、前記デバッグモード時には、前記兼用端子をデバッグ端子とし、オンチップエミュレータと通信できるよう、前記デバッグ機能制御部との間で信号を入出力させるものである。
本発明にかかるデバッグシステムは、CPU(central processing unit)を内蔵し、オンチップデバックが可能なマイコンを搭載したターゲットシステムと、ホストコンピュータと前記ターゲットシステムとの間に接続され前記マイコンと前記ホストコンピュータとの通信を可能にするオンチップデバッグエミュレータと、を備え、前記マイコンは、前記CPU(central processing unit)と、デバッグモード時にオンチップデバッグエミュレータとの間で信号の入出力を行うデバッグ端子として機能すると共に、ユーザモード時にはユーザ端子として機能する兼用端子と、前記デバッグモードの際にデバック機能を制御するデバッグ機能制御部と、前記ユーザモードの際にポート機能を制御するポート機能制御部と、モードに応じて前記兼用端子を前記デバッグ機能制御部又はポート機能制御部のいずれかに接続するモード切替部とを有し、前記CPUは、現在のモードの検知結果に応じて前記モード切替部を制御するものである。
本発明にかかるデバッグシステムの制御方法は、CPU(central processing unit)を内蔵し、オンチップデバックが可能なマイコンを搭載したターゲットシステムと、ホストコンピュータと前記ターゲットシステムとの間に接続され前記マイコンと前記ホストコンピュータとの通信を可能にするオンチップデバッグエミュレータと、を備えたデバッグシステムの制御方法であって、前記ターゲットシステムは、ユーザモードとデバッグモードの切り替わりを検知し、前記ユーザモード時には、兼用端子をユーザ端子とし、前記ポート機能制御部との間で信号の入出力をさせ、前記デバッグモード時には、前記兼用端子をデバッグ端子とし、オンチップエミュレータと通信できるよう、前記デバッグ機能制御部との間で信号を入出力させ、前記オンチップデバッグエミュレータは、前記兼用端子のエミュレーションを実行するものである。
本発明によれば、全端子をエミュレーションすることができる集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法を提供することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、マイコン自身がデバッグモジュールを搭載することで、オンチップデバッグを可能としたデバッグシステムに適用したものである。本実施の形態においては、オンチップデバッグモード時に、エミュレータ通信用端子と排他使用となるポート機能のためのユーザ端子をエミュレーション可能とする。すなわち、従来不可能であった、全端子をユーザ端子として使用可能とするものである。
本発明の実施の形態1.
先ず、本発明の実施の形態1について説明する。図1は、本発明の実施の形態1のデバッグシステムを示すブロック図である。図1に示すように、本実施の形態にかかるデバッグシステムは、CPU(central processing unit)411を内蔵し、オンチップデバックが可能なマイコンを搭載したターゲットシステム300と、ホストPC100とターゲットシステム300との間に接続されマイコン400とホストPCとの通信を可能にするオンチップデバッグエミュレータ200と、を備える。
先ず、本発明の実施の形態1について説明する。図1は、本発明の実施の形態1のデバッグシステムを示すブロック図である。図1に示すように、本実施の形態にかかるデバッグシステムは、CPU(central processing unit)411を内蔵し、オンチップデバックが可能なマイコンを搭載したターゲットシステム300と、ホストPC100とターゲットシステム300との間に接続されマイコン400とホストPCとの通信を可能にするオンチップデバッグエミュレータ200と、を備える。
ここで、マイコン400は、DEBUG/USER端子407、汎用出力ポート401、及びデバッグ機能制御部402、セレクタ403を有する。DEBUG/USER端子407は、デバッグモード時にオンチップデバッグエミュレータとの間で信号の入出力を行うデバッグ端子として機能すると共に、ユーザモード時にはユーザ端子として機能する兼用端子である。デバッグ機能制御部402は、デバッグモードの際にデバック機能を制御する。汎用出力ポート401は、ユーザモードの際にポート機能を制御するポート機能制御部として機能する。また、セレクタ403は、モードに応じてDEBUG/USER端子407を汎用出力ポート401又はデバッグ機能制御部402のいずれかに接続するモード切替部として機能する。CPU411は、RUNコマンド/BREAKを検知し、CPU411がデバッグモード制御部409からセレクタ403に対しDEBUG/USER選択信号410を送信させることで、DEBUG/USER端子407のモードを切替える。
以下、本実施の形態について、詳細に説明する。ホストPC100は、ホストコネクタ203を使用して通信ケーブル101により、オンチップデバッグエミュレータ200と接続される。オンチップデバッグエミュレータ200は、ホスト通信制御部201及びデバッグ動作制御部202を有する。ホスト通信制御部201は、ホストPC100から送信されたコマンドを受信する。デバッグ動作制御部202は、コマンドを解釈し、その結果に基づき指定の動作を実行するため、ターゲットシステム300に搭載されたマイコン400と通信する。
オンチップデバッグエミュレータ200は、エミュレータ通信端子(エミュレータ側)204を有し、ターゲットシステム300は、エミュレータ通信端子(ターゲット側)301を有している。これらの端子には、ターゲットケーブル600が接続されている。
デバッグ動作のための通信は、このターゲットケーブル600を介して行われる。エミュレータ通信端子(ターゲット側)301は、DEBUG/USER端子407と接続され、DEBUG/USER端子407は、マイコン400に接続される。これらを使用して、マイコン400とデバッグ動作制御部202とが通信する。
DEBUG/USER端子407は、マイコン400のパワーオンリセット後に決定される動作モードに応じ、その機能を切り替えることができる機能端子である。マイコン400は、エミュレータを接続してプログラムデバッグを行うためのデバッグモードと、デバッグを行わないユーザモードの2つを有する。デバッグモードにおいては、DEBUG/USER端子407は、デバッグ用の通信端子として機能する。この場合、DEBUG/USER端子407は、オンチップデバッグエミュレータ200と通信を行う。また、ユーザモードにおいては、ユーザに開示された機能のみで動作する。
本実施の形態においては、マイコン400がパワーオンリセット解除後にデバッグ機能を使用するか否かを、オプションバイト機能を用いて行う。なお、ここでは、説明の明確化のため、ユーザモードの際は、ユーザ端子は出力ポート端子として機能するものとする。
ターゲットシステム300には、マイコン400の他にデバイス500が搭載されており、DEBUG/USER端子407が、デバイス500に接続されるユーザ端子501にも接続される。マイコン400の内部のプログラム動作に応じてDEBUG/USER端子407の端子レベルがユーザ端子501を介してデバイス500にも印加される。
ターゲットシステム300には、マイコン400の他にデバイス500が搭載されており、DEBUG/USER端子407が、デバイス500に接続されるユーザ端子501にも接続される。マイコン400の内部のプログラム動作に応じてDEBUG/USER端子407の端子レベルがユーザ端子501を介してデバイス500にも印加される。
DEBUG/USER端子407のもう1つの機能は、デバッグ通信機能である。オンチップデバッグエミュレータ200から送信されたコマンドは、DEBUG/USER端子407を介してマイコン400のデバッグ機能制御部402と通信を行い、マイコン400はそのコマンドに応じた所定の動作を実行する。
例えば、マイコン内部のレジスタ情報を収集してオンチップデバッグエミュレータ200に送出したり、マイコン400に内蔵された不揮発性メモリ412にプログラムをロードしたり、又は任意のアドレスからユーザプログラムを実行させる、などの動作があり、これらの動作を行う際にはDEBUG/USER端子407はデバッグ通信モード端子として機能する。
従来、オンチップデバッグエミュレータ200からマイコン400をデバッグ通信で制御し、エミュレーションを行う際には、いかなる場合にもデバッグ通信端子が最低1本必要であった。これに対し、本実施の形態においては、このデバッグ通信端子をユーザプログラム実行時に限り、ユーザ端子すなわち出力ポート端子として機能させるための手段をマイコン400内部に有し、オンチップデバッグエミュレータ200との連携により、従来のデバッグ作業となんら遜色なくユーザプログラムのデバッグを可能とするものである。これによりユーザ開示の端子機能全てについて外部回路に特別な配慮が必要なく、エミュレーションが可能となる。
次に、オプションバイトについて説明する。特許文献1に記載されている初期動作モードの設定方法は、パワーオンリセット解除の際の該当端子レベルによりリセット解除後の動作モードを選択するという方法である。この方法における端子レベルの設定の代替手段がオプションバイト機能である。具体的には、端子レベルの替わりにフラッシュROM(Read Only Memory)の特定アドレスのビット値に意味を持たせ、リセット解除後にマイコン内部の裏ファームウエアが当該アドレスを読み込み、その値に従いマイクロコンピュータの端子状態や、初期動作モードを決定する。図2は、オンチップデバッグに関するオプションバイトの一例を示す図である。オプションバイトの情報自体は、フラッシュROMプログラミングの際に事前に書き込んでおくのが通常である。
図2に示すように、例えばアドレス000C3Hに8ビットのデータからなるオプションバイトを記載する。オプションバイトの最上位ビット(OCDENSET)及び最下位ビット(OCDERSD)に、モードに応じた値を設定する。本例においては、例えばモード0として、最上位ビット及び最下位ビットをそれぞれ00と設定する。これによりオンチップデバッグ動作が禁止される。リセット時にはユーザモードで起動する。すなわち、DEBUG/USER端子407端子は、リセット時にポート端子モードで起動する。
また、モード1では01が設定され、オプションバイトの設定が禁止される。さらに、モード2では、10が設定され、オンチップデバッグ動作が許可される。リセット時には、オンチップデバッグモードで起動する。すなわちDEBUG/USER端子407は、リセット時にデバッグ端子モードで起動する。セキュリティ動作は有効となる。セキュリティ動作有効時には、セキュリティ用IDコード認証を何度失敗しても、内蔵フラッシュ・メモリを消去せず、セキュリティ動作無効時には、セキュリティ用IDコード認証を失敗した場合、内蔵フラッシュ・メモリの全領域を消去する。すなわち、セキュリティ用IDコードの認証を失敗した場合において、マイコン内部に組み込まれたファームウエアがOCDENSET、OCDERSDを参照して、フラッシュ・メモリを全消去するか否かを判断する。
モード3では、11が設定され、モード2と同様、オンチップデバッグ動作が許可される。リセット時には、オンチップデバッグモードで起動する。すなわちDEBUG/USER端子407は、リセット時にデバッグ端子モードで起動する。ただし、セキュリティ動作は無効となる。
このような設定により、オンチップデバッグ機能を使用するためには、事前に書き込み器によりモード2あるいはモード3の設置値を不揮発性メモリのオプションバイトに該当するアドレスに書き込んでおく必要がある。以下の説明においては、このオプションバイトの設定が、オンチップデバッグが有効である設定、すなわち、上記の例では、モード2又はモード3の設定になっているものとして説明する。また、DEBUG/USER端子407においては、通常の初期状態はユーザモードであるとする。
図3は、ターゲットシステム300の詳細を示す図である。図3に示すように、ターゲットシステム300には、マイコン400及びデバイス500が搭載されている。マイコン400は、DEBUG/USER端子407を使用して信号の入出力を行う。デバイス500は、ユーザ端子501を使用して信号の入出力を行う。そして、本実施の形態においては、DEBUG/USER端子407が、ユーザ端子501とプリントパタンにて接続されている。また、DEBUG/USER端子407は、エミュレータ通信端子(ターゲット側)301を介してオンチップデバッグエミュレータ200に接続される。
そして、デバッグモード制御部409が出力するDEBUG/USER選択信号410により、セレクタ403が切り替わり、DEBUG/USER端子407がUSER(汎用出力ポート)端子として動作するか、デバッグ通信用の端子として動作するかが決定される。すなわち、DEBUG/USER端子407は、モードに応じて汎用出力ポート401又はデバッグ機能制御部402に、セレクタ403により選択的に接続される。
デバッグ機能制御部402は、デバッグ専用シリアル通信機能部405及びデバッグモード制御部409を有する。デバッグ専用シリアル通信機能部405はユーザには開示されない機能であり、デバッグモード下でのみ動作する通信機能ブロックである。このデバッグ専用シリアル通信機能部405は、メモリ412に格納されたデバッグモニタプログラム406に従い、オンチップデバッグエミュレータ200との通信を行う。デバッグモードすなわちデバッグモニタプログラム動作中は、ユーザプログラムが停止している状態であり、本モードの際は、DEBUG/USER選択信号410により、デバッグ専用シリアル通信機能部405の入出力信号をDEBUG/USER端子407に入出力してエミュレータ200との通信を行う。
CPU411は、デバッグモニタプログラム406に従い、具体的には、次のように動作する。オンチップデバッグエミュレータ200から受信したコマンド及びデータは、デバッグ専用シリアル通信制御部405によりCPU411内のRAM(不図示)に保存される。コマンドは定期的にCPU411によりデコードされる。コマンドがレジスタ表示コマンドであれば、CPU411Uはデバッグモニタプログラム406のレジスタ情報収集ルーチンを実行する。その情報は、シリアル通信制御部405を介してオンチップデバッグエミュレータ200に送信される。
CPU411が受信したコマンドがユーザプログラム実行コマンド(以下、RUNコマンドともいう。)であれば、デバッグモニタプログラム406のRUNコマンドルーチンを実行する。具体的には、CPU411のプログラムカウンタにユーザプログラム実行の先頭アドレスをセットし、デバッグモニタプログラム406からユーザプログラム実行状態に遷移する。この遷移は、デバッグモニタプログラム406の特権割込み状態からの復帰という形で実行される。
ユーザモードに遷移すると、DEBUG/USER選択信号410はユーザ端子側に遷移し、マイコン400内部の汎用出力ポート401のレベルをDEBUG/USER端子407より出力する。すなわち、ユーザプログラム実行を開始すると、CPU411はデバッグモード制御部409に対し状態遷移を通知する。例えば、CPU411からデバッグモード制御部409へ接続されている信号は、LOW=デバッグモード、HI=ユーザモードというように変化する。これにより、DEBUG/USER選択信号410が変化し、セレクタ403により、DEBUG/USER端子407の機能が切り替えられる。以上により、ユーザプログラム実行中に限り、デバッグ通信専用端子(デバッグモード時のDEBUG/USER端子407)がユーザ端子(ユーザモード時のDEBUG/USER端子407)をエミュレーションする。
次に、マイコンリセットからの典型的な動作状態遷移について説明する。図4は、そのタイミングチャートを示す図である。CPU411は、モード1からモード5まで遷移する。先ず、モード1において、CPUはリセットされる。次に、CPU411は、モード2に遷移し、ブートプログラムが実行され、初期設定が行われる。このときCPU411は、オプションバイトを読み込み、デバッグ機能の有効又は無効が設定される。ここでは、デバッグ機能が有効に設定される場合について説明する。
モード1では、DEBUG/USER端子407は、デバッグ通信端子として機能する。オンチップデバッグエミュレータ200は、デバッグ通信状態となり、マイコン400からの初期化完了の応答を待つ。
次に、初期化が終了すると、CPU411はモード3に遷移し、デバッグ通信モードとなる。CPU411は、オンチップデバッグエミュレータ200からのコマンド待ち、レジスタのリード/ライト、メモリダンプ、プログラムのロード等が実行される。ユーザプログラムの実行(RUNコマンドの実行)でモード4のユーザモード(RUNモード)へ遷移する。
ユーザモードでは、CPU411は、RUNコマンドを実行する(ユーザプログラムを実行する)DEBUG/USER端子407は、このときユーザ端子として機能する。オンチップデバッグエミュレータ200は、マイコン400からのブレーク情報待ちとなる。そして、このユーザモードにおいて、事前に設定した諸条件によりブレークが発生したら、再びマイコン400のCPU動作状態はモード5のデバッグ通信モードに戻る。デバッグ通信モードでは、DEBUG/USER端子407は、再びデバッグ通信端子として機能する。オンチップデバッグエミュレータ200は、マイコン400へコマンドを送信するなどのデバッグ通信を行う。
なお、本実施の形態において、デバイス500に信号の入出力を行うユーザ端子501は、物理的にマイコン400への信号の入出力を行うDEBUG/USER端子407にワーヤードされている。このため、デバッグ通信モードの際も、DEBUG/USER端子407の端子レベルの変化が、入力信号として、あるいはハイインピーダンス状態になってユーザ端子501に伝達されるが、デバッグ者が了解していればなんらデバッグ作業の支障となるものではない。
本実施の形態においては、DEBUG/USER端子407は、デバッグモードの際にはデバッグ機能制御部402とデバッグ動作制御部202との通信を行わせるデバッグ端子として機能し、ユーザモードの際にはデバイス500と汎用出力ポート401との通信を行わせるユーザ端子として機能するよう、マイコン400のセレクタ403によりDEBUG/USER端子407の機能を切り替える。これにより、従来デバッグ専用として使用されるDEBUG/USER端子407をユーザモードにおいても使用可能とすることで、当該DEBUG/USER端子407のエミュレーションを可能にすることができる。
本発明の実施の形態2.
上述の本実施の形態においては、DEBUG/USER端子407がデバイス500のユーザ端子501にワイヤードされているため、デバッグ通信の動作がそのままデバイス500に伝達され、デバッグ通信中に限っては通常の動作と異なる動作になるという問題点があった。この問題点は、デバッグ者がデバッグシステムとして上記の動作を認識していれば特に問題がない場合が多いが、ユーザ端子501の端子レベルにより内部回路の動作だけでなくシステム全体の動作の等価性が維持できない場合もある。このような問題点を改善する本発明の実施の形態2について説明する。
上述の本実施の形態においては、DEBUG/USER端子407がデバイス500のユーザ端子501にワイヤードされているため、デバッグ通信の動作がそのままデバイス500に伝達され、デバッグ通信中に限っては通常の動作と異なる動作になるという問題点があった。この問題点は、デバッグ者がデバッグシステムとして上記の動作を認識していれば特に問題がない場合が多いが、ユーザ端子501の端子レベルにより内部回路の動作だけでなくシステム全体の動作の等価性が維持できない場合もある。このような問題点を改善する本発明の実施の形態2について説明する。
図5は、本発明の実施の形態2にかかるデバッグシステムを示すブロック図である。なお、図5及び後述する図6に示す本実施の形態において、図1に示す実施の形態1と同一の構成要素には同一の符号を付しその詳細な説明を省略する。
図5に示すように、ホストPC100は、通信ケーブル101にてオンチップデバッグエミュレータ200のホストコネクタ203に接続されている。
オンチップデバッグエミュレータ200は、ホスト通信制御部201及びデバッグ動作制御部202を有し、上述の実施の形態1と同様、ホストPC100から送信されてきたコマンドを解釈し、実行する。
エミュレータ200とターゲットシステム300との通信は、ターゲットケーブル600を介して行われる。ターゲットケーブル600のオンチップデバッグエミュレータ200側は、エミュレータ通信端子(エミュレータ側)204と接続され、ターゲットシステム300側は、エミュレータ通信端子(ターゲット側)301と接続される。エミュレータ通信端子(ターゲット側)301は、DEBUG/USER端子407と接続され、これを経由しオンチップデバッグエミュレータ200のデバッグ動作制御部202と、ターゲットシステム300のマイコン400とが通信する。
DEBUG/USER端子407は、実施の形態1と異なり、ユーザ端子501に接続されておらず、エミュレータ通信端子(ターゲット側)301とのみ接続される。ユーザ端子501は、ユーザ信号通信端子(ターゲット側)302と接続され、ユーザ信号通信端子(ターゲット側)302は、オンチップデバッグエミュレータ200のユーザ信号通信端子(エミュレータ側)210と接続されている。
また、本実施の形態におけるオンチップデバッグエミュレータ200は、実施の形態1と異なり、DEBUG/USER端子407をエミュレーションするユーザ端子エミュレーション部208をさらに有する。このユーザ端子エミュレーション部208は、DEBUG/USER端子407とユーザ端子501との接続を制御する。
具体的には、ユーザ端子エミュレーション部208は、デバッグモード直前のDEBUG/USER端子407の出力信号値を保持する出力信号値保持回路206、出力信号値保持回路206の出力値をユーザ端子501に出力するよう制御する端子入出力制御回路205、3ステートバッファ207、及びデバッグモード時にオンしてDEBUG/USER端子407とユーザ端子501とを接続するリレースイッチ209を有する。
リレースイッチ209は、ユーザプログラム実行中に、デバイス500のユーザ端子501とマイコン400のDEBUG/USER端子407をワイヤードする。端子入出力制御回路205は、デバッグ動作制御部202により、ユーザモードがデバッグモードに切り替わるタイミング、デバッグモードがユーザモードに切り替わるタイミングの通知を受け、リレースイッチ209のON又はOFFを制御する。
したがって、オンチップデバッグエミュレータ200からマイコン400に対してユーザプログラムRUNコマンドが発行されると、端子入出力制御回路205の制御によりリレースイッチ209はONとなる。これにより、DEBUG/USER端子407とユーザ端子501とは、オンチップデバッグエミュレータ200を経由して接続される。また、ユーザプログラムが停止(ブレーク)すると、端子入出力制御回路205の制御によりリレースイッチ209はOFFとなる。これにより、ユーザ端子501とDEBUG/USER端子407とは、物理的に切断される。
出力信号値保持回路206は、ブレーク直前のDEBUG/USER端子407の端子状態を保持する。この端子状態は、3ステートバッファ207を経由して出力信号値保持回路206からターゲットシステム300に搭載されたデバイス500のユーザ端子501に伝達される。次に、ブレーク状態の検出方法について説明する。
図6は、本実施の形態にかかるデバッグシステムを更に詳細に示す図であり、特にマイコン400内部の構成を詳細に示す図である。ここでは、ブレークのための手段及び手順の一例について説明する。
オンチップデバッグエミュレータ200にはインターバルタイマ213が搭載されている。このインターバルタイマ213は、ユーザプログラムの実行及びブレークのタイミングをマイコン400と同期させる手段となる。
ターゲットシステム300において、本実施の形態においては、上述したようにマイコン400のDEBUG/USER端子407とデバイス500のユーザ端子501とは、ターゲットシステム300内のボードプリントパタンにて接続されていない。DEBUG/USER端子407及びユーザ端子501は、それぞれエミュレータ用の接続端子であるエミュレータ通信端子(ターゲット側)301及びユーザ信号通信端子(ターゲット側)302と接続される。エミュレータ通信端子(ターゲット側)301及びユーザ信号通信端子(ターゲット側)302は、オンチップデバッグエミュレータ200のそれぞれエミュレータ通信端子(エミュレータ側)204及びユーザ信号通信端子(エミュレータ側)210と接続され、リレースイッチ209にてユーザプログラムRUNのときのみワイヤード接続される。
ブレークにより、出力信号値保持回路206により、直前のDEBUG/USER端子407の値が保持され、出力信号値保持回路206からターゲットシステム300に伝達される。
次に、マイコン400内部の各ブロックについて説明する。マイコン400は、汎用出力ポート401、デバッグ機能制御部402、CPU411、及びメモリ412を有する。また、セレクタ403を有し、このセレクタ403により、汎用出力ポート401の出力又はデバッグ専用シリアル通信機能部405の出力のいずれかの選択を行う。これにより、ユーザプログラムRUN中のユーザ端子エミュレーションを実現する。
デバッグ機能制御部402は、CPU411がブレーク状態、すなわちデバッグ通信モード中に動作する機能ブロックであり、デバッグ専用シリアル通信機能部405は、デバッグモニタプログラム406をCPU411が実行することでエミュレータ200との通信を行う。
また、メモリ412にはデバッグモニタプログラム406の他、ユーザプログラム408及びオプションバイト413が格納され、それぞれマイコン400の該当する動作モードの特に読み出され、その後のモード設定や、プログラム実行が行われる。
CPU411は、ユーザプログラムRUN状態とブレーク状態を表すモード信号をデバッグモード制御部409に出力し、デバッグモード制御部409は、セレクタ403にDEBUG/USER選択信号410を出力する。これにより、セレクタ403により、ブレーク中はデバッグ通信信号が選択され、RUN中は、ユーザ信号出力が選択され、DEBUG/USER端子407がデバッグ通信端子又はユーザ端子として機能する。
次に、ユーザプログラムRUN後、デバッグ通信を回復する方法について説明する。インターバルタイマ213は、マイコン400に内蔵されたインターバルタイマ414と同期して動作する。CPU411は、インターバルタイマ414の値に応じてユーザモードからデバッグモードに切り替える。すなわち、インターバルタイマ213及びインターバルタイマ414は、ユーザプログラムRUN中に、エミュレータ200とマイコン400とが定期的かつ同時にユーザプログラムをブレークさせ、デバッグ通信をするための一手段として設けられる。具体的には、ユーザプログラムRUNと同時に、例えば1msをインターバルタイマ213及びインターバルタイマ414に同時にセットし、同一クロックでダウンカウントをスタートする。カウンタ値が0になったら、エミュレータはリレースイッチ209をOFFにし、ユーザ端子エミュレーション部208に保持された直前のユーザ信号値(DEBUG/USER端子407の信号レベル)をターゲットシステム300へ出力する。
マイコン400内部のインターバルタイマ値0によりCPU411にブレーク割込みを発生させ、CPU411はデバッグモニタプログラム406を実行し、デバッグ専用シリアル通信機能部405経由でエミュレータ200と通信を開始する。そして、所定の動作を完了し、かつ強制ブレークコマンドがホストPC100から通知されていない場合は、ターゲットシステム300は、再びユーザプログラムRUNを行う。
一方、インターバルタイマ値が0のタイミングの時点で、すでにCPU411側がブレークポイント等によりブレーク状態にあったならば、オンチップデバッグエミュレータ200側のインターバルタイマ213の値が0のタイミングでオンチップデバッグエミュレータ200はそのブレーク状態を認識する。この場合も、ターゲットシステム300は、ホストPC100からRUNコマンドの発行がない限り、継続してブレーク状態を続行する。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の伝送媒体を介して伝送することにより提供することも可能である。
100 ホストPC
101 通信ケーブル
200 オンチップデバッグエミュレータ
201 ホスト通信制御部
202 デバッグ動作制御部
203 ホストコネクタ
204 エミュレータ通信端子(エミュレータ側)
205 端子入出力制御回路
206 出力信号値保持回路
207 3ステートバッファ
208 ユーザ端子エミュレーション部
209 リレースイッチ
210 ユーザ信号通信端子(エミュレータ側)
213 インターバルタイマ
300 ターゲットシステム
301 エミュレータ通信端子(ターゲット側)
302 ユーザ信号通信端子(ターゲット側)
400 マイコン
401 汎用出力ポート
402 デバッグ機能制御部
403 セレクタ
405 デバッグ専用シリアル通信機能部
406 デバッグモニタプログラム
408 ユーザプログラム
409 デバッグモード制御部
410 DEBUG/USER選択信号
411 CPU
412 メモリ
413 オプションバイト
414 インターバルタイマ
407 DEBUG/USER端子
500 デバイス
501 ユーザ端子
600 ターゲットケーブル
101 通信ケーブル
200 オンチップデバッグエミュレータ
201 ホスト通信制御部
202 デバッグ動作制御部
203 ホストコネクタ
204 エミュレータ通信端子(エミュレータ側)
205 端子入出力制御回路
206 出力信号値保持回路
207 3ステートバッファ
208 ユーザ端子エミュレーション部
209 リレースイッチ
210 ユーザ信号通信端子(エミュレータ側)
213 インターバルタイマ
300 ターゲットシステム
301 エミュレータ通信端子(ターゲット側)
302 ユーザ信号通信端子(ターゲット側)
400 マイコン
401 汎用出力ポート
402 デバッグ機能制御部
403 セレクタ
405 デバッグ専用シリアル通信機能部
406 デバッグモニタプログラム
408 ユーザプログラム
409 デバッグモード制御部
410 DEBUG/USER選択信号
411 CPU
412 メモリ
413 オプションバイト
414 インターバルタイマ
407 DEBUG/USER端子
500 デバイス
501 ユーザ端子
600 ターゲットケーブル
Claims (15)
- オンチップデバックが可能な集積回路装置であって、
CPU(central processing unit)と、
デバッグモード時にオンチップデバッグエミュレータとの間で信号の入出力を行うデバッグ端子として機能すると共に、ユーザモード時にはユーザ端子として機能する兼用端子と、
前記デバッグモードの際にデバック機能を制御するデバッグ機能制御部と、
前記ユーザモードの際にポート機能を制御するポート機能制御部と、
モードに応じて前記兼用端子を前記デバッグ機能制御部又はポート機能制御部のいずれかに接続するモード切替部とを有し、
前記CPUは、現在のモードの検知結果に応じて前記モード切替部を制御する、集積回路装置。 - 前記デバッグ機能制御部、前記ポート機能制御部及び前記モード切替部を有するマイコンと、
前記ユーザモードで前記マイコンと共に動作するデバイスとを有し、
前記兼用端子は、前記ユーザモード時には、前記デバイスに信号を入出力するユーザ専用端子と接続される、請求項1記載の集積回路装置。 - 前記兼用端子と前記ユーザ専用端子とは、前記集積回路装置内の配線により接続される、請求項2記載の集積回路装置。
- 前記兼用端子と前記ユーザ専用端子とは前記ユーザモード時に、前記オンチップデバッグエミュレータを介して接続される、請求項2記載の集積回路装置。
- 前記オンチップエミュレータのインターバルタイマと同期して動作するインターバルタイマを有し、
前記CPUは、前記インターバルタイマの値に応じてデバッグモードに切り替える、請求項1乃至4のいずれか1項記載の集積回路装置。 - デバックモードに設定するための値であるオプションバイトが格納されたメモリを有し、
前記CPUは、前記オプションバイトの値に基づきオンチップデバッグを開始する
ことを特徴とする請求項1乃至5のいずれか1項記載の集積回路装置。 - デバッグモードの際にデバック機能を制御するデバッグ機能制御部と、ユーザモードの際にポート機能を制御するポート機能制御部とを有し、オンチップデバックが可能な集積回路装置の制御方法であって、
ユーザモードとデバッグモードの切り替わりを検知し、
前記ユーザモード時には、兼用端子をユーザ端子とし、前記ポート機能制御部との間で信号の入出力をさせ、
前記デバッグモード時には、前記兼用端子をデバッグ端子とし、オンチップエミュレータと通信できるよう、前記デバッグ機能制御部との間で信号を入出力させる、集積回路装置の制御方法。 - CPU(central processing unit)を内蔵し、オンチップデバックが可能なマイコンを搭載したターゲットシステムと、
ホストコンピュータと前記ターゲットシステムとの間に接続され前記マイコンと前記ホストコンピュータとの通信を可能にするオンチップデバッグエミュレータと、を備え、
前記マイコンは、
前記CPU(central processing unit)と、
デバッグモード時にオンチップデバッグエミュレータとの間で信号の入出力を行うデバッグ端子として機能すると共に、ユーザモード時にはユーザ端子として機能する兼用端子と、
前記デバッグモードの際にデバック機能を制御するデバッグ機能制御部と、
前記ユーザモードの際にポート機能を制御するポート機能制御部と、
モードに応じて前記兼用端子を前記デバッグ機能制御部又はポート機能制御部のいずれかに接続するモード切替部とを有し、
前記CPUは、現在のモードの検知結果に応じて前記モード切替部を制御する、デバッグシステム。 - 前記ターゲットシステムは、前記ユーザモードで前記マイコンと共に動作するデバイスを有し、
前記兼用端子は、前記ユーザモード時には、前記デバイスに信号を入出力するユーザ専用端子と接続される、請求項8記載のデバッグシステム。 - 前記兼用端子と前記ユーザ専用端子とは、前記ユーザモード時に、前記オンチップデバッグエミュレータを介して接続される、請求項9記載のデバッグシステム。
- 前記オンチップデバッグエミュレータは、前記兼用端子をエミュレーションするユーザ端子エミュレーション部を有する、請求項9又は10記載のデバッグシステム。
- 前記ユーザ端子エミュレーション部は、前記兼用端子と前記ユーザ専用端子との接続を制御する、請求項11項記載のデバッグシステム。
- 前記ユーザ端子エミュレーション部は、前記デバッグモード時にオンして前記兼用端子と前記ユーザ専用端子とを接続するスイッチを有する、請求項11又は12記載のデバッグシステム。
- 前記ユーザ端子エミュレーション部は、
デバッグモード直前の前記兼用端子の出力信号値を保持する出力信号値保持回路と、
前記デバッグモード時に、前記出力値保持回路から前記出力値を前記ユーザ専用端子に出力するよう制御する端子入出力制御回路と、を有する、請求項11乃至13記載のデバッグシステム。 - CPU(central processing unit)を内蔵し、オンチップデバックが可能なマイコンを搭載したターゲットシステムと、ホストコンピュータと前記ターゲットシステムとの間に接続され前記マイコンと前記ホストコンピュータとの通信を可能にするオンチップデバッグエミュレータと、を備えたデバッグシステムの制御方法であって、
前記ターゲットシステムは、
ユーザモードとデバッグモードの切り替わりを検知し、
前記ユーザモード時には、兼用端子をユーザ端子とし、前記ポート機能制御部との間で信号の入出力をさせ、
前記デバッグモード時には、前記兼用端子をデバッグ端子とし、オンチップエミュレータと通信できるよう、前記デバッグ機能制御部との間で信号を入出力させ、
前記オンチップデバッグエミュレータは、前記兼用端子のエミュレーションを実行する、デバッグシステムの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010020577A JP2011159126A (ja) | 2010-02-01 | 2010-02-01 | 集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010020577A JP2011159126A (ja) | 2010-02-01 | 2010-02-01 | 集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011159126A true JP2011159126A (ja) | 2011-08-18 |
Family
ID=44591018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010020577A Pending JP2011159126A (ja) | 2010-02-01 | 2010-02-01 | 集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011159126A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018029285A (ja) * | 2016-08-18 | 2018-02-22 | ラピスセミコンダクタ株式会社 | 通信装置、半導体装置、通信システムおよび初期化方法 |
-
2010
- 2010-02-01 JP JP2010020577A patent/JP2011159126A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018029285A (ja) * | 2016-08-18 | 2018-02-22 | ラピスセミコンダクタ株式会社 | 通信装置、半導体装置、通信システムおよび初期化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101329632B (zh) | 一种使用boot启动cpu的方法与装置 | |
US7689751B2 (en) | PCI-express system | |
US10509595B2 (en) | System and method for communication in a semiconductor device | |
US7930535B1 (en) | Method and apparatus for loading configuration data | |
JP2008226083A (ja) | オンチップ・デバッグ・エミュレータおよびデバッグ方法並びにマイクロコンピュータ | |
US20090210690A1 (en) | Method of updating basic input output system and module and computer system implementing the same | |
JP4321976B2 (ja) | デバッグ支援機能付きマイコン | |
KR100607992B1 (ko) | 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템 | |
JP2005275949A (ja) | デバッグ用切換器、デバッグ方法 | |
US20090100238A1 (en) | Memory card and memory card control changeover method | |
JP2011159126A (ja) | 集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法 | |
WO2017072500A1 (en) | Microprocessor interfaces | |
JP6070600B2 (ja) | マイクロコンピュータ | |
US7437283B2 (en) | System for evaluating target board by using evaluation microcomputer in which storage of environment data are powered by evaluation tool | |
TWI463501B (zh) | 快閃記憶體發展系統 | |
CN111414322B (zh) | 一种Nand flash接口工作协议自适应方法、系统、设备及存储介质 | |
JPH11149376A (ja) | Bootローダー回路 | |
JP2008204005A (ja) | 周辺装置の通信方法、コンピュータプログラム、及び周辺装置 | |
CN113672538B (zh) | Usb转串口芯片及其mcu固件自动下载系统与方法 | |
CN219039744U (zh) | 一种投影仪调试工具及调试系统 | |
TWI455027B (zh) | 多系統平台的切換方法及支援多系統平台的電子裝置 | |
JP2000076093A (ja) | マイクロコンピュータのエミュレータ | |
JP3353819B2 (ja) | インテリジェント系ボードとコンソール端末との接続機構および接続方法 | |
JP2004280789A (ja) | 半導体集積回路装置およびマイクロコンピュータ開発支援装置 | |
JP2007034881A (ja) | 半導体集積回路 |