主题 : 用户空间如何访问内核态的I2C驱动 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 2177
精华: 0
发帖: 70
金钱: 620 两
威望: 463 点
综合积分: 140 分
注册时间: 2008-10-30
最后登录: 2015-01-12
楼主  发表于: 2010-01-18 20:46

 用户空间如何访问内核态的I2C驱动

有个问题想请教一下大家:
我在s3c2440开发板上通过i2c总线挂接了一个i/o扩展芯片pcf8574,接下来就是编写i2c驱动,使得用户程序能够通过调用i2c驱动控制pcf8574。编写i2c设备驱动有两种方式,一种是通过i2c-dev.c生成设备文件,用户程序可以通过对/dev/i2c/0进行open()、read()、write()、ioctl()等操作控制设备,但i2c-dev.c只是通用的i2c设备驱动,只提供了简单的通讯方式,没有太大的实用价值。另一种方式是为特定的i2c设备编写设备驱动,实现内核态的i2c驱动,在源代码/driver/i2c/chips文件夹中有pcf8574.c文件,该文件针对pcf8574实现了设备驱动,我把它编进了内核。
我现在向问的问题是,实现了内核态的i2c驱动后,用户程序如何通过系统调用控制pcf8574,实现特定的操作?还是通过打开/dev/i2c/0文件,对其进行read()、write()操作来实现吗?
-