8

ボードにNXPRTCチップ用のRTCドライバーを書き込んだところですが、うまく機能します。このチップには、ユーザースペースアプリケーションで利用できるようにしたいバッテリーバックアップRAMもあります。RTCフレームワークはこれをサポートしていません。たった512バイトですが、シーク可能なCHARドライバーと本格的なBLOCKドライバーのどちらを実行するかを考えています。私はこれまでブロックドライバを実行したことがありませんが、単純なCHARよりも少し多くの情報が必要なようです。

IOCTLSとのインターフェースも可能ですが、それはそれほどクリーンではありません。これらのバイトをユーザーランドで利用できるようにするための最良の方法はどのように感じますか?

[編集]RTCチップがI2Cポートにぶら下がっていて、メモリにマッピングされていないため、mmapingの候補にはならないことを忘れました。[/編集]

4

2 に答える 2

2

ブロックドライバは、ディスクドライブのように見えるデバイス専用です。512バイトにファイルシステムを配置しますか?いいえ?キャラクターデバイスにします。

他のドライバーと同じようにそれを行うことができます。チェックアウトdrivers/char/nvram.c。これにより、、、、、、およびopen()を実行できるcharデバイスが作成read()write()れます。lseek()close()

于 2010-07-08T00:48:02.053 に答える
1

mmapキャラクターデバイスドライバーの実装で十分だと思います。Linuxデバイスドライブは第15章でそれをカバーしています。

編集:

ええと、i2cはシリアルバスなのでmmap、オプションではありません。Essential LinuxDeviceDriversの本を紹介します。第8章にサンプルのi2cEEPROMcharデバイスドライバがあると思います。これがお役に立てば幸いです。

于 2010-06-29T00:24:04.047 に答える