(57)【要約】【課題】  ＪＴＡＧ−ＩＣＥやロジックアナライザ等の測定器を用いることなく、ソフトウェアプログラムの介在を極力排除し、ＬＳＩ内部のモードを極力変化させることなく、ソフトウェアプログラム及びハードウェアにおける問題発生条件の特定、及び問題解析を可能とする。【解決手段】  バスコントローラから供給される各イニシエータとの間で送受信されたデータ、及び当該データに対応する上記イニシエータ識別番号を、バスイニシエータモニタの内蔵メモリに記憶する。そして、所定のアボート、或いはシステムリセットが発生した際に、上記内蔵メモリをライトプロテクト状態とし、このライトプロテクト状態とされた内蔵メモリに記憶されている上記データ及び上記イニシエータ識別番号を、シリアルデータラインを介して外部に出力して問題発生条件の特定及び問題解析を行う。【選択図】  図１
2011034202.tif 000002
【特許請求の範囲】
【請求項１】
複数のイニシエータと、
上記各イニシエータに対して固有に付されているイニシエータ識別番号に基づいて、バスラインに対する各イニシエータのアクセス調停を行うバスコントローラと、
上記バスコントローラから供給される、上記各イニシエータとの間で送受信されたデータを、当該データに対応する上記イニシエータ識別番号と共に記憶する内蔵メモリと、この内蔵メモリに記憶された上記データ及び上記イニシエータ識別番号を外部に出力するためのシリアルデータラインとを備え、所定のアボート、或いはシステムリセットが発生した際に、上記内蔵メモリをライトプロテクト状態とするバスイニシエータモニタとを有し、
上記いずれかのイニシエータは、上記所定のアボート、或いはシステムリセットが発生した際に、上記ライトプロテクト状態となっている上記バスイニシエータモニタの上記内蔵メモリに記憶されている上記データ及び上記イニシエータ識別番号を読み出し、上記シリアルデータラインを介して外部に出力制御する
集積回路。
【請求項２】
上記バスイニシエータモニタの上記内蔵メモリに記憶されている上記データ及び上記イニシエータ識別番号を上記外部に出力制御するイニシエータは、リブート時に、上記内蔵メモリがライトプロテクト状態となっているか否かを判別し、上記内蔵メモリがライトプロテクト状態となっていない場合は通常のブートモードに移行して通常のブート制御を行い、上記内蔵メモリがライトプロテクト状態となっている場合に、内蔵メモリリードモードに移行して、上記内蔵メモリに記憶されている上記データ及び上記イニシエータ識別番号を上記シリアルデータラインを介して外部に出力制御する
請求項１に記載の集積回路。
【請求項３】
バスコントローラが、複数のイニシエータに対して固有に付されているイニシエータ識別番号に基づいて、バスラインに対する各イニシエータのアクセス調停を行うと共に、上記各イニシエータとの間で送受信されたデータを、当該データに対応する上記イニシエータ識別番号と共に出力する出力ステップと、
バスイニシエータモニタが、上記出力ステップにおいて上記バスコントローラから供給される上記各イニシエータとの間で送受信されたデータを、当該データに対応する上記イニシエータ識別番号と共に内蔵メモリに記憶する記憶ステップと、
バスイニシエータモニタが、所定のアボート、或いはシステムリセットが発生した際に、上記内蔵メモリをライトプロテクト状態とするライトプロテクトステップと、
上記いずれかのイニシエータが、上記所定のアボート、或いはシステムリセットが発生した際に、上記ライトプロテクト状態となっている上記バスイニシエータモニタの上記内蔵メモリに記憶されている上記データ及び上記イニシエータ識別番号を読み出し、上記バスイニシエータモニタに設けられているシリアルデータラインを介して外部に出力する外部出力ステップと
を有するシステム検証方法。
【請求項４】
複数のイニシエータと、
上記各イニシエータに対して固有に付されているイニシエータ識別番号に基づいて、バスラインに対する各イニシエータのアクセス調停を行うバスコントローラと、
上記バスコントローラから供給される、上記各イニシエータとの間で送受信されたデータを、当該データに対応する上記イニシエータ識別番号と共に記憶する内蔵メモリと、この内蔵メモリに記憶された上記データ及び上記イニシエータ識別番号を外部に出力するためのシリアルデータラインとを備え、所定のアボート、或いはシステムリセットが発生した際に、上記内蔵メモリをライトプロテクト状態とするバスイニシエータモニタとを備え、
上記いずれかのイニシエータが、上記所定のアボート、或いはシステムリセットが発生した際に、上記ライトプロテクト状態となっている上記バスイニシエータモニタの上記内蔵メモリに記憶されている上記データ及び上記イニシエータ識別番号を読み出し、上記シリアルデータラインを介して外部に出力制御する集積回路
を有する携帯端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば携帯電話機、ＰＨＳ電話機（PHS：Personal Handyphone System）、ＰＤＡ装置（PDA：Personal Digital Assistant）、携帯ゲーム機、ノート型のパーソナルコンピュータ装置等の携帯端末装置の他、あらゆる電子機器に適用して好適な集積回路、システム検証方法、及び携帯端末装置に関する。
特には、各イニシエータに対して固有に付されているイニシエータ識別番号に基づいて、バスラインに対する各イニシエータのアクセス調停を行うバスコントローラから供給される、上記各イニシエータとの間で送受信されたデータを、当該データに対応する上記イニシエータ識別番号と共に記憶する内蔵メモリと、この内蔵メモリに記憶された上記データ及び上記イニシエータ識別番号を外部に出力するためのシリアルデータラインとをバスイニシエータモニタに設け、所定のアボート、或いはシステムリセットが発生した際に、上記内蔵メモリをライトプロテクト状態とし、このライトプロテクト状態とされた内蔵メモリに記憶されている上記データ及び上記イニシエータ識別番号を、上記シリアルデータラインを介して外部に出力することで、ＪＴＡＧ−ＩＣＥやロジックアナライザ等の測定器を用いることなく、ソフトウェアプログラムの介在を極力排除し、ＬＳＩ内部のモードを極力変化させることなく、ソフトウェアプログラム及びハードウェアにおける問題発生条件の特定、及び問題解析を行うことを可能とした集積回路、システム検証方法、及び携帯端末装置に関する。
【背景技術】
【０００２】
今日における携帯電話機等の携帯端末装置は、大規模なソフトウェアプログラムに基づいて、複雑な構成の集積回路（LSI：Large Scale Integration）が動作することで多種多様の機能を実現しているが、主に携帯端末装置の開発時において、ＬＳＩが正常に動作しない等の問題が生じた場合には、ソフトウェアプログラム及びハードウェアの協調検証を行い、ソフトウェアプログラム側に問題があるのか、或いはハードウェア側に問題があるのかを検証する必要がある。従来、このような協調検証手法として、以下の３つの手法が知られている。
【０００３】
１つ目の協調検証手法は、問題発生時に、ソフトウェア／ハードウェアの状態をログとしてＵＡＲＴ（Universal Asynchronous Receiver Transmitter）等の外部インターフェイスへ出力するソフトウェアプログラムを用いる手法である。
【０００４】
２つ目の協調検証手法は、ＪＴＡＧ−ＩＣＥ（JTAG：Joint Test Action Group、ICE:In-Circuit Emulator:登録商標）等のエミュレータを使用し、問題発生時に、ＣＰＵをブレイクし、ソフトウェア／ハードウェアの状態を観測する手法である。
【０００５】
３つ目の協調検証手法は、最後にアクセスしているメモリをロジックアナライザ等で観測し、ソフトウェアプログラムのプログラミング通りにＬＳＩが動作しているか否か、ＬＳＩ外部の状態を観測することで確認する手法である。
【０００６】
ここで、協調検証手法に関する先行技術としては、特開２００７−２０７１２０号の公開特許公報（特許文献１）に、アプリケーションによるバストランザクションを解析し、アプリケーション毎にバス占有率を示す情報を提供することを目的としたシステム検証装置が開示されている。
【０００７】
このシステム検証装置の場合、システムバスに発行されるトランザクションをモニタし、そのトランザクションとアプリケーションとを関連付ける情報を保有する。そして、モニタされたトランザクションを保有された情報に基づいてアプリケーション別に区分して提供する。このように、バスに発生したトランザクションを、起因するアプリケーション別に区分することにより、各アプリケーション毎にバスの占有率の情報を提供することが可能となり、問題になるアプリケーションの早期把握が可能となっている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−２０７１２０号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、上記１つ目の協調検証手法の場合、ソフトウェア／ハードウェアの状態のログを外部インターフェイスへ出力させるための、専用のソフトウェアプログラムを用いるようになっている。携帯電話機等の電子機器は、リアルタイム性が重要であり、このような専用のソフトウェアプログラムが介在すると、タイミング関係が変化し、問題の再現が困難となることが多々ある。
【００１０】
また、上記２つ目の協調検証手法の場合、通常時のモードとは異なるモードでＬＳＩを動作させて上記ＪＴＡＧ−ＩＣＥで検証を行うようになるため、問題の再現率や発生頻度が低下し、デバッグが困難となる問題がある。協調検証を行うには、問題の発生条件を正確に特定する必要がある。
【００１１】
また、問題の発生条件が、ある程度特定でき、ＪＴＡＧ−ＩＣＥでキャッシュのトレースを行う場合でも、このキャッシュのデータは、上述のように通常時のモードとは異なるモードでＬＳＩが動作することで得られたものであるため、問題発生時のキャッシュのデータとは異なるデータをトレースしている場合もあり、常に正確なトレースを行うことが困難となる問題もある。
【００１２】
また、上記３つ目の協調検証手法の場合、携帯電話機等の電子機器の基板上で外部バス等のＬＳＩの外部信号をロジックアナライザ等で観測することは、年々、回路の集積密度が高密度化されているため、困難になってきている。
【００１３】
また、バス等の外部インターフェイスを観測できた場合でも、今日におけるＬＳＩ内部には、外部バスに対してアクセス可能なイニシエータが複数存在するため、どのイニシエータが外部バスへアクセスしているのか判断するのが難しく、上記３つ目の協調検証手法では、問題の解析を行うことは大変困難である。
【００１４】
また、上記特許文献１に開示されているシステム検証装置の場合、問題となっているアプリケーションプログラムのバスの占有率を検出することは可能であるが、問題発生条件の特定や問題の解析が困難となる問題ある。
【００１５】
本発明は、上述の課題に鑑みてなされたものであり、ＪＴＡＧ−ＩＣＥやロジックアナライザ等の測定器を用いることなく、ソフトウェアプログラムの介在を極力排除し、ＬＳＩ内部のモードを極力変化させることなく、ソフトウェアプログラム及びハードウェアにおける問題発生条件の特定、及び問題解析を行うことができるようなシステム検証方法、システム検証装置、及びこのシステム検証装置を備えた携帯端末装置の提供を目的とする。
【課題を解決するための手段】
【００１６】
本発明に係る集積回路は、上述の課題を解決するために、
複数のイニシエータと、
上記各イニシエータに対して固有に付されているイニシエータ識別番号に基づいて、バスラインに対する各イニシエータのアクセス調停を行うバスコントローラと、
上記バスコントローラから供給される、上記各イニシエータとの間で送受信されたデータを、当該データに対応する上記イニシエータ識別番号と共に記憶する内蔵メモリと、この内蔵メモリに記憶された上記データ及び上記イニシエータ識別番号を外部に出力するためのシリアルデータラインとを備え、所定のアボート、或いはシステムリセットが発生した際に、上記内蔵メモリをライトプロテクト状態とするバスイニシエータモニタとを有する。
【００１７】
そして、上記いずれかのイニシエータが、上記所定のアボート、或いはシステムリセットが発生した際に、上記ライトプロテクト状態となっている上記バスイニシエータモニタの上記内蔵メモリに記憶されている上記データ及び上記イニシエータ識別番号を読み出し、上記シリアルデータラインを介して外部に出力制御する。
【００１８】
これにより、ソフトウェアプログラムにログ出力等の動作タイミングを変化させる要素を入れることを排除することができる。また、バスコントローラの情報をそのままバスイニシエータモニタに送信して内蔵メモリに記憶しているため、当該集積回路の内部及び外部の信号や状態変化を最小限に抑えることができる。このため、ＪＴＡＧ−ＩＣＥ等の当該集積回路の状態を変化させる要素を極力排除することができる。従って、デバッグ目的のソフトウェアプログラムやハードウェアの状態変化によって引き起こされる問題の再現率の低下を防止することができる。
【発明の効果】
【００１９】
本発明は、問題発生条件の特定、問題解析を行う際に、どのようなソフトウェアプログラム、及びハードウェアの動作を行ったかを、ＪＴＡＧ−ＩＣＥ、ロジックアナライザ等の測定器を用いることなく、ソフトウェアプログラムの介在を極力排除し、ＬＳＩ内部の状態変化を極力小さくしたかたちで解析することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明を適用した実施例となる携帯電話機のブロック図である。
【図２】ソフトウェアプログラム及びハードウェアの協調検証を行うシステムの一例を示す図である。
【図３】実施例の携帯電話機の制御ＬＳＩに設けられているバスイニシエータモニタのブロック図である。
【図４】実施例の携帯電話機の制御ＬＳＩにおけるリブートの流れを示すフローチャートである。
【発明を実施するための形態】
【００２１】
本発明は、携帯電話機に適用することができる。
【００２２】
［携帯電話機の構成］
この本発明の実施例となる携帯電話機は、図１に示すように無線基地局との間で音声通話、テレビ電話通話、電子メール、Ｗｅｂデータ（Web：World Wide Web）等の無線通信を行うアンテナ１及び通信回路２と、受話音声等を出力するためのスピーカ部３と、送話音声等を集音するためのマイクロホン部４と、操作メニュー、電子メール、画像（静止画像及び動画像）等を表示するための表示部５と、十字キー、決定キー、数字キー等の複数の操作キーを備えた操作部６と、発着信等をユーザに光で通知するための発光部７（LED：Light Emitting Diode:発光ダイオード）とを有している。
【００２３】
また、この携帯電話機は、所望の被写体の静止画像或いは動画像を撮像するためのカメラ部８と、当該携帯電話機の筐体を振動させて発着信等をユーザに通知するためのバイブレーションユニット９と、現在時刻をカウントするタイマ１０と、上記無線基地局を介した無線通信処理を行うためのコミュニケーションプログラムや各種アプリケーションプログラムの他、これら各アプリケーションプログラムで取り扱われる各種データ等が記憶されたＲＯＭ１１（Read-Only Memory）と、各アプリケーションプログラムの展開領域や作業領域となるＲＡＭ１２（Random Access Memory）とを有している。
【００２４】
また、この携帯電話機は、例えばＵＳＢ（Universal Serial Bus）やＵＡＲＴ（Universal Asynchronous Receiver Transmitter）等のシステムコネクタ部１３と、イヤホン装置やヘッドホン装置の平型コネクタが接続される音声出力端子１４と、例えばＳＤメモリカード（登録商標）やメモリースティック（登録商標）等のカード型半導体メモリが装着される外部メモリ装着部１５と、当該携帯電話機全体の動作を制御する制御集積回路１６（制御ＬＳＩ、LSI：Large Scale Integration）とを有している。
【００２５】
ＲＯＭ１１には、上記コミュニケーションプログラムの他、カメラ部８の撮像制御を行うと共に、撮像した静止画像や動画像のビューア機能も備えたカメラ制御プログラムと、電子メールの作成や送受信を制御するための電子メール管理プログラムと、ユーザのスケジュールが登録されたスケジュール帳の管理を行うためのスケジュール帳管理プログラムと、コミュニケーションネットワークやインターネット等の所定のネットワーク上に設けられたサーバ装置上で公開されているＷｅｂページを閲覧するためのＷｅｂブラウジングプログラムと、電話帳の管理を行うための電話帳管理プログラムと、音楽コンテンツの再生を行うための音楽プレーヤプログラムとが記憶されている。
【００２６】
また、ＲＯＭ１１には、ユーザの所望のスケジュールが登録されるスケジュール帳と、ユーザの知人や友人等のユーザ名、静止画像（顔写真等）、住所、電話番号、電子メールアドレス、生年月日等が登録された電話帳と、音楽プレーヤプログラムに基づいて再生される音楽データと、カメラ制御プログラムのビューワ機能に基づいて再生される静止画像データ及び動画像データと、送受信された電子メールデータと、電話及び電子メールの発着信履歴等が記憶されている。
【００２７】
〔制御ＬＳＩの構成〕
制御ＬＳＩ１６は、ＣＰＵコア１７、ＤＭＡ１８（Direct Memory Access）、ＤＳＰ１９（Digital Signal Processor）、表示制御部２０、キャッシュメモリ２１、バスコントローラ２２、及びバスイニシエータモニタ２３が、当該制御ＬＳＩ１６内部の制御ライン及びデータラインを介して相互に接続されると共に、１チップに集積化されて形成されている。
【００２８】
この制御ＬＳＩ１６の各部のうち、ＣＰＵコア１７、ＤＭＡ１８、ＤＳＰ１９、及び表示制御部２０は、当該制御ＬＳＩ１６内部のデータラインに対するイニシエータ（バスマスター）となっており、当該制御ＬＳＩ１６の外部に設けられている当該携帯電話機のＲＯＭ１１やＲＡＭ１２にアクセスする際は、バスコントローラ２２を介して該ＲＯＭ１１やＲＡＭ１２にアクセスするようになっている。
【００２９】
バスコントローラ２２は、当該制御ＬＳＩ１６内の制御ラインを介して、上記各イニシエータ（上記符号１７〜符号２０）からバス制御要求がなされた際に、該各イニシエータから固有の識別番号（イニシエータＩＤ）を受け取り、このイニシエータＩＤに基づいてデータの送受信を制御するようになっている。これにより、各イニシエータ間でデータが錯綜する不都合を防止している。
【００３０】
ここで、ＣＰＵコア１７は、キャッシュメモリ２１にキャッシュされている命令／データがヒットする限り、バスコントローラ２２に対してバス制御要求は行わないが、キャッシュメモリ２１にキャッシュされている命令／データにミスヒットが生じた場合に、バスコントローラ２２に対してバス制御要求を行う。
【００３１】
ミスヒットが続いた場合、キャッシュメモリ２１に新しい命令／データを記憶する必要があるため、該キャッシュメモリ２１にキャッシュされている古い命令／データは、順次新しい命令／データに書き換えられ消失することとなる。このため、何らかの問題が生じ、ソフトウェアプログラム及びハードウェアの協調検証を行おうとしても、その問題が生じた際の命令／データは、キャッシュメモリ２１に残っていないため、協調検証が困難となる。
【００３２】
このため、当該実施例の携帯電話機に設けられている制御ＬＳＩ１６の場合、バスコントローラ２２が、イニシエータＩＤや、当該バスコントローラ２２が送受信した命令／データ等をバスイニシエータモニタ２３に供給する。そして、バスイニシエータモニタ２３が、バスコントローラ２２から供給された上記イニシエータＩＤや該バスコントローラ２２が送受信した命令／データ等を、当該バスイニシエータモニタ２３内に設けられた内蔵メモリ２４に順次書き込むようになっている。
【００３３】
バスイニシエータモニタ２３内に設けられた内蔵メモリ２４の記憶容量は、キャッシュメモリ２１の記憶容量と比較して十分に大きな記憶容量を有しており、一例ではあるが５００ステップに対応する命令／データを書き込み可能な記憶容量を有している。これによりミスヒットによって消失したキャッシュメモリ２１上の命令／データでも、ソフトウェアプログラムとハードウェアの協調検証時にトレースして検証可能となっている。
【００３４】
［制御ＬＳＩの動作］
以下、この実施例の携帯電話機に設けられている制御ＬＳＩ１６の動作を説明する。
【００３５】
まず、制御ＬＳＩ１６は、上述のようにバスコントローラ２２が、イニシエータＩＤや、当該バスコントローラ２２が送受信した命令／データ等をバスイニシエータモニタ２３に供給する。そして、バスイニシエータモニタ２３が、バスコントローラ２２から供給された上記イニシエータＩＤや該バスコントローラ２２が送受信した命令／データ等を、当該バスイニシエータモニタ２３内に設けられた内蔵メモリ２４に順次書き込むようになっている。
【００３６】
内蔵メモリ２４に書き込みを行う情報としては、バスコントローラ２２が実行している、若しくはバスコントローラ２２が持っているイニシエータＩＤ、リード／ライトフラグ、参照外部アドレス／データとなっている。なお、上記参照外部アドレスとしては、ＣＰＵコア１７等に設けられているＭＭＵ（Memory Management Unit）により論理物理変換された後の、物理アドレスが上記内蔵メモリ２４に書き込まれるようになっている。
【００３７】
ここで、バスイニシエータモニタ２３の内蔵メモリ２４に対して上記情報の書き込みを行う記憶領域が無くなった場合（＝内蔵メモリ２４がいっぱいになった場合）、バスイニシエータモニタ２３は、内蔵メモリ２４の先頭アドレスにアドレスポインタを戻し、情報の上書きを行う。或いは、バスイニシエータモニタ２３は、内蔵メモリ２４の全てのアドレスに上記情報が書き込まれる前に、該内蔵メモリ２４にそれまで書き込まれた情報を、当該携帯電話機のＲＡＭ１２に移動して書き込み（情報をＲＡＭ１２に退避させ）、該内蔵メモリ２４にそれまで書き込まれた情報を当該携帯電話機のＲＡＭ１２に全て移動した後に、該内蔵メモリ２４の先頭アドレスにアドレスポインタを戻し、先頭アドレスから情報の上書きを行う。
【００３８】
このバスイニシエータモニタ２３の内蔵メモリ２４は、ライトプロテクト機能を有しており、例えば
１．ＣＰＵコア１７がプリフェッチアボートを検出した場合、
２．ＣＰＵコア１７がデータアボートを検出した場合、
３．ＣＰＵコア１７が未定義命令アボートを検出した場合、
４．バスイニシエータモニタ２３がシステムリセットを検出した場合、
５．バスイニシエータモニタ２３のレジスタ設定でライトプロテクト機能をオンにした場合
に、該内蔵メモリ２４はライトプロテクト状態に遷移するようになっている。
【００３９】
なお、この内蔵メモリ２４のライトプロテクト状態の解除は、ＣＰＵコア１７が、制御ＬＳＩ１６内の制御ラインを介してレジスタ設定で行うようになっている。
【００４０】
次に、このようにライトプロテクト状態に遷移した内蔵メモリ２４に記憶された情報は、ＣＰＵコア１７が当該制御ＬＳＩ１６内のデータラインを介して読み出してもよいし、図２に示すようにバスイニシエータモニタ２３に設けられたシリアルデータラインを介して、当該携帯電話機に接続されたパーソナルコンピュータ装置４０等の外部機器に出力してもよい。
【００４１】
内蔵メモリ２４に記憶された情報を、バスイニシエータモニタ２３に設けられたシリアルデータラインを介して、当該携帯電話機に接続されたパーソナルコンピュータ装置４０等の外部機器に出力する場合、ＣＰＵコア１７は、バスイニシエータモニタ２３の内蔵メモリ２４をライトプロテクト状態としたまま、当該制御ＬＳＩ１６のブートモードを変更し、該内蔵メモリ２４に記憶された情報をシリアルデータラインを介して出力する「内蔵メモリリードモード」に遷移する。
【００４２】
図３にバスイニシエータモニタ２３のブロック図を示す。この図３からわかるように、バスイニシエータモニタ２３は、バスコントローラインターフェイス３０を介して、バスコントローラ２２から供給される情報を受信する。内蔵メモリコントローラ３１は、当該制御ＬＳＩ１６内の制御ラインを介してなされた設定に従って、内蔵メモリ２４に対するライトプロテクト制御や、内蔵メモリ２４に対する上記命令／データ等の情報の書き込み制御等を行う。パラレルシリアル変換部３２は、内蔵メモリ２４から読み出されたパラレルデータをシリアルデータに変換し、これを上記シリアルラインを介して上記パーソナルコンピュータ装置４０等に供給する。パーソナルコンピュータ装置４０側では、この内蔵メモリ２４から読み出したデータに基づいて、ソフトウェアプログラム及びハードウェアの協調検証を行う。
【００４３】
以下、ソフトウェアプログラムの開発時に発生した問題の解析を行うまでの流れを説明する。
【００４４】
まず、ソフトウェアプログラムの解析で容易に特定できるのは、アボート等のＣＰＵコア１７やＭＭＵ（Memory Management Unit）等で検出可能な例外処理発生条件や、ソフトウェアプログラムの処理で間違った分岐をした場合の条件等である。リセット発生時の問題解析を行う際、バスイニシエータモニタ２３のライトプロテクト条件を各種アボートに設定すると共に、内蔵メモリ２４に記憶された情報の参照方法としてシリアルデータラインを介した外部出力を設定しておく。
【００４５】
この状態で問題の再現を行うと、リセット発生と同時にバスイニシエータモニタ２３が、内蔵メモリ２４をライトプロテクト状態に遷移させ、ＣＰＵコア１７が、シリアルデータ通信可能な内蔵メモリリードモードで当該制御ＬＳＩ１６をリブートする。
【００４６】
バスイニシエータモニタ２３のシリアルデータラインは、平型コネクタとなっている音声出力端子１４の空き端子（リザーブ端子）に接続されている。そして、図２に示したパーソナルコンピュータ装置４０は、携帯電話機側の端子形状が上記平型コネクタの形状とされたシリアルデータラインを介して、該携帯電話機と接続されている。これにより、内蔵メモリ２４に記憶されている上記情報は、当該携帯電話機の筐体を解体することなく、当該携帯電話機の音声出力端子１４を介してパーソナルコンピュータ装置４０により読み出され、リセット発生時のソフトウェアプログラムの動作の解析に用いられることとなる。
【００４７】
次に、上述のリブートの流れは、図４のフローチャートに示すようになっている。ＣＰＵコア１７は、リセットの発生を検出すると、当該ＣＰＵコア１７のＲＯＭ２５に記憶されているブートプログラムに基づいて、この図４のフローチャートに示す処理を開始する。
【００４８】
ＣＰＵコア１７は、このフローチャートに示す処理を開始すると、ステップＳ１において、バスイニシエータモニタ２３の内蔵メモリ２４の状態を示すフラグを確認し、ステップＳ２において、バスイニシエータモニタ２３の内蔵メモリ２４はライトプロテクト状態であるか否かを判別する。
【００４９】
すなわち、リセットが発生すると、バスイニシエータモニタ２３は、内蔵メモリ２４をライトプロテクト状態に遷移させると共に、該内蔵メモリ２４がライトプロテクト状態であることを示すフラグを、該内蔵メモリ２４の所定の記憶領域に立てるようになっている。このため、ＣＰＵコア１７は、リセットが発生した際に、内蔵メモリ２４の上記所定の記憶領域に上記フラグが立っているか否かを判別することで、バスイニシエータモニタ２３の内蔵メモリ２４はライトプロテクト状態であるか否かを判別する。そして、ＣＰＵコア１７は、バスイニシエータモニタ２３の内蔵メモリ２４がライトプロテクト状態であるものと判別した場合は処理をステップＳ３に進め、バスイニシエータモニタ２３の内蔵メモリ２４がライトプロテクト状態ではないものと判別した場合は処理をステップＳ９に進め、制御ＬＳＩ１６の通常のブート処理を行って、この図４のフローチャートに示す処理を終了する。
【００５０】
次に、この実施例の携帯電話機の場合、ソフトウェアプログラムの問題の解析を行う検証者は、上記リセットが発生してから例えば３０秒等の所定時間以内に、上記パーソナルコンピュータ装置４０からシリアルデータラインを介して、当該携帯電話機の製造業者の固有の認証コード（ユニーク認証コード）を入力するようになっている。
【００５１】
このため、ＣＰＵコア１７は、バスイニシエータモニタ２３の内蔵メモリ２４がライトプロテクト状態であるものと判別することで処理をステップＳ３に進めると、タイマ１０からの計時情報に基づいて、上記認証コードの入力時間のカウントを開始して、処理をステップＳ４に進める。そして、ステップＳ４において、上記リセットが発生してから例えば３０秒等の所定時間が経過したか否かを判別し、該所定時間が経過していないものと判別した場合にはステップＳ５において、上記ユニーク認証コードの入力がなされたか否かを判別する。
【００５２】
上記所定時間が経過するまでの間に上記ユニーク認証コードが入力されなかった場合、ＣＰＵコア１７は、処理をステップＳ９に進め、通常のブート処理を行う。これにより、携帯電話機の製造業者以外の不正ユーザがソフトウェアプログラムのデバッグ等を行う不都合を防止することができる。
【００５３】
これに対して、上記所定時間が経過するまでの間に上記ユニーク認証コードが入力された場合には、ＣＰＵコア１７は処理をステップＳ６に進め、この入力されたユニーク認証コードと、例えばＲＯＭ２５に記憶されている正規のユニーク認証コードとに基づいて、ユニーク認証コードの認証処理を行い、ステップＳ７において、入力されたユニーク認証コードと、ＲＯＭ２５に記憶されている正規のユニーク認証コードとが一致したか否かを判別し（＝認証ＯＫか否か）、上記両者が一致しないものと判別した場合には、ユニーク認証コードの入力を行ったユーザは、上述の不正ユーザである可能性が高いため、処理をステップＳ９に進め、通常のブート処理を行う。これにより、携帯電話機の製造業者以外の不正ユーザがソフトウェアプログラムのデバッグを行う不都合を防止することができる。
【００５４】
これに対して、入力されたユニーク認証コードと、ＲＯＭ２５に記憶されている正規のユニーク認証コードとが一致したものと判別した場合には、ＣＰＵコア１７は、処理をステップＳ８に進め、内蔵メモリリードモードに遷移し、内蔵メモリ２４に記憶されている情報をシリアルデータラインを介して出力するように、バスイニシエータモニタ２３を制御する。
【００５５】
これにより、内蔵メモリ２４に記憶されている情報は、上記シリアルデータライン、及び音声出力端子１４を介して、図２に示すパーソナルコンピュータ装置４０により読み出され、リセット発生時のソフトウェアプログラムの動作の解析に用いられることとなる。
【００５６】
なお、ソフトウェアプログラムの解析を行う際に、ＪＴＡＧ−ＩＣＥ（JTAG：Joint Test Action Group、ICE:In-Circuit Emulator:登録商標）等のエミュレータを使用した場合、解析の補助が可能となる。
【００５７】
すなわち、ソフトウェアプログラムの処理の分岐が意図しない条件で分岐している場合、分岐後のコードを改変し、バスイニシエータモニタ２３の内蔵メモリ２４をライトプロテクト状態に遷移させるコードを挿入しておく。この場合、挿入するコードや実際に実行するコードを最小限とすることができるため、ソフトウェアプログラムの処理タイミングに変更が入り難くすることができる。
【００５８】
一般的に、ＪＴＡＧ−ＩＣＥ等でソフトウェアプログラムの動作をトレースした場合、キャッシュデータやレジスタ操作で発生したリードライトのトレース情報は、現在の状態から過去の状態を予想したものとなるため、問題が発生するまでの流れを正確にトレースしたものとは言いにくいものである。
【００５９】
具体的には、例えばキャッシュメモリ２１に記憶されている命令／データは、ミスヒットが続いた場合、キャッシュメモリ２１に新しい命令／データを記憶する必要があるため、順次新しい命令／データに書き換えられ、該キャッシュメモリ２１にキャッシュされていた古い命令／データは消失することとなる。
【００６０】
また、バスイニシエータモニタ２３の内蔵メモリ２４に記憶される情報も、ＣＰＵコア１７以外の、ＤＭＡ１８やＤＳＰ１９等のイニシエータにより書き換えられ、或いは新しい論理空間に割り当てられる可能性があるため、トレース情報と必ずしも一致しない。
【００６１】
このため、ソフトウェアプログラムの処理の分岐が意図しない条件で分岐している場合、分岐後のコードを改変し、バスイニシエータモニタ２３の内蔵メモリ２４をライトプロテクト状態に遷移させるコードを挿入しておくことで、問題の条件分岐後に挿入したコードが実行された際に、バスイニシエータモニタ２３の内蔵メモリ２４をライトプロテクト状態とし、問題発生までの命令／データの送受信がそのまま記録された内蔵メモリ２４の情報と、ＪＴＡＧ−ＩＣＥのトレース情報とを比較する。これにより、正確なソフトウェアプログラムのトレースを可能とすることができる。
【００６２】
［実施例の効果］
以上の説明から明らかなように、この実施例の携帯電話機は、バスコントローラ２２から供給される各イニシエータとの間で送受信されたデータ、及び当該データに対応する上記イニシエータ識別番号等を、バスイニシエータモニタ２３の内蔵メモリ２４に記憶する。そして、所定のアボート、或いはシステムリセットが発生した際に、上記内蔵メモリ２４をライトプロテクト状態とし、このライトプロテクト状態とされた内蔵メモリ２４に記憶されている上記データ及び上記イニシエータ識別番号等を、シリアルデータラインを介して外部に出力して問題発生条件の特定及び問題解析を行う。
【００６３】
これにより、ソフトウェアプログラムにログ出力等の動作タイミングを変化させる要素を入れる事を排除することができる。また、バスコントローラ２２の情報をそのままバスイニシエータモニタ２３に送信して内蔵メモリ２４に記憶しているため、制御ＬＳＩ１６の内部及び外部の信号や状態変化を最小限に抑えることができる。このため、ＪＴＡＧ−ＩＣＥ等の制御ＬＳＩ１６の状態を変化させる要素を極力排除することができる。従って、デバッグ目的のソフトウェアプログラムやハードウェアの状態変化によって引き起こされる問題の再現率の低下を防止することができる。
【００６４】
［変形例］
上述の実施例の説明では、本発明を携帯電話機に適用することとしたが、本発明は、ＰＨＳ電話機（PHS：Personal Handyphone System）、ＰＤＡ装置（PDA：Personal Digital Assistant）、携帯ゲーム機、ノート型やデスクトップ型のパーソナルコンピュータ装置等のあらゆる電子機器に適用してもよい。いずれの場合も、上述と同様の効果を得ることができる。
【００６５】
最後に、上述の実施例は、本発明の一例である。このため、本発明は上述の実施例に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論であることを付け加えておく。
【符号の説明】
【００６６】
１  携帯電話機のアンテナ、２  通信回路、３  スピーカ部、４  マイクロホン部、５  表示部、６  操作部、７  発光部（ＬＥＤ）、８  カメラ部、９  バイブレーションユニット、１０  タイマ、１１  ＲＯＭ、１２  ＲＡＭ、１３  システムコネクタ部、１４  音声出力端子、１５  外部メモリ装着部、１６  制御ＬＳＩ、１７  ＣＰＵコア、１８  ＤＭＡ、１９  ＤＳＰ、２０  表示制御部、２１  キャッシュメモリ、２２  バスコントローラ、２３  バスイニシエータモニタ、２４  内蔵メモリ、２５  ＣＰＵコアのＲＯＭ、３０  バスコントローラインターフェイス、３１  内蔵メモリコントローラ、３２  パラレル／シリアル変換部
【図１】
2011034202.tif 000003
【図２】
2011034202.tif 000004
【図３】
2011034202.tif 000005
【図４】
2011034202.tif 000006