发布时间:2013-08-12 11:02:47
大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。 一、在用户空间,使用ioctl系统调用来控制设备,原型如下:int ioctl(int fd,unsigned long cmd,...); /* fd:文件描述符cmd:控制命令...:可选参数:插入*argp,具体内容依赖于cmd */ 用户程序所作的只是通过命令码告诉驱动.........【阅读全文】
发布时间:2013-08-02 15:55:42
关于IIC的介绍,读者可以参看fs2410裸奔之IIC一文,这里重点介绍如何用GPIO模拟IIC。先来看看LM75硬件的上的连线:其中I2C_SDA0是数据线,I2C_SCL0是时钟线,它们分别接到s5pc100的GPD3和GPD4,如下图所示在模拟IIC的时候,用GPD3引脚发送数据或读取数据,用GPD4引脚提供时钟信号即可。由于s5pc100的GPD这一组的.........【阅读全文】
发布时间:2013-08-02 15:51:58
预备知识在阅读本文最好先熟悉一种i2c设备的驱动程序,并且浏览一下i2c-core.c以及芯片提供商的提供的i2c总线驱动(i2c-davinci.c)。标题党请见谅!其实i2c接口非常的简单,即使用51单片的gpio来模拟i2c,编写一个e2prom或者其他i2c接口的驱动程序,也不是什么难事,几百行代码就能搞定。但是Linux的i2c驱动.........【阅读全文】
发布时间:2013-08-02 15:51:00
当适配器加载到内核后,就针对具体设备编写I2C设备驱动。编写设备驱动有两种方法,一种是利用系统提供的i2c-dev.c实现,另一种为i2c编写一个独立的设备驱动。一、i2c-dev.c控制i2c设备 i2c-dev.c没有针对具体设备来设计,提供了通用i2cdev_read()、i2cdev_write()函数来对应用户空间.........【阅读全文】