Chinaunix首页 | 论坛 | 博客
  • 博客访问: 163180
  • 博文数量: 29
  • 博客积分: 1477
  • 博客等级: 上尉
  • 技术积分: 578
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-23 10:42
文章分类
文章存档

2015年(1)

2014年(4)

2013年(3)

2012年(1)

2011年(1)

2009年(19)

我的朋友

分类: LINUX

2009-12-26 18:52:56

 当一个驱动被注册后,我们就可以通过创建设备节点,对设备节点进操作来操作设备.

操作一个设备节点的第一步就是打开设备文件.由第一步中可以,此时调用open函数,实则是调用i2cdev_fops中的i2cdev_fops大家可以打开这个函数对应着看.

第一个有用的语句是:i2c_dev = i2c_dev_get_by_minor(minor);
这个语句通过设备节点所对应的次设备号,去轮询i2c_dev_list,这是一个i2c_dev的链表,这个链表中每个i2c_dev 结构的adap成员对应一个次设备号,也就对应一个.上面所用到的函数就是通过对比次设备号,来判断并取得对应i2c从设备的i2c_dev.然后通这个结构是否为空来判断对应节点是否对应真实的设备.
第二个有用的语句是:adap = (i2c_dev->adap->nr);
通过这个函数取得要操作的设备所在的适配器结构.
实际上这个open函数的主要作用除了判断设备是否真实存在之外,还要为设备生成一个i2c_client结构.下面部分就是生成了这样一个结构,并且把这个结构的一此信息进行添充.
如图:
i2c设备驱打开文件

阅读(2105) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~