linux下i2c驱动笔记 转】的更多相关文章

1. 几个基本概念 1.1. 设备模型 由 总线(bus_type) + 设备(device) + 驱动(device_driver) 组成,在该模型下,所有的设备通过总线连接起来,即使有些设备没有连接到一根物理总线上,linux为其设置了一个内部的.虚拟的platform总线,用以维持总线.驱动.设备的关系. 因此,对于实现一个linux下的设备驱动,可以划分为两大步: 1.设备注册: 2.驱动注册. 当然,其中还有一些细节问题: 1.驱动的probe函数 2.驱动和设备是怎么进行绑定的. 1…
I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. 因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中. linux下的驱动思路 在linux系统下编写I2C驱动,目前主要有两种方法,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux下I2C驱动体系结构来完成.下面比较下这两种方法: 第一种方…
本文转载自:http://blog.csdn.net/wangpengqi/article/details/17711165 I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. 因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中. linux下的驱动思路 在linux系统下编写I2C驱动,目前主要有两种方法,一种…
2C协议规定了主机和从机的概念,在驱动中采用的多是适配器(主机)和设备(从机).首先,i2c规定  Bus    -> Algorithm  算法               Adapter   适配器  Device -> Driver                 Client     从机设备…
作者:彭东林 邮箱:pengdonglin137@163.com 内核版本:Linux-3.14 u-boot版本:U-Boot 2015.04 硬件:TQ2440 (NorFlash:2M   NandFlash:256M  内存:64M) 摘要 这里并不深入分析Linux下I2C驱动的实现,只是以TQ2440硬件平台为例分析I2C驱动的两种方法. 第一种方法: 使用S3C2440自带的I2C控制器实现,这个kernel已经支持,我们只需要配置即可. 第二种方法: 使用GPIO模拟,这个在ke…
本文作为linux 2.6 驱动笔记,记录环境搭建及linux基本内核模块编译加载. 环境搭建: 硬件:OK6410开发板 目标板操作系统:linux 2.6 交叉编译环境:windows 7 + vmware work station + redhat 9 + arm-gcc-linux 步骤: 编写简单内核模块,如下 #include<linux/init.h> #include<linux/module.h> static int hello_init(void){ prin…
源: Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析…
Linux下iptables学习笔记 在Centos7版本之后,防火墙应用已经由从前的iptables转变为firewall这款应用了.但是,当今绝大多数的Linux版本(特别是企业中)还是使用的6.x以下的Centos版本,所以对iptables的了解还是很有必要的.此外,需要说明的是iptables自身并不具备防火墙的功能,它需要通过内核netfilter(网络过滤器)来实现,与firewalld一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过fire…
i2c在linux下的代码在/driver/i2c下面,总体代码如下所示: i2c-core.c 这个文件实现了I2C核心的功能以及/proc/bus/i2c*接口.    i2c-dev.c  实现了I2C适配器设备文件的功能,每一个I2C适配器都被分配一个设备.通过适配器访设备时的主设备号都为89,次设备号为0-255.I2c-dev.c并没有针对特定的设备而设计,只是提供了通用的read(),write(),和ioctl()等接口,应用层可以借用这些接口访问挂接在适配器上的I2C设备的存储…
编写驱动程序,首先要了解是什么类型的设备.linux下的设备分为三类,分别为:字符设备,块设备和网络设备.字符设备类型是根据是否以字符流为数据的交换方式,大部分设备都是字符设备,如键盘,串口等,块设备则是以块为单位进行管理的设备,如,磁盘.网络设备就是网卡等. 其次要了解应用程序和驱动程序的区别,两者的主要区别分为以下三点: 1入口函数的任务不相同,应用程序完成一个任务,驱动只完成初始化工作,比如中断 申请,寄存器设置,定时器设置. 2运行时的cpu模式不相同,驱动具有很高的权限,应用程序是在用…