Linux驱动程序开发实例

出版时间:2011-4  出版社:机械工业出版社  作者:冯国进  页数:365  字数:580000  
Tag标签:无  

内容概要

  设备驱动程序是高级应用程序与硬件设备之间的桥梁。驱动程序开发是软硬件结合的技术。本书专门介绍Linux设备驅动程序开发,涵盖了Linux驱动程序基础、内核移植、I2C驱动程序、LCD驱动程序、网络驱动程序、USB驱动程序、输入子系统驱动程序、块设备驱动程序等内容。本书以实例为主线,是为Linux设备驱动程序开发人员量身打造的精品学习图书和实战指南。本书提供了丰富的实例代码和详细的注释,并附赠完整代码光盘一张。
  本书主要面向各层次的嵌入式Linux开发工程师,也可以作为各类嵌入式系统培训机构的培训教材和高校计算机课程的教辅书籍。

书籍目录

出版说明
前言
第1章 Linux设备驱动程序模型
1.1 设备驱动程序基础
1.1.1 驱动程序的概念
1.1.2 驱动程序的加载方式
1.1.3 编写可加载模块
1.1.4 带参数的可加载模块
1.1.5 设备驱动程序的分类
1.2 字符设备驱动程序原理
1.2.1 file 结构
operations
1.2.2 使用register
注册字符_chrdev设备
1.2.3 使用cdev add注册字符设备
1.2.4 字符设备的读写
1.2.5 ioctl接U
1.2.6 seek接U
1.2.7 poll接[』
1.2.8 异步通知
1.3 proc文件系统
1.3.1 proc文件系统概述
1.3.2 seq file机制
1.3.3 使用proc文件系统
1.4 块设备驱动程序
1.4.1 Linux块设备驱动程序原理
1.4.2 简单的块设备驱动程序实例
1.5 网络设备驱动程序
1.5.1 网络设备的特殊性
1.5.2 sk buff结构
1.5.3 Linux网络设备驱动程序架构
1.5.4 虚拟网络设备驱动程序实例
1.6 Linux 2.6设备管理机制
1.6.1 kobject和kset
1.6.2 sysfs文件系统
1.6.3 设备模型层次
1.6.4 platform的概念
第2章 Linux内核同步机制
 1.1 锁机制
2.1.1 自旋锁
2.1.2 读写锁
2.1.3 RCU
2.2 互斥
2.2.1 原子操作
2.2.2信号量
2.2.3 读写信号量
2.3 等待队列
2.3.1 等待队列原理
2.3.2 阻塞式I/O实例
2.3.3 完成事件
2.4 关闭中断
第3章 内存管理与链表
3.1 物理地址和虚拟地址
3.2 内存分配与释放
3.3 IO端口到虚拟地址的映射
3.3.1 静态映射
3.3.2 动态映射
3.4 内核空间到用户空间酌映射
3.4.1 内核中间到用户空间的地址映射原理
3.4.2 mmap地址映射实例
3.5 内核链表
3.5.1 Linux内核中的链表
3.5.2 内核链表实例
第4章 延迟处理
4.1 内核线程
4.2 软中断机制
4.2.1 软中断原理
4.2.2 tasklet
 ……
第5章 简单设备驱动程序
第6章 深入Linux内核
第7章 I2C总线驱动程序
第8章 TTY与串口驱动程序
第9章 网络设备驱动程序
第10章 frambuffer驱动程序
第11章 输入子系统驱动程序
第12章 USB驱动程序
第13章 音频设备驱动程序
第14章 video4linux2视频驱动程序
第15章 CD卡驱动程序
参考文献

章节摘录

版权页:插图:在Linux操作系统中,设备驱动程序对各种设备提供了一致的访问接口,用户程序可以像对普通文件一样对设备文件进行打开和读写操作。Linux包含如下3类设备驱动程序:(1)字符设备Linux下的字符设备是指发送和接收数据以字符的形式进行的设备。字符设备接口支持面向字符的I/O操作,不经过系统的快速缓存,所以它们负责管理自己的缓冲区结构。字符设备接口只支持顺序存取的有限长度的I/O操作,典型的字符设备包括串行接口、LED灯、键盘等设备。(2)块设备块设备是以块的方式进行I/0操作的设备。块设备利用一块系统内存作缓冲区,如果用户进程对设备的请求能满足用户的要求,就返回请求的数据,否则调用请求函数来进行实际的I/O操作。块设备主要是针对磁盘等慢速设备设计的,以免耗费过多的CPU时间来等待响应。块设备支持随机存取功能,几乎可以支持任意位置和任意长度的I/O请求。典型的块设备包括硬盘、CF卡、SD卡等存储设备。(3)网络设备Linux操作系统中的网络设备是一类特殊的设备。Linux的网络子系统主要基于BSDUNIX的socket机制,在网络子系统和驱动程序之间定义有专门的数据结构(skbuff)进行数据的传递。Linux操作系统支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多种网络协议的支持。Linux系统为每个设备分配了一个主设备号与次设备号,主设备号唯一地标识了设备类型,次设备号标识具体设备的实例。由同一个设备驱动程序控制的所有设备具有相同的主设备号,从设备号则被用来区分具有相同主设备号的不同设备。

图书封面

图书标签Tags

评论、评分、阅读与下载


    Linux驱动程序开发实例 PDF格式下载


用户评论 (总计6条)

 
 

  •   还行,没什么缺点,这类书都要很长时间才能读完,只能先评价了
  •   帮人买的,不错不错
  •   这本书的驱动都是写成内核模块,需要通过内核模块进行验证,并且代码没注释,基本上不适合我这种初学者,本以为可以参考一下裸机,结果,,,,哎。。大家买的时候,多考虑一下吧。。。综合评价。。下等偏上吧。。
  •   当初手一抖点错了,本来要买的不是这本,可以换么?
  •   书昨天到手。1. 子系统将得很多,但是一点都不详细,一般是8~9页就分析完源代码了;2. 相当于直接把S3c6410的驱动源码直接copy下来,比较郁闷的是源代码没多少注释,只是把最重要的函数调用加为粗体(看过一点点子系统资料,都知道要调这些函数);3. 源代码都不加行号,----很基本的素质吧;4. 光盘:只有内核源码(哪个开发板都有带驱动的内核源码啊)和各章应用测试程序。5. 结论:作者写书真的不是很用心!反对购买,翻翻内容就能看出作者的写书态度。和linux设备驱动程序(第三版)、《linux设备驱动开发详解》(宋宝华)、《精通linux 设备驱动程序开发》(sreekrishnan venkateswaran)几本著作相比,找不出几个优点。
  •   本书比想象的要好,挺满意的!
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7