08 2012 档案

摘要:编写一简单的字符驱动程序,这里的设备也就是一段内存,实现简单的都写功能, 并列出常用格式的Makefile以及驱动加载和卸载脚本。 1 /* test_drv.c */ 2 #include 3 #include 4 #include 5 #include 6 #include ... 阅读全文
posted @ 2012-08-06 16:59 软件小书童 阅读(250) 评论(0) 推荐(0)
摘要:1 /* globalmem字符设备驱动 2 * 作者:liwei.cai 3 * 日期:2012-08-03 4 * globalmem.c 5 */ 6 #include 7 #include 8 #include 9 #include 10 #includ... 阅读全文
posted @ 2012-08-06 16:37 软件小书童 阅读(224) 评论(0) 推荐(0)
摘要:1.一个哦字,打破了所有想说的话题。2.一句简单的“呵呵”涵盖了多少真情。3.有多少人,发表QQ签名只是为了让某人看见。4.当 我 对你 越 来 越 礼 貌 时 , 我 们 或 许 就 越 来 越 陌 生 了...5.原来只要分开了的人,无论原来多么熟悉,也会慢慢变得疏远。6.当朋友忽略你时,不要伤心,每个人都有自己的生活,谁都不可能一直陪你。7.喜欢一个人是一种感觉,不喜欢一个人却是事实。事实容易解释,感觉却难以言喻。“爱”和“喜欢”的区别很简单,如果你爱花你会给它浇水,喜欢则会摘下它!8.单身意味着你足够坚强,有足够耐心去等待那个值得拥有你的人。9.人生朋友分三种:一辈子的,一杯子的,一被 阅读全文
posted @ 2012-08-03 16:43 软件小书童 阅读(244) 评论(0) 推荐(0)
摘要:下载地址http://bbs.chinaunix.net/thread-1977195-1-1.html由复旦fudan_abc写的,风趣的文笔,深入浅出地讲解了Linux内核相关模块,主要涉及了USB相关的模块,但是同样也解析了Linux驱动模型相关的知识,很值得一读。读过《linux那些事儿之我是U盘》的人,都知道其风格,我就不多说了。网上多数只有《linux那些事儿之我是U盘》,或者是hu200298整理的系列之1:linux那些事儿之我是U盘linux那些事儿之我是USB Corelinux那些事儿之我是HUBlinux那些事儿之我是UHCIlinux那些事儿之我是Sysfs此处,我加 阅读全文
posted @ 2012-08-03 09:37 软件小书童 阅读(525) 评论(0) 推荐(0)
摘要:在Touchscreen驱动中1 声明Ad7877.c (\linux-2.6.30.4\drivers\input\touchscreen):struct timer_listtimer;/* P: lock */2 初始化在函数static int __devinit ad7877_probe(struct spi_device *spi) 中执行setup_timer(&ts->timer, ad7877_timer, (unsigned long) ts); 进行初始化其中ad8777_timer是回调函数,ts为给该函数的参数3 使用在函数static void ad7 阅读全文
posted @ 2012-08-03 09:31 软件小书童 阅读(722) 评论(0) 推荐(1)
摘要:原型:1 typedef struct {2 3 volatile int counter;4 5 } atomic_t;1 声明定义并初始化原子变量1 atomic_t isopen = ATOMIC_INIT(1);2 使用原子变量自减1,并测试是否为0,如果为0,返回true,否则返回false1 if( !atomic_dec_and_test(&isopen) ) {2 atomic_inc(&isopen); //加1操作3 return -EBUSY;4 }3 释放减1操作1 atomic_dec(&isopen); 阅读全文
posted @ 2012-08-03 09:30 软件小书童 阅读(1513) 评论(0) 推荐(0)
摘要:自旋锁不会引起睡眠,当一个进程在访问内核无法获取自旋锁时,会进入忙循环,一直等待下去。实例:Pcilynx.c (\linux-2.6.30.4\drivers\ieee1394)1 声明1 struct ti_lynx {2 int id; /* sequential card number */3 spinlock_t lock;4 ...5 };6 7 struct ti_lynx *lynx; 2 初始化 1 spin_lock_init(&lynx->lock);3 使用在函数static pcl_t alloc_pcl(struct ti_ly... 阅读全文
posted @ 2012-08-03 09:28 软件小书童 阅读(133) 评论(0) 推荐(0)
摘要:信号量(semaphore)是用亍保护临界区的一种常用方法内核的信号量在概念和原理上不用户态的信号量是一样的,但是它不能在内核之外使用,内核信号量实际上是一种睡眠锁原型:1 /* Please don't access any members of this structure directly */2 struct semaphore {3 spinlock_t lock;4 unsigned int count;5 struct list_head wait_list;6 }; 实例:1 Ibmphp_hpc.c (\linux-2.6.30.4\drivers\pci\hotpl 阅读全文
posted @ 2012-08-03 09:26 软件小书童 阅读(291) 评论(0) 推荐(0)
摘要:二、通常的函数调用一个通常的函数调用的例子: 1 /* 自行包含头文件 */ 2 void MyFun(int x); /* 此处的声明也可写成:void MyFun(int) */ 3 int main(int argc, char* argv[]) 4 { 5 MyFun(10); /* 这里是调用MyFun(10) 函数 */ 6 return(0); 7 } 8 void MyFun(int x) /* 这里定义一个MyFun函数 */ 9 {10 printf("%d\n",x);11 }这个MyFun函数是一个无返回值的函数,它并不“完成”什么事情。这种调用函数 阅读全文
posted @ 2012-08-02 11:27 软件小书童 阅读(167) 评论(0) 推荐(0)
摘要:设备驱动程序简介·机制和策略·内核划分·内核模块可加载性·Linux内核驱动之设备和模块的分类构造和运行模块·Ubuntu编译内核·Linux内核驱动之HelloWorld模块·Linux内核驱动之内核模块相比于应用程序·Linux内核驱动之内核模块编译和加载·Linux内核驱动之内核符号导出·Linux内核驱动之预备知识·Linux内核驱动之初始化和关停·Linux内核驱动之模块参数字符设备驱动程序·Linux内核驱动之主次编号·Linux内核驱动之一些 阅读全文
posted @ 2012-08-02 10:37 软件小书童 阅读(262) 评论(0) 推荐(0)
摘要:·linux设备驱动归纳总结·linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟·linux设备驱动归纳总结(十二):简单的数码相框·linux设备驱动归纳总结(十一):简单的看门狗驱动·linux设备驱动归纳总结(十):1.udev&misc·linux设备驱动归纳总结(九):1.platform设备驱动·linux设备驱动归纳总结(八):4.总线热插拔·linux设备驱动归纳总结(八)3设备模型的分层与面向对象·linux设备驱动归纳总结(八):2.match.probe.remove 阅读全文
posted @ 2012-08-02 10:35 软件小书童 阅读(227) 评论(0) 推荐(1)
摘要:C语言也能面向对象(一)——一个简单的类面向对象不是C++, java, C#等的专利,万能的C语言一样可以面向对象编程。GObject系统已经用C语言实现了一套完整并且功能强大的面向对象系统。但GObject系统十分庞大,并依赖于众多的开发包,在项目本身很小,或者不想依赖于众多于GObject相关的开发包时,就无法使用了。 那么能不能用C语言实现一套小巧简单,易于理解,易于使用的面向对象系统呢?就让我们一起探索一下吧! 所谓类就是数据和方法的集合体。我们使用结构体定义类的数据,如下: 1: struct animal 2: { 3: char name[256]; 4: ... 阅读全文
posted @ 2012-08-02 10:30 软件小书童 阅读(662) 评论(0) 推荐(0)
摘要:1.记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。 2.能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿佛不断稀释的茶。 3.怨言是上天得至人类最大的供物,也是人类祷告中最真诚的部分。 4.智慧的代价是矛盾。这是人生对人生观开的玩笑。 5.世上的姑娘总以为自己是骄傲的公主(除了少数极丑和少数极聪明的姑娘例外) 6.如果敌人让你生气,那说明你还没有胜他的把握。 7.如果朋友让你生气,那说明你仍然在意他的友情。 8.令狐冲说“有些事情本身我们无法控制,只好控制自己。” 9.我不知道我现在做的哪些是对的,那些是错的,而当我终于老死的时候我才知... 阅读全文
posted @ 2012-08-01 17:47 软件小书童 阅读(107) 评论(0) 推荐(0)
摘要:无论你是男人,还是女人,做人,想成功,下面就是你必须要做到的: 1,这是个现实的社会,感情不能当饭吃,贫穷夫妻百事哀。不要相信电影里的故事情节,那只是个供许多陌生人喧嚣情感的场所。只有不理智和不现实的人才相信 2,给自己定目标,一年,两年,五年,也许你出生不如别人好,通过努力,往往可以改变70%的命运。破罐子破摔只能和懦弱做朋友。 3,朋友请你吃饭,不要觉得理所当然,请礼尚往来,否则你的名声会越来越差。 4,好朋友里面,一定要培养出一个知己,不要以为你有多么八面玲珑,到处是朋友,最后真心对你的,只有一个,相信我。 5,不要相信算卦星座命理,那是哄小朋友的,命运掌握在自己手... 阅读全文
posted @ 2012-08-01 17:40 软件小书童 阅读(109) 评论(0) 推荐(0)
摘要:今天是 22 岁的最后一天。几个月前,我从沃顿商学院毕业,用文凭上“最高荣誉毕业”的标签安抚了已经年过半百的老妈,然后转头辞去了毕业后的第一份工作,跟一家很受 尊敬的公司、还有 150 万的年薪道了别,回到了上海,加入了“刚毕业就失业”俱乐部,开始了一天三顿盒饭的新生活,中间许多精彩剧情暂时略过。 我肯定不是第一个做过这样事的 人,也肯定不会是最后一个。所以在说自己的一些有趣故事前,我想借用大家(包括 30 岁甚至 40 岁以上的朋友)的一点时间和一点平和的心态,和大家分享过去一年以来一直没说的一些话。所以前两部说的是对于一些一直困扰着我们的关键词的理解和体会。他 们是:欲望、外界、标签、天. 阅读全文
posted @ 2012-08-01 17:32 软件小书童 阅读(183) 评论(0) 推荐(0)
摘要:其实这才应该是这一系列文章的第一节,因为这篇文章讲的是盘古开天地的事。话说Mr. Process是一个现代人,但是,只要是人,总该有个祖先。人们总想知道自己从哪来,然后才可以估摸算一下自己将去向何方。所以咱也要了解一下Linux的世界里人类的起源。图1:从上电到BIOS按下电源开关的那个真实的人就是Linux世界里的上帝,他创造了Linux世界的一切。当他按下机箱上的电源开关时,主板开始供电,CPU上的Reset Pin被拉高,这会引起CPU的一系列动作,这些动作是芯片设计时就决定的。CPU中的一些寄存器被置为固定的值,因为这些寄存器可能在启动的过程中要使用,比如CS(代码段寄存器)和EI.. 阅读全文
posted @ 2012-08-01 10:47 软件小书童 阅读(119) 评论(0) 推荐(0)
摘要:Written by manio (manioster{at)gmail.com) Linux内核是一个无比复杂的系统,要想看清大致的脉络也非易事。其实,可以把运行中的Linux想像成一个人类的社会,当中的进程就是社会中的人。人有生老病死,进程有创建、异常、终止。人有各种各样的财产,进程有对应的地址空间、设备等等。人被各种各样的东西限制着,被人管着,进程也是。内核无比巨大,从哪着手?我想,从进程的视角来看是个好办法。并且,在学习Linux内核的同时,类比人类社会来看,会有更深刻的印象,理解得更透彻。本来也应该从进程的创建开始写的,但是最近在看调度的相关论文,就又把Linux调度的东西看了一下. 阅读全文
posted @ 2012-08-01 10:45 软件小书童 阅读(143) 评论(0) 推荐(0)
摘要:1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节 阅读全文
posted @ 2012-08-01 09:31 软件小书童 阅读(159) 评论(0) 推荐(0)