2016-11-01 3 views
0

私はI2Cインタフェースを介してPCに接続されたEEPROMチップを持っています。問題は次のとおりです。「ハードドライブを使用している間にEEPROMチップのファイルとディレクトリを定期的に書き込む可能性があるためには、何をすべきか」Linux搭載のI2C EEPROMデバイスを作成するにはどうすればよいですか?

私が理解しているように、ブロックデバイスドライバを記述する必要があります。 その後、デバイスファイルをマウントすることができます。

私が間違っている場合は私を修正してください。

答えて

0

すでにLinuxカーネルで使用可能なデバイスドライバがあり、EEPROMの読み書きが可能です。使用可能なドライバはdrivers/misc/eepromにあります。

通常、アクセスする必要があるデバイスツリーノードは、対応するI2Cアドレスが対応するEEPROMドライバに登録されているノードです。 eepromデバイスツリーバインディングのドキュメントは、Documentation/devicetree/bindings/eeprom/eeprom.txteeprom.txtにあります。

+0

回答ありがとうございますが、完全であれば疑いがあります。だから、私は明確にする必要があります。 i2c eepromドライバのデバイスツリーファイル(以前にコンパイルして "insmoded"する必要があります)を作成した後、ドライブデバイスファイルとして使用できるデバイスファイル(たとえば、/ dev/eeprom_drive)を持つことができますか? 、 "mkdosfs -F 16/dev/eeprom_drive"コマンドで)?私が間違っているなら、私を修正してください! –

+0

はい、それはまさに私が意味するものです。あなたが私の答えにリンクしているデバイスツリーのドキュメントからeepromのI2Cアドレスが0x52になっているので、このファイルは '/ sys/bus/i2c/devices/0-0052/eeprom '。私は、あなたが組み込みLinuxで作業していると仮定し、すでにボード用のデバイスツリーを持っていると仮定しました。 – Longfield

+0

私は "insmoded" "eeprom.ko"モジュールをコンパイルしました。その結果、ファイル "/ sys/bus/i2c/devices/0-0056/eeprom"が作成されました。コマンド "i2c-detect 0"をチェックすると、56番目のi2cデバイスがバス( "UU")に登録されていることがわかりました。 i2cdumpユーティリティを使用すると、i2c eepromメモリを簡単に読み込むことができます。しかし、もう一度質問があります。上記のデバイスツリーノードを使用する必要があるのはなぜですか?それは私にi2c eepromチップをマウントする機会を与えるだろうか?私は確信していません... –

関連する問題