图书前言

  

  Linux驱动程序开发一直是一个非常热门的话题,大多数基于Linux操作系统的嵌入式系统都需要编写驱动程序。随着嵌入式系统的广泛应用,出现了越来越多的硬件产品必须编写驱动程序,以便让设备在Linux操作系统上能正常工作。但是Linux驱动程序开发难度较高,高水平的开发人员也较少,这导致驱动程序开发跟不上硬件的发展速度。基于此原因,笔者编写了本书,希望能帮助那些学习Linux驱动开发的相关人员尤其是入门人员,让他们更容易理解相关知识,从而能系统、高效地掌握Linux驱动程序开发的核心技术。

  本书是获得大量读者好评的“Linux典藏大系”中的《Linux驱动开发入门与实战》(第3版)。本书在第2版的基础上进行了全面改版,升级了Linux系统的开发环境和内核版本,并对第2版中的一些疏漏进行了修订,也对书中的一些实例和代码重新进行了表述,从而更加易读。相信读者可以在第3版的引领下,轻松跨入Linux驱动开发的大门,最终成为一名驱动程序开发的高手。

关于“Linux典藏大系”

  “Linux典藏大系”是专门为Linux技术爱好者推出的系列图书,涵盖Linux技术的方方面面,可以满足不同层次和各个领域的读者学习Linux的需求。该系列图书自2010年1月陆续出版,上市后深受广大读者的好评。2014年1月,创作者对该系列图书进行了全面改版并增加了新品种。新版图书一上市就大受欢迎,各分册长期位居Linux图书销售排行榜前列。截至2023年10月底,该系列图书累计印数超过30万册。可以说,“Linux典藏大系”是图书市场上的明星品牌,该系列中的一些图书多次被评为清华大学出版社“年度畅销书”,还曾获得“51CTO读书频道”颁发的“最受读者喜爱的原创IT技术图书奖”,另有部分图书的中文繁体版在中国台湾出版发行。该系列图书的出版得到了国内Linux知名技术社区ChinaUnix(简称CU)的大力支持和帮助,读者与CU社区中的Linux技术爱好者进行了广泛的交流,取得了良好的学习效果。另外,该系列图书还被国内上百所高校和培训机构选为教材,得到了广大师生的一致好评。

关于第3版

  随着技术的发展,本书第2版与当前Linux的几个流行版本有所脱节,这给读者的学习带来了不便。应广大读者的要求,笔者结合Linux技术的新近发展对第2版图书进行全面的升级改版,推出第3版。相比第2版图书,第3版在内容上的变化主要体现在以下几个方面:

* Linux系统更新为Ubuntu 22.04;

* Linux内核版本由Linux 2.6.34更新为Linux 5.15;

* 对一些函数及其形式进行了修改;

* 去除了一些弃用的函数;

* 新增对多队列blk-mq技术的讲解;

* 新增思维导图(提供电子版高清大图)和课后习题,以方便读者学习。

本书特色

1.配多媒体教学视频,学习效果好

  本书重点内容提供大量的配套多媒体教学视频,可以帮助读者更加轻松、直观、高效地学习,取得更好的学习效果。

2.基于Linux 5.15内核讲解,内容新颖

  本书基于Linux 5.15内核进行讲解。该内核是目前较为流行的Linux内核,它内置了大多数常用设备的驱动程序,便于读者学习和移植。

3.内容全面、系统、深入

  本书全面、系统、深入地介绍Linux驱动开发的基础知识、核心技术和多个驱动程序开发案例,力求让读者通过一本书即可掌握Linux驱动开发的相关知识。

4.讲解由浅入深、循序渐进,适合各个层次的读者阅读

  本书从Linux驱动程序开发的基础知识开始讲解,逐步深入Linux驱动开发的高级技术,内容安排从易到难,讲解由浅入深、循序渐进,适合各个层次的读者阅读。

5.贯穿多个典型实例和技巧,迅速提升开发水平

  本书在讲解知识点时穿插多个典型的驱动程序开发实例,并给出大量的开发技巧,以便让读者更好地理解核心概念和知识点,并体验实际开发,从而迅速提高开发水平。

6.详解典型工程应用案例,有很强的实用性

  本书详细介绍多个驱动开发典型应用案例。通过这些案例,可以提高读者的设备驱动开发水平,从而具备独立开发驱动程序的能力。

7.提供习题、源代码、思维导图和教学PPT

  本书特意在每章后提供多道习题,帮助读者巩固和自测该章的重要知识点,并提供源代码、思维导图和教学PPT等配套资源,以方便读者学习和老师教学。

本书内容

第1篇  基础知识

  本篇涵盖第1~6章,主要内容包括Linux驱动开发概述、嵌入式处理器和开发板、构建嵌入式驱动程序开发环境、构建嵌入式Linux操作系统、构建第一个驱动程序、简单的字符设备驱动程序。通过学习本篇内容,读者可以掌握Linux驱动开发的基本概念、环境和注意事项等内容。

第2篇  核心技术

  本篇涵盖第7~10章,主要内容包括设备驱动的并发控制、设备驱动的阻塞和同步机制、中断与时钟机制、内外存访问等。通过学习本篇内容,读者可以掌握Linux设备驱动开发的基础知识和核心技术。

第3篇  应用实战

  本篇涵盖第11~19章,主要内容包括设备驱动模型、RTC实时时钟驱动程序、看门狗驱动程序、IIC设备驱动程序、LCD设备驱动程序、触摸屏设备驱动程序、输入子系统设计、块设备驱动程序、USB设备驱动程序等。通过学习本篇内容,读者可以掌握编写常见设备驱动程序的方法。

读者对象

* Linux驱动开发入门人员;

* Linux驱动程序专业开发人员;

* Linux内核研究者;

* 嵌入式开发工程师;

* 大中专院校的学生;

* 技术培训机构的学员。

配书资源获取方式

  本书涉及的配套资源如下:

* 配套教学视频;

* 程序源代码文件;

* 高清思维导图;

* 习题参考答案;

* 配套教学PPT;

* 书中涉及的开发工具。

  上述配套资源有以下3种获取方式:

* 关注微信公众号“方大卓越”,然后回复数字“5”,即可自动获取下载链接;

* 在清华大学出版社网站(www.tup.com.cn)上搜索到本书,然后在本书页面上找到“资源下载”栏目,单击“网络资源”按钮进行下载;

* 还可在本书技术论坛(www.wanjuanchina.net)上的Linux模块进行下载。

技术支持

  虽然笔者对书中所述内容都尽量予以核实,并多次进行文字校对,但因时间所限,可能还存在疏漏和不足之处,恳请读者批评与指正。

  读者在阅读本书时若有疑问,可以通过以下方式获得帮助:

* 加入本书QQ交流群(群号:302742131)进行提问;

* 在本书技术论坛(网址见上文)上留言,会有专人负责答疑;

* 发送电子邮件到book@ wanjuanchina.net或bookservice2008@163.com获得帮助。

  

  编  者

  2024年2月

  

Linux驱动开发入门与实战(第3版)

  

前言

  

·IV·

  

  

·III·