linux
daisyhd
这个作者很懒,什么都没留下…
展开
-
【转】Linux内核的container_of宏
Linux内核的container_of宏作用:通过一个结构的成员的地址和结构名以及成员名,获得结构的首地址。宏定义:include/linux/kernel.hC代码 /** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the member. * @type: the type of the container struct t转载 2010-06-04 14:14:00 · 596 阅读 · 0 评论 -
【转】linux2.6驱动-设备结构
linux2.6驱动-设备结构<br /> <br />从2.6版本开始引入了platform这个概念,在开发底层驱动程序时,首先要确认的就是设备的资源信息,例如设备的地址,<br />在2.6内核中将每个设备的资源用结构platform_device来描述,该结构体定义在kernel/include/linux/platform_device.h中,<br />struct platform_device {<br />const char * name;<br />u32 id;<br />stru转载 2010-06-18 11:24:00 · 559 阅读 · 0 评论 -
【转】Linux I2C 驱动分析
1. I2C 协议 1.1 I2C总线工作原理 I2C总线是由数据线SDA和时钟SCL构成的串行总线,各种被控制器件均并联在这条总线上,每个器件都有一个唯一的地址识别,可以作为总线上的一个发送器件或接收器件(具体由器件的功能决定)1.2 I2C总线的几种信号状态<br /> 1. 空闲状态:SDA和SCL都为高电平。<br /> 2. 开始条件(S):SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。<br /> 3. 结束条件(P):SCL为低转载 2010-11-04 09:47:00 · 791 阅读 · 0 评论 -
【转】基于流的I/O提供以下3种缓冲:全缓冲、行缓冲、无缓冲
基于流的操作最终会调用read或者write函数进行I/O操作。为了使程序的运行效率最高,流对象通常会提供缓冲区,以减少调用系统I/O库函数的次数。基于流的I/O提供以下3种缓冲:全缓冲:直到缓冲区被填满,才调用系统I/O函数。对于读操作来说,直到读入的内容的字节数等于缓冲区大小或者文件已经到达结尾,才进行实际的I/O操作,将外存文件内容读入缓冲区;对于写操作来说,直到缓冲区被填满,才进行转载 2012-03-12 17:27:38 · 1080 阅读 · 0 评论 -
【转】深入理解Linux的系统调用
一、 什么是系统调用 在Linux的世界里,我们经常会遇到系统调用这一术语,所谓系统调用,就是内核提供的、功能十分强大的一系列的函数。这些系统调用是在内核中实现的,再通过一定的方式把系统调用给用户,一般都通过门(gate)陷入(trap)实现。系统调用是用户程序和内核交互的接口。 二、 系统调用的作用 系统调用在Linux系统中发挥着巨大的作用,如果没有系转载 2012-05-11 13:45:23 · 621 阅读 · 0 评论 -
【转】Linux那些事儿之我是Hub(7)蝴蝶效应
朋友,你相信,一只蝴蝶在北京拍拍翅膀,将使得纽约几个月后出现比狂风还厉害的龙卷风吗?看过那部经典的影片蝴蝶效应的朋友们一定会说,这不就是蝴蝶效应吗.没错.蝴蝶效应其实是混沌学理论中的一个概念.它是指对初始条件敏感性的一种依赖现象.蝴蝶效应的原因在于蝴蝶翅膀的运动,导致其身边的空气系统发生变化,并引起微弱气流的产生,而微弱气流的产生又会引起它四周空气或其它系统产生相应的变化,由此引起连锁反应,最终导转载 2012-10-09 15:10:59 · 1168 阅读 · 0 评论