JP2009042971A - リアルタイムウォッチ装置及びその方法 - Google Patents

リアルタイムウォッチ装置及びその方法 Download PDF

Info

Publication number
JP2009042971A
JP2009042971A JP2007206433A JP2007206433A JP2009042971A JP 2009042971 A JP2009042971 A JP 2009042971A JP 2007206433 A JP2007206433 A JP 2007206433A JP 2007206433 A JP2007206433 A JP 2007206433A JP 2009042971 A JP2009042971 A JP 2009042971A
Authority
JP
Japan
Prior art keywords
watch
real
memory
information
time watch
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.)
Granted
Application number
JP2007206433A
Other languages
English (en)
Other versions
JP2009042971A5 (ja
JP4856023B2 (ja
Inventor
Masahiro Sekiguchi
雅博 関口
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2007206433A priority Critical patent/JP4856023B2/ja
Priority to CNA2008101454237A priority patent/CN101364201A/zh
Priority to US12/188,650 priority patent/US20090044175A1/en
Publication of JP2009042971A publication Critical patent/JP2009042971A/ja
Publication of JP2009042971A5 publication Critical patent/JP2009042971A5/ja
Application granted granted Critical
Publication of JP4856023B2 publication Critical patent/JP4856023B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】メモリの値を安全に正しく参照することができるようにする。
【解決手段】ターゲットシステムにおけるプログラムの実行中に、前記ターゲットシステムで用いられるメモリの値を表示するリアルタイムウォッチ装置であって、登録されたウォッチ情報を取得するウォッチ情報取得部と、受け取ったメモリアドレスに格納された値を前記メモリから読み出すメモリアクセス部と、前記取得されたウォッチ情報に含まれる参照されるべきメモリアドレスに対するアクセスが可能か否かを判断するメモリアクセス可否判断部と、前記メモリアクセス可否判断部でアクセス可能と判断されたメモリアドレスを前記メモリアクセス部に出力し、前記メモリアクセス部によって読み出された値を表示するウォッチ表示部とを有する。
【選択図】図1

Description

本発明は、組込み機器のソフトウェア開発におけるデバッグ技術に関する。
組込み機器の開発においてはエミュレータが使われることがある。開発の初期の段階では、エミュレータに搭載されているエミュレーションメモリが利用される。但し、エミュレータを利用する場合であっても、開発の終盤では実際の組込み機器上のマイコン内蔵メモリやマイコンに外付けされた拡張メモリ(外部メモリ)を使ってのデバッグが必要となる。一般にエミュレータは、マイコンの内蔵メモリや外部メモリ等へアクセスする機能を有しており、ユーザプログラムのデバッグの際には、マイコンにおいてプログラムを実行、又は停止させながら、各種メモリの参照、変更が行えるように構成されている。
エミュレータにおける各種メモリに対するアクセス機能は、例えば、マイコンに、ユーザプログラムの実行を停止させ、エミュレータ制御プログラム(モニタプログラム)を実行させて、各種メモリの内容を外部に出力させることによって実現されている。また、メモリを参照する際にユーザプログラムを停止すること等の影響をより少なくする方法として、マイコンに内蔵されたデバッグ用DMAC(ダイレクト・メモリ・アクセス・コントローラ)を通して外部メモリを参照する方法も提案されている(特許文献1参照)。この方法では、マイコンのCPUからメモリバスの使用権を獲得してメモリへのアクセスを行うので、前述のモニタプログラムによって参照する方法に比べてユーザプログラムの実行への影響が少ない。
プログラム開発におけるデバッグの際には、このようなメモリへのアクセス技術を使って、プログラム実行中に各種メモリに定期的にアクセスして値を参照するリアルタイムウォッチ装置が使われている。
特開平8−328898号公報
最近の組込み機器には多機能、高機能化へのニーズが高く、これに比例して組込み機器を制御するソフトウェアは巨大になっている。従来は8ビットマイコンが使われていた分野においても、メモリ空間のより広い32ビットマイコンへのシフトが進んでいる。更に、マイコンに内蔵されたメモリに加えて、外付けされた外部メモリを搭載するシステムが増えている。マイコンが有するCPUで動作するプログラムが外部メモリを使う場合には、拡張方法や外部メモリの種類に応じて、バス幅、ウェイト、バスサイクルの開始及び終了のタイミング等を、メモリコントロールレジスタ等の制御レジスタを使って初期設定する必要がある。
通常の場合、これらの設定はプログラムのスタートアップルーチンにて行われ、その設定後であれば、プログラムによって外部メモリに安全に正しくアクセスし、値を参照することができる。プログラムのデバッグの際にリアルタイムウォッチ機能等によってメモリにアクセスして値を参照する場合にも、プログラムで参照する場合と同様に、この初期設定がされていないと基本的には安全に正しくアクセスすることはできない。また、初期設定された後にシステムがリセットされた場合にも、スタートアップルーチンで設定した制御レジスタの内容は全てクリア(初期化)されてしまうので、やはり外部メモリにアクセスすることができなくなってしまう。
プログラムが実行されているときに、システムのリセットがどのタイミングで起きるかは、通常は分からない。リアルタイムウォッチ装置が定期的に外部メモリを参照しているタイミングで、システムのリセットが発生すると、リアルタイムウォッチ装置は、メモリの参照が正しくできず、誤ったメモリの値を取得することがある。最悪の場合には、リアルタイムウォッチ装置は、メモリアクセスができず、システムが致命的な状況に陥ったと判断し、プログラムを停止してしまう。
また、リアルタイムウォッチ装置は、参照されるべきメモリアドレスを示すウォッチ情報を記憶する機能を有する場合があり、次に起動されたときに、前回登録されていたウォッチ情報が登録された状態に復帰する。このとき、ウォッチ情報の中に、外部メモリを参照すべきであることを示すウォッチ情報が含まれていると、リアルタイムウォッチ装置は、プログラムのデバッグ開始後に、外部メモリへの参照が正しくできなかったり、システムが致命的な状況であると判断してプログラムを停止したりするので、デバッグ作業に支障が出てしまう。
本発明は、マイコン等のターゲットシステムにおけるプログラムの実行中に、ターゲットシステムで用いられるメモリの値を安全に正しく参照することができるようにすることを目的とする。
前記課題を解決するため、本発明が講じた手段は、ターゲットシステムにおけるプログラムの実行中に、前記ターゲットシステムで用いられるメモリの値を表示するリアルタイムウォッチ装置であって、参照されるべきメモリアドレスを含むウォッチ情報を登録するウォッチ情報登録部と、前記登録されたウォッチ情報を取得するウォッチ情報取得部と、受け取ったメモリアドレスに格納された値を前記メモリから読み出すメモリアクセス部と、前記取得されたウォッチ情報に含まれる参照されるべきメモリアドレスに対するアクセスが可能か否かを判断するメモリアクセス可否判断部と、前記メモリアクセス可否判断部でアクセス可能と判断されたメモリアドレスを前記メモリアクセス部に出力し、前記メモリアクセス部によって読み出された値を表示するウォッチ表示部とを有する。
これによると、アクセス可能と判断された場合にのみ、実際にメモリの値を読み出し、表示するので、アクセス不可能な領域にアクセスしないようにすることができる。このため、エラーの発生を避けることができる。
本発明によれば、ターゲットシステムでプログラムを実行中に、ターゲットシステムが用いるメモリの値を致命的なエラーを起こさずに取得することができるので、安全で正確なデバッグ作業を行うことが可能となる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るリアルタイムウォッチ装置の構成を示すブロック図である。図1のリアルタイムウォッチ装置は、ウォッチ情報登録部12と、ウォッチ情報取得部16と、ウォッチ表示部18と、メモリアクセス可否判断部22と、メモリアクセス部24と、システム情報登録部32と、システム情報取得部36とを有しており、マイコン等を有するターゲットシステムにおけるソフトウェアプログラムの実行中に、ターゲットシステムで用いられるメモリの値を表示する。
図2は、ウォッチ情報テーブルの一例を示す説明図である。ウォッチ情報テーブル14には、それぞれにウォッチ情報IDが付されたウォッチ情報が登録されている。各ウォッチ情報には、ターゲットシステムで用いられるメモリの参照されるべきメモリアドレス、参照される値のサイズ、及びそのメモリアドレスに格納された変数又はシンボルの名前が含まれている。ウォッチ情報は、ターゲットシステムで用いられるメモリの値を定期的に参照するために用いられる。
ウォッチ情報登録部12は、リアルタイムウォッチ装置のユーザインタフェース等によって受け取ったウォッチ情報をウォッチ情報テーブル14に登録する。ウォッチ情報テーブル14は、記憶部(図示せず)に格納されている。
図3は、システム情報テーブルの一例を示す説明図である。システム情報テーブル34には、それぞれにシステム情報IDが付されたシステム情報が登録されている。各システム情報には、ターゲットシステムで拡張された外部メモリ等のメモリのアドレス範囲、このようなメモリを使うために初期設定が必要な制御レジスタとして用いられるメモリのアドレス(以下では制御レジスタアドレスと称する)、制御レジスタの各ビットのうち初期設定が必要なビットを特定するためのマスク値、及び制御レジスタアドレスに格納される条件値が含まれている。このような制御レジスタアドレス、マスク値、及び条件値の組は、アクセス可能条件を示している。制御レジスタアドレスに格納された値とマスク値との間でビット毎に行われた論理和演算結果が条件値と一致するとき、アクセス可能条件が満たされる。
システム情報登録部32は、リアルタイムウォッチ装置のユーザインタフェース等によって受け取ったターゲットシステムのシステム情報を、システム情報テーブル34に登録する。システム情報テーブル34は、記憶部に格納されている。適切なシステム情報を登録するようにすれば、ターゲットシステムや実行されるプログラムが変更されても対処することができる。
なお、システム情報を登録する要求を受けた場合に、システム情報登録部32は、そのときのメモリの値がそのシステム情報のアクセス可能条件を満たすように、そのシステム情報のアクセス可能条件を設定してもよい。すなわち、システム情報登録部32は、そのシステム情報の制御レジスタアドレスに格納されたそのときのメモリの値とマスク値との間でビット毎に論理和演算を行い、その結果をそのシステム情報の条件値として登録してもよい。
図4は、図1のリアルタイムウォッチ装置における処理の流れを示すフローチャートである。図1〜図4を参照して、図1のリアルタイムウォッチ装置の動作の例を説明する。既にウォッチ情報テーブル14は図2の状態に、システム情報テーブル34は図3の状態になっているものとする。
ステップS12では、ウォッチ情報取得部16は、リアルタイムウォッチ要求を受け取ると、まずウォッチ情報テーブル14から処理対象とするウォッチ情報を取得する。ウォッチ表示部18は、ウォッチ情報取得部16からウォッチ情報を受け取り、メモリアクセス可否判断部22に出力する。
ステップS14では、メモリアクセス可否判断部22は、システム情報テーブル34に登録されたシステム情報のうち、受け取ったウォッチ情報に示されたメモリアドレスに対応するシステム情報(そのシステム情報のアドレス範囲内に、ウォッチ情報に示されたメモリアドレスが存在する)を検索する。この際、システム情報取得部36は、システム情報テーブル34からシステム情報を取得し、メモリアクセス可否判断部22に出力する。
例えば、図2のウォッチ情報テーブルにおけるIDが“2”のウォッチ情報の場合には、メモリアドレス0x1004が登録されており、これに対応する図3のシステム情報テーブル内のシステム情報は、アドレス範囲が0x1000−0x1FFFであるID“1”のシステム情報である。また、ID“3”のウォッチ情報の場合には、メモリアドレス0x3000が登録されており、これに対応するシステム情報は、アドレス範囲が0x3000−0x3FFFであるID“3”のシステム情報である。アドレス範囲毎に異なるシステム情報を用いるので、アクセス可能条件が異なる複数のメモリを用いる場合であっても、アクセス可否を適切に判断することができる。
ステップS16では、メモリアクセス可否判断部22は、該当するシステム情報が存在するか否かを判断する。該当するシステム情報が存在する場合にはステップS18に、存在しない場合にはステップS22に進む。例えば、ID“1”のウォッチ情報のメモリアドレスは0x0000であり、図3のシステム情報テーブルには該当するシステム情報が登録されていない。こうした場合には、メモリアクセス可否判断部22は、ウォッチ情報のメモリアドレスは常にアクセス可能なメモリアドレスであると判断し、アクセス可能か否かの判断処理をスキップするためにステップS22に進む。
ステップS18では、メモリアクセス可否判断部22は、メモリアクセス部24を介して、該当するシステム情報に示された制御レジスタアドレスに格納された値をメモリから取得する。ステップS20では、メモリアクセス可否判断部22は、アクセス可能条件が満たされるか否かを判定する。すなわち、取得した値と該当するシステム情報のマスク値との間でビット毎に論理和演算をし、その結果がそのシステム情報の条件値と一致するか否かを判定する。図3のID“1”のシステム情報のように、システム情報には、制御レジスタアドレスとマスク値と条件値との組み合わせを複数含むようにしてもよく、その場合には、それらの組み合わせ全てについて判定を行う。
そのシステム情報に関しての全ての判定が、一致するという判定である場合には、メモリアクセス可否判断部22は、そのウォッチ情報のメモリアドレスはアクセス可能であると判断し、ステップS22に進む。そのシステム情報に関しての全ての判定が、一致するという判定ではない場合には、メモリアクセス可否判断部22は、そのウォッチ情報のメモリアドレスはアクセス不可能であると判断し、ステップS24に進む。ステップS20において、メモリアクセス可否判断部22は、判断結果をウォッチ表示部18に出力する。
ステップS22では、ウォッチ表示部18は、処理対象のウォッチ情報が示すメモリアドレス及びサイズを、メモリアクセス部24に出力する。メモリアクセス部24は、受け取ったメモリアドレスに格納された受け取ったサイズの値を、ターゲットシステムで用いられるメモリから読み出し、読み出された値をウォッチ表示部18に出力する。
ステップS24では、ウォッチ表示部18は、処理対象のウォッチ情報が示すメモリアドレス及び変数名を表示する。ステップS26では、ウォッチ表示部18は、メモリアドレスがアクセス可能である場合にはメモリアクセス部24から受け取った値を、アクセス不可能である場合にはアクセス不可能であることを示す情報を、変数名に対応させて表示する。
ステップS28では、ウォッチ表示部18は、ウォッチ情報テーブル14に登録された全てのウォッチ情報についての処理が終了しているか否かを判断する。終了している場合には図4の処理を終了し、終了していない場合にはステップS12に戻り、次のウォッチ情報の処理を行う。ウォッチ情報は登録順に処理される。
図1のリアルタイムウォッチ装置は、ターゲットシステムでプログラムが実行されると、図4の処理を繰り返し、一定時間毎にリアルタイムウォッチ表示を行う。
図5は、図1のリアルタイムウォッチ装置によるウォッチ表示の例を示す説明図である。図5では、ウォッチ情報ID、変数/シンボル名及びそのアドレス値、読み出されたメモリの値が、各行に示されている。ここでは、メモリの値として記号“-----”が示されている場合には、その変数/シンボルについてはメモリアクセス不可能であることを表わしている。
この例の場合、ID“3”(変数Val3、メモリアドレス0x3000)とID“5”(変数Val5、メモリアドレス0x4000)のウォッチ表示については、アクセス不可能であることが示されている。このことから、図3のシステム情報テーブルに登録されたID“3”(アドレス範囲0x3000−0x3FFF)とID“4”(アドレス範囲0x4000−0x4FFF)のシステム情報に関するアドレス範囲(0x3000−0x3FFF及び0x4000−0x4FFF)については、メモリアクセスが不可能であると判断されたことが分かる。
なお、以上の説明では、メモリアドレスがアクセス不可能であると判断された場合には、メモリアクセスをせずにリアルタイムウォッチ表示しないこととしたが、その判断に用いられたシステム情報のアクセス可能条件を満たすように、メモリの値を変更して、常にリアルタイムウォッチ表示ができるようにしてもよい。例えば、図1のリアルタイムウォッチ装置がシステム状態変更部を更に有するようにし、このシステム状態変更部が、アクセス不可能であると判断されたメモリアドレスに対応するシステム情報の制御レジスタアドレスに格納された値を、そのシステム情報の条件値となるように変更して、メモリアクセス可能な状態になるようにしてもよい。
また、ウォッチ情報が示すメモリアドレスへのアクセスの可否についての判断結果に関わらず、そのウォッチ情報に関して表示を行うものとして説明したが、アクセス不可能と判断されたウォッチ情報に関しては表示しないようにしてもよい。
アクセス不可能と判断された場合については、その結果だけが分かるように表示する例を示したが、表示方法はこれには限定されない。例えば、判断に用いられたアクセス可能条件や、条件値に対応する現在のメモリの値等を更に表示してもよい。
また、システム情報テーブル(図3)に登録されていないアドレスは、メモリアクセスが可能なアドレスであると判断するとして説明したが、システム情報の登録漏れの可能性を考慮し、登録漏れがあってもメモリアクセスエラーを起こさないようにするために、システム情報テーブルに登録されていないアドレスはアクセス不可能であると判断するようにしてもよい。
本実施形態のリアルタイムウォッチ装置によると、ウォッチ情報として登録されている変数のうち、アクセス可能なメモリアドレスに配置されている変数にのみ実際にアクセスを行うので、メモリの状態を意識することなくウォッチ情報の登録ができる。また、ウォッチ表示の際に、初期設定前の致命的なメモリアクセスエラーや、誤ったメモリ値の取得等、デバッグに支障の出る状況を回避することができる。
(第2の実施形態)
図6は、本発明の第2の実施形態に係るリアルタイムウォッチ装置の構成を示すブロック図である。図6のリアルタイムウォッチ装置は、ウォッチ情報登録部212と、ウォッチ表示部218と、メモリアクセス可否判断部222とを、ウォッチ情報登録部12、ウォッチ表示部18、及びメモリアクセス可否判断部22に代えて有している点が、図1のリアルタイムウォッチ装置とは異なっている。
図7は、図6のリアルタイムウォッチ装置におけるウォッチ情報登録処理の流れを示すフローチャートである。図3、図6、及び図7を参照して、図6のリアルタイムウォッチ装置におけるウォッチ情報登録処理の例を説明する。システム情報テーブル34は図3の状態になっているものとする。
ステップS212では、ウォッチ情報登録部212は、ユーザインタフェース等によってウォッチ情報の登録要求を受け取る。登録要求には、メモリアドレス、サイズ、及び変数(シンボル)名が含まれている。ステップS214では、メモリアクセス可否判断部222は、システム情報テーブル34に登録されたシステム情報のうち、登録要求されたメモリアドレスに対応するシステム情報を検索する。例えば、登録要求されたメモリアドレスが0x1004の場合、これに対応する図3のシステム情報テーブル内のシステム情報は、アドレス範囲が0x1000−0x1FFFであるID“1”のシステム情報である。
ステップS216では、メモリアクセス可否判断部222は、該当するシステム情報が存在するか否かを判断する。該当するシステム情報が存在する場合にはステップS218に、存在しない場合にはステップS222に進む。該当するシステム情報がシステム情報テーブル34に登録されていない場合には、メモリアクセス可否判断部222は、登録要求されたメモリアドレスは常にアクセス可能なメモリアドレスであると判断し、アクセス可能か否かの判断処理をスキップするためにステップS222に進む。
ステップS218では、メモリアクセス可否判断部222は、メモリアクセス部24を介して、該当するシステム情報に示された制御レジスタアドレスに格納された値をメモリから取得する。
ステップS220では、メモリアクセス可否判断部222は、取得した値と該当するシステム情報のマスク値との間でビット毎に論理和演算をし、その結果がそのシステム情報の条件値と一致するか否かを判定する。
そのシステム情報に関しての全ての判定が、一致するという判定である場合には、メモリアクセス可否判断部222は、そのウォッチ情報のメモリアドレスはアクセス可能であると判断し、ステップS222に進む。そのシステム情報に関しての全ての判定が、一致するという判定ではない場合には、メモリアクセス可否判断部222は、そのウォッチ情報のメモリアドレスはアクセス不可能であると判断し、ステップS224に進む。メモリアクセス可否判断部222は、アクセス可否状態を判断の結果としてウォッチ情報登録部212に出力する。
ステップS222では、ウォッチ情報登録部212は、登録要求されたメモリアドレス、サイズ、変数(シンボル)名に、アクセス可否状態(“可”)及び対応するシステム情報IDを付加し、ウォッチ情報として登録する。ステップS224では、ウォッチ情報登録部212は、登録要求されたメモリアドレス、サイズ、変数(シンボル)名にアクセス可否状態(“不可”)及び対応するシステム情報IDを付加し、ウォッチ情報として登録する。
図8は、図7のウォッチ情報登録処理の結果、得られたウォッチ情報テーブルの一例を示す説明図である。ウォッチ情報テーブル214は、記憶部(図示せず)に格納される。
図9は、図6のリアルタイムウォッチ装置におけるウォッチ表示処理の流れを示すフローチャートである。図3、図6、図8及び図9を参照して、図6のリアルタイムウォッチ装置におけるウォッチ表示処理の例を説明する。ウォッチ情報テーブル214は図8の状態になっているものとする。
ステップS232では、ウォッチ情報取得部16は、リアルタイムウォッチ要求が入ると、まずウォッチ情報テーブル214(図8)から処理対象とするウォッチ情報を取得する。ウォッチ表示部218は、ウォッチ情報取得部16からウォッチ情報を受け取り、メモリアクセス可否判断部222に出力する。
ステップS234では、メモリアクセス可否判断部222は、取得したウォッチ情報が示すアクセス可否状態が“可”であるか否かを判断する。アクセス可否状態が“可”である場合には、ステップS242に進み、“不可”である場合には、ステップS244に進む。
ステップS242では、ウォッチ表示部218は、処理対象のウォッチ情報が示すメモリアドレス及びサイズを、メモリアクセス部24に出力する。メモリアクセス部24は、受け取ったメモリアドレスに格納された受け取ったサイズの値を、ターゲットシステムで用いられるメモリから読み出し、読み出された値をウォッチ表示部218に出力する。
ステップS244では、ウォッチ表示部218は、処理対象のウォッチ情報が示すメモリアドレス及び変数名を表示する。ステップS246では、ウォッチ表示部218は、メモリアドレスがアクセス可能である場合にはメモリアクセス部24から受け取った値を、アクセス不可能である場合にはアクセス不可能であることを示す情報を、変数名に対応させて表示する。
ステップS248では、ウォッチ表示部218は、ウォッチ情報テーブル214に登録された全てのウォッチ情報についての処理が終了しているか否かを判断する。終了している場合には図9の処理を終了し、終了していない場合にはステップS232に戻り、次のウォッチ情報の処理を行う。ウォッチ情報は登録順に処理される。
図6のリアルタイムウォッチ装置は、ターゲットシステムでプログラムが実行されると、図9の処理を繰り返し、一定時間毎にリアルタイムウォッチ表示を行う。
このように、図6のリアルタイムウォッチ装置では、ウォッチ情報を登録する際にメモリアクセスの可否を判断し、その結果をアクセス可否状態としてウォッチ情報に付加しておく。リアルタイムウォッチ表示の際に、ターゲットシステムで用いられるメモリへのアクセス可否を判断する処理を簡略化できるので、ウォッチ表示処理の高速化を図ることができる。
(第3の実施形態)
図10は、本発明の第3の実施形態に係るリアルタイムウォッチ装置の構成を示すブロック図である。図10のリアルタイムウォッチ装置は、ウォッチ情報登録部212に代えてウォッチ情報登録部312を有し、システム状態監視部342と、ウォッチ情報更新部344とを更に有している点が、図6のリアルタイムウォッチ装置とは異なっている。
システム状態監視部342は、デバッグ及びリアルタイムウォッチの対象とするターゲットシステムの状態を監視し、所定の状態を検知すると、ウォッチ情報テーブルを更新するようにウォッチ情報更新部344に更新要求を通知する。ウォッチ情報更新部344は、更新要求に従って、ウォッチ情報に含まれるメモリアクセス可否状態を更新する。
検知すべきターゲットシステムの状態としては、ターゲットシステムのリセット(初期化)、マイコンプログラムの実行開始(マイコンのユーザモードへの遷移)、マイコンプログラムの停止(マイコンのモニタモードへの遷移)、特定のプログラムコードの実行(特定のアドレスの命令の実行)、特定のメモリへのアクセス等が挙げられる。
システム状態監視部342は、例えば、マイコンへのリセットを検出した場合には、いずれのシステム情報IDに対応するウォッチ情報のアクセス可否状態も“不可”にするように、ウォッチ情報更新部344に更新要求を通知する。また、システム状態監視部342は、特定のアドレスの命令実行を検出した場合には、ある特定のシステム情報IDの外部メモリに対する初期設定は完了していると判断できることから、そのシステム情報IDに対応するウォッチ情報のアクセス可否状態を“可”にするように、ウォッチ情報更新部344に更新要求を通知する。
なお、メモリへのアクセス可否状態に変化が起きる可能性があり、かつ、それが検知可能であれば、以上の場合以外において更新要求を通知するようにしてもよい。
図11は、図10のリアルタイムウォッチ装置におけるウォッチ情報更新処理の流れを示すフローチャートである。図8、図10、及び図11を参照して、図10のリアルタイムウォッチ装置におけるウォッチ情報更新処理の例を説明する。ウォッチ情報テーブル214は図8の状態になっているものとする。
ステップS312では、ウォッチ情報更新部344は、システム状態監視部342からウォッチ情報の更新要求を受け取る。更新要求には、更新対象に対応するシステム情報ID、及びアクセス可否状態を“可”/“不可”のいずれにするかを示す更新種別が含まれている。ステップS314では、ウォッチ情報更新部344は、ウォッチ情報テーブル214からウォッチ情報を取得する。
ステップS316では、ウォッチ情報更新部344は、ウォッチ情報のシステム情報IDが、更新要求に係るシステム情報IDと一致するか否かを判断する。システム情報IDが一致した場合にはステップS318に進み、一致しない場合にはステップS322に進む。
ステップS318では、ウォッチ情報更新部344は、取得したウォッチ情報のメモリアクセス可否状態を、更新種別に応じて変更し、ウォッチ情報登録部312に出力する。ステップS320では、ウォッチ情報登録部312は、ウォッチ情報テーブル214内のウォッチ情報を、変更後のウォッチ情報で更新する。ウォッチ情報登録部312は、その他の点は、図6のウォッチ情報登録部212と同様である。
ステップS322では、ウォッチ情報更新部344は、ウォッチ情報テーブルに登録された全てのウォッチ情報についての処理が終了しているか否かを判断する。終了している場合には図11の処理を終了し、終了していない場合にはステップS314に戻り、次のウォッチ情報の処理を行う。
なお、ここでは、更新要求の際には、システム状態監視部342が、ウォッチ情報更新部344に対して更新対象となるシステム情報ID及び更新種別を通知するものとして説明したが、システム状態監視部342が、更新要求のみを行うようにしてもよい。この場合には、ウォッチ情報更新部344が、システム情報テーブル34によって現在のターゲットシステムの状態を確認して、必要な場合にはウォッチ情報を変更し、ウォッチ情報テーブル214を更新するようにする。
このように、図10のリアルタイムウォッチ装置は、実際にメモリへアクセスをするか否かを左右する、ウォッチ情報が示すアクセス可否状態を、ターゲットシステムの状態変化に合わせて逐次更新するようにしている。このため、安全性及び正確性を維持しつつ、ターゲットシステムの状態をより多くのウォッチ情報によって参照することができる。
以上説明したように、本発明は、メモリの値を安全に参照することができるので、メモリを用いるシステムのデバッグのためのリアルタイムウォッチ装置等について有用である。
本発明の第1の実施形態に係るリアルタイムウォッチ装置の構成を示すブロック図である。 ウォッチ情報テーブルの一例を示す説明図である。 システム情報テーブルの一例を示す説明図である。 図1のリアルタイムウォッチ装置における処理の流れを示すフローチャートである。 図1のリアルタイムウォッチ装置によるウォッチ表示の例を示す説明図である。 本発明の第2の実施形態に係るリアルタイムウォッチ装置の構成を示すブロック図である。 図6のリアルタイムウォッチ装置におけるウォッチ情報登録処理の流れを示すフローチャートである。 図7のウォッチ情報登録処理の結果、得られたウォッチ情報テーブルの一例を示す説明図である。 図6のリアルタイムウォッチ装置におけるウォッチ表示処理の流れを示すフローチャートである。 本発明の第3の実施形態に係るリアルタイムウォッチ装置の構成を示すブロック図である。 図10のリアルタイムウォッチ装置におけるウォッチ情報更新処理の流れを示すフローチャートである。
符号の説明
12,212,312 ウォッチ情報登録部
14,214 ウォッチ情報テーブル
16 ウォッチ情報取得部
18,218 ウォッチ表示部
22,222 メモリアクセス可否判断部
24 メモリアクセス部
32 システム情報登録部
34 システム情報テーブル
36 システム情報取得部
342 システム状態監視部
344 ウォッチ情報更新部

Claims (27)

  1. ターゲットシステムにおけるプログラムの実行中に、前記ターゲットシステムで用いられるメモリの値を表示するリアルタイムウォッチ装置であって、
    参照されるべきメモリアドレスを含むウォッチ情報を登録するウォッチ情報登録部と、
    前記登録されたウォッチ情報を取得するウォッチ情報取得部と、
    受け取ったメモリアドレスに格納された値を前記メモリから読み出すメモリアクセス部と、
    前記取得されたウォッチ情報に含まれる参照されるべきメモリアドレスに対するアクセスが可能か否かを判断するメモリアクセス可否判断部と、
    前記メモリアクセス可否判断部でアクセス可能と判断されたメモリアドレスを前記メモリアクセス部に出力し、前記メモリアクセス部によって読み出された値を表示するウォッチ表示部とを備える
    リアルタイムウォッチ装置。
  2. 請求項1に記載のリアルタイムウォッチ装置において、
    メモリアドレス範囲とこれに対応するアクセス可能条件とを含むシステム情報を取得するシステム情報取得部を更に備え、
    前記メモリアクセス可否判断部は、
    前記システム情報のうち、前記取得されたウォッチ情報に含まれる参照されるべきメモリアドレスに対応するシステム情報に従って、アクセスが可能か否かを判断する
    ことを特徴とするリアルタイムウォッチ装置。
  3. 請求項2に記載のリアルタイムウォッチ装置において、
    メモリアドレス範囲とこれに対応するアクセス可能条件とを含むシステム情報を登録するシステム情報登録部を更に備える
    ことを特徴とするリアルタイムウォッチ装置。
  4. 請求項3に記載のリアルタイムウォッチ装置において、
    前記システム情報登録部は、
    システム情報を登録する要求を受けた場合に、そのときの前記メモリの値が前記登録要求されたシステム情報のアクセス可能条件を満たすように、前記登録要求されたシステム情報のアクセス可能条件を設定する
    ことを特徴とするリアルタイムウォッチ装置。
  5. 請求項2に記載のリアルタイムウォッチ装置において、
    前記ウォッチ情報登録部は、
    前記システム情報のうち、前記参照されるべきメモリアドレスとして登録要求されたメモリアドレスに対応するシステム情報に基づいた、前記登録要求されたメモリアドレスへのアクセスが可能か否かの判断結果を、メモリアクセス可否状態として、前記登録要求されたメモリアドレスに対応させて前記ウォッチ情報に登録し、
    前記メモリアクセス可否判断部は、
    前記登録されたメモリアクセス可否状態に従って、アクセスが可能か否かを判断する
    ことを特徴とするリアルタイムウォッチ装置。
  6. 請求項5に記載のリアルタイムウォッチ装置において、
    前記ターゲットシステムの状態を検出し、検出された状態に応じて更新要求を行うシステム状態監視部と、
    前記更新要求に従って、前記ウォッチ情報に含まれるメモリアクセス可否状態を更新するウォッチ情報更新部とを更に備える
    ことを特徴とするリアルタイムウォッチ装置。
  7. 請求項6に記載のリアルタイムウォッチ装置において、
    前記システム状態監視部は、
    前記ターゲットシステムの初期化を検出する
    ことを特徴とするリアルタイムウォッチ装置。
  8. 請求項6に記載のリアルタイムウォッチ装置において、
    前記システム状態監視部は、
    前記ターゲットシステムで動作するプログラムの実行が停止したことを検出する
    ことを特徴とするリアルタイムウォッチ装置。
  9. 請求項6に記載のリアルタイムウォッチ装置において、
    前記システム状態監視部は、
    前記ターゲットシステムでプログラムの実行が開始されたことを検出する
    ことを特徴とするリアルタイムウォッチ装置。
  10. 請求項6に記載のリアルタイムウォッチ装置において、
    前記システム状態監視部は、
    前記ターゲットシステムが特定のコードを実行したことを検出する
    ことを特徴とするリアルタイムウォッチ装置。
  11. 請求項6に記載のリアルタイムウォッチ装置において、
    前記システム状態監視部は、
    前記ターゲットシステムが特定のメモリにアクセスしたことを検出する
    ことを特徴とするリアルタイムウォッチ装置。
  12. 請求項2に記載のリアルタイムウォッチ装置において、
    前記ウォッチ表示部は、
    前記取得されたシステム情報に含まれるアクセス可能条件及びこのアクセス可能条件についての前記ターゲットシステムの状態を、前記メモリアクセス可否判断部によってアクセス不可能と判断されたウォッチ情報及びアクセス不可能であることを示す情報とともに表示する
    ことを特徴とするリアルタイムウォッチ装置。
  13. 請求項2に記載のリアルタイムウォッチ装置において、
    前記メモリアクセス可否判断部によってアクセス不可能と判断された場合に、その判断に用いられたシステム情報のアクセス可能条件を満たすように、前記メモリの値を変更するシステム状態変更部を更に備える
    ことを特徴とするリアルタイムウォッチ装置。
  14. 請求項1に記載のリアルタイムウォッチ装置において、
    前記ウォッチ表示部は、
    前記メモリアクセス可否判断部によってアクセス不可能と判断されたウォッチ情報と、アクセス不可能であることを示す情報とを対応させて表示する
    ことを特徴とするリアルタイムウォッチ装置。
  15. ターゲットシステムにおけるプログラムの実行中に、前記ターゲットシステムで用いられるメモリの値を表示するリアルタイムウォッチ方法であって、
    前記メモリの参照されるべきメモリアドレスを含む登録されたウォッチ情報を取得するウォッチ情報取得ステップと、
    前記取得されたウォッチ情報に含まれる参照されるべきメモリアドレスに対するアクセスが可能か否かを判断するメモリアクセス可否判断ステップと、
    前記メモリアクセス可否判断ステップでアクセス可能と判断されたメモリアドレスに格納された値を表示するウォッチ表示ステップとを備える
    リアルタイムウォッチ方法。
  16. 請求項15に記載のリアルタイムウォッチ方法において、
    メモリアドレス範囲とこれに対応するアクセス可能条件とを含むシステム情報を取得するシステム情報取得ステップを更に備え、
    前記メモリアクセス可否判断ステップは、
    前記システム情報のうち、前記取得されたウォッチ情報に含まれる参照されるべきメモリアドレスに対応するシステム情報に従って、アクセスが可能か否かを判断する
    ことを特徴とするリアルタイムウォッチ方法。
  17. 請求項16に記載のリアルタイムウォッチ方法において、
    メモリアドレス範囲とこれに対応するアクセス可能条件とを含むシステム情報を登録するシステム情報登録ステップを更に備える
    ことを特徴とするリアルタイムウォッチ方法。
  18. 請求項16に記載のリアルタイムウォッチ方法において、
    前記ウォッチ情報登録ステップは、
    前記システム情報のうち、前記参照されるべきメモリアドレスとして登録要求されたメモリアドレスに対応するシステム情報に基づいた、前記登録要求されたメモリアドレスへのアクセスが可能か否かの判断結果を、メモリアクセス可否状態として、前記登録要求されたメモリアドレスに対応させて前記ウォッチ情報に登録し、
    前記メモリアクセス可否判断ステップは、
    前記登録されたメモリアクセス可否状態に従って、アクセスが可能か否かを判断する
    ことを特徴とするリアルタイムウォッチ方法。
  19. 請求項18に記載のリアルタイムウォッチ方法において、
    前記ターゲットシステムの状態を検出し、検出された状態に応じて更新要求を行うシステム状態監視ステップと、
    前記更新要求に従って、前記ウォッチ情報に含まれるメモリアクセス可否状態を更新するウォッチ情報更新ステップとを更に備える
    ことを特徴とするリアルタイムウォッチ方法。
  20. 請求項19に記載のリアルタイムウォッチ方法において、
    前記システム状態監視ステップは、
    前記ターゲットシステムの初期化を検出する
    ことを特徴とするリアルタイムウォッチ方法。
  21. 請求項19に記載のリアルタイムウォッチ方法において、
    前記システム状態監視ステップは、
    前記ターゲットシステムで動作するプログラムの実行が停止したことを検出する
    ことを特徴とするリアルタイムウォッチ方法。
  22. 請求項19に記載のリアルタイムウォッチ方法において、
    前記システム状態監視ステップは、
    前記ターゲットシステムでプログラムの実行が開始されたことを検出する
    ことを特徴とするリアルタイムウォッチ方法。
  23. 請求項19に記載のリアルタイムウォッチ方法において、
    前記システム状態監視ステップは、
    前記ターゲットシステムが特定のコードを実行したことを検出する
    ことを特徴とするリアルタイムウォッチ方法。
  24. 請求項19に記載のリアルタイムウォッチ方法において、
    前記システム状態監視ステップは、
    前記ターゲットシステムが特定のメモリにアクセスしたことを検出する
    ことを特徴とするリアルタイムウォッチ方法。
  25. 請求項16に記載のリアルタイムウォッチ方法において、
    前記ウォッチ表示ステップは、
    前記取得されたシステム情報に含まれるアクセス可能条件及びこのアクセス可能条件についての前記ターゲットシステムの状態を、前記メモリアクセス可否判断ステップでアクセス不可能と判断されたウォッチ情報及びアクセス不可能であることを示す情報とともに表示する
    ことを特徴とするリアルタイムウォッチ方法。
  26. 請求項16に記載のリアルタイムウォッチ方法において、
    前記メモリアクセス可否判断ステップでアクセス不可能と判断された場合に、その判断に用いられたシステム情報のアクセス可能条件を満たすように、前記メモリの値を変更するシステム状態変更ステップを更に備える
    ことを特徴とするリアルタイムウォッチ方法。
  27. 請求項15に記載のリアルタイムウォッチ方法において、
    前記ウォッチ表示ステップは、
    前記メモリアクセス可否判断ステップでアクセス不可能と判断されたウォッチ情報と、アクセス不可能であることを示す情報とを対応させて表示する
    ことを特徴とするリアルタイムウォッチ方法。
JP2007206433A 2007-08-08 2007-08-08 リアルタイムウォッチ装置及びその方法 Expired - Fee Related JP4856023B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007206433A JP4856023B2 (ja) 2007-08-08 2007-08-08 リアルタイムウォッチ装置及びその方法
CNA2008101454237A CN101364201A (zh) 2007-08-08 2008-08-05 实时监测设备及其方法
US12/188,650 US20090044175A1 (en) 2007-08-08 2008-08-08 Real-time watch device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007206433A JP4856023B2 (ja) 2007-08-08 2007-08-08 リアルタイムウォッチ装置及びその方法

Publications (3)

Publication Number Publication Date
JP2009042971A true JP2009042971A (ja) 2009-02-26
JP2009042971A5 JP2009042971A5 (ja) 2010-02-12
JP4856023B2 JP4856023B2 (ja) 2012-01-18

Family

ID=40347669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007206433A Expired - Fee Related JP4856023B2 (ja) 2007-08-08 2007-08-08 リアルタイムウォッチ装置及びその方法

Country Status (3)

Country Link
US (1) US20090044175A1 (ja)
JP (1) JP4856023B2 (ja)
CN (1) CN101364201A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210097655A (ko) * 2020-07-20 2021-08-09 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697040B2 (en) * 2014-03-26 2017-07-04 Intel Corporation Software replayer for transactional memory programs
CN107480000B (zh) * 2016-06-08 2020-12-11 瑞昱半导体股份有限公司 于电脑系统中重置存储器的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04199341A (ja) * 1990-11-29 1992-07-20 N T T Data Tsushin Kk メモリアクセス保護装置
JPH08328898A (ja) * 1995-05-29 1996-12-13 Hitachi Ltd ユーザ空間アクセス方法およびエミュレータ
JP2002091826A (ja) * 2000-09-13 2002-03-29 Fuji Xerox Co Ltd 情報処理装置
JP2007041887A (ja) * 2005-08-04 2007-02-15 Matsushita Electric Ind Co Ltd デバッグ装置、そのメモリアクセス方法およびメモリアクセス方法を実現するプログラム
JP2007529056A (ja) * 2003-10-16 2007-10-18 松下電器産業株式会社 データ保護システム及び記録担体

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195281A (ja) * 2000-01-07 2001-07-19 Sony Corp システム監視装置
JP2003050716A (ja) * 2001-08-06 2003-02-21 Matsushita Electric Ind Co Ltd ソフトウエアデバッガとソフトウエア開発支援システム
US20060150021A1 (en) * 2002-11-22 2006-07-06 Continental Teves Ag & Co. Ohg Device and method for analyzing embedded systems
JP2005128692A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd シミュレータ及びシミュレーション方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04199341A (ja) * 1990-11-29 1992-07-20 N T T Data Tsushin Kk メモリアクセス保護装置
JPH08328898A (ja) * 1995-05-29 1996-12-13 Hitachi Ltd ユーザ空間アクセス方法およびエミュレータ
JP2002091826A (ja) * 2000-09-13 2002-03-29 Fuji Xerox Co Ltd 情報処理装置
JP2007529056A (ja) * 2003-10-16 2007-10-18 松下電器産業株式会社 データ保護システム及び記録担体
JP2007041887A (ja) * 2005-08-04 2007-02-15 Matsushita Electric Ind Co Ltd デバッグ装置、そのメモリアクセス方法およびメモリアクセス方法を実現するプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210097655A (ko) * 2020-07-20 2021-08-09 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체
KR102674397B1 (ko) * 2020-07-20 2024-06-13 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체

Also Published As

Publication number Publication date
CN101364201A (zh) 2009-02-11
US20090044175A1 (en) 2009-02-12
JP4856023B2 (ja) 2012-01-18

Similar Documents

Publication Publication Date Title
US7565579B2 (en) Post (power on self test) debug system and method
WO2016062084A1 (zh) 掉电处理方法、装置及电子设备
JP2010086364A (ja) 情報処理装置、動作状態監視装置および方法
JP2020535504A (ja) システムバージョンをアップグレードする方法及び装置
JP4893427B2 (ja) マイクロコンピュータシステム
JP4856023B2 (ja) リアルタイムウォッチ装置及びその方法
JP2018067047A (ja) 制御装置
US20160041860A1 (en) Microcomputer and microcomputer system
JP2010181990A (ja) データプロセッサ
US7558990B2 (en) Semiconductor circuit device and method of detecting runaway
US20080133838A1 (en) Data processing device
JP6822203B2 (ja) ファームウェア実行装置、ドライバ実行装置、ドライバ管理装置、ファームウェア管理装置、コンピュータ装置、方法およびプログラム
JP2006221606A (ja) データプロセッサ
JP4543505B2 (ja) マイクロコンピュータの制御方法及び異常監視装置
JP4647276B2 (ja) 半導体回路装置
JP4571462B2 (ja) マイクロコンピュータ
JP2009169515A (ja) コンピュータシステム及びシステム回復装置
JP2018180608A (ja) プログラム実行装置およびプログラム実行方法
JP4853620B2 (ja) マルチプロセッサシステムと初期立ち上げ方法およびプログラム
JP2015121953A (ja) マイクロコンピュータ及び電子制御装置
KR101734594B1 (ko) 부트 메모리 페일 조치 방법 및 차량전자시스템
US9342359B2 (en) Information processing system and information processing method
JP2010211391A (ja) Cpuの動作監視方法および装置
JP2005327175A (ja) インサーキットエミュレータ装置およびスタックアクセス異常検知方法
JP6221110B2 (ja) 処理装置におけるエラーを判定及び解決する装置及び方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111004

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111027

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees