Linux设备驱动开发详解

当前位置:首页 > 计算机网络 > 操作系统/系统开发 > Linux设备驱动开发详解

出版社:人民邮电
出版日期:2010-11
ISBN:9787115236579
作者:宋宝华
页数:632页

章节摘录

插图:任何一个计算机系统的运转都是系统中软硬件共同作用的结果,没有硬件的软件是空中楼阁,而没有软件的硬件则只是一堆废铁。硬件是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合逻辑与时序逻辑。软件则实现了具体应用,它按照各种不同的业务需求而设计,完成了用户的最终诉求。硬件较固定,软件则很灵活,可以适应各种复杂多变的应用。可以说,计算机系统的软硬件互相成就了对方。但是,软硬件之间同样存在着悖论,那就是软件和硬件不应该互相渗透入对方的领地。为尽可能快速地完成设计,应用软件工程师不想也不必关心硬件,而硬件工程师也难有足够的闲暇和能力来顾及软件。譬如,应用软件工程师在调用套接字发送和接收数据包的时候,不必关心网卡上的中断、寄存器、存储空间、I/0端口、片选以及其他任何硬件词汇。在使用Printfo函数输出信息的时候,他不用知道底层究竟是怎样把相应的信息输出到屏幕或者串口。也就是说,应用软件工程师需要看到一个没有硬件的纯粹的软件世界,硬件必须被透明地呈现给他。谁来实现硬件对应用软件工程师的隐形?这个光荣而艰巨的任务就落在了驱动工程师的头上。对设备驱动最通俗的解释就是“驱使硬件设备行动”。驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存的映射等,最终让通信设备能收发数据,让显示设备能显示文字和画面,让存储设备能记录文件和数据。

前言

本书第l版在2008年初出版以后,受到广大读者的支持和厚爱,从几年的市场和读者反馈看,在第1版中还存在一些不足,主要是以下几方面。没有现成的开发环境,读者需要从头到尾构建,而构建需要花费很长的时间,许多时候会不成功,加之配套光盘中的实例没有。Makefile,更加大了操作的难度。没有配套的开发板,大量的基于S3C2410的实例读者身边如果没有可以直接运行的平台,就无法亲身体验这些驱动。个别内容实用性不强或过于陈旧,也有个别知识点的讲解语言晦涩,读者不易理解,如platform驱动。一些知识点内容不够完整,如input驱动、USB UDC和gadget驱动、SPI驱动、ASOC驱动等。鉴于此,作者针对以上问题对第1版内容进行修订,推出了第2版。新版中对全书超过40%的内容进行了修订。这些修订,一些是对过时内容的删除,一些是对讲解不清的知识点的修正,一些是对重点内容的增强,一些则是有用知识点的增加,其目的是为读者提供一套更加准确和完整的全方位、立体式IAnux设备驱动学习平台。第2版相对第l版的主要改动如下。

媒体关注与评论

设备驱动程序是嵌入式操作系统的重要模块,也是难点之一,Linux设备驱动程序更以复杂和繁多而著名,本书的作者集多年授课和开发的经验,以简洁的语言和丰富的实例讲述了这一技术,深入浅出,值得一读。  ——何小庆(北京麦克泰软件技术有限公司董事长)“点亮LED”,寥寥几行代码,你可以做到。本书从简单入手,循序渐进。那些难以触及的理沦,如并发控制、中断、内存映射等,在阶梯式的代码叠加中被你逐步掌握。熟悉硬件规范后,你只需一步步按框架实践,便可开发出一个USB没备驱动。  ——陈莉君(西安邮电学院教授)本书系统讲述了Linux内核驱动的支撑技术,涉及内核编程方式、内核模块、设备文件系统、同步互斥机制等。本书针对具体硬件的真实外没,结合实际外设的硬件逻辑,讲解了常见类型驱动程序的编写方法和实现细节。对广大Linux爱好者而言,是一本值得推荐的好书。  ——陈渝(清华大学副教授)本书有一个非常突出的特点——实用,全书以大量实例来引导读者编写以及移植Linux没备驱动,这些实例是作者多年Linux设备驱动开发从业经验的总结,读者一定会从中受益。  ——郭淳学(中国软件行业学会嵌入式系统分会副理事长兼秘书长)在Linux内核源代码树的各个子系统中,设备驱动是最大的一个子树分支,目前最新的Linux内核支持70多种没备驱动家族。Linux下的驱动编程…一直被认为是一门艺术,本书是通往Linux设备驱动开发殿堂的钥匙。  ——史应生(红帽专家服务团队资深咨询顾问,RHCA、RHCSS中国第一人)设备驱动是操作系统最具多样性和复杂性的部分。回想嵌入式系统教学之初,我几乎买遍了市面上的0inux图书也没有找到一一个模块化驱动的开发实例。本书语言通俗易懂,结构清晰,作者有丰富的培训和开发经验,是国内少有的驱动程序开发专著。马忠梅(北京理工大学副教授)如果说硬件是系统的躯体,软件是系统的灵魂,驱动就是连接躯体和灵魂的纽带,是系统运转的枢纽。本书旨在引导读者,消除读者对驱动开发的神秘感,同时也指出了老手常见的盲点与误区。更难得的是,本书通过大蔚开发实例生动、系统地讲解了Linux设备驱动开发的方方面面。  ——向农(电子工程世界总编)

书籍目录

第1篇 Linux设备驱动入门
第1章 Linux设备驱动概述及开发环境构建
第2章 驱动设计的硬件基础
第3章 Linux内核及内核编程
第2篇 Linux设备驱动核心理论
第4章 Linux内核模块
第5章 Linux文件系统与设备文件系统
第6章 字符设备驱动
第7章 Linux设备驱动中的并发控制
第8章 Linux设备驱动中的阻塞与非阻塞I/O
第9章 Linux设备驱动中的异步通知与异步I/O
第10章 中断与时钟
第11章 内存与I/O访问
第12章 工程中的Linux设备驱动
第3篇 Linux设备驱动实例
第13章 Linux块设备驱动
第14章 Linux终端设备驱动
第15章 Linux的I2C核心、总线与设备驱动
第16章 Linux网络设备驱动
第17章 Linux音频设备驱动
第18章 LCD设备驱动
第19章 Flash设备驱动
第20章 USB主机与设备驱动
第21章 PCI设备驱动
第4篇 Linux设备驱动调试、移植
第22章 Linux设备驱动的调试
第23章 Linux设备驱动的移植
参考文献

编辑推荐

《Linux设备驱动开发详解(第2版)》:畅销3年,内容全面升级、业界权威机构和专家强力推荐、多年培训、研发经验的总结。

作者简介

《Linux设备驱动开发详解(第2版)》是一本介绍Linux设备驱动开发理论、框架与实例的书,《Linux设备驱动开发详解(第2版)》基于LDD6410开发板,以Linux2.6 版本内核为蓝本,详细介绍自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论;字符设备、块设备、TTY设备、I2C设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动的架构和框架中各个复杂数据架构和函数的关系,并讲解了Linux驱动开发的大量实例,使读者能够独立开发各类Linux设备驱动。《Linux设备驱动开发详解(第2版)》内容全面,实例丰富,操作性强,语言通俗易懂,适合广大Linux开发人员、嵌入式工程师参考使用。

图书封面


 Linux设备驱动开发详解下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     这本书是搭配韦东山老师的嵌入式视频教程阅读的,总体来说写得不错,尤其是一开始的字符驱动部分,讲解得十分精彩,配合一些Linux应用层编程的阅读,收获不小;但是后面的工程中的驱动的讲解个人觉得没有前面的好,有可能是自己水平不到家,没有领会进去。本来打算看完这本书入个门之后再进一步学习LDD3,可惜在学习的过程中自己渐渐失去了做驱动的兴趣,也因此没有全部看完,虎头蛇尾。失去兴趣最主要的是发现除非在一线城市如北上广深,就业的岗位并不多。(其实即使是在大城市,就业岗位相对其他IT岗位需求量也是较小啦)。另外的原因则是,一直认为程序员越底层越厉害,因此对写驱动的人十分崇拜;但是学习了一段时间之后,才发现对于90%的驱动工程师而言,工作就是简单地调用内核的API,在厂家提供的驱动基础上对着手册修改相应的硬件配置,工作内容虽然稳定但是琐碎,甚至可以说有点无聊。不过仍然很感谢跟着这本书和韦东山老师的视频学习嵌入式驱动与系统移植的这一个多月,还是学习到了不少东西的,尤其是教会了我Linux的一些基础知识与进行Linux源码阅读的方法(其实这些东西本来应该是在操作系统的课上就要会的T^T)。以后可能会做移动开发或者做嵌入式网络,都会是挺有用的知识与技能吧。
  •     国人自己的书,没有生硬的翻译,全是自己的理解和整理,算是比较好入门吧,还是买点外文书看比较实在 看完这个直接LDD3原版吧,你会发现以前那些不好懂的东西可以很好的理解了,并且,你会发现自己的知识已经不知不觉的提升了很多!学习LD的同胞们,共勉!

精彩短评 (总计101条)

  •     写得很详细,非常适合初学者,里面把最基本的概念讲得很清楚
  •     书是正版,印刷很好
  •     这本书很难买到的,图书**当,当然响当当
  •     这本书对于刚刚开始学习设备驱动开发的同学来说,是相当不错的选择。对于设备驱动开发的知识讲的很详细,的确是一本好书。
  •     比较易懂,不过有些还是没说清楚。以后实际做项目的话,还得看看。
  •     这本书还可以,不过我看的驱动书不多、
  •     书很不错,已经开始看了,认真学习!
  •     对于研究linux驱动的朋友,本书非常实用。

    其中介绍的各种类型的驱动,学习起来,入门非常快。
  •     说实在的这本书,适合想学习驱动的初学者,只是讲解了框架性的东西,没有详细的介绍
  •     通俗易懂,具备一定开发经验的同学来说,这本书算是同类中的经典
  •     很好的linux书,对学习linux驱动很有帮助
  •     主要看这本书,然后参考一下《Linux设备驱动程序》看看,应该更好!
  •     很实用,学习驱动入门级法宝
  •     发货较快,书籍正版,权威书集,嵌入式必备。
  •     很有实践价值,特别是USB等基础驱动,比较注重和实践项目的结合
  •     Linux必读的好书
  •     看了电子版的后才决定买的,还是书比较方便,内容读过也很不错。
  •     本土好书
  •     看过这本书的工程师们,认为非常好
  •     先在京东买的老外写的《构建嵌入式Linux系统(第2版)》,真是好书,看了之后就跟没看一样。
    后来买了这本,还是中国人写的书比较符合我们的思维理念啊,而且我一向对人民邮电出版的计算机类书籍有特别的好感,推荐!
  •     不错,很好!内容丰富!
  •     Linux设备驱动开发详解,不错是正品
  •     Linux设备驱动开发适合于技术层面的阅读,挺好的书。
  •     看了几章,感觉实际操作性比较强,只是书中采用的开发板,比较难找,淘宝上找了几次都没有发现。 LDD6410。
  •     术还不错,内容比较实用。但是纸张有点差
  •     本书是以641为列的,好书 就是封面有点像二手书
  •     国人写的Linux设备驱动的书质量普遍不如老外写的,但这本书确实写的非常好,很实用,如果配合LDD3一起看就最好了
  •     很很地表扬一下我这边的快递送货员先生!!
  •     学校嵌入式的好书
  •     可以说说是国人自己写的最好的书了
  •     给老公买的,老公说讲解很详细,很好
  •     内容上很全面,比较的充实,实例也很具体
  •     好厚的一本书啊!书中含有大量的代码大量示例,连教你怎么读官方的数据手册都有!学驱动必备的。
  •     LDD入门参考不错的一本书,尚未读完,总体感觉不错。
  •     实用,非常不错!
  •     书的质量不错,正版图书。内容写得很详实,适合刚刚入门不久准备做驱动开发的同学
  •     内容挺丰富的,基本切合工程需求,推荐购买!
  •     内容还不错,希望更详细
  •     从第一页开始看,个人觉得讲的很好,浅显易懂,讲的很透彻。
  •     本书涉猎较广,但细节处不够深入。可做为阅读的前置阅读。虽然这样比较累人,但零基础读LDD肯定是不行的。
  •     价格真便宜,我买的时候5折
  •     书带的光盘有一个文件拷不出来!当当能否给我换光盘?
  •     比较人性化,事例详细,简单易懂。
  •     送过来的书是新的,品相非常好。但是具体的内容还没有看,网上有说缺页的,呵呵,但是我估计我的应该没有这种问题。当当还是很给力的。
  •     将来想搞嵌入式的可以看看,有很多驱动的例程
  •     书的质量很好!很喜欢。
  •     还没读,应该很不错,比想象的厚实
  •     书的质量不错,内容也挺好的。
  •     循序渐进,讲的很明白,开发必备
  •     质量不错,应该是正版书籍,对于linux驱动入门的学习很有帮助,给大家推荐一下
  •     边听作者的讲解,边看此书,受益颇多。如果想学习嵌入式驱动开发或者更深入的了解linux,此书绝对值得一看。
  •     就把它当做我Linux的开始吧,呵呵
  •     书不错,说的比较详细。
  •     好东西 ,值得拥有。
  •     对kernel的认识比较全面,driver开发描述详细,初学者必备书籍。
    如果能把kernel中的电源管理部分也写一个章节的话,会更加完美。
  •     这本书介绍得比较详细,适合入门和提升
  •     这种技术书籍不太适合从第一页一直看到最后一页,每次都是要用到哪里把相关的都过一遍。不知不觉,整本书基本也都看完了。宋宝华的书非常好,至少比LDD3好,介绍的内容是最适合嵌入式工程师的。
  •     书本内容层次清晰,可以循序渐进的体会驱动的编程,可以帮助理清思路,也是编写一些简单linux设备驱动不错的参考手册。。。对于看过的几本书,感觉宋老师的这本书还是蛮值得一看,尤其是基础弱刚开始学驱动的。。。
  •     Linux设备驱动开发详解经典中的经典
  •     现在本来ARM11的书不多 而且这本书写的还真心不错
  •     很不错的一本书啊 希望朋友能够喜欢!
  •     学习linux的一本不错的教材。
  •     书很厚,很重,质量不错。
  •     不错的一本书,讲得比较全面。
  •     本书是一本不错的工具书,推荐大家购买
  •     这书主要以6410为核心,讲解LINXX,难得的好书籍,强烈推荐,听我同事说,这书是研究生的教科书用书
  •     感觉还好啊,纸好像薄了点。
  •     华清远见,宋老师的书!绝对的经典,网上很多人推荐这本书
  •     作者没有真正的写过程序
  •     好书,内容很翔实,不错的啊
  •     书内容全,新,思路专业,详实,易懂,精炼,非常满意。
  •     am11开发板内容挺好还没看
  •     简单的翻译+杂交。过多的条目复杂而不清晰的思路。 这本书看完之后,你根本没有研究透任何一个设备模型,也提炼不出来任何一个写驱动所需要的流程。 过多的抄袭和重译,让我深深怀疑这本书的目的和意义。 如果你有更好的,请别选择它。 如果你没有更好的,那么,你不适合搞LINUX驱动。
  •     不错,很基础,很全面
  •     很好老公很满意
  •     感觉什么都讲了,又什么都没讲,可能自己对于驱动开发不甚了解,理解不了这本书的精髓。这本书很火跟华清有一定关系吧?
  •     看了这本书,还可以
  •     配合tiny6410的开发板使用的,还不错哦
  •     linux驱动开发必备的知识 已经内核相关技术
  •     不错~~~~~值得一看
  •     很 好的一本书,赶紧看了
  •     代码很丰富,实验绝对没问题。我用的是mini2440的板子,也能适用。
  •     组合上面几本书,看起来容易多了,结合很强。
  •     驱动开发必备
  •     不错的书,讲的很全,适合初学者
  •     驱动实例很赞
  •     此书内容详尽,结构安排合理,语言通俗易懂,非常适合linux初学者入门。
  •     i2c第一版的例子就已经在2.6的内核里找不到对应的代码了,比如****mand命令,看这一版已经被删掉了,如果手里是2.6的内核,还是买这一版吧。
  •     书到的很快,虽然没有细看,不过感觉很不错。
  •     大致翻了一下,对初学者应该不错,我买主要是结合Linux设备驱动程序学习的。
  •     比较基础的参考书
  •     linux 内容太浅显
  •     看了电子档后买的,书不错。书后面几页被折角了,后封面角快折掉了。不影响使用,快递人员又是个女的,态度还可以,大热天的就算了。
  •     写的比较详细,听说是华嵌培训用的书.
  •     学习linux设备驱动的好书
  •     这本书很多人都推荐购买,很厚一本,很好
  •     老一辈推荐的书籍 但是开头就写一堆源代码 让我措手不及 我觉得该书的结构编排还是有改进的地方的
  •     书肯定没问题……关键是送货速度给力啊……东东上我14下单16才到……当当上我15下单16就到,而且比东东还来的早!还有20优惠~哈哈……东东上那个211竟是忽悠我~说图书不支持211~我就感觉被忽悠……!东东上三本书166当当墙四本书188,,看来以后得**当来看看啦我不是托!我只是实话实说!
  •     这是本国内少有的一本写linux驱动编程比较好的书,由浅入深,适合初学者看,
  •     适合驱动开发的学习
  •     书很好,是我一直想学的东西
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024