(57)【要約】　　　（修正有）【課題】多くの情報処理装置の機種に対して外部デバイスの接続を可能とし、また新規機種の情報処理装置にも対応できるものを提供する。【解決手段】新規な外部デバイスが接続された時、外部デバイスを動作させるのに必要なドライバソースプログラムを取得するドライバソースプログラム取得手段、ドライバソースプログラムをコンパイルリンクするコンパイルリンク手段、記憶手段にインストールするインストール手段上記各手段を実行させるドライバインストールプログラムを情報処理装置に備えることにより、１種類のドライバソースプログラムの用意で済む。【選択図】　　　　図１
2004086280.tif 000002
【特許請求の範囲】
【請求項１】
外部デバイスに接続可能な情報処理装置において、
新規な外部デバイスが接続された時、当該外部デバイスを動作させるのに必要なドライバソースプログラムを取得するドライバソースプログラム取得手段、
ドライバソースプログラムをコンパイルリンクするコンパイルリンク手段、
コンパイルリンクされたドライバ中間コードプログラムを記憶手段にインストールするインストール手段、
上記各手段を実行させるドライバインストールプログラムを備えた
ことを特徴とする情報処理装置。
【請求項２】
ＣＰＵを保持する情報処理装置に接続され、当該情報処理装置によって動作される外部デバイスであって、
情報処理装置との接続が自在にされる接続手段と、
情報処理装置が本外部デバイスを利用可能とするドライバソースプログラムを保持する記憶手段と、
情報処理装置の接続時に情報処理装置からの要求によりドライバソースプログラムを情報処理装置に転送する転送手段とを備えることを特徴とする外部デバイス。
【請求項３】
上記記憶手段はドライバソースプログラムの代わりに、ドライバソースプログラムから一次的にコンパイルリンクされたドライバ中間コードプログラムを保持し、上記転送手段はドライバ中間コードプログラムを上記情報処理装置に転送することを特徴とする請求項３記載の外部デバイス。
【請求項４】
外部デバイスに接続可能な情報処理装置に、
外部デバイスを動作させるのに必要なドライバソースプログラムを取得するドライバソースプログラム取得手順、
取得したドライバソースプログラムをコンパイルリンクするコンパイルリンク手順、
コンパイルリンクされたドライバ中間コードプログラムを情報処理装置にインストールするインストール手順
を実行させるためのドライバインストールプログラム。
【請求項５】
ドライバソースプログラムに加えて、当該外部デバイスを動作させる別プログラムを外部から受信、インストールする手順を情報処理装置に実行させることを特徴とする請求項４記載のドライバインストールプログラム。
【請求項６】
プログラムをインストール後、自動的にそのプログラムを情報処理装置に実行させることを特徴とする請求項５記載のドライバインストールプログラム。
【請求項７】
プログラムを実行した後、自動的にそのプログラムを情報処理装置にアンインストールさせることを特徴とする請求項６記載のドライバインストールプログラム。
【請求項８】
情報処理装置にドライバソースプログラムに加えて、外部デバイス設定用に情報処理装置を設定するための設定ファイルを外部デバイスから受信、解釈実行させることを特徴とする請求項５記載のドライバインストールプログラム。
【請求項９】
外部デバイスに接続可能な情報処理装置に、
外部デバイスを動作させるのに必要なドライバソースプログラムが格納されたサーバのアドレスを取得するドライバソースプログラムアドレス取得手順、
前記ドライバソースプログラムをネットワーク経由でサーバから取得するドライバソースプログラム取得手順、
ドライバソースプログラムをコンパイルリンクするコンパイルリンク手順、
コンパイルリンクされたドライバ中間コードプログラムを情報処理装置にインストールするインストール手順
を実行させるためのドライバインストールプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、命令メモリおよびＣＰＵをもつ情報処理装置、特に携帯電話・ＰＤＡ等の携帯情報機器に関わる。
【０００２】
【従来の技術】
携帯電話等の情報処理装置の多くはＣＰＵによって制御され、ＣＰＵを制御するためのプログラムやその他のデータを保持するための記憶装置を持つ。多くの場合には、外部デバイスとの通信をおこなうためのコネクタおよび外部Ｉ／Ｆ部を持つ。外部Ｉ／Ｆは通常専用のＬＳＩその他の回路によって実現され、ＣＰＵによって制御される。コネクタや外部Ｉ／Ｆ部としては、通信方式に依存して専用のものを使用する。例えばＥｔｈｅｒｎｅｔ（登録商標）を用いる場合には専用のコネクタ・外部Ｉ／Ｆ部を装備する必要がある。
【０００３】
接続対象となる外部デバイスとしてはプリンタ・カメラ・ハードディスク等さまざまなデバイスがある。また、他の情報処理装置を接続し、通信により情報送受信をおこなう場合もある。
【０００４】
このような構成において情報処理装置と外部デバイスが通信をおこなうためには、外部Ｉ／Ｆ部に対応したドライバプログラム（以下ではＩ／Ｆドライバプログラムと呼ぶ）と、外部デバイスに対応したドライバプログラム（以下ではデバイスドライバプログラムと呼ぶ）を両方使用する必要がある。Ｉ／Ｆドライバプログラムは、ＣＰＵのアドレス空間中のあるアドレスに割り当てられている外部Ｉ／Ｆ部の制御用レジスタに対してリード・ライトをおこなうことにより、外部Ｉ／Ｆ部の制御をおこなったり、タイマ処理により必要な時間待ち受けをおこなったり、外部Ｉ／Ｆ部からＣＰＵへ割り込み信号がおこなわれることにより起動される割り込みハンドラを適切に処理する等により、外部Ｉ／Ｆ部およびコネクタを介した通信を可能とする。
【０００５】
これに対して、デバイスドライバプログラムでは、Ｉ／Ｆドライバプログラムにより通信可能となった外部Ｉ／Ｆ部を介した通信系を用いて、外部デバイスに対する制御をおこなう。例えば外部デバイスがプリンタである場合には解像度の情報を設定したり、プリントすべきページのデータを送信したりする。
【０００６】
情報処理装置にはさまざまな外部デバイスが接続される可能性があり、外部デバイスごとに異なるデバイスドライバプログラムが必要となる。これに対してＩ／Ｆドライバプログラムは常に同じものが使用される。外部デバイスと通信をおこなうためには、Ｉ／Ｆドライバプログラムとデバイスドライバプログラムは情報処理装置のＣＰＵが利用可能な記憶手段上の適切な位置に配置されている必要がある。プログラムをＣＰＵが利用可能な記憶手段上の適切な位置に配置する処理をインストールという。
【０００７】
通常、デバイスドライバプログラムは情報処理装置の記憶装置中には存在しないことが多い。したがって新たな外部デバイスを接続した場合にはその外部デバイスに対応したデバイスドライバプログラムをインストールする必要がある。インストール処理の際に、デバイスドライバプログラムをどこから読み込むか、いろいろな方法がある。例えば、情報処理装置がフレキシブルディスク等の取り外し可能な外部記憶装置を備える場合には、デバイスドライバプログラムを格納したフレキシブルディスクから読み込んでインストールすることが可能である。
【０００８】
また、特開平１０−３０７７１１等により、外部デバイス中にデバイスドライバプログラムを埋め込んでおき、外部デバイスが情報処理装置に接続された際にデバイスドライバプログラムを情報処理装置に読み込んでインストールする方法が知られている。このようなデバイスドライバプログラムは、通常コンパイルリンク済みのオブジェクトコードとして配布される。
【０００９】
【発明が解決しようとする課題】
ところで、情報処理装置の機種が複数ある場合、情報処理装置が同一形状のコネクタを備えているだけでは、特定の外部デバイスをそれぞれの情報処理装置の機種上で動作させるためには十分ではない。一般に実行形式のプログラムは、ＣＰＵの命令セット・採用されているオペレーションシステム等に依存し、これらの要素は情報処理装置の機種ごとに異なるため、異なる情報処理装置の機種間での互換性はない。したがって，外部デバイスを多くの情報処理装置の機種に対応させるためには、それぞれの機種に対するデバイスドライバプログラムを用意しなければならない。
【００１０】
外部デバイスはデバイスドライバプログラムを記録したフレキシブルディスク等の記憶媒体とともに販売される場合が多いが、多くの情報処理装置の機種に対応させるためには、デバイスドライバプログラムを機種の数だけ別々に用意する必要があり、フレキシブルディスクの枚数がかさむ等の不都合が生ずる。
【００１１】
また、前述のように外部デバイス中にデバイスドライバプログラムを埋め込んでおく方式でも、あらかじめ外部デバイスに想定される情報処理装置の機種に対応したデバイスドライバプログラムをすべて埋め込んでおく必要がある。このためには外部デバイス中にデバイスドライバプログラムを記憶させるための媒体（ＲＯＭ等）の容量を十分にとる必要があり、外部デバイスのコストがかさむ等の不都合が生ずる。
【００１２】
さらに、上記のような方法では、外部デバイスの開発終了後にあらかじめ想定していなかった情報処理装置が新規に出回った場合、その新規機種に対応したデバイスドライバプログラムを用意することができない。
【００１３】
本発明は、上記のような問題点を解決し、多くの情報処理装置の機種に対して外部デバイスの接続を可能とし、また新規機種の情報処理装置にも対応できるものを供するものである。
【００１４】
【課題を解決する手段】
この発明に係る情報処理装置は、
新規な外部デバイスが接続された時、当該外部デバイスを動作させるのに必要なドライバソースプログラムを取得するドライバソースプログラム取得手段、
ドライバソースプログラムをコンパイルリンクするコンパイルリンク手段、
コンパイルリンクされたドライバ中間コードプログラムを記憶手段にインストールするインストール手段、
上記各手段を実行させるドライバインストールプログラムを備える。
【００１５】
また、この発明に係る外部デバイスは、
ＣＰＵを保持する情報処理装置に接続され、当該情報処理装置によって動作される外部デバイスであって、
情報処理装置との接続が自在にされる接続手段と、
情報処理装置が本外部デバイスを利用可能とするドライバソースプログラムを保持する記憶手段と、
情報処理装置の接続時に情報処理装置からの要求によりドライバソースプログラムを情報処理装置に転送する転送手段とを備える。
【００１６】
また、この発明に係る外部デバイスは、
上記記憶手段はドライバソースプログラムの代わりに、ドライバソースプログラムから一次的にコンパイルリンクされたドライバ中間コードプログラムを保持し、上記転送手段はドライバ中間コードプログラムを上記情報処理装置に転送する。
【００１７】
また、この発明に係るドライバインストールプログラムは、
外部デバイスに接続可能な情報処理装置に、
外部デバイスを動作させるのに必要なドライバソースプログラムを取得するドライバソースプログラム取得手順、
取得したドライバソースプログラムをコンパイルリンクするコンパイルリンク手順、
コンパイルリンクされたドライバ中間コードプログラムを情報処理装置にインストールするインストール手順
を実行させる。
【００１８】
また、この発明に係るドライバインストールプログラムは、
ドライバソースプログラムに加えて、当該外部デバイスを動作させる別のプログラムを外部から受信、インストールする手順を情報処理装置に実行させる。
【００１９】
また、この発明に係るドライバインストールプログラムは、
プログラムをインストール後、自動的にそのプログラムを情報処理装置に実行させる。
【００２０】
また、この発明に係るドライバインストールプログラムは、
プログラムを実行した後、自動的にそのプログラムを情報処理装置にアンインストールさせる。
【００２１】
また、この発明に係るドライバインストールプログラムは、
情報処理装置にドライバソースプログラムに加えて、外部デバイスを設定するために情報処理装置を設定する設定ファイルを外部デバイスから受信、解釈実行させる。
【００２２】
また、この発明に係るドライバインストールプログラムは、
外部デバイスに接続可能な情報処理装置に、
外部デバイスを動作させるのに必要なドライバソースプログラムが格納されたサーバのアドレスを取得するドライバソースプログラムアドレス取得手順、
前記ドライバソースプログラムをネットワーク経由でサーバから取得するドライバソースプログラム取得手順、
ドライバソースプログラムをコンパイルリンクするコンパイルリンク手順、
コンパイルリンクされたドライバ中間コードプログラムを情報処理装置にインストールするインストール手順
を実行させる。
【００２３】
【発明の実施の形態】
実施の形態１．
図１は本発明の実施の形態１による情報処理装置および外部デバイスにより構成される情報処理システムの構成図である。情報処理装置１内のＣＰＵ２は不揮発メモリ３、外部Ｉ／Ｆ部４、割り込み制御部５とＣＰＵバス６で接続されている。外部Ｉ／Ｆ部４はさらに上記割り込み制御部５と割り込み信号線７を介してＣＰＵ２の割り込み端子に接続されている。外部Ｉ／Ｆ部４と接続されているコネクタ８は、外部通信ケーブル９を介して着脱可能な外部デバイス１０と接続される。不揮発メモリ３上にはオペレーションシステム１１を含むプログラムおよびデータが格納されており、この中には後で説明するドライバインストールプログラム１２も含まれている。プログラム実行時に必要な作業領域もこの不揮発メモリ３上にとられるものとする。
【００２４】
次に動作について説明する。
外部デバイス１０が外部通信ケーブル９およびコネクタ８を介して情報処理装置１に接続されると、外部Ｉ／Ｆ部４は接続状態の変化を検知して割り込み制御部５経由でＣＰＵ２に割り込み信号を送る。ＣＰＵ２上で動作しているオペレーションシステム１１は外部デバイス１０が接続されたことを検知し、ドライバインストールプログラム１２を起動する。
【００２５】
図２は外部デバイス１０の構成例を示す図である。この例では外部デバイス１０は撮影素子３０を備えるカメラであるものとする。外部デバイス１０は、ＣＰＵ２２、不揮発メモリ２３、外部Ｉ／Ｆ部２４、割り込み制御部２５、ＣＰＵバス２６、割り込み信号線２７を備え、不揮発メモリ２３上にはドライバソースプログラム２９が格納されている。外部デバイス１０は、ほぼ情報処理装置１と同様の構成をとっているが、撮影素子３０を備える点が異なり、かつ、不揮発メモリ３（ＲＯＭ）上には本外部デバイス１０を駆動するために必要なプログラムおよび情報処理装置１に転送されるドライバソースプログラム２９が格納されている。
【００２６】
図３は情報処理装置１内で動作するドライバインストールプログラム１２の処理を説明する図である。ドライバインストールプログラム１２は、まず外部デバイス１０に対してドライバソースプログラム２９の転送を要求する（Ｓ３１）。外部デバイス１０がその要求を受けて内部の不揮発メモリ２３に記憶されているドライバソースプログラム２９を情報処理装置１に対して送信する。次にドライバインストールプログラム１２はドライバソースプログラム２９を外部デバイス１０から受信し、不揮発メモリ３上の作業領域に格納する（Ｓ３２）。受信が終了すると、ドライバインストールプログラム１２はドライバソースプログラム２９をコンパイルリンクしてオブジェクトコードを不揮発メモリ３上の作業領域に格納する（Ｓ３３）。最後に、オブジェクトコードを情報処理装置１にインストールする（Ｓ３４）。このインストール処理では、オブジェクトコードを不揮発メモリ３上の適切な位置に配置し、アドレス解決の処理をおこなう。このことにより、情報処理装置１上で外部デバイス１０が使用可能となる。
【００２７】
図４は外部デバイス１０のＣＰＵ２２の処理を説明する図である。外部デバイス１０は情報処理装置１からの転送内容の受信待ち（Ｓ４１）の状態から、ＣＰＵ２２が情報処理装置１からの転送内容を受信すると、転送内容がドライバソースプログラムの転送要求であるかどうかをチェックする（Ｓ４２）。このチェックの処理の実現方法としては、情報処理装置１と外部デバイス１０の間の送受信プロトコルに依存してさまざまな方法が考えられるが、転送内容の種別を容易に判別可能とするバイトを転送内容の先頭に設けておきこの先頭バイトを参照することにより判別する方法、送受信プロトコルをＸＭＬ（Ｅｘｔｅｎｓｉｖｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）等の構文解析可能なフォーマットで実現されている場合に構文解析をおこなうことにより判別する方法などがある。もしも転送内容がドライバソースプログラムの転送要求である場合には、ＣＰＵ２２は不揮発メモリ２３に記憶されているドライバソースプログラム２９を情報処理装置１に転送する（Ｓ４３）。もしもそうでない場合には、その転送内容に対応した処理をおこなう（例えば撮像素子の電源オン要求である場合には撮像素子の電源オンをおこなう）（Ｓ４４）。その後、ＣＰＵ２２は再び情報処理装置１からの受信待ち（Ｓ４１）の状態となる。
【００２８】
以上のようにこの実施の形態によれば、情報処理装置１はドライバプログラムのコンパイルリンク済みオブジェクトコードではなくソースプログラムからコンパイルリンクをおこなう。この際のコンパイルリンク処理は、当該情報処理装置のＣＰＵの命令コードやオペレーティングシステムに対応したオブジェクトコードを出力する。したがって、情報処理装置の機種ごとに別々のプログラムを用意する必要はなく、１種類のドライバソースプログラムを外部デバイスの記憶手段に格納しておけばよい。
【００２９】
なお、本実施の形態では、情報処理装置１は外部デバイス１０が接続されると外部Ｉ／Ｆ４経由でＣＰＵ２に接続状態の変化が検知され、自動的にドライバインストールプログラム１２が起動されたが、ドライバインストールプログラム１２の起動は接続検知による自動処理ではなく、接続がおこなわれた後にユーザが起動するようにしてもよい。
【００３０】
ここで、外部デバイス１０に記憶されているドライバソースプログラム２９は、Ｃ言語等で記述されたソースプログラムだけでなく、ソースプログラムを一次的にコンパイルリンクした中間コードでもよいことはいうまでもない。図５は、ドライバソースプログラム２９の代わりにドライバ中間コードプログラム３１を格納した場合の外部デバイス１０の構成例を示す図である。ドライバ中間コードプログラム３１を用いる場合、Ｃ言語等の高級言語から機械語に近い簡単な言語に翻訳されるので、情報処理装置１のコンパイラが簡易なもので済むという利点がある。
【００３１】
なお、外部デバイス１０に記憶されているドライバソースプログラム２９は、通常のテキストファイル形式ではなくデータ圧縮された状態で不揮発メモリ２３に保持しておき、転送する際にも圧縮された状態で転送するように構成してもよいことはいうまでもない。この場合、不揮発メモリ２３の容量が削減できるとともに、転送データ量も小さくなり転送時間が短縮されるという利点がある。
【００３２】
実施の形態２．
実施の形態１では外部デバイス１０に記憶し、情報処理装置１へ転送するドライバプログラムは、１種類だけで説明したが、情報処理装置１へ転送するドライバプログラムは、１種類だけでなく複数種類のドライバプログラムを転送してもよいことはいうまでもない。例えば、Ｃ言語等で記述され情報処理装置１でコンパイルリンクして格納・実行するドライバソースプログラムと、Ｊａｖａ（登録商標）言語等で記述されそのまま格納・インタプリタ実行されるドライバインタプリタコードを情報処理装置１へ転送するようにしてもよい。
【００３３】
この場合の外部デバイス１０の構成例を図６に示す。ドライバインタプリタコード３２が不揮発メモリ２３に格納されている。情報処理装置１の構成は図１と同様であるので省略する。図７はこの場合に情報処理装置１内で動作するドライバインストールプログラム１２の処理を説明する図である。ドライバソースプログラム２９の転送を要求し、インストールするまでの手順（Ｓ７１）〜（Ｓ７４）は図３の手順（Ｓ３１）〜（Ｓ３４）と同様であるので説明を省略する。
【００３４】
その後、ドライバインストールプログラム１２は、外部デバイス１０に対してドライバインタプリタコード３２の転送を要求する。外部デバイス１０がその要求を受けて内部の記憶手段、不揮発メモリ２３に記憶されているドライバインタプリタコード３２を情報処理装置１に対して送信する。次にドライバインストールプログラム２９はドライバインタプリタコード３２を外部デバイス１０から受信し、情報処理装置１にインストールする。ドライバインタプリタコード３２は、その後情報処理装置１によって解釈実行される。
【００３５】
このように、ドライバソースプログラム２９とドライバインタプリタコード３２の両方を情報処理装置１へ転送、インストールすることで、例えば処理速度の要求されるような処理をドライバソースプログラム２９で開発し、それ以外の処理はドライバインタプリタコード３２で開発するなどが可能になる。
【００３６】
実施の形態３．
また、外部デバイスから情報処理装置１へドライバソースプログラム２９を転送し、コンパイルリンク後インストールするとともに、試験用ソースプログラムを別途転送し実行するようにすることで、ドライバソースプログラム２９から生成されたオブジェクトコードが正常に動作することを検査・確認することができる。
【００３７】
この場合の外部デバイス１０の構成例を図８に示し、試験用ソースプログラム３３が不揮発メモリ２３に格納されている。情報処理装置１の構成は図１と同様であるので省略する。図９はこの場合に情報処理装置１内で動作するドライバインストールプログラム１２の処理を説明する図である。ドライバインストールプログラム１２がドライバソースプログラム２９の転送を要求し、インストールするまでの手順（Ｓ９１）〜（Ｓ９４）は図３の手順（Ｓ３１）〜（Ｓ３４）と同様であるので説明を省略する。その後、ドライバインストールプログラム１２は、外部デバイス１０に対して試験用ソースプログラム３３の転送を要求する。外部デバイス１０がその要求を受けて内部の不揮発メモリ２３に記憶されている試験用ソースプログラム３３を情報処理装置１に対して送信する。
【００３８】
次にドライバインストールプログラム１２は試験用ソースプログラム３３を外部デバイス１０から受信し、不揮発メモリ３上の作業領域に格納する。受信が終了すると、ドライバインストールプログラム１２は試験用ソースプログラム３３をコンパイルリンクして試験用オブジェクトコードを生成し、不揮発メモリ３上の作業領域に格納する。その後、試験用オブジェクトコードを情報処理装置にインストールする。次にドライバインストールプログラム１２は、試験用オブジェクトコードを起動、実行する。実行された試験用オブジェクトコードはドライバのオブジェクトコードによって外部デバイスと通信するなどして、オブジェクトコードが正常に動作するか試験し、その結果を表示装置に表示するなどする。最後に、実行済みの試験用オブジェクトコードをアンインストールする。
【００３９】
このように、試験用ソースプログラムを情報処理装置でコンパイルリンク、実行することでドライバソースプログラムから生成されたドライバオブジェクトコードが情報処理装置内で正常に動作するか確認することができる。また、試験用オブジェクトコードは実行後、自動的に削除されるため余分な記憶領域を必要としない。
【００４０】
ここでは、試験用プログラムとして試験用ソースプログラム３３から試験用オブジェクトプログラムを生成して実行する場合について説明したが、インタプリタとして実行されるような試験用インタプリタコードを外部デバイスから情報処理装置へ転送し実行してもよいのはいうまでもない。
またここでは試験用オブジェクトコードを実行後に削除すると説明したが、削除しなくてもかまわないのはいうまでもない。
【００４１】
またここでは試験のために試験用オブジェクトコードを実行するとしたが、情報処理装置から外部デバイスを設定するための初期設定を実行してもよい。この初期設定は、オブジェクトコードのようなプログラムでなく、あらかじめ決められたフォーマットで記述された設定ファイルでもよく、それを情報処理装置で解釈、実行してもよい。
【００４２】
実施の形態４．
なお、実施の形態１ではドライバソースプログラム２９を外部デバイス１０の記憶手段（不揮発メモリ２３）に格納したが、これを別の場所から取得してもよいことはいうまでもない。例えば、情報処理装置１にフレキシブルディスクドライブが装備されている場合には、外部デバイス１０の付属品として提供されるフレキシブルディスクにドライバソースプログラム２９を格納しておき、ユーザがフレキシブルディスクドライブに当該フレキシブルディスクをあらかじめセットした後に外部デバイス１０と情報処理装置１を接続すると、接続が検知され、フレキシブルディスクからドライバソースプログラム２９が読み込まれるようにしてもよい。
【００４３】
また、情報処理装置がインターネットなどのネットワークに接続されている場合には、ネットワーク上のサーバにドライバソースプログラムを格納しておき、外部デバイスと情報処理装置を接続すると、接続が検知され、サーバからドライバソースプログラムが読み込まれるようにしてもよい。　この場合のシステム構成の例を図１０に示す。情報処理装置１はネットワーク４１を介してサーバ４２に接続されている。このサーバ４２には、ドライバソースプログラム２９が格納されている。また、外部デバイス１０は情報処理装置１と接続される。
【００４４】
図１１は情報処理装置１内で動作するドライバインストールプログラム１２の処理を説明する図である。ドライバインストールプログラム１２は、外部デバイス１０の接続を検出すると、まず外部デバイス１０に対してドライバソースプログラム２９が格納されているサーバ４２を示すアドレスを要求する（Ｓ１１１）。外部デバイス１０がその要求に対して、内部の記憶手段（不揮発メモリ）に記憶されているサーバアドレスを情報処理装置１に対して応答する（Ｓ１１２）。次にドライバインストールプログラム１２はドライバソースプログラム２９を前記サーバアドレスで示されるサーバ４２へ要求する（Ｓ１１３）。サーバ４２は要求されたドライバソースプログラム２９を情報処理装置１へ送信する。ドライバインストールプログラム１２は、サーバ４２からドライバソースプログラム２９を受信し、不揮発メモリ３上の作業領域に格納する（Ｓ１１４）。
【００４５】
以降の処理は、実施の形態１の図３と同様である。
即ち、ドライバインストールプログラム１２はドライバソースプログラム２９をコンパイルリンクしてオブジェクトコードを不揮発メモリ３上の作業領域に格納する（Ｓ１１５）。最後に、オブジェクトコードを情報処理装置１にインストールする（Ｓ１１６）。このインストール処理では、オブジェクトコードを不揮発メモリ３上の適切な位置に配置し、アドレス解決の処理をおこなう。このことにより、情報処理装置１上で外部デバイス１０が使用可能となる。
【００４６】
【発明の効果】
以上のようにこの発明によれば、情報処理装置は接続された外部デバイスを動作させるドライバプログラムのソースプログラムを取得し、そのソースプログラムからコンパイルリンクをおこなう。この際のコンパイルリンク処理は、当該情報処理装置のＣＰＵの命令コードやオペレーティングシステムに対応したオブジェクトコードを出力する。したがって、情報処理装置の機種ごとに別々のプログラムを用意する必要はなく、１種類のドライバソースプログラムを用意しておけばよい。
【図面の簡単な説明】
【図１】本発明の実施の形態１による情報処理装置および外部デバイスにより構成される情報処理システムの構成図である。
【図２】図１の外部デバイスの構成を示す図である
【図３】図１の情報処理装置の処理を説明する図である。
【図４】図１の外部デバイスの処理を説明する図である。
【図５】外部デバイスの他の構成例を示す図である。
【図６】実施の形態２による外部デバイスの構成例を示す図である。
【図７】図６の外部デバイスの場合における情報処理装置の処理を説明する図である。
【図８】実施の形態３による外部デバイスの構成例を示す図である。
【図９】図８の外部デバイスの場合における情報処理装置の処理を説明する図である。
【図１０】実施の形態４のシステムによる構成の例を示す図である。
【図１１】図１０における情報処理装置の処理を説明する図である。
【符号の説明】
１：情報処理装置、２、２２：ＣＰＵ、３、２３：不揮発メモリ、４、２４：外部Ｉ／Ｆ部、５、２５：割り込み制御部、６、２６：ＣＰＵバス、７、２７：割り込み信号線、８、２８：コネクタ、９：外部通信ケーブル、１０：外部デバイス、１１：オペレーションシステム、１２：ドライバインストールプログラム、２９：ドライバソースプログラム、３０：撮影素子、３１：ドライバ中間コードプログラム、３２：ドライバインタプリタコード、３３：試験用ソースプログラム、４１：ネットワーク、４２：サーバ
【図１】
2004086280.tif 000003
【図２】
2004086280.tif 000004
【図３】
2004086280.tif 000005
【図４】
2004086280.tif 000006
【図５】
2004086280.tif 000007
【図６】
2004086280.tif 000008
【図７】
2004086280.tif 000009
【図８】
2004086280.tif 000010
【図９】
2004086280.tif 000011
【図１０】
2004086280.tif 000012
【図１１】
2004086280.tif 000013