VME/CAMACデバイスドライバ開発専門研修
講師 : 安 芳次
オンライングループ
, 素粒子原子核研究所,
高エネルギー加速器研究機構
1-1 Oho, Tsukuba, Ibaraki 305-0801 Japan
Yoshiji.YASU@kek.jp
Under construction! Last Modified: March 22, 2002
目的|
開発手順|
期間 |
メンバー |
ミーティングメモ |
仕様作成のテンプレート |
LinuxデバイスドライバFAQ |
Linuxデバイスドライバの書き方 |
有用なWEBサイト |
この専門研修の目的はVME/CAMAC/PCIなど高エネルギー物理学実験等に用いられる
バスを利用したLinux用デバイスドライバの開発です。
Linuxにおけるデバイスドライバの基本構造を理解し、各自の
目的に沿ったデバイスドライバを開発して頂きます。
開発の手順はおよそ次のようです。
-
設計の段階では外部仕様及び内部仕様を作成します。
-
製作の段階ではプログラムの作成及びコンピュータ等環境整備を行ないます。
-
デバッグの段階ではプログラムのデバッグをユーザレベル及びカーネルレベルで
行ないます。
-
性能評価の段階では計測ツールを作成し、ソフトウエア/ハードウエアの
性能評価を行ないます。
-
レポート作成の段階では、技術レポート、学会発表、論文作成等
可能な限り行ないます。
2000年11月下旬より2001年4月いっぱいまで
2000年
2001年
1月24日に開かれる研修検討委員会への中間報告書(pdf,txt)を研修委員長である工藤さんに提出しました。
研修委員会に最終報告書を提出しました。
外部仕様及び内部仕様を作成するに当たって、下記に示す内容についてできるだけ
触れるように心がけてください。
- 外部仕様:
これはデバイスドライバをユーザに使ってもらうために見せるものです。
デバイスドライバの中身がどのように
なっていようとユーザは特に関心がありません。ユーザインターフェースで
記述された機能がどのようなものあるのか?使う立場で必要なことを
記述してください。
- イントロダクション:目的、ハード/ソフトの概要など
- インストレーション:入手方法、設置/設定など
- デバイスドライバのユーザインタフェースの詳細
- デバイスドライバの使用方法を示す例題及び設定方法
- パフォーマンス一覧(詳しい説明は不用)
- 参考文献(WEBを含む)
- 内部仕様:
これはデバイスドライバの設計書です。この設計書に従って誰が作っても同じものが
できるように必要最低限のことは書くように努力してください。
- イントロダクション:目的、ハード/ソフトの構成の詳細など
- デバイスドライバの各パートの詳細説明
- パフォーマンスの詳細
- アペンディクス(特に記述したい技術的ポイント)
- 参考文献(WEBを含む)
FAQがあります。
このデバイスドライバの書き方は初心者から熟練者までを対象としています。
また、デバイスドライバを使う立場の方とそれを作る立場の方、両方を
対象としています。初心者でデバイスドライバを使う立場の方は細かいところを
気にせずに、例題を中心にみてください。どのように使うかが分かります。
熟練者でデバイスドライバを作る立場の方はじっくり読んでください。
仮想記憶や割り込みは難しい部分ですが、頑張って理解してください。
ドライバを試しながらやれれば、理解は深まります。
- はじめに
- ハードウエア
- デバイスへのアクセス法のいろいろ
-
簡単なskeletonデバイスドライバ
-
Programmed I/O (PIO)を用いた簡単なPCIデバイスドライバ
- X86 CPU/Linuxの割り込み処理機構
- 割り込みデバイスドライバのいろいろ(mouseintドライバ)
- PCI-CAMAC用デバイスドライバ(シングルアクションとLAM割り込み処理)
- その他、select文やシグナルをサポートするデバイスドライバ
- 仮想記憶とLinuxの空間管理
- 仮想アドレス変換のメカニズム
- X86/Linuxの仮想記憶システム
- Linuxの空間管理
- Linuxプロセスの仮想メモリ領域(VMA)
- mmapシステムコールを用いたカーネル空間上のメモリ及びI/Oデバイスのメモリ空間へのアクセス
- DMA機能を用いたデバイスドライバ
- USBを用いたVME/CAMACデバイスドライバ
- BIGPHYSエリアについて
- リアルタイムLinuxとデバイスドライバ
- 性能測定法
- その他