(57)【要約】【課題】ウォッチドッグタイマを内蔵するマイクロコンピュータにおいてプログラム異常発生時のプログラムデバッグ効率の向上を図る。【解決手段】マイクロコンピュータ（１０）は、ＣＰＵ（１０１）と、ウォッチドッグタイマ（１１１）と、デバッグモジュール（１０５）を含む。上記ウォッチドッグタイマは、ブレーク設定ビットを有する設定部と、上記ブレーク設定ビットが有効にされ、且つ、上記オーバーフロー信号がアサートされた場合に、上記デバッグモジュールにブレーク処理を指示するブレーク制御部とを含む。上記デバッグモジュールは、上記ブレーク処理の指示に応じて上記ＣＰＵにブレークを要求する。これによりＣＰＵでは、ユーザモードからエミュレーションモードに遷移されるため、ＣＰＵの内部情報や各種周辺モジュールの内部情報を得ることができ、プログラムデバッグ効率の向上を達成することができる。【選択図】図１
2010092278.tif 000002
【特許請求の範囲】
【請求項１】
ユーザプログラム実行による第１モードと、エミュレーションプログラム実行による第２モードとを有し、ブレーク要求に応じて、上記第１モードから上記第２モードに遷移可能なＣＰＵと、
所定のクロック信号をカウントし、そのカウント状態がオーバーフローした場合にオーバーフロー信号をアサートするウォッチドッグタイマと、
上記ユーザプログラムのデバッグ処理を行うデバッグモジュールと、を含み、
上記ウォッチドッグタイマは、ブレーク設定ビットを有する設定部と、
上記設定部における上記ブレーク設定ビットが有効にされ、且つ、上記オーバーフロー信号がアサートされた場合に、上記デバッグモジュールにブレーク処理を指示するブレーク制御部と、を含み、
上記デバッグモジュールは、上記ブレーク制御部からの上記ブレーク処理の指示に応じて上記ＣＰＵにブレークを要求することを特徴とするマイクロコンピュータ。
【請求項２】
上記ＣＰＵが複数設けられ、上記デバッグモジュールは、上記ブレーク制御部からの上記ブレーク処理の指示に応じて、上記複数のＣＰＵの全てにブレークを要求する請求項１記載のマイクロコンピュータ。
【請求項３】
ユーザプログラム実行による第１モードと、エミュレーションプログラム実行による第２モードとを有し、ブレーク要求に応じて、上記第１モードから上記第２モードに遷移可能なＣＰＵと、
所定のクロック信号をカウントし、そのカウント状態がオーバーフローした場合にオーバーフロー信号をアサートするウォッチドッグタイマと、
上記ユーザプログラムのデバッグ処理を行うデバッグモジュールと、
内部保持情報を外部出力可能なインタフェースと、を含み、
上記ウォッチドッグタイマは、ブレーク設定ビット、及びリセットビットを有する設定部と、
上記設定部における上記ブレーク設定ビットが有効にされ、且つ、上記オーバーフロー信号がアサートされた場合、上記デバッグモジュールにブレーク処理を指示するブレーク制御部と、
上記設定部における上記リセットビットが有効にされ、且つ、上記オーバーフロー信号がアサートされた場合に、上記デバッグモジュールにリセット処理を指示するリセット制御部と、を含み、
上記デバッグモジュールは、上記ブレーク制御部からのブレーク処理の指示に応じて上記ＣＰＵにブレーク要求を行い、上記リセット制御部からのリセット処理の指示に応じてシステムリセット前に上記インタフェースを介して上記内部保持情報を外部出力することを特徴とするマイクロコンピュータ。
【請求項４】
ユーザプログラムを実行可能なＣＰＵと、
所定のクロック信号をカウントし、そのカウント状態がオーバーフローした場合にオーバーフロー信号をアサートするウォッチドッグタイマと、
上記ユーザプログラムのデバッグ処理を行うデバッグモジュールと、
内部保持情報を外部出力可能なインタフェースと、を含み、
上記ウォッチドッグタイマは、リセットビットを有する設定部と、
上記設定部における上記リセットビットが有効とされ、且つ、上記オーバーフロー信号がアサートされた場合に、上記デバッグモジュールにリセット処理を指示するリセット制御部と、を含み、
上記デバッグモジュールは、上記リセット制御部からのリセット処理の指示に応じてシステムリセット前に上記インタフェースを介して上記内部保持情報を外部出力することを特徴とするマイクロコンピュータ。
【請求項５】
上記インタフェースは、ＪＴＡＧ標準方式によるインタフェースとされた請求項３又は４記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウォッチ・ドック・タイマを備えたマイクロコンピュータにおいて、プログラムデバッグ効率の向上を図るための技術に関する。
【背景技術】
【０００２】
一般にマイクロコンピュータ（マイクロプロセッサ、データプロセッサ、あるいはデータ処理装置などと称されることもある）には、例えば特許文献１に示されるように、ウォッチ・ドック・タイマが内蔵される。ウォッチドッグタイマは、メインのプログラムがハングアップなどの不正な状態に陥ってしまい規則的なウォッチドッグ操作（「サービスパルス」の書き込み）が行なわれなかった場合にシステムをリセットし、ハングアップしたシステムを正常動作に戻すことを目的としている。組込用のマイクロコンピュータにおいても、このウォッチドッグタイマが内蔵されている場合には、カウンタがオーバーフローした時にリセット、もしくは割り込みを発生させることができる。
【０００３】
【特許文献１】特開２００６−２２７７４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のウォッチドッグタイマでは、リセット発生モードにおいて異常が発生してリセットが起きた場合にレジスタ値が初期化されてしまう。このため、異常が起きた際の解析が難しかった。また、ウォッチドッグタイマを割り込み発生モードにした場合には、ＣＰＵ（中央処理装置）が割り込みを受け付けない状態でハング・暴走した場合には割り込みが起きないことになってしまう。また、ウォッチドッグタイマによって発生された割り込みがノンマスカブル割り込み（ハードウエア割り込みの一種で、発生を禁止できない割り込みを意味する）の場合には、割り込み禁止期間でも割り込みは受け付けられるが、割り込みが発生した時のプログラムカウンタ、ステータスレジスタの情報が消えてしまうため、異常が起きた際の解析が不可能になる。このように従来のウォッチドッグタイマは、プログラム異常発生時のプログラムデバッグ効率の見地から機能的に十分とはいえないことが本発明者によって見いだされた。
【０００５】
本発明の目的は、ウォッチドッグタイマを内蔵するマイクロコンピュータにおいてプログラム異常発生時のプログラムデバッグ効率の向上を図るための技術を提供することにある。
【０００６】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【０００８】
すなわち、マイクロコンピュータは、ＣＰＵと、ウォッチドッグタイマと、デバッグモジュールを含む。上記ウォッチドッグタイマは、ブレーク設定ビットを有する設定部と、上記設定部における上記ブレーク設定ビットが有効にされ、且つ、上記オーバーフロー信号がアサートされた場合に、上記デバッグモジュールにブレーク処理を指示するブレーク制御部とを含む。上記デバッグモジュールは、上記ブレーク処理の指示に応じて上記ＣＰＵにブレークを要求する。これによりＣＰＵでは、ユーザモードからエミュレーションモードに遷移されるため、ＣＰＵの内部情報や各種周辺モジュールの内部情報を得ることができ、このことが、プログラムデバッグ効率の向上を達成する。
【発明の効果】
【０００９】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１０】
すなわち、ウォッチドッグタイマを内蔵するマイクロコンピュータにおいてプログラム異常発生時のプログラムデバッグ効率の向上を図るための技術を提供することができる。
【発明を実施するための最良の形態】
【００１１】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１２】
〔１〕本発明の代表的な実施の形態に係るマイクロコンピュータ（１０）は、ユーザプログラム実行による第１モードと、エミュレーションプログラム実行による第２モードとを有し、ブレーク要求に応じて、上記第１モードから上記第２モードに遷移可能なＣＰＵ（１０１）と、所定のクロック信号をカウントし、そのカウント状態がオーバーフローした場合にオーバーフロー信号をアサートするウォッチドッグタイマ（１１１）とを含む。さらにマイクロコンピュータ（１０）は、上記ユーザプログラムのデバッグ処理を行うデバッグモジュール（１０５）を含む。上記ウォッチドッグタイマは、ブレーク設定ビットを有する設定部（６６）と、上記設定部における上記ブレーク設定ビットが有効にされ、且つ、上記オーバーフロー信号がアサートされた場合に、上記デバッグモジュールにブレーク処理を指示するブレーク制御部（６３）とを含む。上記デバッグモジュール（１０５）は、上記ブレーク制御部からの上記ブレーク処理の指示に応じて上記ＣＰＵにブレークを要求する。
【００１３】
上記の構成によれば、ブレーク要求に呼応してＣＰＵ（１０１）では、それまでのユーザプログラム実行によるユーザモードからエミュレーションプログラム実行によるエミュレーションモードに遷移されるため、オンチップデバッギングエミュレータ（５０）により、ＣＰＵ（１０１）の内部情報や各種周辺モジュールの内部情報を得ることができ、それにより、プログラム異常発生時のプログラムデバッグ効率を向上させることができる。
【００１４】
〔２〕上記〔１〕において、上記ＣＰＵが複数設けられる場合には、上記デバッグモジュールは、上記ブレーク制御部からの上記ブレーク処理の指示に応じて、上記複数のＣＰＵの全てにブレークを要求するように構成することができる。
【００１５】
〔３〕また、マイクロコンピュータ（１０）は、上記ＣＰＵ（１０１）と、上記ウォッチドッグタイマ（１１１）と、上記デバッグモジュール（１０５）と、内部保持情報を外部出力可能なインタフェース（１１５）とを含んで構成することができる。このとき、上記ウォッチドッグタイマは、ブレーク設定ビット、及びリセットビットを有する設定部（６６）と、上記設定部における上記ブレーク設定ビットが有効にされ、且つ、上記オーバーフロー信号がアサートされた場合、上記デバッグモジュールにブレーク処理を指示するブレーク制御部（６３）と、上記設定部における上記リセットビットが有効にされ、且つ、上記オーバーフロー信号がアサートされた場合に、上記デバッグモジュールにリセット処理を指示するリセット制御部（６２）とを含んで構成する。上記デバッグモジュールは、上記ブレーク制御部からのブレーク処理の指示に応じて上記ＣＰＵにブレーク要求を行い、上記リセット制御部からのリセット処理の指示に応じてシステムリセット前に上記インタフェースを介して上記内部保持情報を外部出力する。
【００１６】
〔４〕上記インタフェースは、ＪＴＡＧ標準方式によるインタフェースとすることができる。
【００１７】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００１８】
図１には、本発明にかかるマイクロコンピュータの構成例が示される。
【００１９】
図１に示されるマイクロコンピュータ１０は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。そしてこのマイクロコンピュータ１０は、プログラム・データ等の格納用に外部に配置されたメモリ例えば、クロック信号の立上がり時と立下がり時の両方が利用されるＤＤＲ（Double Data Rate）メモリ２０、読み出し専用のＲＯＭ（Read Only Memory）３０、及びランダムアクセス可能なＳＲＡＭ（Static Random Access Memory）４０に結合される。また、マイクロコンピュータ１０で実行されるユーザプログラムのオンチップデバッグが行われる場合、マイクロコンピュータ１０にオンチップデバッギングエミュレータ５０が接続される。オンチップデバッギングエミュレータ５０は、ユーザシステムに実装されたマイクロコンピュータ１０内のデバッグ機能を利用してデバッグを行うため、実チップでのリアルタイムデバッグが可能とされる。尚、オンチップデバッギングエミュレータ５０は、ＵＳＢインタフェース等により、図示されないパーソナルコンピュータ等に接続され、このパーソナルコンピュータを介してオンチップデバッギングのための各種設定を行うことができる。
【００２０】
上記マイクロコンピュータ１０は、特に制限されないが、ＣＰＵ１０１、キャッシュメモリ１０２、ＭＭＵ（Memory Management Unit）１０３、デバッグモジュール１０５、デバッグ用メモリ１０６、ＤＤＲバスステートコントローラ１０７、バスステートコントローラ１０８、タイマ１０９、シリアルインタフェース１１０、ウォッチドッグタイマ１１１、クロック発振回路１１２、割り込みコントローラ１１３、ＤＭＡ（Direct Memory Access）コントローラ１１４、及びＪＴＡＧ（Joint European Test Action Group）インタフェース１１５を含む。ＣＰＵ１０１は、予め設定されたプログラムに従って所定の演算処理を実行する。また、ＣＰＵ１０１は、ユーザプログラム実行による第１モードと、エミュレーションプログラム実行による第２モードとを有し、ブレーク要求に応じて、上記第１モードから上記第２モードに遷移可能とされる。キャッシュメモリ１０２は、使用頻度の高いデータを蓄積しておくことにより、低速なメインメモリへのアクセスを減らすために設けられる。ＭＭＵ１０３は、上記ＣＰＵ１０１の制御下でメモリ管理を行う。内蔵メモリ１０４は、ＲＯＭやＲＡＭとされ、ＣＰＵ１０で実行されるユーザプログラムや各種データが格納される。デバッグモジュール１０５は、ユーザプログラムのデバッグ処理を行う。このデバッグ処理には、上記ＣＰＵ１０１へのブレーク要求が含まれる。デバッグ用メモリ１０６には、エミュレーションプログラムが格納されており、上記ＣＰＵ１０１によってこのデバッグ用メモリ１０６内のエミュレーションプログラムが実行されることによりエミュレーションが可能とされる。ＤＤＲバスステートコントローラ１０７は、ＣＰＵ１０１によって上記ＤＤＲメモリ２０がアクセスされる際のバスステート制御を行う。バスステートコントローラ１０８は、ＣＰＵ１０１によって上記ＲＯＭ３０やＳＲＡＭ４０などがアクセスされる際のバスステート制御を行う。タイマ１０９は上記ＣＰＵ１０１での演算処理に必要な時間測定を可能にする。シリアルインタフェース１１０は、外部との間でシリアル通信を可能とする。ウォッチドッグタイマ１１１は、後に詳述するように、内部に設けられたカウンタで所定のクロック信号をカウントし、そのカウント状態がオーバーフローした場合にオーバーフロー信号をアサートする機能を有する。クロック発振回路１１２は、発振動作によりクロック信号を形成する。形成されたクロック信号はマイクロコンピュータ１０の各部に供給される。割り込みコントローラ１１３は、上記ＣＰＵ１０１への割り込みを所定の優先順位に従って制御する。ＤＭＡコントローラ１１４は、上記ＣＰＵ１０１を介すことなくデータ転送を行うためのＤＭＡ転送を制御する。ＪＴＡＧインタフェース１１５は、ＪＴＡＧにおけるバウンダリスキャンテストのためのシリアル通信を可能にする。
【００２１】
図２には、上記ウォッチドッグタイマ１１１の構成例が示される。
【００２２】
図２に示されるように上記ウォッチドッグタイマ１１１は、割り込み制御部６１、リセット制御部６２、ブレーク制御部６３、分周器６４、クロック選択器６５、コントロールレジスタ６６、及びカウンタ６７を含む。分周器６４は、上記クロック発振回路１１２から伝達されたクロック信号ＣＬＫを分周する。この分周器６４から複数の分周出力が得られ、それらは後段のクロック選択回路６５に伝達される。クロック選択器６５は、コントロールレジスタ６６から伝達されたクロック選択信号に従って、上記分周器６４の分周出力を選択する。カウンタ６７は、上記クロック選択器６５を介して伝達されたクロック信号をカウントする。カウンタ６７は、例えばＣＰＵ１０１でウォッチドッグタイマの初期化命令が実行される毎に初期化される。しかし、ユーザプログラム異常によりユーザプログラム実行が停止したり、途中で永久ループに陥った場合、カウンタ６７は初期化されないため、オーバーフロー信号をアサートする。このオーバフロー信号は、割り込み制御部６１、リセット制御部６２、及びブレーク制御部６３に伝達される。コントロールレジスタ６６は、ウォッチドッグタイマ１１１の動作を指定するための各種設定ビットを有する。このコントロールレジスタ６６はＣＰＵ１０１によって設定される。コントロールレジスタ６６の設定ビットには、ブレーク設定ビット、リセット設定ビット、及び割り込み設定ビットが含まれる。割り込み制御部６１は、割り込み設定ビットが有効とされた状態で、カウンタ６７によってオーバフロー信号がアサートされた場合、上記割り込みコントローラ１１３に割り込み処理を指示する。これにより上記割り込みコントローラ１１３は、ＣＰＵ１０１に割り込みを要求する。リセット制御部６２は、リセット設定ビットが有効とされた状態で、カウンタ６７によってオーバフロー信号がアサートされた場合、上記ＣＰＵ１０１をリセットするためのリセットパルスを形成する。ブレーク制御部６３は、ブレーク設定ビットが有効とされた状態で、カウンタ６７によってオーバフロー信号がアサートされた場合、デバッグモジュール１０５にブレーク処理を指示する。これによりデバッグモジュール１０５は、上記ＣＰＵ１０１にブレークを要求する。
【００２３】
図３には、ウォッチドッグタイマ１１１の設定フローが示される。
【００２４】
先ず、カウンタ６７がクリアされ（３０１）、ウォッチドッグタイマモードの設定が行われる（３０２）。ウォッチドッグタイマモードの設定には、リセット設定ビット、割り込み設定ビット、及びブレーク設定ビットの設定が含まれる。クロック選択器６５に対するクロック選択設定が行われると（３０３）、カウンタ６７によりクロック信号のカウントが開始される。そして、デバッグ対象とされるユーザプログラムがＣＰＵ１０１で実行される。カウンタ６７がオーバーフローする前に、上記カウンタ６７がクリアされるように、ユーザプログラム内にウォッチドッグタイマの初期化命令が予め埋め込まれている場合（３０６）には、ＣＰＵ１０１によってこの初期化命令が実行される毎にカウンタ６７がクリアされる（３０７）。また、周期的な割り込みによりカウンタ６７がクリアされる場合もある。しかし、ユーザプログラム異常によりユーザプログラム実行が停止したり、途中で永久ループに陥った場合には、カウンタ６７は初期化されないため、カウンタ６７によってオーバーフロー信号がアサートされ（３０８）、上記ステップ３０２のウォッチドッグタイマモードの設定に応じて、リセット、割り込み、ブレークの何れかが発生される（３０９）。
【００２５】
上記ステップ３０２のウォッチドッグタイマモードの設定においてブレーク設定ビットが有効（例えば論理値“１”）に設定されている場合において、カウンタ６７がオーバーフローを生じた場合には、図４に示されるように、ブレーク制御部６３により、デバッグモジュール１０５に対してブレーク処理が指示される（３１０）。これによりデバッグモジュール１０５は、上記ブレーク制御部からの上記ブレーク処理の指示に応じて上記ＣＰＵ１０１にブレークを要求する。このブレーク要求に呼応してＣＰＵ１０１では、それまでのユーザプログラム実行によるユーザモードからエミュレーションプログラム実行によるエミュレーションモードに遷移される（３１１）。このエミュレーションモードはデバッグモードであり、ユーザモードとは異なり、オンチップデバッギングエミュレータ５０により、ＣＰＵ１０１の内部情報や各種周辺モジュールの内部情報を得ることができる。これにより、プログラム異常発生時のプログラムデバッグ効率を向上させることができる。
【００２６】
上記の例によれば、以下の作用効果を得ることができる。
【００２７】
ウォッチドッグタイマ１１１は、ブレーク設定ビットを有するコントロールレジスタ６６と、上記コントロールレジスタ６６における上記ブレーク設定ビットが有効にされ、且つ、上記オーバーフロー信号がアサートされた場合に、上記デバッグモジュール１０５にブレーク処理を指示するブレーク制御部６３とを含んでウォッチドッグタイマ１１１が形成されている。これにより、ブレーク設定ビットが有効（例えば論理値“１”）に設定されている場合において、カウンタ６７がオーバーフローを生じた場合には、ブレーク制御部６３によりブレーク処理が指示され、デバッグモジュールにより上記ＣＰＵ１０１にブレークが要求される。このブレーク要求に呼応してＣＰＵ１０１では、それまでのユーザプログラム実行によるユーザモードからエミュレーションプログラム実行によるエミュレーションモードに遷移されるため、オンチップデバッギングエミュレータ５０により、ＣＰＵ１０１の内部情報や各種周辺モジュールの内部情報を得ることができる。それにより、プログラム異常発生時のプログラムデバッグ効率を向上させることができる。
【００２８】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００２９】
例えば、図５に示されるように、マイクロコンピュータ１０内に複数のＣＰＵ１０１−１，１０１−２，１０１−３が設けられている場合には、デバッグモジュール１０５からのブレーク要求に対して、マイクロコンピュータ１０内の全てのＣＰＵ１０１−１，１０１−２，１０１−３がブレークされるように構成することができる。これにより、マルチＣＰＵ環境でのプログラムデバッグの効率向上を図ることができる。
【００３０】
また、図１に示されるマイクロコンピュータ１０において、コントロールレジスタ６６におけるリセット設定ビットが有効とされ、且つ、上記オーバーフロー信号がアサートされた場合に、上記デバッグモジュール１０５は、上記リセット制御部６２からのリセット処理の指示に応じてシステムリセット前に上記インタフェースを介して上記レジスタの保持情報を外部出力するように構成することができる。すなわち、リセット設定ビットが有効とされ、且つ、上記オーバーフロー信号がアサートされた場合、図６に示されるように、上記デバッグモジュール１０５は、ウォッチドッグタイマ１１１内のリセット制御部６２からのリセット処理の指示に応じてＣＰＵ１０１をリセットする前に、ＪＴＡＧインタフェース１１５を介して内部保持情報、例えばＣＰＵ１０１の内部情報や各種周辺モジュールの内部情報をオンチップデバッギングエミュレータ５０に出力する。そして、この内部保持情報の出力を完了した後に、デバッグモジュール１０５によりＣＰＵ１０１がリセットされる。このようにＪＴＡＧインタフェース１１５を介して内部保持情報をオンチップデバッギングエミュレータ５０に出力することにより、ＣＰＵ１０１の内部情報や各種周辺モジュールの内部情報を得ることができるので、プログラム異常発生時のプログラムデバッグ効率を向上させることができる。
【図面の簡単な説明】
【００３１】
【図１】本発明にかかるマイクロコンピュータの構成例ブロック図である。
【図２】上記マイクロコンピュータにおけるウォッチドッグタイマの構成例ブロック図である。
【図３】上記ウォッチドッグタイマの設定を示すフローチャートである。
【図４】上記ウォッチドッグタイマを用いたプログラムデバッグを示すフローチャートである。
【図５】上記マイクロコンピュータの別の構成例を示すブロック図である。
【図６】上記マイクロコンピュータの別の構成例を示すブロック図である。
【符号の説明】
【００３２】
１０  マイクロコンピュータ
２０  ＤＤＲメモリ
３０  ＲＯＭ
４０  ＲＡＭ
５０  オンチップデバッギングエミュレータ
６１  割り込み制御部
６２  リセット制御部
６３  ブレーク制御部
６４  分周器
６５  クロック選択器
６６  コントロールレジスタ
６７  カウンタ
１０１  ＣＰＵ
１０２  キャッシュメモリ
１０３  ＭＭＵ
１０４  内蔵メモリ
１０５  デバッグモジュール
１０６  デバッグ用メモリ
１０７  ＤＤＲバスステートコントローラ
１０８  バスステートコントローラ
１０９  タイマ
１１０  シリアルインタフェース
１１１  ウォッチドッグタイマ
１１２  クロック発振回路
１１３  割り込みコントローラ
１１４  ＤＭＡコントローラ
１１５  ＪＴＡＧインタフェース
【図１】
2010092278.tif 000003
【図２】
2010092278.tif 000004
【図３】
2010092278.tif 000005
【図４】
2010092278.tif 000006
【図５】
2010092278.tif 000007
【図６】
2010092278.tif 000008