IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローム株式会社の特許一覧

<>
  • 特開-デバッグ回路及び情報処理システム 図1
  • 特開-デバッグ回路及び情報処理システム 図2
  • 特開-デバッグ回路及び情報処理システム 図3
  • 特開-デバッグ回路及び情報処理システム 図4
  • 特開-デバッグ回路及び情報処理システム 図5
  • 特開-デバッグ回路及び情報処理システム 図6
  • 特開-デバッグ回路及び情報処理システム 図7
  • 特開-デバッグ回路及び情報処理システム 図8
  • 特開-デバッグ回路及び情報処理システム 図9
  • 特開-デバッグ回路及び情報処理システム 図10
  • 特開-デバッグ回路及び情報処理システム 図11
  • 特開-デバッグ回路及び情報処理システム 図12
  • 特開-デバッグ回路及び情報処理システム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024157301
(43)【公開日】2024-11-07
(54)【発明の名称】デバッグ回路及び情報処理システム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20241030BHJP
【FI】
G06F11/36 136
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023071587
(22)【出願日】2023-04-25
(71)【出願人】
【識別番号】000116024
【氏名又は名称】ローム株式会社
(74)【代理人】
【識別番号】110001025
【氏名又は名称】弁理士法人レクスト国際特許事務所
(72)【発明者】
【氏名】野▲崎▼賢治
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH03
5B042HH12
5B042HH30
(57)【要約】
【目的】ポーリングプログラムのデバッグを短時間で効率よく行うことが可能なデバッグ回路を提供する
【構成】情報処理装置に設けられ、情報処理装置の周辺機能の制御に用いる制御レジスタのフラグをポーリングするポーリングプログラムのデバッグを行う回路であって、周辺機能の実行命令を検知して検知信号を生成する実行命令検知回路と、制御レジスタから読み出したフラグのフラグ値と当該フラグの期待値とを比較する期待値比較回路と、検知信号及び期待値比較回路による比較結果に基づいて、制御レジスタのフラグのポーリングに関するポーリング値を計測するポーリング時間計測回路と、を有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
情報処理装置に設けられ、前記情報処理装置の周辺機能の制御に用いる制御レジスタのフラグをポーリングするポーリングプログラムのデバッグを行う回路であって、
前記周辺機能の実行命令を検知して検知信号を生成する実行命令検知回路と、
前記制御レジスタから読み出したフラグのフラグ値と当該フラグの期待値とを比較する期待値比較回路と、
前記検知信号及び前記期待値比較回路による比較結果に基づいて、前記制御レジスタのフラグのポーリングに関するポーリング値を計測するポーリング時間計測回路と、
を有することを特徴とするデバッグ回路。
【請求項2】
前記ポーリング時間計測回路は、前記実行命令検知回路による前記実行命令の検知後、前記制御レジスタから読み出したフラグのフラグ値と当該フラグの期待値とが不一致状態から一致状態に変化するまでの時間を前記ポーリング値として計測することを特徴とする請求項1に記載のデバッグ回路。
【請求項3】
前記ポーリング時間計測回路は、前記制御レジスタから読み出したフラグのフラグ値と当該フラグの期待値とが不一致状態から一致状態に変化した後、前記制御レジスタのフラグのポーリングが開始するまでの時間を前記ポーリング値として計測することを特徴とする請求項1に記載のデバッグ回路。
【請求項4】
前記実行命令検知回路は、前記制御レジスタのフラグのポーリングが開始した後、前記制御レジスタから読み出したフラグのフラグ値と当該フラグの期待値とが不一致状態から一致状態に変化するまでに実行したポーリングの回数をカウントすることを特徴とする請求項1に記載のデバッグ回路。
【請求項5】
前記ポーリング時間計測回路は、前記実行命令検知回路による前記実行命令の検知後、前記制御レジスタから読み出したフラグのフラグ値と当該フラグの期待値とが一致状態から不一致状態に変化するまでの時間を前記ポーリング値として計測することを特徴とする請求項1に記載のデバッグ回路。
【請求項6】
前記ポーリング時間計測回路は、外部から読み出し可能なレジスタを有し、前記ポーリング値を当該レジスタに格納することを特徴とする請求項1乃至5のいずれか1に記載のデバッグ回路。
【請求項7】
前記実行命令検知回路は、外部から読み出し可能なレジスタを有し、前記ポーリングの回数のカウント結果を当該レジスタに格納することを特徴とする請求項4に記載のデバッグ回路。
【請求項8】
情報処理装置と、前記情報処理装置にバスラインを介して接続された外部装置と、から構成される情報処理システムであって、
前記情報処理装置は、前記情報処理装置の周辺機能の制御に用いる制御レジスタのフラグをポーリングするポーリングプログラムのデバッグを行うデバッグ回路を含み、
前記デバッグ回路は、
前記周辺機能の実行命令を検知して検知信号を生成する実行命令検知回路と、
前記制御レジスタから読み出したフラグのフラグ値と当該フラグの期待値とを比較する期待値比較回路と、
前記検知信号及び前記期待値比較回路による比較結果に基づいて、前記制御レジスタのフラグのポーリングに関するポーリング値を計測するポーリング時間計測回路と、
を有し、
前記外部装置は、前記ポーリング時間計測回路の計測結果を前記バスラインを介して取得し、視認可能に表示することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムのデバッグを行うデバッグ回路及び情報処理システムに関する。
【背景技術】
【0002】
マイコン等のコンピュータにおいて、プログラムのデバッグが行われている。例えば、ホスト装置とワークステーション等とのデータの伝送制御をポーリング処理によって行う情報処理システムにおいて、ホスト装置が実行中のプログラムをトレースするトレース機能部を備えたデバッグ装置を用いてプログラムのデバッグが行われている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平5-233481号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、マイコンに内蔵された特殊機能レジスタ(SFR:Special Function Register)等の周辺機能の制御レジスタのポーリングプログラムのデバッグは、インサーキットエミュレータ(ICE:In Circuit Emulator)やオンチップデバッグエミュレータに搭載されているトレース機能やステップ実行機能を利用して行っていた。例えば、トレース機能を用いてSFRのフラグ値をポーリングするプログラムのデバッグを行う場合、当該プログラムを実行後にトレース内容(例えば、プログラムカウンタやSFRの内容)をダンプ後、ポーリングを開始してSFRのフラグ値が期待値になるまでの内容を抽出し、その内容を基にポーリング間隔やポーリング開始タイミングのデバッグを行っていた。また、トレース機能を持たないICE等の場合、ポーリング開始からSFRのフラグ値が期待値と一致するまでステップ実行を繰り返しながらデバッグを行っていた。
【0005】
しかしながら、トレース機能を用いてデバッグを行う場合、SFRのフラグはその内容を読み出し命令(プログラム)によって読み出すまでトレース結果に内容が反映されないため、フラグが変化した正確なタイミングを把握することができないという問題があった。
【0006】
また、ステップ実行機能を用いてデバッグを行う場合、プログラムを1命令ずつ実行しながらその都度SFRの内容を確認する必要があるため、手間と時間がかかるという問題があった。
【0007】
また、一定条件で発生する割込み処理ルーチンで定期的にSFRのフラグ値のポーリングを行うアプリケーションプログラムにおいて、割込み発生の遅延や抜けの有無を確認したい場合、トレース機能やステップ実行機能だけでは効率的なデバッグができないという問題があった。
【0008】
本発明は、上記問題点に鑑みてなされたものであり、ポーリングプログラムのデバッグを短時間で効率よく行うことが可能なデバッグ回路を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係るデバッグ回路は、情報処理装置に設けられ、前記情報処理装置の周辺機能の制御に用いる制御レジスタのフラグをポーリングするポーリングプログラムのデバッグを行う回路であって、前記周辺機能の実行命令を検知して検知信号を生成する実行命令検知回路と、前記制御レジスタから読み出したフラグのフラグ値と当該フラグの期待値とを比較する期待値比較回路と、前記検知信号及び前記期待値比較回路による比較結果に基づいて、前記制御レジスタのフラグのポーリングに関するポーリング値を計測するポーリング時間計測回路と、を有することを特徴とする。
【0010】
本発明に係る情報処理システムは、情報処理装置と、前記情報処理装置にバスラインを介して接続された外部装置と、から構成される情報処理システムであって、前記情報処理装置は、前記情報処理装置の周辺機能の制御に用いる制御レジスタのフラグをポーリングするポーリングプログラムのデバッグを行うデバッグ回路を含み、前記デバッグ回路は、前記周辺機能の実行命令を検知して検知信号を生成する実行命令検知回路と、前記制御レジスタから読み出したフラグのフラグ値と当該フラグの期待値とを比較する期待値比較回路と、前記検知信号及び前記期待値比較回路による比較結果に基づいて、前記制御レジスタのフラグのポーリングに関するポーリング値を計測するポーリング時間計測回路と、を有し、前記外部装置は、前記ポーリング時間計測回路の計測結果を前記バスラインを介して取得し、視認可能に表示することを特徴とする。
【発明の効果】
【0011】
本発明に係るデバッグ回路によれば、ポーリングプログラムのデバッグを短時間で効率よく行うことが可能なことが可能となる。
【図面の簡単な説明】
【0012】
図1】本発明の実施例1に係る情報処理システムの構成を示すブロック図である。
図2】実施例1のデバッグ処理の処理ルーチンを示すフローチャートである。
図3】実施例1のデバッグ処理の処理ルーチンを示すフローチャートである。
図4】本発明の実施例2に係る情報処理システムの構成を示すブロック図である。
図5】実施例2のデバッグ処理の処理ルーチンを示すフローチャートである。
図6】実施例2のデバッグ処理の処理ルーチンを示すフローチャートである。
図7】本発明の実施例3に係る情報処理システムの構成を示すブロック図である。
図8】実施例3のデバッグ処理の処理ルーチンを示すフローチャートである。
図9】実施例3のデバッグ処理の処理ルーチンを示すフローチャートである。
図10】実施例3のデバッグ処理の処理ルーチンを示すフローチャートである。
図11】本発明の実施例4に係る情報処理システムの構成を示すブロック図である。
図12】実施例4のデバッグ処理の処理ルーチンを示すフローチャートである。
図13】実施例4のデバッグ処理の処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施例について、図面を参照して説明する。なお、以下の各実施例における説明及び添付図面においては、実質的に同一又は等価な部分には同一の参照符号を付している。
【実施例0014】
図1は、本発明の実施例1に係る情報処理システムの構成を示すブロック図である。本実施例の情報処理システムは、外部デバッグ機器ED及びマイクロコンピュータ100から構成されている。マイクロコンピュータ100は、ICE(In Circuit Emulator)回路10及びマイクロコンピュータ回路20から構成されている。
【0015】
ICE回路10は、トレースメモリ&トレース回路11、ステップ/ブレーク回路12、実行命令検知回路13、ポーリング時間計測回路14及びフラグ期待値比較回路15を有する。これらの回路は、通信用バスBLを介して外部デバッグ機器EDに接続されている。
【0016】
トレースメモリ&トレース回路11は、マイクロコンピュータ回路20が実行したプログラムの実行履歴を記録するトレース機能を担う回路である。トレースメモリ&トレース回路11には、マイクロコンピュータ回路20からCPUクロックCLK1及びプログラム実行アドレスPA1が供給される。
【0017】
ステップ/ブレーク回路12は、1命令ずつプログラムを実行させるステップ実行の機能を担う回路である。ステップ/ブレーク回路12には、マイクロコンピュータ回路20からCPUクロックCLK1及びプログラム実行アドレスPA1が供給される。
【0018】
実行命令検知回路13は、マイクロコンピュータ回路20の周辺機能の制御プログラムの実行命令を検知する回路である。また、実行命令検知回路13は、SFR25のフラグ値(例えばUART通信の制御プログラムにおいて通信終了時に0から1に変化するような通信終了を表すフラグ等)と期待値とを比較する比較命令(以下、ポーリング命令と称する)の実行有無を検知する。実行命令検知回路13には、CPUクロックCLK1、プログラム実行アドレスPA1及びプログラム開始信号PS1が供給される。
【0019】
実行命令検知回路13は、アプリケーションプログラム上の物理アドレス値を格納する命令アドレスレジスタ31を有する。実行命令検知回路13は、当該物理アドレス値とプログラム実行アドレスPA1の値とが一致した場合に、ワンショットの実行検知トリガパルス信号DTSを出力する。
【0020】
ポーリング時間計測回路14は、SFR25のフラグのポーリングに関するポーリング値を計測する回路である。本実施例では、ポーリング時間計測回路14は、実行命令検知回路13による実行命令の検知後、SFR25のフラグ値とその期待値とが不一致状態から一致状態に変化するまでの時間をポーリング値として計測する。
【0021】
ポーリング時間計測回路14は、時間計測タイマー41、計測値レジスタ42及び最大値レジスタ43を有する。ポーリング時間計測回路14には、CPUクロックCLK1が供給される。また、ポーリング時間計測回路14には、フラグ期待値比較回路15から期待値一致トリガパルス信号MTSが供給される。
【0022】
時間計測タイマー41は、CPUクロックCLK1に基づいてカウントを行うことにより、ポーリング時間を計測する。計測値レジスタ42は、時間計測タイマー41による最新のポーリング時間計測結果を格納する。最大値レジスタ43は、ポーリング時間計測結果を示す計測値のうちの最大値(ポーリング時間の最大値)を格納する。ポーリング時間計測回路14は、ポーリング時間計測の開始時にワンショットの時間計測開始トリガパルス信号TTSを出力する。
【0023】
フラグ期待値比較回路15は、期待値データレジスタ51及びビット列マスクレジスタ52を有する。フラグ期待値比較回路15には、SFR25のフラグ値からなるビット列FBSが供給される。
【0024】
期待値データレジスタ51は、ビット列FBSと同じビット幅を持つ期待値データを格納する。ビット列マスクレジスタ52は、ビット列FBSと同じビット幅のビット列を取り出すためのビットマスク値を格納する。フラグ期待値比較回路15は、これをビット列FBSとビット列マスクレジスタ52から読み出されたビットマスク値との論理積の値を、期待値データレジスタ51から読み出した期待値データと比較する。フラグ期待値比較回路15は、論理積の値と期待値データとが不一致状態から一致状態に変化した場合に、ワンショットの期待値一致トリガパルス信号MTSを出力する。
【0025】
マイクロコンピュータ回路20は、CPU21、クロック制御回路22、バスブリッジ23、プログラムメモリ24及びSFR25を有する。
【0026】
CPU(Central Processing Unit)21は、マイクロコンピュータ回路20の全体の動作を制御する処理制御部である。本実施例では、CPU21は、バスブリッジ23を介してプログラムメモリ24及びSFR25に接続されている。
【0027】
クロック制御回路22は、CPU21の動作クロックであるCPUクロックCLK1を出力する。CPUクロックCLK1は、CPU21に供給されるほか、ICE回路10のトレースメモリ&トレース回路11、ステップ/ブレーク回路12、実行命令検知回路13、ポーリング時間計測回路14及びフラグ期待値比較回路15に供給される。
【0028】
プログラムメモリ24は、マイクロコンピュータ回路20が実行する様々なプログラムを格納する記憶装置である。プログラムメモリ24には、例えばSFR25のフラグ値をポーリングするためのポーリングプログラムが格納されている。
【0029】
SFR25は、マイクロコンピュータ回路20の周辺機能の制御に用いるレジスタ値を格納する特殊機能レジスタである。例えば、SFR25には、マイクロコンピュータ回路20に内蔵された図示せぬUART(Universal Asynchronous Receiver Transmitter)機能の通信制御や状態を表すレジスタ値が格納される。
【0030】
次に、本実施例のICE回路10が実行するデバッグ処理の処理動作について説明する。
【0031】
図2及び図3は、実施例1のデバッグ処理の処理ルーチンを示すフローチャートである。
【0032】
まず、ICE回路10は、ポーリング命令が格納されているプログラムメモリ24上の物理アドレス値を、外部デバッグ機器EDから通信用バスBLを経由して取得し、実行命令検知回路13の命令アドレスレジスタ31に格納する(STEP101)。
【0033】
また、ICE回路10は、SFR25のフラグの期待値データを外部デバッグ機器EDから通信用バスBLを経由して取得し、フラグ期待値比較回路15の期待値データレジスタ51に格納する(STEP102)。
【0034】
また、ICE回路10は、ビット列FBSのマスクに用いるビットマスク値を外部デバッグ機器EDから通信用バスBLを経由して取得し、フラグ期待値比較回路15のビット列マスクレジスタ52に格納する(STEP103)。
【0035】
ポーリング時間計測回路14は、時間計測タイマー41及び最大値レジスタ43の値を“0”にリセットする(STEP104)。
【0036】
アプリケーションプログラムがスタートすると、実行命令検知回路13は、CPUクロックCLK1に同期して、命令アドレスレジスタ31に格納されている物理アドレス値とプログラム実行アドレスPA1の値とを比較する(STEP105)。
【0037】
実行命令検知回路13は、当該比較の結果、両者のアドレス値が一致したか否かを判定する(STEP106)。
【0038】
アドレス値が一致しないと判定すると(STEP106:NO)、STEP105に戻り、実行命令検知回路13は、再びCPUクロックCLK1に同期してアドレス値の比較を行う。
【0039】
一方、アドレス値が一致したと判定すると(STEP106:YES)、実行命令検知回路13は、実行命令を検知したことを示す実行検知トリガパルス信号DTSを出力する(STEP107)。
【0040】
ポーリング時間計測回路14は、実行検知トリガパルス信号DTSの供給を受け、これに応じて時間計測タイマー41のカウントをスタートさせる。また、ポーリング時間計測回路14は、時間計測を開始したことを示す時間計測開始トリガパルス信号TTSを出力する(STEP108)。
【0041】
フラグ期待値比較回路15は、CPUクロックCLK1に同期して、ビット列FBSとビット列マスクレジスタ52から読み出したビットマスク値との論理積の値と、期待値データレジスタ51から読み出した期待値データと、を比較する(STEP109)。
【0042】
フラグ期待値比較回路15は、当該比較の結果、両者の値が不一致状態から一致状態に変化したか否かを判定する(STEP110)。
【0043】
値が不一致のままであると判定すると(STEP110:NO)、STEP109に戻り、フラグ期待値比較回路15は、再びCPUクロックCLK1に同期して論理積の値と期待値データとの比較を行う。
【0044】
一方、値が一致したと判定すると(STEP110:YES)、フラグ期待値比較回路15は、期待値が一致したことを示す期待値一致トリガパルス信号MTSを出力する(STEP111)。
【0045】
ポーリング時間計測回路14は、期待値一致トリガパルス信号MTSの供給を受けて時間計測タイマー41のカウントをストップさせ、その時の時間計測タイマーのカウント値を計測値として計測値レジスタ42に格納する(STEP112)。
【0046】
ポーリング時間計測回路14は、計測値レジスタ42に格納された計測値と最大値レジスタ43から読み出した最大値とを比較し、値が大きい方を最大値(すなわち計測値の方が大きい場合、新たな最大値)として最大値レジスタ43に格納する(STEP113)。
【0047】
外部デバッグ機器EDは、ポーリング時間計測回路14の最大値レジスタ43に格納されている最大値を、通信用バスBLを経由して定期的に読み出し、外部デバッグ機器EDに接続されたモニタ用のPC(図1では図示を省略)の画面に表示させる(STEP114)。
【0048】
以上のように、本実施例の情報処理システムでは、ICE回路10に実行命令検知回路13、ポーリング時間計測回路14及びフラグ期待値比較回路15が設けられている。かかる構成によれば、SFR25のフラグ値のポーリングを開始後、フラグ値及び期待値が不一致状態から一致状態になるまでの時間(最大値)を計測し、それをモニタ画面上に表示させることができる。
【0049】
これにより、上記のような回路を有しないICE回路においてトレース機能を用いてデバッグを行う場合とは異なり、フラグが不一致状態から一致状態へと変化した正確なタイミングを把握することが可能となる。また、ステップ実行機能により1命令ずつプログラムを実行してデバッグを行う場合とは異なり、短時間でデバッグを行うことが可能となる。
【0050】
したがって、本実施例のICE回路10によれば、ポーリングプログラムのデバッグを短時間で効率よく行うことが可能となる。
【実施例0051】
次に、本発明の実施例2について説明する。本実施例のICE回路は、フラグ値が一致状態になってからポーリングを開始するまでの時間を計測するための構成を有する点で、実施例1のICE回路10と異なる。
【0052】
図4は、実施例2に係る情報処理システムの構成を示すブロック図である。本実施例の情報処理システムは、外部デバッグ機器ED及びマイクロコンピュータ100Aから構成されている。マイクロコンピュータ100Aは、ICE回路10A及びマイクロコンピュータ回路20から構成されている。なお、ここでは実行命令検知回路13、第1ポーリング時間計測回路14及びフラグ期待値比較回路15の内部構成については省略して示している。
【0053】
ICE回路10Aは、実施例1のポーリング時間計測回路14と同様の機能を有する第1ポーリング時間計測回路14に加えて、第2ポーリング時間計測回路16を有する。
【0054】
第2ポーリング時間計測回路16は、SFR25のフラグ値とその期待値とが不一致状態から一致状態に変化した後、SFR25のポーリングが開始するまでの時間をポーリング値として計測する回路である。
【0055】
第2ポーリング時間計測回路16は、時間計測タイマー61、計測値レジスタ62及び最大値レジスタ63を有する。第2ポーリング時間計測回路16には、CPUクロックCLK1が供給される。また、第2ポーリング時間計測回路16には、フラグ期待値比較回路15から期待値一致トリガパルス信号MTSが供給される。
【0056】
時間計測タイマー61は、CPUクロックCLK1に基づいてカウントを行うことにより、ポーリング時間を計測する。計測値レジスタ62は、時間計測タイマー41による最新のポーリング時間計測結果を格納する。最大値レジスタ63は、ポーリング時間計測結果を示す計測値のうちの最大値(ポーリング時間の最大値)を格納する。
【0057】
第2ポーリング時間計測回路16は、ポーリング時間計測の開始時にワンショットの時間計測開始トリガパルス第2信号TTS2を出力する。時間計測開始トリガパルス第2信号TTS2は、実行命令検知回路13に供給される。
【0058】
次に、本実施例のICE回路10Aが実行するデバッグ処理の処理動作について説明する。
【0059】
図5及び図6は、実施例2のデバッグ処理の処理ルーチンを示すフローチャートである。
【0060】
まず、ICE回路10Aは、ポーリング命令が格納されているプログラムメモリ24上の物理アドレス値を、外部デバッグ機器EDから通信用バスBLを経由して取得し、実行命令検知回路13の命令アドレスレジスタ31に格納する(STEP201)。
【0061】
また、ICE回路10Aは、SFR25のフラグの期待値データを外部デバッグ機器EDから通信用バスBLを経由して取得し、フラグ期待値比較回路15の期待値データレジスタ51に格納する(STEP202)。
【0062】
また、ICE回路10Aは、ビット列FBSのマスクに用いるビットマスク値を外部デバッグ機器EDから通信用バスBLを経由して取得し、フラグ期待値比較回路15のビット列マスクレジスタ52に格納する(STEP203)。
【0063】
ポーリング時間計測回路14は、時間計測タイマー41及び最大値レジスタ43の値を“0”にリセットする(STEP204)。
【0064】
アプリケーションプログラムがスタートすると、フラグ期待値比較回路15は、CPUクロックCLK1に同期して、ビット列FBSをビット列マスクレジスタ52から読み出したビットマスク値でマスクした値と、期待値データレジスタ51から読み出した期待値データと、を比較する(STEP205)。
【0065】
フラグ期待値比較回路15は、当該比較の結果、両者の値が不一致状態から一致状態に変化したか否かを判定する(STEP206)。
【0066】
値が不一致のままであると判定すると(STEP206:NO)、STEP205に戻り、フラグ期待値比較回路15は、再びCPUクロックCLK1に同期してビット列FBSをマスクした値と期待値データとの比較を行う。
【0067】
一方、値が一致したと判定すると(STEP206:YES)、フラグ期待値比較回路15は、期待値が一致したことを示す期待値一致トリガパルス信号MTSを出力する(STEP207)。
【0068】
第2ポーリング時間計測回路16は、期待値一致トリガパルス信号MTSの供給を受け、これに応じて時間計測タイマー61のカウントをスタートさせる。また、第2ポーリング時間計測回路16は、時間計測を開始したことを示す時間計測開始トリガパルス第2信号TTS2を出力する(STEP208)。
【0069】
実行命令検知回路13は、時間計測開始トリガパルス第2信号TTS2の供給を受け、これに応じて、CPUクロックCLK1に同期して、命令アドレスレジスタ31に格納されている物理アドレス値とプログラム実行アドレスPA1の値とを比較する(STEP209)。
【0070】
実行命令検知回路13は、当該比較の結果、両者のアドレス値が一致したか否かを判定する(STEP210)。
【0071】
アドレス値が一致しないと判定すると(STEP210:NO)、STEP209に戻り、実行命令検知回路13は、再びCPUクロックCLK1に同期してアドレス値の比較を行う。
【0072】
一方、アドレス値が一致したと判定すると(STEP210:YES)、実行命令検知回路13は、実行命令を検知したことを示す実行検知トリガパルス信号DTSを出力する(STEP211)。
【0073】
第2ポーリング時間計測回路16は、実行検知トリガパルス信号DTSの供給を受けて時間計測タイマー61のカウントをストップさせ、その時の時間計測タイマーのカウント値を計測値として計測値レジスタ62に格納する(STEP212)。
【0074】
第2ポーリング時間計測回路16は、計測値レジスタ62に格納された計測値と最大値レジスタ63から読み出した最大値とを比較し、値が大きい方を最大値(すなわち計測値の方が大きい場合、新たな最大値)として最大値レジスタ63に格納する(STEP213)。
【0075】
外部デバッグ機器EDは、第2ポーリング時間計測回路64の最大値レジスタ63に格納されている最大値を、通信用バスBLを経由して定期的に読み出し、外部デバッグ機器EDに接続されたモニタ用のPC(図4では図示を省略)の画面に表示させる(STEP214)。
【0076】
以上のように、本実施例の情報処理システムでは、ICE回路10Aに実行命令検知回路13、第1ポーリング時間計測回路14、フラグ期待値比較回路15及び第2ポーリング時間計測回路16が設けられている。かかる構成によれば、SFR25のフラグ値及び期待値が不一致状態から一致状態に変化してから、ポーリングを開始するまでの時間(最大値)を計測し、それをモニタ画面上に表示させることができる。
【0077】
これにより、上記のような回路を有しないICE回路においてトレース機能やステップ機能を用いてデバッグを行う場合とは異なり、ポーリング間隔とポーリング処理の遅延及び処理抜けのデバッグを短時間で効率よく行うことが可能となる。
【0078】
したがって、本実施例のICE回路10Aによれば、ポーリングプログラムのデバッグを短時間で効率よく行うことが可能となる。
【実施例0079】
次に、本発明の実施例3について説明する。本実施例のICE回路は、ポーリングを開始してからフラグ値及び期待値が不一致状態から一致状態に変化するまでのポーリング回数を測定するための構成を有する点で、実施例1のICE回路10と異なる。
【0080】
図7は、実施例3に係る情報処理システムの構成を示すブロック図である。本実施例の情報処理システムは、外部デバッグ機器ED及びマイクロコンピュータ100Bから構成されている。マイクロコンピュータ100Bは、ICE回路10B及びマイクロコンピュータ回路20から構成されている。なお、ここではポーリング時間計測回路14及びフラグ期待値比較回路15の内部構成については省略して示している。
【0081】
本実施例の実行命令検知回路13は、命令アドレスレジスタ31に加えて、実行回数カウンタ32、実行回数レジスタ33及び最大値レジスタ34を有する。
【0082】
実行回数カウンタ32は、ポーリング命令の実行回数をカウントするためのカウンタである。具体的には、実行命令検知回路13が、命令アドレスレジスタ31に格納されている物理アドレス値とプログラム実行アドレスPA1との比較をCPUクロックCLK1に同期して行い、両者の値が一致する毎に実行回数カウンタ32のカウント値がインクリメントされる。
【0083】
実行回数レジスタ33は、実行回数カウンタ32のカウント値を格納するレジスタである。具体的には、実行命令検知回路13が期待値一致トリガパルス信号MTSの供給を受けて実行回数カウンタ32のインクリメントをストップした時点での実行回数カウンタ32のカウント値が、実行回数レジスタ33に格納される。
【0084】
最大値レジスタ34は、実行回数カウンタ32のカウント値の最大値(命令実行回数の最大値)を格納するレジスタである。実行命令検知回路13は、実行回数レジスタ33に格納されているカウント値と最大値レジスタ34に格納されているカウント値とを比較し、大きい方のカウント値を最大値として最大値レジスタ34に格納する。
【0085】
上記構成により、本実施例の実行命令検知回路13は、SFR25のポーリングが開始した後、SFR25のフラグ値とその期待値とが不一致状態から一致状態に変化するまでに実行したポーリングの回数を計測(カウント)する機能を有する。
【0086】
次に、本実施例のICE回路10Bが実行するデバッグ処理の処理動作について説明する。
【0087】
図8図9及び図10は、実施例3のデバッグ処理の処理ルーチンを示すフローチャートである。
【0088】
まず、ICE回路10Bは、ポーリング命令が格納されているプログラムメモリ24上の物理アドレス値を、外部デバッグ機器EDから通信用バスBLを経由して取得し、実行命令検知回路13の命令アドレスレジスタ31に格納する(STEP301)。
【0089】
実行命令検知回路13は、実行回数カウンタ32及び最大値レジスタ34の値を“0”にリセットする(STEP302)。
【0090】
また、ICE回路10Bは、SFR25のフラグの期待値データを外部デバッグ機器EDから通信用バスBLを経由して取得し、フラグ期待値比較回路15の期待値データレジスタ51に格納する(STEP303)。
【0091】
また、ICE回路10Bは、ビット列FBSのマスクに用いるビットマスク値を外部デバッグ機器EDから通信用バスBLを経由して取得し、フラグ期待値比較回路15のビット列マスクレジスタ52に格納する(STEP304)。
【0092】
ポーリング時間計測回路14は、最大値レジスタ43の値を“0”にリセットする(STEP305)。
【0093】
アプリケーションプログラムがスタートすると、実行命令検知回路13は、CPUクロックCLK1に同期して、命令アドレスレジスタ31に格納されている物理アドレス値とプログラム実行アドレスPA1のアドレス値とを比較する(STEP306)。
【0094】
実行命令検知回路13は、当該比較の結果、両者のアドレス値が一致したか否かを判定する(STEP307)。
【0095】
値が一致しないと判定すると(STEP307:NO)、STEP306に戻り、実行命令検知回路13は、再びCPUクロックCLK1に同期して命令アドレスレジスタ31に格納されている物理アドレス値とプログラム実行アドレスPA1のアドレス値との比較を行う。
【0096】
一方、値が一致すると判定すると(STEP307:YES)、実行命令検知回路13は、実行検知トリガパルス信号DTSを出力する(STEP308)。
【0097】
実行命令検知回路13は、実行回数カウンタ32のカウント値を+1インクリメントする(STEP309)。
【0098】
実行命令検知回路13は、その後も命令アドレスレジスタ31に格納されている物理アドレス値とプログラム実行アドレスPA1のアドレス値との比較を継続して行い、一致する度に実行回数カウンタ32のカウント値を+1インクリメントする。
【0099】
ポーリング時間計測回路14は、実行検知トリガパルス信号DTSの供給を受け、これに応じて時間計測タイマー41のカウントをスタートさせる。また、ポーリング時間計測回路14は、時間計測を開始したことを示す時間計測開始トリガパルス信号TTSを出力する(STEP310)。
【0100】
フラグ期待値比較回路15は、CPUクロックCLK1に同期して、ビット列FBSをビット列マスクレジスタ52から読み出したビットマスク値でマスクした値と、期待値データレジスタ51から読み出した期待値データと、を比較する(STEP311)。
【0101】
フラグ期待値比較回路15は、当該比較の結果、両者の値が不一致状態から一致状態に変化したか否かを判定する(STEP312)。
【0102】
値が不一致のままであると判定すると(STEP312:NO)、STEP311に戻り、フラグ期待値比較回路15は、再びCPUクロックCLK1に同期してビット列FBSをマスクした値と期待値データとの比較を行う。
【0103】
一方、値が一致したと判定すると(STEP312:YES)、フラグ期待値比較回路15は、期待値が一致したことを示す期待値一致トリガパルス信号MTSを出力する(STEP313)。
【0104】
ポーリング時間計測回路14は、期待値一致トリガパルス信号MTSの供給を受けて時間計測タイマー41のカウントをストップさせ、その時の時間計測タイマーのカウント値を計測値として計測値レジスタ42に格納する(STEP314)。
【0105】
実行命令検知回路13は、実行回数カウンタ32のカウント値のインクリメントをステップさせ、実行回数カウンタ32のカウント値を実行回数レジスタ33に格納する(STEP315)。
【0106】
ポーリング時間計測回路14は、計測値レジスタ42に格納された計測値と最大値レジスタ43から読み出した最大値とを比較する(STEP316)。
【0107】
ポーリング時間計測回路14は、比較の結果、大きい方の値を最大値レジスタ43に格納する(STEP317)。
【0108】
実行命令検知回路13は、実行回数レジスタ33に格納されたカウント値と最大値レジスタ34から読み出した最大値とを比較する(STEP318)。
【0109】
実行命令検知回路13は、比較の結果、大きい方のカウント値を最大値レジスタ34に格納する(STEP319)。
【0110】
外部デバッグ機器EDは、通信用バスBLを経由して、ポーリング時間計測回路14の最大値レジスタ43に格納されている最大値、及び実行命令検知回路13の最大値レジスタ34に格納されている最大値をそれぞれ定期的に読み出す(STEP320)。
【0111】
外部デバッグ機器EDは、自身に接続されたモニタ用のPC(図7では図示を省略)の画面に表示させる(STEP321)。
【0112】
以上のように、本実施例の情報処理システムでは、ICE回路10Bに実行命令検知回路13、ポーリング時間計測回路14及びフラグ期待値比較回路15が設けられている。実行命令検知回路13は、命令アドレスレジスタ31、実行回数カウンタ32、実行回数レジスタ33及び最大値レジスタ34を有する。かかる構成によれば、ポーリングを開始してからフラグ値及び期待値が不一致状態から一致状態に変化するまでに実行したポーリングの回数(最大値)をカウントし、それをモニタ画面上に表示させることができる。
【0113】
また、実施例1の情報処理システムと同様の動作により、SFR25のフラグ値のポーリングを開始後、フラグ値及び期待値が不一致状態から一致状態になるまでの時間(最大値)を計測し、それをモニタ用の画面(例えば、PCの画面)上に表示させることができる。
【0114】
したがって、本実施例のICE回路10Cによれば、ポーリングプログラムが仕様通りに動作しているか否かを目視により確認することが可能となる。
【実施例0115】
次に、本発明の実施例4について説明する。本実施例のICE回路は、フラグ値及び期待値が一致状態から不一致状態に変化するまでのポーリング回数を測定するための構成を有する点で、実施例1のICE回路10と異なる。
【0116】
図11は、実施例4に係る情報処理システムの構成を示すブロック図である。本実施例の情報処理システムは、外部デバッグ機器ED及びマイクロコンピュータ100Cから構成されている。マイクロコンピュータ100Cは、ICE回路10C及びマイクロコンピュータ回路20から構成されている。
【0117】
本実施例のフラグ期待値比較回路15は、ビット列FBS及びビットマスク値の論理積の値と期待値データとが一致状態から不一致状態に変化した場合に、ワンショットの期待値不一致トリガパルス信号UTSを出力する。
【0118】
次に、本実施例のICE回路10Cが実行するデバッグ処理の処理動作について説明する。
【0119】
図12及び図13は、実施例4のデバッグ処理の処理ルーチンを示すフローチャートである。
【0120】
まず、ICE回路10は、ポーリング命令が格納されているプログラムメモリ24上の物理アドレス値を、外部デバッグ機器EDから通信用バスBLを経由して取得し、実行命令検知回路13の命令アドレスレジスタ31に格納する(STEP401)。
【0121】
また、ICE回路10は、SFR25のフラグの期待値データを外部デバッグ機器EDから通信用バスBLを経由して取得し、フラグ期待値比較回路15の期待値データレジスタ51に格納する(STEP402)。
【0122】
また、ICE回路10は、ビット列FBSのマスクに用いるビットマスク値を外部デバッグ機器EDから通信用バスBLを経由して取得し、フラグ期待値比較回路15のビット列マスクレジスタ52に格納する(STEP403)。
【0123】
ポーリング時間計測回路14は、時間計測タイマー41及び最大値レジスタ43の値を“0”にリセットする(STEP404)。
【0124】
アプリケーションプログラムがスタートすると、実行命令検知回路13は、CPUクロックCLK1に同期して、命令アドレスレジスタ31に格納されている物理アドレス値とプログラム実行アドレスPA1の値とを比較する(STEP405)。
【0125】
実行命令検知回路13は、当該比較の結果、両者のアドレス値が一致したか否かを判定する(STEP406)。
【0126】
アドレス値が一致しないと判定すると(STEP406:NO)、STEP405に戻り、実行命令検知回路13は、再びCPUクロックCLK1に同期してアドレス値の比較を行う。
【0127】
一方、アドレス値が一致したと判定すると(STEP406:YES)、実行命令検知回路13は、実行命令を検知したことを示す実行検知トリガパルス信号DTSを出力する(STEP407)。
【0128】
ポーリング時間計測回路14は、実行検知トリガパルス信号DTSの供給を受け、これに応じて時間計測タイマー41のカウントをスタートさせる。また、ポーリング時間計測回路14は、時間計測を開始したことを示す時間計測開始トリガパルス信号TTSを出力する(STEP408)。
【0129】
フラグ期待値比較回路15は、CPUクロックCLK1に同期して、ビット列FBSとビット列マスクレジスタ52から読み出したビットマスク値との論理積の値と、期待値データレジスタ51から読み出した期待値データと、を比較する(STEP409)。
【0130】
フラグ期待値比較回路15は、当該比較の結果、両者の値が一致状態から不一致状態に変化したか否かを判定する(STEP410)。
【0131】
値が不一致ではない、すなわち一致状態のままであると判定すると(STEP410:NO)、STEP409に戻り、フラグ期待値比較回路15は、再びCPUクロックCLK1に同期して論理積の値と期待値データとの比較を行う。
【0132】
一方、値が不一致状態になったと判定すると(STEP410:YES)、フラグ期待値比較回路15は、期待値が不一致であることを示す期待値不一致トリガパルス信号UTSを出力する(STEP411)。
【0133】
ポーリング時間計測回路14は、期待値不一致トリガパルス信号UTSの供給を受けて時間計測タイマー41のカウントをストップさせ、その時の時間計測タイマーのカウント値を計測値として計測値レジスタ42に格納する(STEP412)。
【0134】
ポーリング時間計測回路14は、計測値レジスタ42に格納された計測値と最大値レジスタ43から読み出した最大値とを比較し、値が大きい方を最大値(すなわち計測値の方が大きい場合、新たな最大値)として最大値レジスタ43に格納する(STEP413)。
【0135】
外部デバッグ機器EDは、ポーリング時間計測回路14の最大値レジスタ43に格納されている最大値を、通信用バスBLを経由して定期的に読み出し、外部デバッグ機器EDに接続されたPC(図1では図示を省略)の画面に表示させる(STEP414)。
【0136】
以上のように、本実施例の情報処理システムでは、ICE回路10Cのフラグ期待値比較回路15が、フラグ値及び期待値が一致状態から不一致状態に変化した際に、期待値不一致トリガパルス信号UTSを出力する。かかる構成によれば、SFR25のフラグ値及び期待値が一致状態から不一致状態になるまでの時間(最大値)を計測し、それをモニタ画面上に表示させることができる。
【0137】
なお、本発明は上記実施形態に限定されない。例えば、上記実施例4では、実施例1の構成を基本構成として、フラグ期待値比較回路15が期待値不一致トリガパルス信号UTSを出力する場合を例として説明した。しかし、適用対象は実施例1に限られず、実施例2の構成や及び実施例3の構成と上記実施例4のフラグ期待値比較回路15とを組み合わせてもよい。
【0138】
例えば、実施例2において、フラグ期待値比較回路15が期待値不一致トリガパルス信号UTSを出力するように構成することにより、SFR25のフラグ値及び期待値が一致状態から不一致状態に変化してから、ポーリングを開始するまでの時間を計測することが可能となる。
【0139】
また、実施例3において、フラグ期待値比較回路15が期待値不一致トリガパルス信号UTSを出力するように構成することにより、ポーリングを開始してからフラグ値及び期待値が一致状態から不一致状態に変化するまでに実行したポーリングの回数をカウントすることが可能となる。
【符号の説明】
【0140】
100 マイクロコンピュータ
10 ICE回路
11 トレースメモリ/トレース回路
12 ステップ/ブレーク回路
13 実行命令検知回路
14 ポーリング時間計測回路
15 フラグ期待値比較回路
16 第2ポーリング時間計測回路
20 マイクロコンピュータ回路
21 CPU
22 クロック制御回路
23 バスブリッジ
24 プログラムメモリ
25 SFR
31 命令アドレスレジスタ
32 実行回数カウンタ
33 実行回数レジスタ
34 最大値レジスタ
41 時間計測タイマー
42 計測値レジスタ
43 最大値レジスタ
51 期待値データレジスタ
52 ビット列マスクレジスタ
61 時間計測タイマー
62 計測値レジスタ
63 最大値レジスタ

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13