《Linux设备驱动开发详解(第2版)》是一本介绍Linux设备驱动开发理论、框架与实例的书苏呢越五钢关块均城,《Linux设备驱动开发详解(第2版)》基于LDD6410开发板,才满岁席入为味以Linux2.6 敌仍么就德版本内核为蓝本,详细介绍自旋锁、信号量、完来自成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论;字符设备、块设备、TTY设备、I2C设备、LCD设备、音频设备、USB设备、网络设备、PC安名答I设备等Linux设备驱动的架构和框架中各个复杂360百科数据架构和函数的雨所批去伤世苦关系,并讲解了Linux驱动开发的大量实例,使读者结批矛口犯画坏步能够独立开发各类Linux设备驱动。《Linux设备驱动开发详解(第2版)》内容全面,实例丰富,操作性强,语言通俗易懂,适合广大Linux开发人员、嵌入式工程师参考使用。
- 中文名称 Linux设备驱动
- 类别 驱动
- 作用 中断处理、DMA通信
- 分类 字符设备。块设备。网络设备。
定义
设备驱动最通俗的解释就是"驱使硬件设备行动"。驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存的映射等,最终让通信设备能收发数据,让显示设备能显示文字和画面,让存储设备能记录文件和数据。
分类
(1)字符设备。
(2) 块设备。
(3) 网来自络设备。
字符设备
指那些必须孔县以串行顺序依次进行访问的设备,如触摸屏、磁带驱动器、鼠标等。块设备可以用任意顺序进行访问,以块为单位进行操作来自,如硬盘、软驱等。字符设备不经检味过系统的快速缓冲,而块设备经过系统的快速缓冲。但是,字符设备和块360百科设备并没有明显的界限,如对于Flash设备,符合块设备的特点,但是我们仍然可以把它作为一个字符设备来访问。
重点和难点
(1)编写Linux设备驱动要求工程师有非常好的硬件基础,懂得SRAM、Flash、SDRAM、磁盘的读写方式,UART、I2C、USB等设备的接口以及轮询、中断、DMA的原理,PCI总线的工作方式以及CPU的内存管理单元(MMU)战已占那却注等。
(2) 编写Lin居字ux设备驱动要求工程师有非常好的C语言基础,能灵活地运用C语言的结构体、指针他还七风称胞、函数指针及内存动态申请和释放等。
合有她素(3)编写Linux设良活备驱动要求工程师有一定的Linux内核基础,虽然并不要求工程师对内核各个部分有深入的研究,但至少要明白驱动与内核的接口。尤其是对于练鸡并力得防顺可细块设备、网络设备、Flash设备、串口设备等复杂设备,内核定义的驱动体系架构本身就非常复杂。
(助低输4) 编写Linux设备驱动要研倒顶存口这兵依收若求工程师有非常好的多任务并互吗树由二支发控制和同步的基础,因为在驱动中会大量使用自旋色余言统缩锁、互斥、信号量、款运么态积期继等待队列等并发与同步机制。
设备驱动图书
图书信息
《Linux设备驱动开发详解》
作 者:宋宝华
出版社: 人民邮电出版社
出版时间: 2010年11月1日
ISBN: 9787115236579
开本: 16开
状动延河效 定价: 88.00元
图书目录
苗副夜财滑占殖 第1篇 Linux设备驱动入门
第1章 Linux设备驱动概述及开发环境构建 2
第2章 驱动设计的硬件基础 21
第3章 Linux内核及内核编程 5菜仅服虽变级3
第2篇 Linux设备驱动核心理论
第4章 Linux内核模块 82
第5章 Linux文件系统与设备文件系统 9活迫坚层边说棉2
第6章 字符设备驱动 118
第7章 Linux设备驱动中的并发控制 139
第8章 Linux设备云火不酒剧标三个告驱动中的阻塞与非阻塞I/O 161
第9章 Linux设备驱动中的异步通知与异步I/O 176
第10章 中断与时钟 193
第11章 内存与I/O访问 213
第12章 工程中的Linux设备驱动 242
第3篇 Linux设备驱动实例
第13章 Linux块设备驱动 272
第14章 Linux终端设备驱动 304
第15章 Linux的I2C核心、总线与设备驱动 333
第16章 Linux网络设备驱动 363
第17章 Linux音频设备驱动 388
第18章 LCD设备驱动 440
第19章 Flash设备驱动 479
第20章 USB主机与设备驱动 507
第21章 PCI设备驱动 547
第4篇 Linux设备驱动调试、移植
第22章 Linux设备驱动的调试 564
第23章 Linux设备驱动的移植 602
参考文献 631