sysFS에서 EEPROM의 특정 주소를 읽고 쓰는 방법

sysFS에서 EEPROM의 특정 주소를 읽고 쓰는 방법

I2C 버스에 24CS02 EEPROM이 있습니다. 나는 그것을 성공적으로 읽고 EEPROM의 시작 부분(예: /sys/bus/i2c/devices/1-0050/eeprom)에 성공적으로 쓸 수 있습니다. 특정 주소를 읽고 쓸 수 있는지/방법을 알고 싶습니다. EEPROM 전체를 읽고 쓰고 싶은 부분을 덮어쓴 다음 전체를 다시 쓰는 것보다 더 효율적인 방법이 있기를 바랍니다. sysFS에서 이를 달성할 수 있습니까?

답변1

예, 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은 입력 파일의 시작 오프셋이고, 검색은 출력 파일(eeprom)의 시작 오프셋입니다. Count는 쓸 바이트 수입니다.

관련 정보