我的 I2C 总线上有一个 24CS02 EEPROM。我可以成功读取它并成功写入 EEPROM 的开头(即来自 /sys/bus/i2c/devices/1-0050/eeprom)。我想知道是否/如何读取和写入特定地址。我希望能有比读取整个 EEPROM、覆盖我想要写入的部分然后将整个内容写回更有效的方法。这可以从 sysFS 实现吗?
答案1
是的,您可以使用 dd 或编写自己的程序并使用文件上的查找函数移动到您想要写入的偏移量。例如,如果您想从 input.bin 从偏移量 2048 开始写入 64 个字节,您可以执行以下操作...
dd if=input.bin of=/sys/bus/i2c/devices/1-0050/eeprom bs=1 count=64 skip=2048 seek=2048
Skip 是输入文件的起始偏移量,seek 是输出文件 (eeprom) 的起始偏移量。 Count 是要写入的字节数。