《Linux驱动程序开发实例(第2版)》是一本非常值得推荐的书籍。本书基于较新的Linux4.5内核,提供了丰富的实例代码和详细的注释。这些实例代码涵盖了各种驱动程序开发的场景,包括字符设备驱动、块设备驱动和网络设备驱动等。通过这些实例的讲解,读者可以深入了解Linux驱动程序的开发细节和流程。本书的讲解十分细致,对于嵌入式开发人员来说是非常有价值的学习资料。我强烈建议嵌入式开发人员将这本书作为学习Linux驱动程序开发的主要参考书籍。这本书的实例丰富、讲解细致,值得一读。
Linux驱动程序开发实例 电子书封面
内容介绍
Linux设备驱动程序是高级应用程序与硬件设备之间的桥梁。驱动程序开发是软硬件相互结合的技术。Linux驱动程序开发实例(第2版)是一本专门介绍Linux设备驱动程序开发的书籍,涵盖了Linux驱动程序基础、驱动模型、内存管理、内核同步机制、I2C驱动程序、LCD驱动程序、网络驱动程序、USB驱动程序、输入子系统驱动程序、块设备驱动程序、音频设备驱动等内容。本书以实例为主线,是为Linux设备驱动程序开发人员量身打造的学习精品书籍和实战指南。
本书基于Linux4.5内核,提供了丰富的实例代码和详细的注释,并附赠完整源代码供读者下载。
本书主要面向各种层次的嵌入式Linux软硬件开发工程师,也可以作为各类嵌入式系统培训机构的培训实验教材和高校计算机课程教辅书籍。
目录
- 第1章 Linux 设备驱动程序入门 1
- 第2章 Linux 设备驱动模型 44
- 第3章 Linux 内核同步机制 67
- 第4章 内存管理与链表 86
- 第5章 任务与调度 98
- 第6章 简单硬件设备驱动程序 115
- 第7章 I2C 设备驱动程序 157
- 第8章 TTY 与串口驱动程序 185
- 第9章 Framebuffer 驱动程序 203
- 第10章 输入子系统 231
- 第11章块设备驱动与文件系统
- 第12章NANDFlash驱动
- 第13章网络设备驱动程序
- 第14章USB驱动程序
- 第15章音频设备驱动程序
有了设备类型的划分,那么应用程序应该怎样访问具体的硬件设备呢? 或者说已经确定他是一个男人了,那么怎么从万千世界中区分他与他的不同呢? 答案是:姓名,在linux驱动中也就是设备文件名。 那么重名怎么办? 答案是:身份证号,在linux驱动中也就是设备号(主、从)。
应用程序、库、内核、驱动程序的关系 1)应用程序调用一系列函数库,通过对文件的操作完成一系列功能: 应用程序以文件形式访问各种硬件设备(linux特有的抽象方式,把所有的硬件访问抽象为对文件的读写、设置) 函数库: 部分函数无需内核的支持,由库函数内部通过代码实现,直接完成功能 部分函数涉及到硬件操作或内核的支持,由内核完成对应功能,我们称其为系统调用 2)内核处理系统调用,根据设备文件类型、主设备号、从设备号(后面会讲解),调用设备驱动程序; 3)设备驱动直接与硬件通信;