RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
1214Chapter 14デバイス・ドライバ本 章 は、<strong>RedHawk</strong> <strong>Linux</strong> 下 のユーザー・レベルおよびカーネル・レベルのデバイス・ドライバに関 する 問 題 点 に 対 応 します。これはリアルタイム 性 能 の 問 題 に 加 えてデバイス・ドライバの 書 き方 を 容 易 にする 追 加 機 能 に 関 する 情 報 も 含 まれています。<strong>Linux</strong>ベースのデバイス・ドライバを 記述 する 方 法 の 予 備 知 識 を 前 提 とします。ユーザー 空 間 I/O(UIO)ドライバも 説 明 します。PCI-to-VMEブリッジ・デバイスの<strong>RedHawk</strong>サポートに 関 する 情 報 は15 章 の「PCI-to-VMEサポート」で 見 ることが 可 能 です。デバイス・ドライバの 種 類 の 理 解 14<strong>RedHawk</strong> <strong>Linux</strong>の 下 ではユーザー・レベル・デバイス・ドライバを 簡 単 に 書 く 事 が 可 能 です。ユーザー・レベル・ドライバはデバイス・レジスタを 読 み 書 きする、つまりプログラムI/O 操 作 を 開始 するため、I/O 空 間 にアクセスすることが 可 能 です。カーネル・ドライバ・スケルトンの 支 援 により、ユーザー・レベル・ドライバは 割 り 込 みの 受 信 と 同 時 に 処 理 を 開 始 することも 可 能 になります。これは 割 り 込 みルーチンに 付 随 するユーザー・レベル・ドライバの 中 でシグナル・ハンドラを 許 可 する 機 能 をサポートすることにより 得 られます。 割 り 込 みのハンドリングやユーザー・レベル・プロセスへシグナルを 送 信 するためのサンプルのカーネル・ドライバ・テンプレートの場 所 については、 本 章 で 後 述 する「カーネル・スケルトン・ドライバ」セクションを 参 照 して 下さい。<strong>Linux</strong>の 下 でDMA I/O 操 作 をするユーザー・レベル・ドライバを 書 くことは 現 実 的 ではありません。ユーザー・レベルからDMA 操 作 を 禁 止 するいくつかの 問 題 ( 例 えば、ユーザー 空 間 バッファの 物理 アドレスを 決 定 する 方 法 が 現 在 のところサポートされていない)が 存 在 します。カーネルレベル・デバイス・ドライバはI/O 操 作 にDMAを 利 用 するデバイスのために 使 用 する 必 要 があります。ユーザー 空 間 I/O(UIO)は、 複 数 のI/Oボードに 対 してユーザー・レベル・デバイス・ドライバを 記述 するために 使 用 することが 可 能 です。UIOは、(ユーザー 空 間 に 記 述 されるドライバの 主 要 部邪 分で)ユーザー 空 間 アプリケーションに 使 用 される 一 般 的 なツールやライブラリを 利 用 する 小 規 模なデバイス 単 位 のカーネル・モジュールが 必 要 です。14-15ページの「ユーザー 空 間 I/Oドライバ(UIO)」を 参 照 して 下 さい。ユーザー・レベル・デバイス・ドライバの 開 発 14PCIリソースへのアクセスリソースへのアクセス14後 述 のセクションで、ユーザー・レベル・デバイス・ドライバの 記 述 に 影 響 を 及 ぼす<strong>RedHawk</strong> <strong>Linux</strong>オペレーティング・システムの 詳 細 について 説 明 します。ブート 処 理 中 、PCIバス 上 のデバイスは 自 動 的 に 構 成 され、 割 り 込 みが 割 り 当 てられて、デバイス・レジスタがメモリ・マップドI/O 操 作 を 通 してアクセス 可 能 なメモリ 領 域 にレジスタがマッピングされます。これらのメモリ 領 域 はベース・アドレス・レジスタ(BAR: Base Address Register)として 知 られています。デバイスは 最 大 6 個 のBARを 持 つことが 可 能 です。BARの 内 容 はデバイスによって 異 なります。この 情 報 についてはデバイスのマニュアルを 参 考 にしてください。14-1