JP2012155515A - ソースデバイスドライバ及び実行モジュールの作成方法 - Google Patents

ソースデバイスドライバ及び実行モジュールの作成方法 Download PDF

Info

Publication number
JP2012155515A
JP2012155515A JP2011013801A JP2011013801A JP2012155515A JP 2012155515 A JP2012155515 A JP 2012155515A JP 2011013801 A JP2011013801 A JP 2011013801A JP 2011013801 A JP2011013801 A JP 2011013801A JP 2012155515 A JP2012155515 A JP 2012155515A
Authority
JP
Japan
Prior art keywords
device driver
cpu
dependent
unit
api
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.)
Pending
Application number
JP2011013801A
Other languages
English (en)
Inventor
Shogo Matsunaga
省吾 松永
Toru Umezawa
達 梅澤
Masahiro Hosokawa
征宏 細川
Shinichi Ido
慎一 井戸
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2011013801A priority Critical patent/JP2012155515A/ja
Publication of JP2012155515A publication Critical patent/JP2012155515A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】OSやCPUの違いに対応してデバイスドライバの品種展開を安価に実現する。
【解決手段】ソースコードで記述されたソースデバイスドライバは、アプリケーションとの界面のレイヤーであるAPI部(11,12)と、OSに依存する処理のレイヤーであるOS依存部(14,15)と、CPUに依存する処理のレイヤーであるCPU依存部(16)と、上記OS及び上記CPUには依存しない処理のレイヤーであるデバイスドライバ本体部(13)とを含む。上記デバイスドライバ本体部は、上記API部から呼び出され、上記OS依存部及び上記CPU依存部は上記デバイスドライバ本体部から呼び出されるように階層化される。上記API部、又は上記OS依存部、若しくは上記CPU依存部の変更が可能とされ、デバイスドライバのOSやCPUの違いに対応した品種展開を容易に行える。
【選択図】図1

Description

本発明は、ソースコードで記述されたソースデバイスドライバ、及びそれを用いた実行モジュールの作成方法に関する。
特許文献1には、載用電子機器を構成するマイクロコンピュータに実装されるデバイスドライバの生産性及び保守性を向上させることが可能なデバイスドライバの作成方法が記載されている。このデバイスドライバの作成方法によれば、デバイスドライバを上位ドライバと下位ドライバとに分割して作成し、上位ドライバに包含されていた異常監視部を下位ドライバに包含させるようにしている。
特許文献2には、デバイス及びCPU(Central Processing Unit;中央処理装置)系列デバイスドライバ本体部分と、CPU系列依存部分とで構成されたOS(Operating System;オペレーティングシステム)で制御される情報処理装置におけるハイバネーション制御方法が記載されている。
特許文献3には、複数のオペレーティングシステム用のデバイス・サポートを提供するための方法及びシステムが記載されている。この技術では、複数のオペレーティングシステム・プラットフォーム上で複数の装置を使用できるようになる。
特開2001−356998号公報 特開2010−157017号公報 特開平8−328987号公報
複数のOS上で同一デバイスに対するデバイスドライバを作成することがあるが、あるOSにおける標準的な開発方式でデバイスドライバの開発を行うと、他のOSのデバイスドライバの開発と工程上重なる部分が多い。しかしながら、OSに依存するシステムコール、割込み処理などの部分はOS毎に要求される形式が違うために同一のプログラムで兼用させるには無理がある。
また、CPUの周辺デバイスを複数の種類のOSで動作させる場合、OS毎にデバイスドライバを作成する必要がある。同一の周辺デバイスを複数の種類のCPUにおいて動作させる場合、CPUの種類毎にデバイスドライバを作成する必要がある。このため、同一の周辺デバイスに対してデバイスドライバを、OS毎若しくはCPU毎に複数の種類作成する必要があり、デバイスドライバの製作コストの低減が困難とされている。
特許文献1には、デバイスドライバの生産性及び保守性を向上させるための技術が記載され、特許文献2には、デバイス及びCPU系列デバイスドライバ本体部分と、CPU系列依存部分とで構成されたOSで制御される情報処理装置におけるハイバネーション制御方法が記載され、特許文献3には、複数のオペレーティングシステム用のデバイス・サポートを提供するための方法及びシステムが記載されている。しかし、上記特許文献1〜3には、OS毎のデバイスドライバの違いを吸収するデバイスドライバの具体的な構成や、複数のCPUが搭載されるシステムにおいてデバイスドライバの実装の違いを吸収するための方法については言及されていない。
本発明の目的は、OSやCPUの違いに対応してデバイスドライバの品種展開を安価に実現するための技術を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、ソースデバイスドライバはソースコードで記述され、アプリケーションとの界面のレイヤーであるAPI部と、OSに依存する処理のレイヤーであるOS依存部と、CPUに依存する処理のレイヤーであるCPU依存部と、上記OS及び上記CPUには依存しない処理のレイヤーであるデバイスドライバ本体部とを含む。そして上記デバイスドライバ本体部は、上記API部から呼び出され、上記OS依存部及び上記CPU依存部は上記デバイスドライバ本体部から呼び出されるように階層化される。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、OSやCPUの違いに対応してデバイスドライバの品種展開を安価に実現することができる。
本発明にかかるソースデバイスドライバの構成例ブロック図である。 デバイスドライバの実行モジュールが実装されるコンピュータシステムの構成例ブロック図である。 ソースデバイスドライバにおける主要部の記述例の説明図である。 図1に示されるソースデバイスドライバを用いた実行モジュール作成処理のフローチャートである。 ワークステーションの構成例ブロック図である。 デバイスドライバの実行モジュールが実装されるコンピュータシステムの別の構成例ブロック図である。 本発明にかかるソースデバイスドライバの別の構成例ブロック図である。 図7に示されるソースデバイスドライバを用いた実行モジュール作成処理のフローチャートである。 発明にかかるデバイスドライバの別の構成例ブロック図である。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係るソースデバイスドライバはソースコードで記述され、アプリケーションに対応するAPI部(11,12)と、OSに依存するOS依存部(14,15)と、CPUに依存するCPU依存部(16)と、上記OS及び上記CPUには依存しないデバイスドライバ本体部(13)とを含む。上記デバイスドライバ本体部は、上記API部から呼び出され、上記OS依存部及び上記CPU依存部は上記デバイスドライバ本体部から呼び出されるように階層化される。
上記構成のソースデバイスドライバによれば、上記API部、又は上記OS依存部、若しくは上記CPU依存部を変更することにより、デバイスドライバのOSやCPUの違いに対応した品種展開が容易となる。このとき、デバイスドライバ本体部は共通化されるため、上記の品種展開は安価に実現できる。
〔2〕上記〔1〕において、上記API部は、互いに異なるOSに対応して複数設けることにより、所望のAPI部を選択可能とすることができる。
〔3〕上記〔2〕において、上記OS依存部は、互いに異なるOSに対応して複数設けることにより、所望のOS依存部を選択可能とすることができる。
〔4〕上記〔3〕において、上記CPU依存部は、互いに異なるCPUに対応して複数設けることにより、所望のOS依存部を選択可能とすることができる。
〔5〕本発明の代表的な実施の形態に係る実行モジュール作成方法は、先ずソースコードで記述されたソースデバイスドライバ(10)をコンピュータ(52)に読み込む。ここで、上記ソースデバイスドライバは、アプリケーションに対応するAPI部(11,12)と、OSに依存するOS依存部(14,15)と、CPUに依存するCPU依存部(16)と、上記OS及び上記CPUには依存しないデバイスドライバ本体部(13)とを含む。そして上記デバイスドライバ本体部は上記API部から呼び出され、上記OS依存部及び上記CPU依存部は上記デバイスドライバ本体部から呼び出されるように階層化される。このようなソースデバイスドライバをコンピュータに読み込み、上記API部、又は上記OS依存部、若しくは上記CPU依存部を外部入力に応じて変更した後に、ソースコードをオブジェクトコードに変換することでデバイスドライバの実行モジュールを形成する。
このような実行モジュール作成方法によれば、ソースコードをオブジェクトコードに変換する前に、上記API部、又は上記OS依存部、若しくは上記CPU依存部を変更することにより、デバイスドライバのOSやCPUの違いに対応した品種展開が容易となる。このとき、デバイスドライバ本体部は共通化されるため、デバイスドライバの品種展開を安価に実現できる。
〔6〕上記〔5〕において、上記API部には、互いに異なるOSに対応して複数設けることにより、所望のAPI部を選択可能とすることができる。
〔7〕上記〔6〕において、上記OS依存部には、互いに異なるOSに対応して複数設けることにより、所望のOS依存部を選択可能とすることができる。
〔8〕上記〔7〕において、上記CPU依存部は、互いに異なるCPUに対応して複数設けることにより、所望のOS依存部を選択可能とすることができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
《実施の形態1》
図2には、デバイスドライバの実行モジュールが実装されるコンピュータシステムが示される。
図2に示されるコンピュータシステム2は、特に制限されないが、CPU21、メモリ22、内蔵装置23とを含み、それらが、バス24を介して互いに信号のやり取りが可能に結合されている。内蔵装置23は、CPU21に結合されたデバイスの一例とされる。CPU21は所定のプログラムを実行する。このプログラムには、OS、アプリケーションプログラム、内蔵装置23のデバイスドライバ(実行モジュール)が含まれる。OS、アプリケーションプログラム、及び内蔵装置23のデバイスドライバはメモリ22に格納することができる。内蔵装置23は、特に制限されないが、CPU21の制御下で、メモリ22に格納されている図形データの拡大処理、縮小処理、及び回転処理を行う。CPU21による内蔵装置23の動作制御は、メモリ22内のデバイスドライバを介して行われる。上記内蔵装置23のデバイスドライバ(実行モジュール)は、プログラミングのための高級言語(ソースコード)で記述されたソースデバイスドライバをオブジェクトコードに変換することで作成されたものである。
ここで、ソースコードで記述されたソースデバイスドライバを、OSに依存する処理(アドレス空間の制御方式・メモリ管理方式、システムコールの種類・内容、タスク・プロセス・スレッドの制御方式)のレイヤーと、内装装置23に依存する処理(デバイスの動作の設定、デバイスを如何に動作させるか決定するレジスタの設定)のレイヤーとに分けることができる。それによって、デバイスドライバの処理をOS依存の処理のレイヤーと、OS非依存の処理のレイヤーとに分離可能である。同様にデバイスドライバをCPUの種類に依存する処理(命令セット、割込み処理、アドレス空間の制御方式)のレイヤーと、内装装置23に依存する処理(デバイスの動作の設定、デバイスを如何に動作させるか決定するレジスタの設定)のレイヤーとに分けることによって、デバイスドライバの処理をCPU依存の処理のレイヤーと、CPU非依存の処理のレイヤーとに分離可能である。そこで本例では、以下のようにソースデバイスドライバが階層化される。
図1には、上記内蔵装置23のデバイスドライバ(実行モジュール)の作成に用いられるソースデバイスドライバの構成例が示される。
図1に示されるソースデバイスドライバ10は、API(Application Programming Interface;アプリケーション・プログラミング・インタフェース)部11,12、デバイスドライバ本体部13、OS依存部14,15、及びCPU依存部16を含む。図1に示されるソースデバイスドライバ10は、API部11やAPI部12からデバイスドライバ本体部13が呼び出され、デバイスドライバ本体部13からOS依存部14,15やCPU依存部16が呼び出されるように階層化される。API部11,12は、アプリケーションに対するインタフェース部分であり、このソースデバイスドライバ10のアプリケーション界面とされるレイヤーである。このAPI部11,12は、それぞれOSと内蔵装置23毎に固有に定義された部分である。コンピュータシステム2に搭載される可能性があるOSとして、本例ではOS_Aと、OS_Bとの2種類を想定する。OSが異なればAPI部の内容も異なる。そこで、本例では、OS_Aに対応してAPI部11が記述され、OS_Bに対応してAPI部12が記述されている。OS_Aに対応するAPI部11は、図3の(A)に示されるように記述され、OS_Bに対応するAPI部12は、図3の(B)に示されるように記述される。API部11及びAPI部12は、アプリケーションがAPI部を呼び出す形式で記述される。ここで、図形を表すデータの拡大、縮小、回転を行うためのデバイスドライバ本体は、「drv_VEU_Start()」や、「VEU_IOControl()」である。
デバイスドライバ本体部13は、内蔵装置23のデバイスドライバにおいて、内蔵装置23には依存するが、CPU21やOSには依存しない処理のレイヤーである。ここで「CPU21やOSには依存しない処理」には、例えば内蔵装置23の動作の設定、内蔵装置23を如何に動作させるかを決定するレジスタの設定が含まれる。デバイスドライバ本体部13のインタフェースは、例えば図3の(C)に示されるように記述される。デバイスドライバ本体部13は、内蔵装置23のデバイスドライバにおいてCPU21やOSには依存しない部分であるため、CPUやOSの違いに拘わらず、共通化される。
OS依存部14は、内蔵装置23のデバイスドライバにおいてOS_Aに依存する処理のレイヤーとされ、OS依存部15は、内蔵装置23のデバイスドライバにおいてOS_Bに依存する処理のレイヤーとされる。ここで、「OS_Aに依存する処理」には、例えばOS_Aに依存するシステムコールを呼び出したり、OS_Aに依存する割り込み処理が含まれる。また、「OS_Bに依存する処理」には、例えばOS_Bに依存するシステムコールを呼び出したり、OS_Bに依存する割り込み処理が含まれる。
CPU依存部16は、内蔵装置23のデバイスドライバにおいてCPU21に依存する処理のレイヤーでる。例えば「CPU21に依存する処理」には、CPU21への割り込みを受け付けたり、CPU21における固有の資源へのアクセス制御を行う処理が含まれる。
図1に示されるようなデバイスドライバは、特に制限されないが、図5に示されるワークステーションによって作成することができる。図5に示されるワークステーション50は、各種データが格納された外部記憶装置51、所定のプログラムを実行することで各種演算処理を行うワークステーション本体52、上記ワークステーション本体52から供給された表示データを可視化するための表示装置53、上記ワークステーション本体52への各種情報入力のための入力装置54を含んで成る。ワークステーション本体53は、CPUを内蔵する所謂コンピュータであり、デバイスドライバ作成のための所定のプログラムが実行される。デバイスドライバ作成のためのプログラムがワークステーション本体52で実行されることにより、ソースデバイスドライバを作成したり、作成されたソースデバイスドライバの内容を変更したり、ソースデバイスドライバをオブジェクトコードに変換することができる。
このようなワークステーション50を用いて、図1に示されるようなソースデバイスドライバ10が形成されると、そのファイルは外部記憶装置51に格納される。そして外部記憶装置51に格納されたソースデバイスドライバ10は、必要に応じてワークステーション本体52に読み込まれて、修正することができる。このため、図1に示されるようなソースデバイスドライバ10を作成して、外部記憶装置51に格納しておけば、ソースデバイスドライバ10の一部を変更してからオブジェクトコードに変換することにより、OSやCPUの違いを考慮したデバイスドライバ(実行モジュール)を容易に作成することができる。
図4には、図5に示されるワークステーション50において、ソースデバイスドライバ10から実行モジュールを作成する処理の流れが示される。尚、ここでは、図1に示されるようなソースデバイスドライバ10が既に形成され、そのファイルが外部記憶装置51に格納されているものとする。
先ず、図1に示されるようなソースデバイスドライバ10のファイルが外部記憶装置51からワークステーション本体52に読み込まれる(40)。そして、入力装置54を介して、作成対象ドライバのOS(コンピュータシステム2に搭載されるOS)が指定されると(41)、ワークステーション本体52において、作成対象ドライバはOS_A向けか、OS_B向けかの判別が行われる(42)。この判別において、OS_A向けであると判断された場合には、OS_A対応ドライバを作成するのに必要なAPI部及びOS依存部が決定される(43)。そしてデバイスドライバ作成ツールでは、OS_A対応ドライバにおいて不要となる部分、すなわち、OS_Bに対応するAPI部12の記述や、OS_Bに依存するOS依存部15の記述が削除又は無効とされる。ここで、「無効」とは、ソースコードをオブジェクトコードに変換する場合に無視させることを意味する。そして、API部11、デバイスドライバ本体部13、OS依存部14、及びCPU依存部16から成るソースデバイスドライバがオブジェクトコードに変換されることで、OS_A向けデバイスドライバの実行モジュールが形成される(45)。
また、上記ステップ42の判別において、OS_B向けであると判断された場合には、OS_B対応ドライバを作成するのに必要なAPI部及びOS依存部が決定される(44)。そしてワークステーション本体52では、OS_B対応ドライバにおいて不要となる部分、すなわち、OS_Aに対応するAPI部11の記述や、OS_Aに依存するOS依存部14の記述が削除又は無効とされる。そして、API部12、デバイスドライバ本体部13、OS依存部15、及びCPU依存部16から成るソースデバイスドライバがオブジェクトコードに変換されることで、OS_B向けデバイスドライバの実行モジュールが形成される(45)。
このように図1に示されるようなソースデバイスドライバ10が既に形成され、そのファイルが外部記憶装置51に格納されている場合には、上記ステップ41において、作成対象のOSを指定することで、OS_A向けデバイスドライバの実行モジュールや、OS_B向けデバイスドライバの実行モジュールを容易に作成することができる。それによってデバイスドライバの品種展開を容易に実現することができる。また、OS_A向けデバイスドライバの実行モジュールや、OS_B向けデバイスドライバの実行モジュールを、内蔵装置23のユーザに、速やかに提供することができる。
《実施の形態2》
図6には、デバイスドライバの実行モジュールが実装される別のコンピュータシステムが示される。
図6に示されるコンピュータシステム10が、図2に示されるのと大きく相違するのは、CPU21に加えてCPU25が設けられている点である。本例において、CPU21で実行されるOSと、CPU25で実行されるOSとは互いに等しいものとする。CPU21とCPU25とは、内蔵装置23にアクセス可能される。
図7には、図6に示される内蔵装置23のデバイスドライバ(実行モジュール)の作成に用いられるソースデバイスドライバの構成例が示される。
図7に示されるソースデバイスドライバ10が、図1に示されるのと大きく相違するのは、API部12に対応するものや、OS依存部15に対応するものが省略されている点、及びCPU依存部15に加えてCPU依存部16が設けられている点である。図7に示されるソースデバイスドライバ10は、API部11からデバイスドライバ本体部13が呼び出され、デバイスドライバ本体部13からOS依存部14やCPU依存部16,17が呼び出されるように階層化されている。
API部11は、アプリケーションに対するインタフェース部分であり、このソースデバイスドライバ10のアプリケーション界面とされる。API部11は、OSと内蔵装置23毎に固有に定義された部分である。コンピュータシステム2に搭載される可能性があるOSとして、本例ではOS_Aのみを想定する。このため、OS_Aに対応してAPI部11が記述される。OS_Aに対応するAPI部11は、図3の(A)に示されるように記述される。API部11は、アプリケーションがAPI部を呼び出す形式で記述される。
デバイスドライバ本体部13は、内蔵装置23のデバイスドライバにおいてCPU21やOSには依存しない部分である。例えばこのデバイスドライバ本体部13のインタフェースは、図3の(C)に示されるように記述される。デバイスドライバ本体部13は、内蔵装置23のデバイスドライバにおいてCPU21やOSには依存しない部分であるため、CPUやOSの違いに拘わらず、共通化される。
OS依存部14には、内蔵装置23のデバイスドライバにおいてOS_Aに依存する部分が記述される。ここで、OS_Aに依存する部分には、例えばOS_Aに依存するシステムコールを呼び出したり、OS_Aに依存する割り込み処理を行う部分が含まれる。
CPU依存部16には、内蔵装置23のデバイスドライバにおいてCPU21に依存する部分が記述される。CPU依存部17には、内蔵装置23のデバイスドライバにおいてCPU25に依存する部分が記述される。例えば「内蔵装置23のデバイスドライバにおいてCPU21に依存する部分」には、CPU21への割り込みを受け付けたり、CPU21における固有の資源へのアクセス制御を行う部分が含まれる。
図7に示されるようなソースデバイスドライバ10は、特に制限されないが、図5に示されるワークステーション50によって作成することができる。
図8には、図5に示されるワークステーション50において、図7に示されるソースデバイスドライバ10から実行モジュールを作成する処理の流れが示される。尚、ここでは、図7に示されるようなソースデバイスドライバ10が既に形成され、そのファイルが外部記憶装置51に格納されているものとする。
先ず、図7に示されるようなソースデバイスドライバ10のファイルが外部記憶装置51からワークステーション本体52に読み込まれる(80)。そして、入力装置54を介して、作成対象ドライバに対応するCPU(CPU21又は25)が指定されると(81)、ワークステーション本体52において、作成対象ドライバはCPU21向けか、CPU25向けかの判別が行われる(82)。この判別において、CPU21向けであると判断された場合には、CPU21対応ドライバを作成するのに必要なCPU依存部16が決定される(83)。そしてワークステーション本体52では、CPU21対応ドライバにおいて不要となる部分、すなわち、CPU25に対応するCPU依存部17の記述が削除又は無効とされる。ここで、「無効」とは、ソースコードをオブジェクトコードに変換する場合に無視させることを意味する。そして、API部11、デバイスドライバ本体部13、OS依存部14、及びCPU依存部16から成るソースデバイスドライバがオブジェクトコードに変換されることで、CPU21向けデバイスドライバの実行モジュールが形成される(85)。
また、上記ステップ82の判別において、CPU25向けであると判断された場合には、CPU25対応ドライバを作成するのに必要なCPU依存部17が決定される(84)。そしてワークステーション本体52では、CPU25対応ドライバにおいて不要となる部分、すなわち、CPU21に対応するCPU依存部16の記述が削除又は無効とされる。ここで、「無効」とは、ソースコードをオブジェクトコードに変換する場合に無視させることを意味する。そして、API部11、デバイスドライバ本体部13、OS依存部14、及びCPU依存部17から成るソースデバイスドライバがオブジェクトコードに変換されることで、CPU25向けデバイスドライバの実行モジュールが形成される(85)。
このように図7に示されるようなソースデバイスドライバ10のファイルが既に形成され、そのソースファイルが外部記憶装置51に格納されている場合には、上記ステップ81において、作成対象ドライバに対応するCPUを指定することで、CPU21向けデバイスドライバの実行モジュールや、CPU25向けデバイスドライバの実行モジュールを容易に作成することができる。それによってデバイスドライバの品種展開を容易に実現することができる。また、CPU21向けデバイスドライバの実行モジュールや、CPU25向けデバイスドライバの実行モジュールを、内蔵装置23のユーザに、速やかに提供することができる。
《実施の形態3》
図9には、図6に示される内蔵装置23の動作制御のためのデバイスドライバの別の基本的な構成例が示される。
図9に示されるソースデバイスドライバ10が、図7に示されるのと大きく相違するのは、API部11に加えてAPI部12が設けられ、OS依存部14に加えてOS依存部15が設けられている点である。API部12やOS依存部15は、図1に示されるのと同様とされる。
このようなソースデバイスドライバ10のファイルを外部記憶装置51に格納しておけば、実施の形態1の場合と同様に、作成対象のOSを指定することで、OS_A向けデバイスドライバの実行モジュールや、OS_B向けデバイスドライバの実行モジュールを容易に作成することができる。また、実施の形態2の場合と同様に、CPU21向けデバイスドライバの実行モジュールや、CPU25向けデバイスドライバの実行モジュールを容易に作成することができる。これにより、デバイスドライバの品種展開を容易に実現することができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、上記の実施形態では、デバイスドライバの実行モジュールを内蔵装置23のユーザに提供する場合について説明したが、ソースデバイスドライバ10をソースファイルの状態で、内蔵装置23のユーザに提供する場合もあり得る。この場合、内蔵装置23のユーザは、ソースデバイスドライバ10から所望の実行モジュールを容易に形成することができる。
また、API部、OS依存部、CPU依存部等をそれぞれ3個以上設け、その中から不要となる部分の記述を削除又は無効としても良い。
上記の実施形態では、ソースデバイスドライバ10のファイルにおいて、API部、OS依存部、CPU依存部等を複数形成しておき、実行モジュールの形成前に、不要となる部分の記述を削除又は無効としたが、CPU21やOSには依存しない部分であるデバイスドライバ本体部13以外の部分の記述を、必要に応じて修正するようにしても良い。このようにしても、デバイスドライバ本体部13は変更を要しないので、デバイスドライバの品種展開を容易に実現することができる。
10 ソースデバイスドライバ
11,12 API部
13 デバイスドライバ本体部
14,15 OS依存部
16,17 CPU依存部
21,25 CPU
22 メモリ
23 内蔵装置

Claims (8)

  1. ソースコードで記述されたソースデバイスドライバであって、
    アプリケーションとの界面のレイヤーであるAPI部と、
    OSに依存する処理のレイヤーであるOS依存部と、
    CPUに依存する処理のレイヤーであるCPU依存部と、
    上記OS及び上記CPUには依存しない処理のレイヤーであるデバイスドライバ本体部と、を含み、上記デバイスドライバ本体部は上記API部から呼び出され、上記OS依存部及び上記CPU依存部は上記デバイスドライバ本体部から呼び出されるように階層化されたことを特徴とするソースデバイスドライバ。
  2. 上記API部は、互いに異なるOSに対応して複数設けられた請求項1記載のソースデバイスドライバ。
  3. 上記OS依存部は、互いに異なるOSに対応して複数設けられた請求項2記載のソースデバイスドライバ。
  4. 上記CPU依存部は、互いに異なるCPUに対応して複数設けられた請求項3記載のソースデバイスドライバ。
  5. アプリケーションとの界面のレイヤーであるAPI部と、
    OSに依存する処理のレイヤーであるOS依存部と、
    CPUに依存する処理のレイヤーであるCPU依存部と、
    上記OS及び上記CPUには依存しない処理のレイヤーであるデバイスドライバ本体部と、を含み、上記デバイスドライバ本体部は上記API部から呼び出され、上記OS依存部及び上記CPU依存部は上記デバイスドライバ本体部から呼び出されるように階層化されて、ソースコードで記述されたソースデバイスドライバを、コンピュータに読み込んで、
    上記API部、又は上記OS依存部、若しくは上記CPU依存部を、外部入力に応じて変更した後に、ソースコードをオブジェクトコードに変換することでデバイスドライバの実行モジュールを形成する、実行モジュール作成方法。
  6. 上記API部は、互いに異なるOSに対応して複数設けられた請求項5記載の実行モジュール作成方法。
  7. 上記OS依存部は、互いに異なるOSに対応して複数設けられた請求項6記載の実行モジュール作成方法。
  8. 上記CPU依存部は、互いに異なるCPUに対応して複数設けられた請求項7記載の実行モジュール作成方法。
JP2011013801A 2011-01-26 2011-01-26 ソースデバイスドライバ及び実行モジュールの作成方法 Pending JP2012155515A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011013801A JP2012155515A (ja) 2011-01-26 2011-01-26 ソースデバイスドライバ及び実行モジュールの作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011013801A JP2012155515A (ja) 2011-01-26 2011-01-26 ソースデバイスドライバ及び実行モジュールの作成方法

Publications (1)

Publication Number Publication Date
JP2012155515A true JP2012155515A (ja) 2012-08-16

Family

ID=46837180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011013801A Pending JP2012155515A (ja) 2011-01-26 2011-01-26 ソースデバイスドライバ及び実行モジュールの作成方法

Country Status (1)

Country Link
JP (1) JP2012155515A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5997868B2 (ja) * 2014-09-19 2016-09-28 株式会社aLab デバイスプロキシ装置及びその制御方法
JP5997867B2 (ja) * 2014-09-19 2016-09-28 株式会社aLab デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07226738A (ja) * 1993-11-19 1995-08-22 Seiko Epson Corp 通信端末装置および通信制御方法
JPH11110151A (ja) * 1997-10-03 1999-04-23 Seiko Epson Corp プリンタドライバ、プリンタドライバを有したコンピュータ及びコンピュータシステム
JP2001356998A (ja) * 2000-06-14 2001-12-26 Denso Corp デバイスドライバの作成方法
JP2004086280A (ja) * 2002-08-23 2004-03-18 Mitsubishi Electric Corp 情報処理装置、外部デバイスおよびドライバインストールプログラム
JP2004355511A (ja) * 2003-05-30 2004-12-16 Renesas Technology Corp 情報処理システム
JP2005038297A (ja) * 2003-07-17 2005-02-10 Matsushita Electric Ind Co Ltd デバイスドライバのインストール方法、およびこれに用いる装置
JP2006338443A (ja) * 2005-06-03 2006-12-14 Seiko Epson Corp フィルタデバイスドライバ、複製印刷制御方法及びその制御プログラム
JP2010181961A (ja) * 2009-02-03 2010-08-19 Fujitsu Ltd シミュレーション制御プログラム、シミュレーション装置、およびシミュレーション制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07226738A (ja) * 1993-11-19 1995-08-22 Seiko Epson Corp 通信端末装置および通信制御方法
JPH11110151A (ja) * 1997-10-03 1999-04-23 Seiko Epson Corp プリンタドライバ、プリンタドライバを有したコンピュータ及びコンピュータシステム
JP2001356998A (ja) * 2000-06-14 2001-12-26 Denso Corp デバイスドライバの作成方法
JP2004086280A (ja) * 2002-08-23 2004-03-18 Mitsubishi Electric Corp 情報処理装置、外部デバイスおよびドライバインストールプログラム
JP2004355511A (ja) * 2003-05-30 2004-12-16 Renesas Technology Corp 情報処理システム
JP2005038297A (ja) * 2003-07-17 2005-02-10 Matsushita Electric Ind Co Ltd デバイスドライバのインストール方法、およびこれに用いる装置
JP2006338443A (ja) * 2005-06-03 2006-12-14 Seiko Epson Corp フィルタデバイスドライバ、複製印刷制御方法及びその制御プログラム
JP2010181961A (ja) * 2009-02-03 2010-08-19 Fujitsu Ltd シミュレーション制御プログラム、シミュレーション装置、およびシミュレーション制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200100362011; 奥野幹也、片山徹郎、最所圭三、福田 晃: 'UNIX系OSにおけるデバイスドライバの抽象化と生成システムの実現' 情報処理学会論文誌 第41巻,第6号, 20000615, p.1757, 社団法人情報処理学会 *
JPN6014024239; 奥野幹也、片山徹郎、最所圭三、福田 晃: 'UNIX系OSにおけるデバイスドライバの抽象化と生成システムの実現' 情報処理学会論文誌 第41巻,第6号, 20000615, p.1757, 社団法人情報処理学会 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5997868B2 (ja) * 2014-09-19 2016-09-28 株式会社aLab デバイスプロキシ装置及びその制御方法
JP5997867B2 (ja) * 2014-09-19 2016-09-28 株式会社aLab デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法

Similar Documents

Publication Publication Date Title
TWI400652B (zh) Dual operating system parallel processing methods, recording media and computer program products
US8484631B2 (en) Supporting hardware configuration changes in a UEFI firmware component
JP6263282B2 (ja) 開発支援システム
US9959134B2 (en) Request processing using VM functions
JP2013178770A (ja) 再構成可能プロセッサ及びそのコード変換装置及び方法
JP2009152790A (ja) 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
US9342477B2 (en) Multi-core processor, controlling method thereof and computer system with such processor
US8719778B2 (en) Interconnection interface for flexible online/offline deployment of an n-layered software application
US20120017072A1 (en) Modifying a video resolution of video data in a pre-operating system environment
CN109937404B (zh) 程序模块之间的实时数据交换方法和系统
JP2012155515A (ja) ソースデバイスドライバ及び実行モジュールの作成方法
US20150161062A1 (en) Method, device and computer program for dynamic control of memory access distances in a numa type system
WO2005001689A1 (ja) 電子計算機、半導体集積回路、制御方法、プログラムの生成方法、及びプログラム
JP2004280299A (ja) コントローラ、開発装置及びシステム
JP2007080049A (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
JP6318261B2 (ja) Webサーバシステム
JPWO2009131167A1 (ja) マルチプロセッサ制御装置、その方法及びそのプログラム
JP4758253B2 (ja) イベントドリブン型アプリケーションの画面制御装置,画面制御方法およびそのプログラム
JP3087477B2 (ja) コンピュータシステム
JP4998861B2 (ja) コンピュータシステム及びそのhw抽象化方法
Crutcher et al. Operating System
JP2507789B2 (ja) 仮想計算機の論理シミュレ―ション処理方式
WO2022197291A1 (en) Allocation of secondary computing resource for multiple optical proximity correction (opc) processes of an electronic design automation (eda) application
JP2010204737A (ja) プログラマブルコントローラの制御システムおよびプログラマブルコントローラの制御プログラム実行方法
JP2009205566A (ja) 仮想計算機装置、計算資源活用方法、および、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140807

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141218