转载地址:http://bbs.eeworld.com.cn/thread-444753-1-1.html
恩,测试了一下helper2416板子上面的AT24C16,使用一个开源的源码包,eeprog-0.7.6.tar.gz
板子默认上面也是有编译好了在/usr/bin下面,可以直接使用。为了从头学习,去源码主页看看,并下载源码编译与测试。
主页地址: http://www.codesink.org/eeprog.html 关于eeprog说明请直接到主页了解,比较简单也就2个文件。
下载源码,修改交叉编译器为arm-linux-gcc即可编译出来eeprog,把该文件拷贝到板子/root目录下面,运行一下,实际中我做了一点点调整,添加eeworld专属说明并添加非hex格式读取结束换行。
来个效果图看看:

在0x100处开始写入 www.eeworld.com---eeprog---2014-08-10----18:11:37

读取从0x100处开始的48个字节

恩看看,是不是写入的和读取的一致,断电重新上电,读取还是一样说明存储成功。
说点别的,板子上面的i2c设备在dev下面是0,这个主要是 /etc/mdev.conf文件决定的
- # vi /ect/mdev.conf
- # i2c devices
- i2c-0 0:0 0666 =i2c/0
- i2c-1 0:0 0666 =i2c/1
以下是我之前的尝试,之前没看清/dev/i2c/中的0,以为是total 0,我还在想怎么就没设备节点呢,驱动没有放进去吗,去/sys/class/下面看下,有的啊,折腾了下。
1、使用dmesg命令查看i2c设备驱动
- # dmesg | grep i2c
- s3c-i2c s3c2410-i2c: slave address 0x10
- s3c-i2c s3c2410-i2c: bus frequency set to 65 KHz
- s3c-i2c s3c2410-i2c: i2c-0: S3C I2C adapter
- i2c /dev entries driver
2、使用cat命令查看
- # cat /sys/class/i2c-dev/i2c-0/name
- s3c2410-i2c
3、查看内核系统信息
- # cat /proc/devices
- Character devices:
- 1 mem
- 2 pty
- 3 ttyp
- 4 /dev/vc/0
- 4 tty
- 4 ttyS
- 5 /dev/tty
- 5 /dev/console
- 5 /dev/ptmx
- 6 lp
- 7 vcs
- 10 misc
- 13 input
- 14 sound
- 21 sg
- 29 fb
- 86 ch
- 89 i2c
- 90 mtd
- 99 ppdev
- 108 ppp
- 116 alsa
- 128 ptm
- 136 pts
- 153 spi
- 166 ttyACM
- 180 usb
- 188 ttyUSB
- 189 usb_device
- 204 ttySAC
- 253 bsg
- 254 rtc
- Block devices:
- 1 ramdisk
- 259 blkext
- 7 loop
- 8 sd
- 11 sr
- 31 mtdblock
- 65 sd
- 66 sd
- 67 sd
- 68 sd
- 69 sd
- 70 sd
- 71 sd
- 128 sd
- 129 sd
- 130 sd
- 131 sd
- 132 sd
- 133 sd
- 134 sd
- 135 sd
- 179 mmc
4、相关查看
- # cat /sys/devices/platform/s3c2410-i2c/i2c-0/name
- s3c2410-i2c
5、建立设备节点
- # mknod /dev/i2c-0 c 89 0
6、写入数据
- # date | eeprog /dev/i2c-0 0x50 -w 0x20
7、读取数据
- # eeprog /dev/i2c-0 0x50 -r 0x20:0x20
8、其他测试
- # date | eeprog /dev/i2c/0 0x50 -w 0x100
- # eeprog /dev/i2c/0 0x50 -r 0x100:0x20