linux设备驱动程序阅读笔记
tanghui19900420
这个作者很懒,什么都没留下…
展开
-
linux设备驱动程序(第三版)阅读笔记(一)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第一章:设备驱动程序简介1,(驱动程序员应注意的事项)在编写驱动程序时,程序员应该特别注意下面的基本概念:编写访问硬件的内核代码时,不要给用户强加任何特定的策略。因为不同的用户有不同的需求,驱动程序应该处理如何使硬件可用的问题,而将怎么样使用的问题留给上层应用程序。 2,(内核原创 2013-04-24 08:22:05 · 803 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(十一)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第十一章:内核的数据类型1,(内核使用的数据类型)内核使用的数据类型主要被分成三大类:类似int这样的标准C语言类型,类似u32这样的有确定大小的类型,以及像pid_t这样的用于特定内核对象的类型。 2,(内核链表)就像很多其他程序一样,操作系统内核经常需要维护数据结构的原创 2013-04-24 08:40:13 · 776 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(十)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第十章:中断处理1,(为什么需要中断)(1)外设的处理速度一般慢于CPU(2)CPU不能一直等待外部事件所以设备必须有一种方法来通知CPU它的工作进度,这种方法就是中断。 2,(中断信号线的申请)中断信号线是非常珍贵的资源,尤其是在系统只有15根或16根原创 2013-04-24 08:38:52 · 691 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(八)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第八章:分配内存1,(kmalloc函数)kmalloc内存分配引擎是一个功能强大的工具,由于和malloc相似,所以学习它也很容易。除非阻塞,否则这个函数可运行得很快,而且不对所获取的内存空间清零,也就是说,分配给它的区域任然保持着原有数据。它分配的区域在物理内存中也是连续的原创 2013-04-24 08:35:37 · 669 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(七)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第七章:时间、延迟及延缓操作1,(度量时间差)内核通过定时器中断来跟踪时间流。时钟中断由系统定时硬件以周期性的间隔产生,这个间隔由内核根据HZ的值设定,HZ是一个与体系结构有关的常数,定义在或者该文件包含的某个子平台相关的文件中。对真实硬件,已发布的linux内核源代码为大多数平台定义原创 2013-04-24 08:33:23 · 902 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(六)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第六章:高级字符驱动程序操作1,(关于ioctl系统调用)在用户空间,ioctl系统调用具有如下原型:int ioctl(int fd, unsignedlong cmd,…);由于使用了一连串的‘.’,这个原型在Unix系统调用中显得比较特别,通常这些点代表可变数目的参数表。但在原创 2013-04-24 08:31:21 · 1240 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(五)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第五章:并发和竞态(1),(避免竞态的思想)在设计自己的驱动程序时,第一个要记住的规则是,只要可能,就应该避免资源的共享。如果没有并发的访问,也就不会有竞态的产生。因此,仔细编写的内核代码应 该具有最少的共享。这种思想的最明显应用就是避免使用全局变 量,如果我们原创 2013-04-24 08:29:30 · 927 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(四)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第四章:调试技术1,(printk的日记级别)KERN EMERG(0)用于紧急消息, 常常是那些崩溃前的消息. KERN_ALERT(1)需要立刻动作的情形. KERN_CRIT(2)严重情况, 常常与严重的硬件或者软件失效有关.KER原创 2013-04-24 08:27:41 · 795 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(三)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第三章:字符设备驱动程序1,(设备编号的内部表示)在内核中, dev_t类型(在 中定义)用来持有设备编号 -- 主次部分都包括. 对于 2.6.0 内核, dev_t 是 32 位的量, 前12 位用作主编号,后 20 位用作次编号. 当然, 对于设备编号的内部组原创 2013-04-24 08:25:38 · 763 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(二)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第二章:构造和运行模块1,(printk函数的说明)函数printk在linux内核中定义,功能和标志c库中的函数printf类似。内核需要自己单独的打印输出函数,这是因为它在运行的时候不能依赖于c库。模块能够调用printk是因为在insmod函数装入模块后,模块就连接到了内核,因而原创 2013-04-24 08:23:44 · 838 阅读 · 0 评论 -
linux设备驱动程序(第三版)阅读笔记(九)
说明:版权所有归作者,只供学习交流,若有其它用途请联系作者,转载请遵守IT人职业规范,请注明转载地址 第九章:与硬件通信1,(寄存器与内存的区别)寄存器与内存的主要区别在于寄存器操作有副作用(side effect或边际效果):读取某个地址时可能导致该地址内容发生变化,比如很多设备中断状态寄存器只要一读取,便自动清零。 2,(I/O空间和内存)在X86处理器中存在I/原创 2013-04-24 08:37:26 · 700 阅读 · 0 评论