3

現在、Linuxを実行している組み込みシステム内でI2Cバスに接続されている2つのデバイスを扱っています。最初のデバイスであるカメラに既存のドライバーを使用しています。2番目のデバイスについては、2番目のデバイスと通信できるユーザースペースプログラムを正常に実装しました。これまでのところ、両方のデバイスは幸せに共存しているようです。ただし、ほとんどすべてのI2Cデバイスには独自のドライバモジュールがあります。したがって、私はドライバーモジュールの利点は何であるか疑問に思っています。次のスレッドを見てみました...

Linuxカーネルモジュールはいつ作成する必要がありますか?

...しかし結論はありません。

したがって、ユーザースペースの実装よりもI2Cドライバーモジュールを作成することの利点は何でしょうか。

よろしく、ステファン

4

1 に答える 1

2

あなたの状況では、おそらくI2Cドライバーモジュールをあまり使用していません。それが壊れていなければ....

カーネルモジュールドライバーを含める主な理由は、別のカーネルモードドライバーがI2Cクライアントである場合、またはカーネルとの緊密な統合の恩恵を受ける場合です。この一例は、WM8350オーディオコーデックです。これは、オーディオバス(I2SまたはAC97)を介してオーディオデータを通信し、I2Cを介して構成(音量レベルなど)を通信します。

パワーマネジメントICは、カーネルに直接制御させたいチップのもう1つの例です。

最後に、I2Cドライバーには複数の種類があることに注意してください。(Documentation / i2c / summaryを参照してください。)場合によっては、I2Cを介した通信方法を教えるために、ハードウェアにI2Cバスアダプタードライバーが必要になることがあります。それにはカーネルモードドライバーが必要です。

于 2010-06-18T00:57:45.343 に答える