Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1413967
  • 博文数量: 1334
  • 博客积分: 645
  • 博客等级: 上士
  • 技术积分: 5762
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-25 16:56
文章分类

全部博文(1334)

文章存档

2014年(108)

2013年(1059)

2012年(169)

分类: LINUX

2013-02-21 05:18:58

原文地址:i2c驱动第二步-打开 作者:dean_go

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

操作一个设备节点的第一步就是打开设备文件.由第一步中可以,此时调用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设备驱打开文件

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