易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux I2C核心、总线与设备驱动

Linux I2C核心、总线与设备驱动
注:
 在linux2.6.32版本中有这样的代码与注释:
struct i2c_driver {
    unsigned int class;
    /* Notifies the driver that a new bus has appeared or is about to be
     * removed. You should avoid using this if you can, it will probably
     * be removed in a near future.
     */
 
   int (*attach_adapter)(struct i2c_adapter *);
    int (*detach_adapter)(struct i2c_adapter *);
    /* Standard driver model interfaces */
    int (*probe)(struct i2c_client *, const struct i2c_device_id *);
    int (*remove)(struct i2c_client *);
...
}
我的理解是.新版本中用probe和remove代替了原来的attach_adapter和detach_adapter.
I2C总线仅仅使用SCL、SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。
Linux定义了系统的I2C驱动体系结构,在Linux系统中,I2C驱动由3部分组成,即I2C核心、I2C总线驱动和I2C设备驱动。这3部分相互协作,形成了非常通用、可适应性很强的I2C框架。
本章第1节将对Linux I2C体系结构进行分析,讲明3个组成部分各自的功能及相互联系。
第2节将对Linux I2C核心进行分析,解释i2c-core.c文件的功能和主要函数的实现。
第3、4节将分别详细介绍I2C总线驱动和I2C设备驱动的编写方法,给出可供参考的设计模板。
第5、6节将以第3、4节给出的设计模板为基础,讲解S3C2410 ARM处理器I2C总线驱动及挂接在上的SAA7113H视频模拟/数字转换芯片设备驱动的编写方法。
15.1 Linux I2C体系结构
Linux的I2C体系结构分为3个组成部分:
1  I2C核心
I2C
核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(即“algorithm”,笔者认为直译为“运算方法”并不合适,为免引起误解,
下文将直接使用“algorithm”)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。
2   I2C总线驱动
I2C总线驱动是对I2C硬件体系结构中适配器端的实现,适配器可由CPU控制,甚至直接集成在


相关文档:

将Linux代码移植到Windows的简单方法(2)

经过上述的几个步骤。第一个目标,代码能够编译通过基本上是不会有什么问题的。只要把握好二个修改代码的基本原则,第一。引入新的代码,而不修改原有的代码。在没有办法进行调试前修改源代码是不允许的,修改的不好就会引起最后代码运行逻辑的混乱,而且在代码能够运行之前是很难发现问题的。所以除非非常有把握,否则不要 ......

linux多线程好文章


1
、线程的创建、终止及控制:
      
任何进程在启动时就已有了一个主线程,如果需要再生成线程则使用
pthread_create
函数,在该函数中可以指定线程的属性、线程例程、传给线程例程的参数。线程例程是一个用户自定义的函数,及线程执行的代码。当线程例程返回时,线程则结束运行, ......

写给像我一样的Linux内核初学者

--孔建军(Kongove.CN)
2008.11.12
首先,让我们来看几组令人振奋的数据。现在订阅Linux内核邮件列表[1],每天的邮件流量大概在500份左右;执行"grep "^P:"
MAINTAINERS |sort -u|wc
-l",对内核子系统维护者进行统计,得到的结果是534人;从2007到2008年,平均每天有4300行代码添加到内核,有180 ......

用C/C++做DLL函数的导出方法

由于VC编译器有函数重命名的功能所以,确定函数名有两种方式:
1.extern "C"
2.使用.def文件
这两种也可以一起使用。
下面是一个例子:
extern "C" _declspec(dllexport)int __stdcall JieCheng(int a)
{//阶乘函数。输入:正整数。输出:这个数的阶乘值
 int b=1;
 for(int i=1;i<=a;i++)
 {
&n ......

c 语言中的字符串操作

http://blog.chinaunix.net/u1/41817/showart_342390.html
6.5       
怎样将字符串打印成指定长度
?   
 
   
如果要按表格形式打印一组字符串,你就需要将字符串打印成指定长度。利用
printf()函数可以很方便地实现这一点,请看下例
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号