JP2003296138A - 組込み機器用アプリケーションのシミュレートデバッグ方法 - Google Patents

組込み機器用アプリケーションのシミュレートデバッグ方法

Info

Publication number
JP2003296138A
JP2003296138A JP2002094282A JP2002094282A JP2003296138A JP 2003296138 A JP2003296138 A JP 2003296138A JP 2002094282 A JP2002094282 A JP 2002094282A JP 2002094282 A JP2002094282 A JP 2002094282A JP 2003296138 A JP2003296138 A JP 2003296138A
Authority
JP
Japan
Prior art keywords
communication path
function
identification
class
application
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.)
Withdrawn
Application number
JP2002094282A
Other languages
English (en)
Inventor
Shinichi Nakajima
信一 中島
Nobuo Taguchi
信夫 田口
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2002094282A priority Critical patent/JP2003296138A/ja
Publication of JP2003296138A publication Critical patent/JP2003296138A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 組込みJavaアプリケーションに修正を加えず
にシミュレートデバッグできるようにする。 【解決手段】 シミュレート・デバッグ環境時におい
て、起動時に、通信パス定義ファイル7を用いて、各A
PIに対応する機能クラス名6a〜6eと通信パス3a
〜3eとを関連付けると共に通信パスに識別IDを割り
当てる。この通信パス定義ファイル7は、内容的には、
実機上で動作させる際に利用する他の通信パス定義ファ
イルにおけるデバイスドライバ名が、それに対応する機
能クラス名に置き変わったものである。その後の組込み
Javaアプリケーション1実行処理中、生成されるAPI
2a〜API2dは、自己に割り当てられている識別I
Dと同一の識別IDの通信パスに処理要求を渡す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、組込み機器用アプ
リケーションのシミュレートデバッグ方法に関する。
【0002】
【従来の技術】近年、組込み機器用アプリケーションを
Java言語で開発することが行われている(JAVA
は、サン・マイクロシステムズ・インコーポレーテッド
の登録商標)。
【0003】尚、組込み機器用アプリケーションの“組
込み機器”とは、正確には“ソフトウェアを内部に組込
んだ機器”という意味である。組込み機器用アプリケー
ションは、機器を制御する為のソフトウェアである。
“組込み機器”とは、組込み機器用アプリケーションを
内部に組込んだ機器全てを指し、具体例としては、携帯
情報端末(携帯電話、PDA等)やビデオカメラ、ファ
クシミリ、電子レンジ、テレビ等の家電製品、オシロス
コープ等の計測器、PC(パソコン)のマザーボード
(BIOSプログラム搭載)等があるが、これら以外に
も様々な機器がある。
【0004】
【発明が解決しようとする課題】上記のような組込み機
器用アプリケーションをJava言語で開発する場合、
まず、Java言語には実機上でデバッグを行うための
デバッグ環境がないため、実機上(シミュレーション用
PCと区別する為、以下、“組込み機器”自体の事は
“実機”と言う)でデバッグを行う事が出来なかった。
【0005】また実機に依存したデバイスドライバを使
用しているため、PC(パソコン)上でアプリケーショ
ンのデバッグを行う場合、実機とハードウェア構成が異
なるPC上では、このデバイスドライバは正常な動作が
できない為、この影響を受けて正常なデバッグ・シミュ
レーションを行うことができない場合がある。この為、
PC(パソコン)上でアプリケーションのデバッグを行
う際には、実機に依存したデバイスドライバを使用せ
ず、代わりにその機能をシミュレートするシミュレータ
を用意していた。この為、シミュレータを呼び出す内容
へとアプリケーションプログラムを変更しなければなら
なかった。
【0006】しかしながら、このようにすると、開発工
数の増大、アプリケーションに変更を加えることによる
不具合発生の危険性の増加、実機とデバッグ環境の違い
による動作不良の発生を招くといった問題があった。
【0007】本発明の課題は、実機上で動作する組込み
機器用アプリケーションに修正を加えずに、PC上でシ
ミュレートデバッグすることができ、また組込み機器用
アプリケーションの使用するデバイスドライバを切り換
えることができる組込み機器用アプリケーションのシミ
ュレートデバッグ方法を提供することである。
【0008】
【課題を解決するための手段】本発明による組込み機器
用アプリケーションのシミュレートデバッグ方法は、処
理中、任意のAPIを生成し、該APIに割当てられた
識別IDにより、使用するデバイスドライバを指定する
機能を有する組込み機器用アプリケーションをシミュレ
ート・デバッグする環境上において、実機デバイスの機
能をシミュレートするシミュレータと、該実機デバイス
上でのデバイスドライバの代わりに前記シミュレート・
デバッグ環境上で該シミュレータを呼び出す機能クラス
と、通信経路クラスとを用意し、予め定義される、機能
クラスオブジェクトと通信経路クラスオブジェクトと前
記識別IDとの対応関係に基づいて、組込み機器用アプ
リケーションの起動時に動的に各機能クラスオブジェク
トと各通信経路クラスオブジェクトとを関連付けると共
に識別IDを割り当て、前記組込み機器用アプリケーシ
ョンが前記シミュレータを使用する際に、使用する機能
クラスオブジェクトに関連付けられた通信経路クラスオ
ブジェクトを、各APIに割当てられた識別IDで指定
する。
【0009】上記組込み機器用アプリケーションのシミ
ュレートデバッグ方法は、通信経路クラスを用意し、実
機上ではこの通信経路クラスオブジェクトとデバイスド
ライバと識別IDの対応関係を記述した定義ファイルを
用い、デバッグ環境上では通信経路クラスオブジェクト
と機能クラスオブジェクトと識別IDの対応関係を記述
した定義ファイルを用いることにより、実機上で動作す
る組込み機器用アプリケーションに一切修正を加えず
に、PC上(デバッグ環境上)でシミュレートデバッグ
する事が可能となる。これより、開発工数を低減し、ア
プリケーションに変更を加えることによる不具合発生の
危険性の増加、実機とデバッグ環境の違いによる動作不
良の発生を防止することができる。
【0010】また、定義ファイルの代わりにクラスを用
意するようにしてもよい。
【0011】
【発明の実施の形態】以下、図面を参照して、本発明の
実施の形態について説明する。尚、以下の実施の形態の
説明では、組込み機器用アプリケーションの一例として
Javaアプリケーションを例にして説明するが、これに限
るわけではない。
【0012】図1は、実機上における初期処理について
説明する為の図である。但し、初期処理の説明の前に、
同図を参照しながら、初期処理完了後の動作について概
略的な説明を行うものとする。
【0013】まず、組込み機器用Javaアプリケーション
1(以下、単にJavaアプリケーション1という)は、各
デバイスドライバ4a〜4eに対して直接処理要求を出
すのではなく、アプリケーションプログラムから実機の
持つ各機能を呼び出すためのインタフェースクラスであ
るAPI(Application Programming Interface )クラ
スのオブジェクトAPI2a〜API2dの何れかを生
成して、生成したオブジェクトに対して処理要求を出
す。
【0014】APIクラスオブジェクトAPI2a〜A
PI2dは、自己が対応する通信経路クラスオブジェク
ト(この通信経路クラスのオブジェクトを通信パスと呼
び、通信パス3a〜3eと記す)に上記処理要求を渡
す。そして、通信パス3a〜3eからデバイスドライバ
4a〜4eを介して、デバイス(不図示)に処理要求を
送信する。各通信パス3a〜3eは、後述する初期処理
時に通信パス定義ファイル5の定義に従ってデバイスド
ライバ4a〜4eの何れかに関連付けられ、且つ関連付
けられたデバイスドライバの識別IDが割り当てられて
いる。また、各APIクラスのオブジェクトAPI2a
〜API2dは、その生成時に、自己が対応するデバイ
スドライバの識別IDが割り当てられており、この識別
IDと同じ識別IDを持つ通信パスに対して、上記処理
要求を送信する。
【0015】各通信パス3a〜3eは、唯一つのデバイ
スドライバと接続している。複数の通信パスが同じ1つ
のデバイスドライバと接続していても良い。反対に一つ
の通信パスが二つ以上のデバイスドライバと接続しては
ならない。
【0016】通信パス3a〜3eは、後述する通信パス
定義ファイル5に基づいて、デバイスドライバの実体と
関連付けられる。また、個々の通信パスを識別する識別
IDが割当てられる。これは、上記通信パス定義ファイ
ル5に基づいて割当てられる。
【0017】ここで、APIクラスオブジェクトAPI
2a〜API2dは、使用するデバイスドライバが各々
固定的に決まっており(使用するデバイスドライバの識
別IDが上記の通り割り当てられる)、このままでは各
オブジェクトAPI2a〜API2dはそれぞれ常に決
まったデバイスドライバしか呼び出せない。
【0018】一方、本発明によれば、通信パス定義ファ
イル5の内容を変更して、通信パス3a〜3eとデバイ
スドライバとの対応関係を切換えることで、APIクラ
スに一切変更を加えることなく、APIクラスの各オブ
ジェクトが呼び出す相手(実機のデバイスドライバまた
はデバッグ環境上の機能シミュレートクラス(後述す
る))を切換えることが可能になる。
【0019】APIクラスオブジェクトAPI2a〜A
PI2dの何れかが、上記の様に自身に割当てられた識
別IDと同じ識別IDを割当てられている通信パスに対
して処理要求を出すと、その通信パスは、自己に関連付
けられているデバイスドライバに処理要求を渡し、また
処理結果をデバイスドライバから受け取って、処理要求
を出したAPIクラスオブジェクトに返す。
【0020】以下、初期処理について説明する。まず、
最初に、各デバイスドライバと通信パスとの対応関係、
及び識別IDを、通信パス定義ファイル5にて定義して
おく。又は識別IDとデバイスドライバと通信パスの対
応関係をデータとして持つクラスを作成し、そのクラス
に定義する(このクラスを通信パス定義クラスと呼ぶ)
(図1の)。以下の説明では、通信パス定義ファイル
5をメインにして説明する。
【0021】識別IDの割当てはJavaアプリケーション
起動時の初期処理として行う。まずJavaアプリケーショ
ンの起動時に通信パス定義ファイル5を読み込む。読み
込んだ内容は識別ID・デバイスドライバ・通信パス対
応属性として保存される(又は通信パス定義クラスのオ
ブジェクトを生成する)(図1の)。
【0022】通信パス定義ファイル5を読み込んだ後
(又は通信パス定義クラスのオブジェクトを生成した
後)、通信パス定義ファイル5(又は通信パス定義クラ
スのオブジェクト)に定義されているデバイスドライバ
をメモリ上にロードする。既にロードされている場合は
その参照(既にメモリ上へロードされているデバイスド
ライバオブジェクトへの参照)を取得する(図1の
)。
【0023】通信パス定義ファイル5(又は通信パス定
義クラスオブジェクト)に定義されているデバイスドラ
イバのロード・参照取得後、識別ID・デバイスドライ
バ・通信パス対応関係に従って、各通信パスを、対応す
るデバイスドライバの実体と関連付ける(図1の)。
【0024】各通信パスと対応するデバイスドライバの
実体との関連付けが完了した後、通信パス定義ファイル
5(又は通信パス定義クラスオブジェクト)の定義に従
って各通信パスに対応した識別IDを割当てる(図1の
)。
【0025】通信パスに識別IDが割当てられた後は、
Javaアプリケーションはデバイスに対して処理要求を出
す事ができる。以上、初期処理について説明した。
【0026】以下、まず、図2を参照して実機上の動作
について説明し、次に図3を参照してデバッグ環境での
動作について説明する。本例によれば、実機上で動作す
るJavaアプリケーションを、変更を加えずに、PC上の
デバッグ環境で正常に動作させることができる。
【0027】図2は、実機上の動作について説明する為
の図である。尚、同図では、デバイスドライバの一部を
省略して示してある。ここでは、既に、図1に示す内容
の通信パス定義ファイル5に従って上記初期処理が行わ
れているものとする。
【0028】同図では、Javaアプリケーション1が、実
機デバイスに対する処理要求に対応するAPIクラスオ
ブジェクトとして例えばAPI2bを生成した場合を例
にして説明する(図2の)。
【0029】Javaアプリケーション1からの処理要求を
受けた後、API2bは自身の持つ識別ID(=2)と
同じ識別IDを持つ通信パス3bに処理要求を送る(図
2の)。API2bからの処理要求を受けた通信パス
3bは、自身と接続している(関連付けられている)デ
バイスドライバ4bに対して、API2bからの処理要
求を送る(図2の)。
【0030】処理要求を受けたデバイスドライバ4b
は、自身が対応する実機デバイス(不図示)に、通信パ
ス3bから受けた処理要求を送る。また、この処理要求
に対する実機デバイスからの処理結果を受けとり、この
処理結果を処理要求を送ってきた通信パス3bに返す
(図2の)。
【0031】デバイスドライバ4bからの処理結果を受
けた通信パス3bは、その処理結果を、処理要求を送っ
てきたAPI2bへ送る(図2の)。通信パス3bか
ら処理結果を受けたAPI2bは、この処理結果をJava
アプリケーション1へ送る(図2の)。
【0032】このようにして、Javaアプリケーション1
は、自身の出した実機デバイスへの処理要求に対する処
理結果を受ける。次に実機デバイス上で動作しているJa
vaアプリケーション1を、変更を加えずに、PC上のデ
バッグ環境へ持ってくる。Javaアプリケーション1とA
PIクラス2及び通信経路クラス3の各オブジェクト
は、実機上で動作するものと同一である。また、実機の
機能をシミュレートするシミュレータを用意し、デバイ
スドライバの代わりにシミュレータを呼び出す機能シミ
ュレートクラスを用意する。従来では、Javaアプリケー
ション1を、この機能シミュレートクラスを呼び出すも
のへと変更しなければならなかったが、本例ではその必
要はなくなる。すなわち、シミュレートデバッグ環境上
では、上記通信パス定義ファイル5ではなく、図3の通
信パス定義ファイル7を用いて起動するようにすればよ
い。
【0033】図3を参照して詳しく説明する。図3は、
デバッグ環境での動作について説明する為の図である。
予め、通信パス定義ファイル7には、識別ID、機能シ
ミュレートクラス、通信パスの対応関係が定義されてい
る(図3の)。通信パス定義ファイル7の内容は、図
示の通り、通信パス定義ファイル5における“APIに
対応するデバイスドライバ名”が、対応する機能クラス
名(機能シミュレートクラスの各オブジェクト名)に置
き換えられたものとなっている。
【0034】デバッグ環境上での識別IDの割当ては、
Javaアプリケーション1起動時の初期処理として行う。
まずJavaアプリケーション1の起動時に通信パス定義フ
ァイル7を読み込む。読み込んだ内容は識別ID、機能
シミュレートクラス、通信パス対応関係として保存する
(図3の)。
【0035】デバッグ環境上での実行時に、Javaアプリ
ケーション1は(上記の通り変更していないので)上述
した実機の場合と同様にして処理要求を出すが、この処
理要求は通信パスを介して間接的に機能シミュレートク
ラスオブジェクトに渡されるので、Javaアプリケーショ
ン1は実機と異なるデバッグ環境上であることを意識す
ることなく、シミュレータに処理を行なわせることがで
きる。
【0036】すなわち、Javaアプリケーション1が、あ
る処理に対応して例えばAPIクラスオブジェクトAP
I2bを生成して、生成したAPI2bに処理要求を送
った場合(図3の)、API2bは、自身に割り当て
られた識別ID(自身が対応するデバイスドライバの識
別ID)と同じ識別IDを持つ通信パス3bに対して、
Javaアプリケーション1からの処理要求を送信する(図
3の)。
【0037】API2bからの処理要求を受けた通信パ
ス3bは、自身と接続された(関連付けられている)機
能シミュレートクラスオブジェクト(以下、機能クラス
と呼ぶ)6bに、API2bからの処理要求を送信する
(図3の)。
【0038】通信パス3bからの処理要求を受けた機能
クラス6bは、これを自身が対応するシミュレータ(不
図示)に渡し、この処理要求に対する処理結果をシミュ
レータから受取り、これを通信パス3bに送る(図3の
)。
【0039】機能クラス6bから処理結果を受けた通信
パス3bは、この処理結果を自身に処理要求を送ってき
たAPI2bに送る(図3の)。通信パス3bから処
理結果を受けたAPI2bは、この処理結果をJavaアプ
リケーション1に送る(図3の)。
【0040】このようにして、Javaアプリケーション1
自体は、実機のデバイスドライバに対する処理要求と同
じ処理要求を出すが、この処理要求は一旦通信パスに渡
され、通信パスは、この処理要求を自己が関連付けられ
ている(通信パス定義ファイル7で定義された)機能ク
ラスに渡すので、Javaアプリケーション1はデバッグ環
境上であることを意識することなく、シミュレータに処
理を行なわせ、その処理結果を受け取ることができる。
【0041】このように、Javaアプリケーション1は、
実機デバイス上でも、PC上のデバッグ環境において
も、同じ動作(処理要求)をすればよいので、Javaアプ
リケーション1に一切変更を加えずにシミュレーション
・デバッグをPC上で行う事ができる。
【0042】次に、以下に、実機デバイスに機能追加さ
れた場合について説明する。本例によれば、このような
場合でも、Javaアプリケーション1に変更を加えずに、
デバッグ環境で動作させることができる。
【0043】尚、ここで断っておくならば、本例は実機
デバイスに機能追加された場合なので、機能追加前の状
態からして上記図1〜図3で示した構成とは異なる構成
を前提としている。すなわち、図1〜図3の例で、複数
のデバイスドライバ4a〜4eが存在し、各通信パス3
a〜3eは、各デバイスドライバ4a〜4eに対応する
構成であったが、これに限るわけではなく、各通信パス
3a〜3eがデバイスドライバの中の個々の各機能に対
応する構成であってもよい。
【0044】図4、図5は、このような構成において、
デバイスドライバに新たな機能が追加された場合の一例
を示している。具体的には、図4に示す構成の中で、最
初、デバイスドライバ14の各機能に対応して、通信パ
ス13a〜13eが存在していたものとする(また、A
PIクラスオブジェクトAPI12a〜API12dが
生成されるものとする)。この状態から、デバイスドラ
イバ14に新たな機能が追加されたとする(勿論、図1
〜図3で示した構成において、新たなデバイスドライバ
を追加した場合にも、本例は適用可能である)。
【0045】この場合、まず、このデバイスドライバ1
4の追加機能に対応して、APIクラスに新たなオブジ
ェクトAPI12eを新規作成し、Javaアプリケーショ
ン11にこのAPI12eを呼び出す処理を追加する。
【0046】このようにして処理内容を追加/変更した
Javaアプリケーション11を、実機デバイス上に搭載す
る。また、通信パス定義ファイル15には、追加したA
PI12eが使うデバイスドライバ14の機能、及びこ
の機能に関連付けられるべき通信パスの定義を追加す
る。尚、もし既存のAPIと同じ識別IDを割当てられ
ているのなら定義を追加する必要はない(図4の)。
【0047】Javaアプリケーション11起動後、Javaア
プリケーション11は、通信パス定義ファイル15を読
み込み、識別ID・通信パス・デバイスドライバの対応
関係を割当てる。対応関係を割当てた後、Javaアプリケ
ーション11は実機デバイスに対して処理要求を出すこ
とが可能な状態になる(図4の)。
【0048】Javaアプリケーション11は、実機デバイ
スに対して、例えば上記追加した機能を使うための処理
要求を出す時、API12eを生成し、このAPI12
eに処理要求を送る(図4の)。
【0049】Javaアプリケーション11から処理要求を
受けた後、API12eは自身の識別ID(=6)を割
当てられた通信パス13fに対して処理要求を送る(図
4の)。
【0050】API12eからの処理要求を受けた後、
通信パス13fはデバイスドライバ14に対してAPI
12eからの処理要求を送る(図4の)。デバイスド
ライバ14は、通信パス13fからの処理要求を実機デ
バイス(不図示)に対して送り、その処理要求に対する
実機デバイスからの処理結果を通信パス13fに送る
(図4の)。
【0051】デバイスドライバ14からの処理結果を受
けた通信パス13fは、その処理結果をAPI12eに
送る(図4の)。通信パス13fからの処理結果を受
けたAPI12eは、その処理結果をJavaアプリケーシ
ョン11に送る(図4の)。
【0052】このようにして、Javaアプリケーション1
1は、実機デバイスに新たな機能が追加された場合で
も、何等問題なく、処理要求を出して、処理結果を受け
ることができる。
【0053】次に、上記のように実機デバイス上にある
追加機能を呼び出す処理を追加したJavaアプリケーショ
ン11を、そのままデバッグ環境へ持ってくる。PC上
等のデバッグ環境においては、実機デバイスの新機能を
シミュレートする新たな機能シミュレータを追加用意
し、この新機能シミュレータを呼び出す新たな機能シミ
ュレートクラスのオブジェクト(機能クラス16f)を
新規作成する。尚、図示の機能クラス16a〜16e
は、新機能追加以前の状態から、実機デバイスの各機能
をシミュレートする各機能シミュレータに対応して作成
されていた、機能シミュレートクラスの各オブジェクト
である。
【0054】また、デバッグ環境用に用意されている通
信パス定義ファイル17に、API12eの持つ識別I
Dと機能クラス16fとそれと接続する通信パス13f
の対応関係を追加する(図5の)。
【0055】以上の準備を行っておくことを前提にし
て、以下、デバッグ処理の一例について説明する。ま
ず、デバッグ環境上でのJavaアプリケーション11起動
時に、通信パス定義ファイル17を読み込ませ、識別I
D・通信パス・機能クラスの対応関係を割当てる。対応
関係を割当てた後、Javaアプリケーション11は機能ク
ラスに対して処理要求を出すことが可能になる(図5の
)。
【0056】デバッグ開始後、Javaアプリケーション1
1が実機デバイスの追加機能の処理を要求する場合の例
を説明する。この場合、Javaアプリケーション11は、
API12eに処理要求を出す(図5の)。
【0057】Javaアプリケーション11からの処理要求
を受けると、API12eは自身の識別IDを割当てら
れた通信パス13fに処理要求を送る(図5の)。A
PI12eからの処理要求を受けた通信パス13fは、
自身と接続された機能クラス16fに、この処理要求を
送信する(図5の)。
【0058】通信パス13fからの処理要求を受けた機
能クラス16fは、上記新たに追加された機能シミュレ
ータを呼び出し、処理を行わせ、処理結果を受け取っ
て、通信パス13fへ送る(図5の)。
【0059】通信パス13fは、機能クラス16fから
の処理結果をAPI12eへ送る(図5の)。API
12eは、通信パス13fから送られた処理結果をJava
アプリケーション11に送る(図5の)。
【0060】このようにして、Javaアプリケーション1
1は、自身の出した処理要求に対する機能シミュレータ
の処理結果を受け取る。このように、本例によれば 実
機デバイスに機能追加した場合(実機デバイスの追加機
能を使えるようにJavaアプリケーション11の修正を行
った場合)でも、実機デバイス上でのJavaアプリケーシ
ョン11の動作とPC上のデバッグ環境でのJavaアプリ
ケーション11の動作を同じにする事が可能となり、Ja
vaアプリケーション11に一切変更を加えずにシミュレ
ートデバッグをPC上で行う事ができる。
【0061】また、上述した一例では、デバイスドライ
バに機能追加した場合について説明したが、デバイスド
ライバを追加した場合も同様である。更に、本例によれ
ば、通信パス定義ファイルの対応関係を変更することに
より、APIクラスには一切変更を加えずに、APIク
ラスオブジェクトが呼び出すデバイスドライバ(または
機能クラス)を変更することができる。すなわち、ま
ず、APIクラスは、アプリケーションから実機の持つ
機能を呼び出す為のインタフェースであり、APIクラ
スオブジェクトが呼び出すデバイスドライバ(または機
能クラス)は、固定的に決まっている(割り当てられた
識別IDは固定的)。よって、このままでは、各API
クラスオブジェクトは、常に同じデバイスドライバ(機
能クラス)の機能しか呼び出すことができない。ところ
が、本例によれば、通信パス定義ファイルにおける通信
パスとデバイスドライバ(機能クラス)との対応関係を
変更するだけで、APIクラスには一切変更を加えず
に、APIクラスオブジェクトが呼び出すデバイスドラ
イバ(または機能クラス)を変更することができる。例
えば、図1の通信パス定義ファイル5において、{#識
別ID#APIに対応するデバイスドライバ名#通信パ
ス}として、例えば{1デバイスドライバ4a 通信パ
ス3a}を{1 デバイスドライバ4b 通信パス3
a}に変更すれば、API2aは、識別ID=1によっ
て通信パス3aに処理要求を渡すのであり、通信パス3
aは自己に接続されているデバイスドライバ(すなわち
デバイスドライバ4b)に処理要求を中継するのである
から、API2aは、デバイスドライバの変更を意識す
ることなく、デバイスドライバ4bの機能を呼び出すこ
とができる。
【0062】最後に、ハードウェア構成について述べる
ならば、上記の通り、組込み機器としての実機デバイス
は、携帯情報端末(携帯電話、PDA等)やビデオカメ
ラ、ファクシミリ、電子レンジ、テレビ等の家電製品、
オシロスコープ等の計測器、PC(パソコン)のマザー
ボード(BIOSプログラム搭載)等様々な機器が考え
られるので、特定のハードウェア構成を示すことには意
味がないが、少なくともCPUとメモリ(上記組込みJa
vaアプリケーション、上記各クラスの定義内容、通信パ
ス定義ファイル等が格納される)を有する。デバッグ環
境は、一般的な構成のコンピュータ(例えばパーソナル
コンピュータ等)で実現されるので、これも特にハード
ウェア構成は図示しないが、例えばCPU、メモリ、当
該コンピュータに上述した各種処理を実行させる為のプ
ログラム/データ等を記録した記録装置(ハードディス
ク等)、入出力部等を有する構成となっている。尚、上
記プログラム/データ等は、FD(フレキシブルディス
ク)、CD―ROM等の可搬型記録媒体に記録されてい
るものを、上記コンピュータが読み出し/実行する形態
であってもよい。
【0063】
【発明の効果】以上、詳細に説明したように、本発明の
組込み機器用アプリケーションのシミュレートデバッグ
方法によれば、通信経路クラスを用意し、実機上ではこ
の通信経路クラスオブジェクトとデバイスドライバと識
別IDの対応関係を記述した定義ファイル(またはその
クラス)を用い、デバッグ環境上では通信経路クラスオ
ブジェクトと機能クラスオブジェクトと識別IDの対応
関係を記述した定義ファイル(またはそのクラス)を用
いることにより、実機上で動作する組込み機器用アプリ
ケーションに一切修正を加えずに、PC上(デバッグ環
境上)でシミュレートデバッグする事が可能となるの
で、開発工数を低減し、アプリケーションに変更を加え
ることによる不具合発生の危険性の増加、実機とデバッ
グ環境の違いによる動作不良の発生を防止することがで
きる。
【0064】更に、定義ファイルの内容を変更すること
により、APIクラスオブジェクトが呼び出すデバイス
ドライバを変更することができる。
【図面の簡単な説明】
【図1】初期処理について説明する為の図である。
【図2】実機上の動作について説明する為の図である。
【図3】デバッグ環境での動作について説明する為の図
である。
【図4】実機デバイスに機能追加された場合の実機上の
動作について説明する為の図である。
【図5】実機デバイスに機能追加された場合のデバッグ
環境での動作について説明する為の図である。
【符号の説明】
1 (組込み機器用)Javaアプリケーション 2a〜2d APIクラスオブジェクトAPI 3a〜3e 通信パス 4a〜4e デバイスドライバ 5 通信パス定義ファイル 6a〜6e 機能クラス 7 通信パス定義ファイル 11 Javaアプリケーション 12a〜12d APIクラスオブジェクトAPI 13a〜13e 通信パス 14 デバイスドライバ 15 通信パス定義ファイル 16a〜16f 機能クラス 17 通信パス定義ファイル

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 処理中、任意のAPIを生成し、該AP
    Iに割当てられた識別IDにより、使用するデバイスド
    ライバを指定する機能を有する組込み機器用アプリケー
    ションをシミュレート・デバッグする環境上において、 実機デバイスの機能をシミュレートするシミュレータ
    と、該実機デバイス上でのデバイスドライバの代わりに
    前記シミュレート・デバッグ環境上で該シミュレータを
    呼び出す機能クラスと、通信経路クラスとを用意し、 予め定義される、機能クラスオブジェクトと通信経路ク
    ラスオブジェクトと前記識別IDとの対応関係に基づい
    て、組込み機器用アプリケーションの起動時に動的に各
    機能クラスオブジェクトと各通信経路クラスオブジェク
    トとを関連付けると共に識別IDを割り当て、 前記組込み機器用アプリケーションが前記シミュレータ
    を使用する際に、使用する機能クラスオブジェクトに関
    連付けられた通信経路クラスオブジェクトを、各API
    に割当てられた識別IDで指定することを特徴とする組
    込み機器用アプリケーションのシミュレートデバッグ方
    法。
  2. 【請求項2】 処理中、任意のAPIを生成し、該AP
    Iに割当てられた識別IDにより、使用するデバイスド
    ライバを指定する機能を有する組込み機器用アプリケー
    ションをシミュレート・デバッグする環境上において、 実機デバイスの機能をシミュレートするシミュレータ
    と、該実機デバイス上でのデバイスドライバの代わりに
    前記シミュレート・デバッグ環境上で該シミュレータを
    呼び出す機能クラスと、通信経路クラスと、機能クラス
    オブジェクトと通信経路クラスオブジェクトと前記識別
    IDとを関係付ける通信パス定義クラスとを用意し、 組込み機器用アプリケーションの起動時に、前記通信パ
    ス定義クラスオブジェクトにより、動的に各機能クラス
    オブジェクトと各通信経路クラスオブジェクトとを関連
    付けると共に識別IDを割り当て、 前記組込み機器用アプリケーションが前記シミュレータ
    を使用する際に、使用する機能クラスオブジェクトに関
    連付けられた通信経路クラスオブジェクトを、各API
    に割当てられた識別IDで指定することを特徴とする組
    込み機器用アプリケーションのシミュレートデバッグ方
    法。
  3. 【請求項3】 実機デバイス上において、 予め定義される、デバイスドライバと通信経路クラスオ
    ブジェクトと識別IDの対応関係に基づいて、組込み機
    器用アプリケーションの起動時に動的に各デバイスドラ
    イバと各通信経路クラスオブジェクトとを関連付け、 組込み機器用アプリケーションが前記実機デバイスの機
    能を使用する際に、使用するデバイスドライバに関連付
    けられた通信経路クラスオブジェクトを、各APIに割
    当てられた識別IDで指定することにより間接的に、使
    用するデバイスドライバを指定し、 シミュレート・デバッグ環境上において、 前記実機の機能をシミュレートするシミュレータと、前
    記デバイスドライバの代わりに該シミュレータを呼び出
    す機能クラスを用意し、 予め定義される、前記機能クラスの各オブジェクトと前
    記通信経路クラスの各オブジェクトと前記識別IDとの
    対応関係に基づいて、組込み機器用アプリケーションの
    起動時に動的に各機能クラスオブジェクトと各通信経路
    クラスオブジェクトとを関連付け、 組込み機器用アプリケーションが前記シミュレータを使
    用する際に、使用する機能クラスオブジェクトに関連付
    けられた通信経路クラスオブジェクトを、各APIに割
    当てられた識別IDで指定することを特徴とする組込み
    機器用アプリケーションのシミュレートデバッグ方法。
  4. 【請求項4】 前記APIは、前記デバイスドライバの
    アプリケーションプログラミングインタフェースであ
    り、各APIには使用するデバイスドライバの識別情報
    である前記識別IDが割り当てられており、 前記組込み機器用アプリケーションが前記実機デバイス
    の機能を使用する際に生成したAPIは、自己に割り当
    てられている識別IDを持つ通信経路クラスオブジェク
    トに処理要求を渡し、 該通信経路クラスオブジェクトは、自己に関連付けられ
    ているデバイスドライバに該処理要求を渡すことを特徴
    とする請求項3記載の組込み機器用アプリケーションの
    シミュレートデバッグ方法。
  5. 【請求項5】 前記デバイスドライバと通信経路クラス
    オブジェクトと識別IDの対応関係の定義内容を変更す
    ることにより、前記各APIが使用するデバイスドライ
    バを変更することを特徴とする請求項3記載の組込み機
    器用アプリケーションのシミュレートデバッグ方法。
JP2002094282A 2002-03-29 2002-03-29 組込み機器用アプリケーションのシミュレートデバッグ方法 Withdrawn JP2003296138A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002094282A JP2003296138A (ja) 2002-03-29 2002-03-29 組込み機器用アプリケーションのシミュレートデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002094282A JP2003296138A (ja) 2002-03-29 2002-03-29 組込み機器用アプリケーションのシミュレートデバッグ方法

Publications (1)

Publication Number Publication Date
JP2003296138A true JP2003296138A (ja) 2003-10-17

Family

ID=29386942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002094282A Withdrawn JP2003296138A (ja) 2002-03-29 2002-03-29 組込み機器用アプリケーションのシミュレートデバッグ方法

Country Status (1)

Country Link
JP (1) JP2003296138A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217574A (ja) * 2007-03-06 2008-09-18 Ricoh Co Ltd 開発プログラム、記録媒体、開発装置および開発方法
JP2011022637A (ja) * 2009-07-13 2011-02-03 Kyocera Mita Corp アプリ動作確認システム、端末用プログラムおよびサーバ用プログラム
WO2014048314A1 (zh) * 2012-09-29 2014-04-03 腾讯科技(深圳)有限公司 一种视频采集方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217574A (ja) * 2007-03-06 2008-09-18 Ricoh Co Ltd 開発プログラム、記録媒体、開発装置および開発方法
JP2011022637A (ja) * 2009-07-13 2011-02-03 Kyocera Mita Corp アプリ動作確認システム、端末用プログラムおよびサーバ用プログラム
WO2014048314A1 (zh) * 2012-09-29 2014-04-03 腾讯科技(深圳)有限公司 一种视频采集方法和装置
US9819858B2 (en) 2012-09-29 2017-11-14 Tencent Technology (Shenzhen) Company Limited Video acquisition method and device

Similar Documents

Publication Publication Date Title
JP2011107752A (ja) 情報処理装置、通信システムおよびプログラム
CN111427594B (zh) 应用程序运行方法及装置
CN113051088B (zh) 程序加载方法、装置、设备及计算机可读介质
CN111459541A (zh) 应用程序的打包方法、装置、计算机设备和存储介质
JP2008276690A (ja) 開発システム、開発システムのサーバ、開発方法
JP7115342B2 (ja) デバッグ支援システムおよびデバッグ支援方法
CN116685946A (zh) 在不停止应用的执行的情况下的更新的共享库的重新加载
She et al. Hermes: A tool for testing mobile device applications
US20060080636A1 (en) Method of building intelligent platform management interface firmware architecture
JP2003296138A (ja) 組込み機器用アプリケーションのシミュレートデバッグ方法
WO2022179101A1 (zh) 存储架构下的软件存储方法
US7519719B2 (en) Automatic creation of protocol dependent control path for instrument application
KR20060031913A (ko) 일대일 이름-기반 소켓 통신 수행 장치 및 방법
CN111782196A (zh) 基于mvp架构的开发方法及装置
CN111290746A (zh) 对象访问方法、装置、设备及存储介质
CN111414232A (zh) 虚拟机模板数据处理方法及装置
JP2020119234A (ja) 管理サーバ、ブートサーバ、ネットワークブートシステム、ネットワークブート方法、プログラム
CN112272820A (zh) 支持装置以及支持程序
US11811994B2 (en) Information processing system and apparatus to manage combined application
CN116700694B (zh) 小程序引擎
KR101771438B1 (ko) 이동통신 단말기 및 이의 어플리케이션 설치 방법
CN114647565A (zh) 安卓项目的测试方法、存储介质及电子设备
CN118760578A (zh) 软件测试平台有效性的验证方法、设备、存储介质及产品
CN115840714A (zh) 一种测试数据处理方法、装置、电子设备及介质
JP2021076902A (ja) 画像形成装置、パネル操作監視及び再現アプリケーション並びにパネル操作監視及び再現方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050607