web-dev-qa-db-ja.com

sysFSのEEPROMの特定のアドレスからどのように読み書きしますか

I2Cバスに24CS02 EEPROMがあります。私はそれを正常に読み取ることができ、EEPROMの最初に(つまり/ sys/bus/i2c/devices/1-0050/eepromから)正常に書き込みました。特定のアドレスを読み書きする方法を知りたいのですが。 EEPROM全体を読み取り、書き込みたい部分を上書きしてから全体を書き戻すよりも、もう少し効率的なものを望んでいます。これはsysFSから可能ですか?

3
Eskimoalva

はい、ddを使用するか、独自のプログラムを作成し、ファイルのシーク関数を使用して、書き込みたいオフセットに移動できます。たとえば、オフセット2048から始まるinput.binから64バイトを書き込みたい場合は、次のようにします...

dd if=input.bin of=/sys/bus/i2c/devices/1-0050/eeprom bs=1 count=64 skip=2048 seek=2048

Skipは入力ファイルの開始オフセットであり、seekは出力(eeprom)の開始オフセットです。カウントは、書き込むバイト数です。

2
Pete