本书全面而详细地讲解了Linux设备驱动开发中涉及的理论以及多种设备驱动的框架。
本书将字符设备、块设备、TTY设备、I2C设备、LCD设备、Flash设备、网络设备、音频设备、USB设备、PCI设备等复杂设备驱动的框架作为核心内容,讲解了大量Linux驱动开发的大量实例。并且书中还对Linux设备驱动开发环境建设、驱动的调试、驱动的移植等进行了讲解。在讲解驱动的同时,本书还给出了用户空间的验证方法,以便读者理清Linux设备驱动与上层应用的关系。
本书是一本介绍Linux设备驱动开发理论、框架与实例的书,本书以Linux 2.6版本内核为蓝本,详细介绍自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论;字符设备、块设备、TTY设备、I2C设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动的架构和框架中各个复杂数据架构和函数的关系,并讲解了大量Linux驱动开发的大量实例,使读者能够独立开发各类Linux设备驱动。
本书内容全面,实例丰富,操作性强,语言通俗易懂,适合广大Linux开发人员、嵌入式工程师参考使用。
第1篇 Linux设备驱动入门
第1章 设备驱动概述
1.1 设备驱动的作用
1.2 无操作系统时的设备驱动
1.3 有操作系统时的设备驱动
1.4 Linux设备驱动
1.4.1 设备的分类及特点
1.4.2 Linux设备驱动与整个软硬件系统的关系
1.4.3 编写Linux设备驱动的技术基础
1.4.4 Linux设备驱动的学习方法
1.5 设备驱动的Hello World:LED驱动
1.5.1 无操作系统时的LED驱动
1.5.2 Linux系统下的LED驱动
第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设备驱动的移植
参考文献