JP5997867B2 - デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法 - Google Patents
デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法 Download PDFInfo
- Publication number
- JP5997867B2 JP5997867B2 JP2016514174A JP2016514174A JP5997867B2 JP 5997867 B2 JP5997867 B2 JP 5997867B2 JP 2016514174 A JP2016514174 A JP 2016514174A JP 2016514174 A JP2016514174 A JP 2016514174A JP 5997867 B2 JP5997867 B2 JP 5997867B2
- Authority
- JP
- Japan
- Prior art keywords
- driver
- setting information
- interface
- kernel
- device driver
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Description
デバイス設定情報を記述したシナリオ・シーケンス・ファイルとを用いて、前記通知用ドライバに前記シナリオ・シーケンス・ファイルを読み込むことにより前記ドライバインターフェースを介して前記カーネルに登録する。
図1は、デバイスドライバの基本構成を示す概念図である。デバイスドライバ10は、OSのカーネル11とデバイス12との間に位置するプログラムであり、基本構造は、
(a)ドライバインターフェース10A
(b)デバイスドライバ本体10B
(c)デバイスインターフェース10C
という3つの構造からなっている。
ドライバインターフェースはOSとデバイスドライバの境界に位置するインターフェースであり、基本的にはOSごとに異なるが、その機能はOSによらず同じである。ドライバインターフェースの主な機能(ファンクション)の例を以下に示す。
1.初期化(デバイスを初期化する)
2.オープン(デバイスをオープンする)
3.クローズ(デバイスをクローズする)
4.リード(デバイスからコマンドやデータを読み出す)
5.ライト(デバイスにコマンドやデータを書き込む)
6.I/Oコントロール(標準化されていないデバイスの制御)
デバイスインターフェースは、OSのカーネル側からみたデバイスとのインターフェースであり、物理的インターフェースと論理的インターフェースの2種類がある。デバイスインターフェースは、ハードウェアとの物理的な接続形式(結線上の問題)を扱う部分である。物理的インターフェースでは、登録されるデバイスのレジスタが、カーネルのメモリマップ上に展開される。それは主にメモリ共有と割り込み処理を扱う物理的なバス接続であり、デバイスの接続形式によって、例えば、メモリマップドレジスタ(PCIバス接続)、I2C(Inter-Integrated Circuit)バスインターフェースやSPI(Serial Peripheral Interface)などの通信型レジスタなどがある。
本実施形態のデバイスドライバ本体10Bは、主に以下の設定情報が記述されている。
1.デバイスの制御に関する設定情報
2.デバイスに設定する設定情報(デバイスに与えるパラメータ等)
・カメラA
レジスタ#1.ズーム
レジスタ#2.フォーカス
・カメラB
レジスタ#1.フォーカス
レジスタ#2.ズーム
図3は、第2の実施形態のデバイスドライバの登録方法を示すフローチャートである。
ステップS1では、第1の実施形態で説明した通知用ドライバをカーネルにロードする。OS起動後にデバイスドライバをロードする方法はOSによって異なっている。例えば、OSがLinux(登録商標)である場合は、”insmod”などのコマンドを用いる。OSがWindows(登録商標)である場合には、「.sys」というドライバ定義ファイルを作成してプラグ・アンド・プレイでOSにデバイスドライバの読み込みを行わせることで必要なデバイス設定情報をレジストリに登録する方法が簡便である。その他のOSでもデバイスドライバをカーネルにロードするコマンドがある場合にはそれを利用する。このステップは通常は管理者権限で行うか、起動時にシステムが管理者権限で自動実行するように設定することが通常であるが、ユーザー権限で行えるようにすることも可能である。
次に、デバイスを初期化を開始して(ステップS2)、シナリオ・シーケンス・ファイルを読み込む。ステップS1で通知用ドライバのロードが終了し、デバイスは待機状態にある。ここで、初期化を開始して、シナリオ・シーケンス・ファイルの読込を開始する。
この初期化ステップは、具体的には、例えば、デバイスの設定情報(パラメータ)を初期値に設定することや、デバイスの動作を決定する実行スクリプトに記述された実行コマンドを初期化する、或いは、シナリオ・シーケンス・ファイルを基にデバイスドライバを生成するための準備としてメモリ上に作業領域を確保することなどを含む。
S2−1.レジスタのデフォルト値を設定 <OUT側(デバイス側)>
Out側のセンサ部のレジスタ(例えば、デバイスがカメラモジュールであるとした場合、画面サイズ、フォーカスをどこから開始するか(通常は無限大側)、ホワイトバランス(画調)、露出時間などの各種デバイスパレメータ)を初期値に設定する。なお、カメラモジュールは一例であり、あらゆるデバイスの設定値が初期値に設定されることを意味する。
S2−2.ワークメモリのクリア(ワークメモリをゼロで埋める) <IN側>
以上のステップにより、デバイスドライバをカーネルに登録した際には、常に同じ動作が保証されることになる。
次に、シナリオ・シーケンス・ファイルを基にハンドラを生成するメインスレッドを実行する(ステップS3)。このステップS3は特にリードとライトとI/Oコントロールの機能とシーケンスを生成するステップであり、ユーザー権限で実施することができる。たとえば、ユーザー権限でI/Oコントロールを使ってファイルの書き込み属性を変えることもできる。デバイスドライバはこの時点ではじめて自身の動作が確定する。
次に、生成された上記各ハンドラの内容をデバイスドライバとしてカーネルに登録する(ステップS4)。このデバイスドライバは、OS上で利用できるような状態で登録されていればよく、方式や利用形態などを問わず、OSのカーネルに組み込まれていればよい。
デバイスを取り外すときは終了(Terminate)する。
図4は、計算機の基本構成を示す概念図である。計算機20はマイクロプロセッサユニット21とメモリ22とデバイスインターフェース23(図1の10C)を具備する。マイクロプロセッサユニット21は、主にCPU(Central Processing Unit)であり、FPGA(field-programmable gate array)やマイコンなど、各種のロジックICを用いてもよい。メモリ22は、RAM(Random Access Memory)などの一時記憶装置を指す。
以下に、デバイス設定情報を記述したシナリオ・シーケンス・ファイルの一例を挙げる。
シナリオ・シーケンス・ファイルはデバイスインターフェースに接続されるデバイスのデバイスパラメータとハンドラを生成するための実行スクリプトを記述したファイルであり、スクリプト形式のファイルであるため、テキストエディタで編集できる程度の非常に小さな(例えば2キロバイト以下のような)ファイルサイズのテキストデータで構成することもできる。実装により、JavaScript(登録商標)やXMLなど、OSや計算機のハードウェア(MPU)に依存しない中間言語の形式で記述してもよい。
(a)デバイスインターフェースに関する情報
(b)デバイスの動作内容に関する情報
(c)接続先デバイスに関する情報
である。これらの情報をシナリオ・シーケンス・ファイルに記述し、通知用ドライバを介してカーネルに登録すればよい。
処理命令定義は、シナリオそのものの記述を行う実行コマンドが記述される。なお、デバイス(ハードウェア)に依存して決まっている割り込み番号は「int1」などの予約語として扱う。
処理命令 : 処理内容
wait intr(n) : 割り込みID n の割り込みを待つ
write $addr : OSから受け取ったデータを$addrに書き込む
write $addr,size : OSから受け取ったデータを$addrから書き込む
write data,$addr : dataを$addrに書き込む
read $addr,size : $addrからsizeだけのデータをOSに返す
copy $add1,$add2,size : $add1から$add2にsizeバイト データを転送する
copy $add1,$add2,size : $add1から$add2にsizeバイト データを転送する
copy #dataset(n) : データセットID n を転送する
res data : dataをOSに返す
and mask,$addr : $addrのデータとmaskの論理積を取り、条件分岐式に反映する
or mask,$addr : $addrのデータとmaskの論理和を取り、条件分岐式に反映する
if else endif : シナリオの条件分岐
while endwhile : while〜endwhile間を条件ループする
for n endfor : for〜endfor間をn回ループする
exit : インターフェースを終了する
処理命令定義には、その他、DMA転送やmutexなどを含む同期の仕組みなどの処理命令が記述される。
データセット定義は、1つ又は複数のデータを1セットとしたデータセットの定義が記述される。データセットは任意の名前のデータ列を定義することができる。データ列には、レジスタと定義内容、書き込み後のタイミングなどを記述する。データセットは複数パターンを登録しておき、目的や場合に合わせて使い分ける。
b $addr and mask n : データセットbを「$addrの内容にmaskの論理積を1バイト書き込み n ミリ秒待つ」データ列と定義する
w $addr or mask n : データセットwを「$addrの内容にmaskの論理和を2バイト書き込み n ミリ秒待つ」データ列と定義する
l $addr data n : データセットlを「$addrの内容にdataを4バイト書き込み n ミリ秒待つ」データ列と定義する
allocate $buffer 16;
allocate $flag 1;
exit;
[term]
free buffer;
free $flag;
exit;
[open] // 何もしない
exit;
[close] // 何もしない
exit;
[I/O-ctrl] // 何もしない
exit;
[read]
or.w #0001,$flag;
if // バッファにデータが有れば
read $recive_data,16; // データを読み出す
write.w 1,$flag
endif
exit;
[write]
write $send_reg,16; // デバイス読み込み開始
wait int1; // 完了割り込み待ち
exit;
[main_thread] // 受信割り込みを待ってバッファに読み出す
while;
wait int1; // 完了割り込み待ち
read $recive_data,buffer,16; // デバイスからバッファにデータを読み出しておく
write.w 1,$flag;
endwhile;
図5は、第4の実施形態のカメラモジュールを示すブロック図である。図5に示すように、カメラ本体50は、計算機20とカメラモジュール30とを有する。カメラモジュール30は、制御部31と、デバイスインターフェース33とセンサー34と、IRフィルタ35やレンズ36等の光学系部品とを有する。計算機20とカメラモジュール30とは、デバイスインターフェース23、33同士が例えばバスにより接続されている。
10A ドライバインターフェース
10B デバイスドライバ本体
10C デバイスインターフェース
11 カーネル
12 デバイス
20 計算機
21 マイクロプロセッサユニット(MPU)
22 メモリ
23 デバイスインターフェース
30 カメラモジュール
31 制御部
33 デバイスインターフェース
34 センサー
35 IRフィルタ
36 レンズ
50 カメラ本体
Claims (6)
- デバイス設定情報をオペレーティングシステムのカーネルに通知するドライバインターフェースを備えた通知用ドライバであって自身はデバイス設定情報を一切含まない通知用ドライバと、オペレーティングシステムに依存しないデバイス設定情報のみを記述したシナリオ・シーケンス・ファイルとを備え、
前記通知用ドライバに前記シナリオ・シーケンス・ファイルが読み込まれることにより前記ドライバインターフェースを介してデバイス設定情報が前記カーネルに登録されるデバイスドライバの登録装置。 - デバイス設定情報をオペレーティングシステムのカーネルに通知するドライバインターフェースを備えた通知用ドライバであって自身はデバイス設定情報を一切含まない通知用ドライバと、オペレーティングシステムに依存しないデバイス設定情報のみを記述したシナリオ・シーケンス・ファイルとを用いて、前記通知用ドライバに前記シナリオ・シーケンス・ファイルを読み込むことにより前記ドライバインターフェースを介してデバイス設定情報を前記カーネルに登録するデバイスドライバの登録方法。
- 前記通知用ドライバは、デバイス設定情報をオペレーティングシステムに通知するインターフェースとしての機能だけを有する請求項2記載のデバイスドライバの登録方法。
- デバイス設定情報をオペレーティングシステムのカーネルに通知するドライバインターフェースを備えた通知用ドライバであって自身はデバイス設定情報を一切含まない通知用ドライバをカーネルにロードするステップS1と、
デバイスの初期化を開始してオペレーティングシステムに依存しないデバイス設定情報のみを記述したシナリオ・シーケンス・ファイルを読み込むステップS2と、
前記シナリオ・シーケンス・ファイルを基にハンドラを生成するメインスレッドを実行するステップS3と、
生成された前記各ハンドラの内容をデバイスドライバとしてカーネルに登録するステップS4と、
を具備するデバイスドライバの登録方法。 - 前記ステップS2は、
S2−1.レジスタのデフォルト値を設定するステップと、
S2−2.ワークメモリをクリアするステップと、
を含む請求項4記載のデバイスドライバの登録方法。 - 前記ステップS3は、テーブルを用いてハンドラ毎にデバイスパラメータ及びデバイスの動作を決定する実行スクリプトをそれぞれ関連付けるステップを含む請求項4記載のデバイスドライバの登録方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014191562 | 2014-09-19 | ||
JP2014191562 | 2014-09-19 | ||
PCT/JP2015/074780 WO2016043040A1 (ja) | 2014-09-19 | 2015-08-31 | デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5997867B2 true JP5997867B2 (ja) | 2016-09-28 |
JPWO2016043040A1 JPWO2016043040A1 (ja) | 2017-04-27 |
Family
ID=55533080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016514174A Active JP5997867B2 (ja) | 2014-09-19 | 2015-08-31 | デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10372461B2 (ja) |
JP (1) | JP5997867B2 (ja) |
CN (1) | CN107077435B (ja) |
WO (1) | WO2016043040A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018008145A1 (ja) * | 2016-07-08 | 2018-01-11 | 三菱電機株式会社 | 制御装置及び制御方法 |
JP6632765B2 (ja) * | 2017-05-17 | 2020-01-22 | 三菱電機株式会社 | 制御装置及び制御方法 |
CN107423075B (zh) * | 2017-08-28 | 2021-06-08 | 深圳传音控股股份有限公司 | 驱动的注册方法以及用户终端 |
CN111221571B (zh) * | 2018-11-26 | 2024-03-15 | 西安诺瓦星云科技股份有限公司 | 外设驱动制作方法、装置以及计算机可读介质 |
WO2021125393A1 (ko) * | 2019-12-19 | 2021-06-24 | (주)로보티즈 | 마이크로컨트롤러유닛 기반 드라이버 인식 장치 및 방법 |
CN114661379B (zh) * | 2022-04-02 | 2024-01-05 | 经纬恒润(天津)研究开发有限公司 | 车载摄像头系统的解串器驱动程序改造方法及相关装置 |
CN116541084B (zh) * | 2023-06-29 | 2023-12-15 | 深圳艾为电气技术有限公司 | 压缩机驱动器的驱动装载控制方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0689253A (ja) * | 1991-03-26 | 1994-03-29 | Internatl Business Mach Corp <Ibm> | 汎用のオペレーティング・システム・インターフェースを有するデバイス・ドライバを含むデータ処理システム |
JP2007265064A (ja) * | 2006-03-29 | 2007-10-11 | Sharp Corp | 記憶装置、デバイス制御装置、デバイス制御プログラム、放送受像機及びデバイス制御方法 |
JP2009252194A (ja) * | 2008-04-11 | 2009-10-29 | Nec Electronics Corp | データ処理装置、ハードウェアアクセス方法、及びハードウェアアクセスプログラム |
JP2012155515A (ja) * | 2011-01-26 | 2012-08-16 | Renesas Electronics Corp | ソースデバイスドライバ及び実行モジュールの作成方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1011384A (ja) | 1996-06-24 | 1998-01-16 | Sumitomo Metal Ind Ltd | 入出力標準化装置 |
KR100464349B1 (ko) | 2002-08-08 | 2005-01-03 | 삼성전자주식회사 | 디바이스 드라이버 제어 공통화 방법 |
US7203774B1 (en) * | 2003-05-29 | 2007-04-10 | Sun Microsystems, Inc. | Bus specific device enumeration system and method |
JP5294892B2 (ja) * | 2009-01-14 | 2013-09-18 | キヤノン株式会社 | 画像形成装置、装置、制御方法、及びプログラム |
JP4814407B1 (ja) * | 2010-06-10 | 2011-11-16 | パナソニック株式会社 | 再生装置、記録媒体、再生方法、プログラム |
JP5846016B2 (ja) * | 2012-03-30 | 2016-01-20 | 富士通株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
CN103853383B (zh) * | 2014-03-05 | 2016-08-31 | 中南大学 | 一种在Uboot中实现触摸屏驱动的方法 |
-
2015
- 2015-08-31 CN CN201580050456.1A patent/CN107077435B/zh active Active
- 2015-08-31 WO PCT/JP2015/074780 patent/WO2016043040A1/ja active Application Filing
- 2015-08-31 JP JP2016514174A patent/JP5997867B2/ja active Active
- 2015-08-31 US US15/512,810 patent/US10372461B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0689253A (ja) * | 1991-03-26 | 1994-03-29 | Internatl Business Mach Corp <Ibm> | 汎用のオペレーティング・システム・インターフェースを有するデバイス・ドライバを含むデータ処理システム |
JP2007265064A (ja) * | 2006-03-29 | 2007-10-11 | Sharp Corp | 記憶装置、デバイス制御装置、デバイス制御プログラム、放送受像機及びデバイス制御方法 |
WO2007119527A1 (ja) * | 2006-03-29 | 2007-10-25 | Sharp Kabushiki Kaisha | 記憶装置、デバイス制御装置、デバイス制御プログラム、放送受像機及びデバイス制御方法 |
JP2009252194A (ja) * | 2008-04-11 | 2009-10-29 | Nec Electronics Corp | データ処理装置、ハードウェアアクセス方法、及びハードウェアアクセスプログラム |
JP2012155515A (ja) * | 2011-01-26 | 2012-08-16 | Renesas Electronics Corp | ソースデバイスドライバ及び実行モジュールの作成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107077435B (zh) | 2020-03-31 |
US20170286124A1 (en) | 2017-10-05 |
WO2016043040A1 (ja) | 2016-03-24 |
JPWO2016043040A1 (ja) | 2017-04-27 |
US10372461B2 (en) | 2019-08-06 |
CN107077435A (zh) | 2017-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5997867B2 (ja) | デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法 | |
TWI719332B (zh) | 曝光方法、電子裝置與主從式系統 | |
JP2010119105A (ja) | 用途に応じて複数のイメージセンサを制御するための装置及び方法 | |
US9507611B2 (en) | Electronic apparatus, control device, control method, and computer readable medium | |
EP2939433A2 (en) | Camera command set host command translation | |
JP7093979B2 (ja) | デバイスプロキシ装置及びそれを含む計算機システム | |
WO2019182335A1 (ko) | 전자 장치 및 전자 장치의 업데이트 제어 방법 | |
US20190236035A1 (en) | Standardized device driver having a common interface | |
JP2017507447A (ja) | Usbオーバーipを用いた、別のデバイスとの非usbセンサの共有 | |
US9141321B1 (en) | Configurable printer server device | |
US10592644B2 (en) | Information protection method and device based on a plurality of sub-areas for MCU chip | |
JP2009064303A (ja) | 撮像装置、共用リソース管理方法、およびプログラム | |
WO2023155363A1 (zh) | 服务器动态热备份的方法、装置、设备及存储介质 | |
KR102276696B1 (ko) | 집적 회로 무선장치 | |
US10866481B2 (en) | Electrophoretic display system and developing method | |
US8869137B2 (en) | Information processing apparatus that automatically and sequentially displays graphical user interface images and recording medium storing program | |
KR100310307B1 (ko) | 내장형시스템의운영체제개발을위한쉘기능제공방법 | |
CN115190262A (zh) | 一种电子设备、视频流处理方法、设备及介质 | |
JP2024044011A (ja) | 情報処理装置及び情報処理方法 | |
TWI581185B (zh) | 應用程式安裝方法及系統 | |
JP2006185387A (ja) | プログラム及びデータ処理装置 | |
CN117492581A (zh) | 触摸框设备的注册方法、数据处理方法、介质以及设备 | |
JP2006048417A (ja) | Pcカードアダプタ | |
US20170097836A1 (en) | Information processing apparatus | |
CN110879727A (zh) | 一种调节显示屏亮度的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20160809 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160826 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5997867 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |