当前位置: 代码迷 >> 驱动开发 >> linux2.6.37中at24.c驱动的探讨解决办法
  详细解决方案

linux2.6.37中at24.c驱动的探讨解决办法

热度:228   发布时间:2016-04-28 10:37:28.0
linux2.6.37中at24.c驱动的探讨
今天看到内核源码驱动中at24eeprom系列的驱动程序(driver/misc/eeprom/at24.c),这个驱动使用了sysfs的机制,建立了bin_attribute的属性结构体,并没有建立类似普通字符驱动中file_operation结构体(包含read.wtire等函数),所以我想请假下大家如何调用bin_attribute中show和store函数(对应eeprom的读写函数)。是否直接读写二进制属性文件?但读写eeprom具体地址和数据改如何传入内核呢?希望大家对这套机制熟悉的大师能指点指点。
----------------------------------------------------------------------
struct bin_attribute {
struct attribute attr;
size_t size;
void *private;
ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *,
char *, loff_t, size_t);
ssize_t (*write)(struct file *,struct kobject *, struct bin_attribute *,
 char *, loff_t, size_t);
int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr,
    struct vm_area_struct *vma);
};
------解决方案--------------------
知道了,使用lseek()指定到指定位置,在进行读写操作
其实就是对设备文件看成一个二进制文件进行操作了。
OK了
  相关解决方案