Linux操作系统I2C驱动架构
1,Linux的I2C驱动架构概览
Linux中I2C总线的驱动分为两个部分,总线驱动(BUS)和设备驱动(DEVICE)。其中总线驱动的职责,是为系统中每个I2C总线增加相应的读写方法(比如不同的主芯片集成的I2C控制器)。但是总线驱动本身并不会进行任何的通讯,它只是存在在那里,等待设备驱动调用其函数。
设备驱动则是与挂在I2C总线上的具体的设备通讯的驱动。通过I2C总线驱动提供的函数,设备驱动可以忽略不同总线控制器的差异,不考虑其实现细节地与硬件设备通讯。
2,总线驱动
在系统开机时,首先装载的是I2C总线驱动。一个总线驱动用于支持一条特定的I2C总线的读写。一个总线驱动通常需要两个模块,一个struct i2c_adapter和一个struct i2c_algorithm来描述:
static struct i2c_adapter pb1550_board_adapter =
{
name: "pb1550 adapter",
id: I2C_HW_AU1550_PSC,
algo: NULL,
algo_data: &pb1550_i2c_info,
inc_use: pb1550_inc_use,
dec_use: pb1550_dec_use,
client_register: pb1550_reg,
client_unregister: pb1550_unreg,
client_count: 0,
};
这个样例挂接了一个叫做“pb1550”的adapter驱动。但这个模块并未提供读写函数,具体的读写方法由第二个模块,struct i2c_algorithm提供。
static struct i2c_algorithm au1550_algo =
{
.name &n
相关文档:
Linux内核抢占实现机制分析
【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机,最后介绍了实现抢占内核所做的改动以及何时需要重新调度。
【关键字】内核抢占,用户抢 ......
想让进程在断开连接后依然保持运行?如果该进程已经开始运行了该如何补救? 如果有大量这类需求如何简化操作?
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下 ......
首先来了解一下linux中分区的概念。
在Linux中,分区是这样表示的
/dev/hda
/dev/hda1
/dev/hda2
/dev/hda5
/dev/sdb1
以 /dev/hda5 为例:
因为在Linux中,每一个设备都是用 /dev/ 文件夹下的一个 ......
原文地址 http://hi.baidu.com/369464812/blog/item/8d738ff50bc74269ddc474e7.html
[转载]《GNU/Linux编程指南》
1、开发环境及开发工具
GDB的使用
http://www.linuxsir.org/bbs/showthread.php?t=171156
Eclipse IDE
http://www.linuxsir.org/bbs/showthread.php?t=145249
autotools 使用
http: ......
软件安装命令
1. tar
tar 命令的基本用法为:
tar [选项] 文件名
常用的选项包括
-c 创建一个新的档案文件
-t 查看档案文件的内容
-x 分解档案文件的内容
-f 指定档案文件的名称
-v 显示过程信息
-z 采用压缩方式
举例
1 tar -czf oracle.tar.gz /u01/app/oracle /etc/oratab /home/oracl ......