米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> エヌイーシーマイクロシステム株式会社

発明の名称 デバッグ装置およびその処理方法
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−5999(P2003−5999A)
公開日 平成15年1月10日(2003.1.10)
出願番号 特願2001−189175(P2001−189175)
出願日 平成13年6月22日(2001.6.22)
代理人 【識別番号】100082935
【弁理士】
【氏名又は名称】京本 直樹 (外2名)
【テーマコード(参考)】
5B042
5B048
【Fターム(参考)】
5B042 GA13 HH01 HH25 LA09 LA13 MA08 MC07 MC25 MC40 
5B048 AA13 DD01
発明者 松本 泰博
要約 課題
アルタイム・メモリを搭載しないエミュレータであっても、エミュレータのアドレス検出器とエミュレーション・メモリを使用して、エミュレーション中の変数モニタ機能が実現可能なデバッグ装置提供する。

解決手段
組み込みマイコンの動作エミュレーションを行うエミュレータ10と、ユーザがエミュレータ10を制御するためのソフトウェアを駆動し、ユーザが操作したり、エミュレーション結果を見るためのユーザ・インターフェイスとしてのデバッガ17と、監視したい変数の入力手段18とを備える。
特許請求の範囲
【請求項1】組み込みマイコンの動作エミュレーションを行うエミュレータと、ユーザが前記エミュレータを制御するためのソフトウェアを駆動し、ユーザが操作したり、エミュレーション結果を見るためのユーザ・インターフェイスとしてのデバッガと、監視したい変数の入力手段とを備え、前記エミュレータは、指定アドレスのメモリ読み込みまたはメモリ書き込み、前記指定アドレスの実行の事象(イベント)の発生を監視または通知するイベント検出器を具備することを特徴とするデバッグ装置。
【請求項2】 前記エミュレータは、前記イベント検出器から通知されるイベントの中から、モニタリングする変数へのアクセス・イベントかどうかを判断し、前記ディバッガへ通知する機能ブロックのディバッグメッセージ表示手段を具備する請求項1記載のデバッグ装置。
【請求項3】 前記エミュレータは、ユーザ・プログラムを読みこむROM領域やユーザ・プログラムのRAM領域となるメモリであるエミュレーション・メモリを具備する請求項1または2記載のデバッグ装置。
【請求項4】 前記イベント検出器は、前記ディバッガのブレーク動作時に使用される請求項1、2または3記載のデバッグ装置。
【請求項5】 前記ディバッガは、ユーザが操作したり、エミュレーション結果を見るためのユーザ・インターフェイスとして、モニタ変数指定手段、リアルタイム・モニタ登録手段および出力部を備える請求項1、2、3または4記載のデバッグ装置。
【請求項6】 請求項1、2、3または4記載のデバッグ装置のデバッグ実施の際適用されるデバッグ方法であって、前記シミュレータが停止状態であるとき、前記モニタ変数指定手段から、モニタリングする変数名のアドレスを受け付けて登録するリアルタイム・モニタ登録ステップと、前記イベント検出器の数について、イベント作成可能か判定するイベント作成可能判定ステップと、書きこみアクセス・イベントを使い果たしてしまったときは、これ以上は登録できないとしてエラーを表示するエラー表示ステップと、登録可能なときは、当該変数のアドレスに対する書きこみアクセス・イベントを作成するために前記イベント検出器に命令を送る命令送信ステップと、ユーザーからエミュレーション開始指示を受けたときは、前記エミュレータに対してエミュレーション開始命令を発行する開始命令発行ステップとを有するデバッグ装置の処理方法。
【請求項7】 前記ディバッグ・メッセージ表示手段は、前記イベント検出器から、書き込みイベント発生を通知されたとき、モニタリングする変数に対しての書き込みイベントかどうかを判断し(ステップS32)、当該変数に対しての書き込みイベントであったときは、変数の値を読み出し、ディバッガの出力部に対して表示を行う(ステップS33)請求項6記載のデバッグ装置の処理方法。
【請求項8】 エミュレーション実行中において、モニタ変数指定手段から、モニタ対象の変数が変更されたときは(ステップS41)、書きこみアクセス・イベントが作成できるイベント検出器が残っているかどうかをチェックし(ステップS42)、イベント作成可能であれば、一時的にエミュレータ停止命令を発行してエミュレートを停止し(ステップS43)、イベント検出器に対して、アクセス・イベントの再設定を行う(ステップS44)。その後、エミュレーションを再開するためにエミュレータ開始命令を発行する(ステップS45)ことを特徴とする請求項7記載のデバッグ装置の処理方法。
【請求項9】 前記ディバッグ・メッセージ表示手段は、イベント検出器からアクセス・イベント発生を通知されたとき(ステップS61)、モニタリングする関数のアクセス・イベントかどうかを判断し(ステップS62)、当該関数に対してのアクセス・イベントであったときは、ディバッガの出力部に対して指定関数を通過したことを表示する(ステップS63)請求項7または8記載のデバッグ装置の処理方法。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明は、デバッグ装置およびその処理方法に関し、特に、組み込みマイコンのエミュレータとユーザインターフェイスを持つエミュレータ制御ソフトで構成されるデバッグ装置およびその処理方法に関する。
【0002】
【従来の技術】従来、組み込みマイコンのエミュレータとユーザインターフェイスを持つエミュレータ制御ソフトで構成されるディバッグ装置が衆知である。
【0003】このデバッグ装置において、エミュレーション中に変数の値をモニタリングする方法も良く知られている。
【0004】このエミュレーション中に変数の値をモニタリングする方法を図8を参照して説明する。
【0005】図8を参照すると、従来のディバッグ装置801のリアルタイム・メモリ81は、エミュレーション中にエミュレーションを停止することなく、ディバッガ84から値を読み出すことができるメモリである。
【0006】このようなメモリの仕組みは、例えば、特開平03−291732号公報または特開昭63−010684号公報などでも開示されている。当該リアルタイム・メモリ81をエミュレーション・メモリとして備えたエミュレータであれば、エミュレーション中にメモリの値を読み出すことが可能になる。
【0007】エミュレーション・メモリ読みこみ手段82は、ディバッガ84上で参照したいメモリの内容をエミュレータ80から読み出すためのソフトウェア機能である。ディバッガ84は、一定間隔おきにエミュレーション・メモリ読みこみ手段82を呼び出すことにより、エミュレーション中の変数の値を取得する。
【0008】出力部83は、エミュレータ80から読み出したメモリの内容を表示する手段である。エミュレーション・メモリ読みこみ手段82が一定間隔おきに読み出した変数の内容を表示する。
【0009】ユーザが、あるメモリの値をエミュレーション中にモニタリングする方法は、ディバッガ84が、予め設定された一定時間間隔ごとに、エミュレーション・メモリ読みこみ手段82を呼び出し、リアルタイム・メモリ81上のメモリの値を読みだし、出力部83に表示を行なうという手順になる。
【0010】
【発明が解決しようとする課題】しかしながら、従来のディバッグ装置において、エミュレーション中に変数の値をモニタリングする方法においては、次のような課題がある。
【0011】従来の方法の第1の課題は、エミュレーション中であっても値を読み出すことができる仕組みの「リアルタイム・メモリ」を利用しているため、当該メモリを備えていないディバッガでは実現できないということである。
【0012】第2の課題は、一定間隔おきに読みこむという方法のため、ディバッガの出力部による画面表示によりパフォーマンスが低下することがあるということである。
【0013】したがって、本発明の目的は、リアルタイム・メモリを搭載しないエミュレータであっても、エミュレータのアドレス検出器とエミュレーション・メモリを使用して、エミュレーション中の変数モニタ機能が実現可能なディバッグ装置を提供することにある。
【0014】
【課題を解決するための手段】本発明のデバッグ装置は、組み込みマイコンの動作エミュレーションを行うエミュレータと、ユーザが前記エミュレータを制御するためのソフトウェアを駆動し、ユーザが操作したり、エミュレーション結果を見るためのユーザ・インターフェイスとしてのデバッガと、監視したい変数の入力手段とを備え、前記エミュレータは、指定アドレスのメモリ読み込みまたはメモリ書き込み、前記指定アドレスの実行の事象(イベント)の発生を監視または通知するイベント検出器を具備する構成である。
【0015】また、本発明のデバッグ装置の前記エミュレータは、前記イベント検出器から通知されるイベントの中から、モニタリングする変数へのアクセス・イベントかどうかを判断し、前記ディバッガへ通知する機能ブロックのディバッグメッセージ表示手段を具備し、また、前記エミュレータは、ユーザ・プログラムを読みこむROM領域やユーザ・プログラムのRAM領域となるメモリであるエミュレーション・メモリを具備する構成である。
【0016】またさらに、本発明のデバッグ装置の前記ディバッガは、ユーザが操作したり、エミュレーション結果を見るためのユーザ・インターフェイスとして、モニタ変数指定手段、リアルタイム・モニタ登録手段および出力部を備える構成である。
【0017】またさらに、本発明のデバッグ装置に実施される処理方法は、前記シミュレータが停止状態であるとき、前記モニタ変数指定手段から、モニタリングする変数名のアドレスを受け付けて登録するリアルタイム・モニタ登録ステップと、イベント検出器の数について、イベント作成可能か判定するイベント作成可能判定ステップと、書きこみアクセス・イベントを使い果たしてしまったときは、これ以上は登録できないとしてエラーを表示するエラー表示ステップと、登録可能なときは、当該変数のアドレスに対する書きこみアクセス・イベントを作成するために前記イベント検出器に命令を送る命令送信ステップと、ユーザーからエミュレーション開始指示を受けたときは、エミュレータに対してエミュレーション開始命令を発行する開始命令発行ステップとを有する構成である。
【0018】また、本発明のデバッグ装置に実施される処理方法は、エミュレーション実行中において、前記モニタ変数指定手段から、モニタ対象の変数が変更されたときは(ステップS41)、書きこみアクセス・イベントが作成できるイベント検出器13が残っているかどうかをチェックし(ステップS42)、イベント作成可能であれば、一時的にエミュレータ停止命令を発行してエミュレートを停止し(ステップS43)、イベント検出器に対して、アクセス・イベントの再設定を行う(ステップS44)。その後、前記エミュレーションを再開するためにエミュレータ開始命令を発行する(ステップS45)構成である。
【0019】
【発明の実施の形態】まず、図面を参照しながら、本発明の実施の形態について説明する。
【0020】本発明は、(1)組み込みマイコンのエミュレータとユーザインターフェイスを持つエミュレータ制御ソフトといった構成のディバッグ装置において、(2)エミュレーション中のプログラムを止めることなく、ユーザが指定したアドレスの変数の値をモニタリングできる機能を持たせたことを特徴としている。
【0021】図1は、本発明の第1の実施の形態のデバッグ装置のブロックである。
【0022】図1を参照すると、本発明のデバッグ装置101は、組み込みマイコンの動作エミュレーションを行うエミュレータ10と、ユーザがエミュレータ10を制御するためのソフトウェアを駆動し、ユーザが操作したり、エミュレーション結果を見るためのユーザ・インターフェイスとしてのデバッガ17と、監視したい変数の入力手段18とを備える。
【0023】本発明のデバッグ装置101のエミュレータ10は、指定アドレスのメモリ読み込みまたはメモリ書き込み、指定アドレスの実行といった事象(イベント)の発生を監視・通知する、ディバッガのブレーク動作などにも使用されるイベント検出器13を具備する。
【0024】さらに、本発明のデバッグ装置101のエミュレータ10は、イベント検出器13から通知されるイベントの中から、モニタリングする変数へのアクセス・イベントかどうかを判断し、ディバッガ17へ通知する機能ブロックのディバッグメッセージ表示手段14を具備する。
【0025】また、本発明のデバッグ装置101のエミュレータ10は、ユーザ・プログラムを読みこむROM領域やユーザ・プログラムのRAM領域となるメモリであるエミュレーション・メモリ16を具備する。
【0026】本発明のデバッグ装置101のディバッガ17は、ユーザがエミュレータを制御するためのソフトウェアの駆動手段であり、ユーザが操作したり、エミュレーション結果を見るためのユーザ・インターフェイスとして、モニタ変数指定手段11、リアルタイム・モニタ登録手段12および出力部15を備えている。
【0027】通常は、エミュレータ10はパーソナルコンピュータと接続し、ディバッガ17はパーソナルコンピュータ上で動作するソフトウェアである。
【0028】モニタ変数指定手段11は、ユーザがエミュレーション中にモニタしたい変数を入力する手段であり、ユーザがモニタしたい変数を入力したとき、エミュレータのリアルタイム・モニタ登録手段12にそのアドレスを通知する。
【0029】リアルタイム・モニタ登録手段12は、エミュレータがエミュレーションを開始する直前に、イベント検出器13を使用して、指定されたアドレスへの書き込みアクセスに対するイベントを生成する。イベント検出器13は、エミュレーションが開始されて、生成したイベントが発生したとき、書き込みアクセスによって書き込まれた値をディバッグメッセージ表示手段14に対して通知する。
【0030】ディバッグメッセージ表示手段14は、通知された値を、ユーザインターフェイスの出力部15に通知する。
【0031】出力部15は、モニタリングする変数の値を画面に表示することによって、ユーザに変数の値が変化したことを知らせる。
【0032】このようにして、本願発明では、特定アドレスへの書き込みアクセスの発生をイベント検出器13で検出して、出力部15において、モニタ対象の変数の値を変化させているのでディバッガの画面表示パフォーマンスの低下は低減する。
【0033】また、エミュレータのイベント検出器13とエミュレーション・メモリ16を使用しているので、エミュレーション中プログラムを止めることなくリアル・タイム読み出し可能である特殊な機能を持つ「リアルタイム・メモリ」を搭載していないエミュレータであっても、エミュレーション中の変数モニタ機能が実現できる。
【0034】以上詳細に実施の形態の構成を述べたが、図1のイベント検出器13は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【0035】次に、図2には、図1で示されたリアルタイム・モニタ登録手段12の動作の一例をフローチャートで示している。エミュレータ10が停止状態であるとき、リアルタイム・モニタ登録手段12は、モニタ変数指定手段11から、モニタリングする変数名のアドレスを受け付けて登録する(ステップS21)。
【0036】イベント検出器13は数に限りがあので、イベント作成可能か判定する(ステップS22)。
【0037】書きこみアクセス・イベントを使い果たしてしまっているようなときは、これ以上は登録できないとしてエラーを表示する(ステップS25)。
【0038】登録可能なときは、当該変数のアドレスに対する書きこみアクセス・イベントを作成するためにイベント検出器13に命令を送る(ステップS23)。
【0039】ユーザーからエミュレーション開始指示を受けたときは、エミュレータに対してエミュレーション開始命令を発行する(ステップS24)。
【0040】図3には、ディバッグ・メッセージ表示手段14の動作をフローチャートで示しているディバッグ・メッセージ表示手段14は、イベント検出器13から、書き込みイベント発生を通知されたとき(ステップS31)、モニタリングする変数に対しての書き込みイベントかどうかを判断し(ステップS32)、当該変数に対しての書き込みイベントであったときは、変数の値を読み出し、ディバッガの出力部15に対して表示を行う(ステップS33)。
【0041】次に、本発明の第2の実施の形態のデバッグ装置の処理方法について説明する。
【0042】本発明の第2の実施の形態のデバッグ装置は、その基本的構成は上記の通りであるが、リアルタイム・モニタ登録手段についてさらに工夫した。
【0043】本発明の第2の実施の形態のデバッグ装置の処理方法のフローチャートを図4に示す。本発明の第1の実施の形態のデバッグ装置の処理方法では、モニタする変数の入力は、エミュレーション停止中に行うものであったが、エミュレーション実行中においてもモニタする変数の追加、削除を行うことができるように改良したものである。
【0044】図4で、エミュレーション実行中において、モニタ変数指定手段11から、モニタ対象の変数が変更されたときは(ステップS41)、書きこみアクセス・イベントが作成できるイベント検出器13が残っているかどうかをチェックし(ステップS42)、イベント作成可能であれば、一時的にエミュレータ停止命令を発行してエミュレートを停止し(ステップS43)、イベント検出器13に対して、アクセス・イベントの再設定を行う(ステップS44)。その後、エミュレーションを再開するためにエミュレータ開始命令を発行する(ステップS45)。
【0045】このような処理を行うことによって、ユーザの指定により、エミュレーション実行中においても、モニタする変数の変更を行うことができるようになるという効果がある。
【0046】さらに、本発明の第3の実施の形態のデバッグ装置の処理方法として、リアルタイム・モニタ登録手段14の処理を図5で示すフローチャートのような処理に置き換えることによって、エミュレーション中にユーザが指定した関数を実行したかどうかを表示することができるといった、リアルタイム・トレース機能を実現することが可能であることを以下に示す。
【0047】ユーザは、モニタ変数指定手段11から、リアルタイム・トレースしたい関数名を入力し、リアルタイム・モニタ登録手段12にそのアドレスを通知することで、リアルタイム・モニタ登録手段12は、トレース関数の受付を行なう(ステップS51)。
【0048】リアルタイム・モニタ登録手段12は、実行イベントが作成可能であるときは、モニタリングする関数のアドレスをエミュレータが実行したことを検出するための「実行イベント」を作成するためにイベント検出器13に実行イベント作成の命令を送る(ステップS52)。
【0049】イベント検出器13には数に限りがあり、実行イベント作成の限度を超えてしまうときにはエラーを表示する(ステップS53)。その後、エミュレーション開始指示を待つ部分は、本発明の第1の実施の形態のデバッグ装置の処理方法と同様である。
【0050】図6は、本発明の第3の実施の形態のデバッグ装置の処理方法でのディバッグ・メッセージ表示手段14の動作を示している。
【0051】ディバッグ・メッセージ表示手段14は、イベント検出器13からアクセス・イベント発生を通知されたとき(ステップS61)、モニタリングする関数のアクセス・イベントかどうかを判断し(ステップS62)、当該関数に対してのアクセス・イベントであったときは、ディバッガの出力部15に対して指定関数を通過したことを表示する(ステップS63)。
【0052】これによって、ユーザは、指定した関数が実行されたかどうかをエミュレーションを止めることなくモニタリングすることが可能になる。
【0053】さらに、本発明の第4の実施の形態のデバッグ装置の処理方法として、本発明の第1の実施の形態のデバッグ装置の処理方法と本発明の第3の実施の形態のデバッグ装置の処理方法の両方を備えたディバッガ装置の出力部15での画面表示例を図7に示す。
【0054】この図7では、ディバッガ・ソフトウェア上エラーメッセージなどを表示する標準出力ウィンドウの例である。ディバッグ・メッセージ表示手段14からモニタリングしている変数の値が変更されたことを通知されたときに、予め決められたフォーマットで変数名と変数の値を表示している(ステップS71)。
【0055】また、リアルタイム・トレースする関数の実行を通知されたときは、予め決められたフォーマットで関数名を表示している(ステップS72)。
【0056】これらの表示は当該変数の値が変更されるたびに、当該関数を実行するたびに下の行へと表示を続けて記録していく。ユーザは、エミュレーション実行中にこのウィンドウを監視していれば、ほぼリアルタイムに、指定した変数の値の変化または、指定した関数が実行されたかどうかを知ることができるという効果がある。
【0057】
【発明の効果】以上説明した通り、本発明においては、以下に記載するような効果を奏する。
【0058】第1の効果は、イベント検出器を使用して、特定アドレスへのアクセスを検出することで、エミュレーション中のRAMの値を取得するという方式から、エミュレータに、エミュレーション中でも読み出せるような仕組みのリアルタイムRAMが備わっていなくても、エミュレーション中変数の値をモニタリングすることができる。
【0059】また、第2の効果は、同じ理由から、一定間隔おきにRAMの値を読み出すことなく、エミュレーション中変数の値をモニタリングできるので、表示部による画面表示のパフォーマンス低下を軽減することができる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013