《精通Linux设备驱动程序开发》图书介绍

图书名称: 《精通Linux设备驱动程序开发》

图书作者: 华清远见

出版单位: 人民邮电出版社

丛书名称: 图灵程序设计丛书 操作系统

全书章节: 共23章

出版日期: 2010年6月

分享到:

  • 编辑推荐

    · 多年嵌入式人才培养及项目研发经验总结· 数百家企业嵌入式研发岗位人才需求汇总

    · 数十所嵌入式专业大学院校教学现状调研· 侧重实践及案例分析并辅以代码加以讲解

  • 图书简介

            本书是linux设备驱动程序开发领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深入探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如pcmcia、i2c和usb等外部总线以及视频、音频、无线连网和闪存等驱动程序的开发,并讲解了相关的内核源码文件,给出了完整的开发实例。
            本书适合中高级linux开发人员阅读。

  • 图书目录

    第1章 引言
    1.1 演进
    1.2 gnu copyleft
    1.3 kernel.org
    1.4 邮件列表和论坛
    1.5 linux发行版
    1.6 查看源代码
    1.7 编译内核
    1.8 可加载的模块
    1.9 整装待发
    第2章 内核
    2.1 启动过程
    2.1.1 bios-provided physical ram map
    2.1.2 758mb lowmem available
    2.1.3 kernel command line:root=/dev/hda1
    2.1.4 calibrating delay...1197.46.bogomips (lpj=2394935)
    2.1.5 checking hlt instruction
    2.1.6 net: registered protocol family 2
    2.1.7 freeing initrd memory: 387k freed
    2.1.8 io scheduler anticipatory registered (default)
    2.1.9 setting up standard pci resources
    2.1.10 ext3-fs: mounted filesystem
    2.1.11 init: version 2.85 booting
    2.2 内核模式和用户模式
    2.3 进程上下文和中断上下文
    2.4 内核定时器
    2.4.1 hz和jiffies
    2.4.2 长延时
    2.4.3 短延时
    2.4.4 pentium时间戳计数器
    2.4.5 实时钟
    2.5 内核中的并发
    2.5.1 自旋锁和互斥体
    2.5.2 原子操作
    2.5.3 读—写锁
    2.5.4 调试
    2.6 proc文件系统
    2.7 内存分配
    2.8 查看源代码
    第3章 内核组件
    3.1 内核线程
    3.1.1 创建内核线程
    3.1.2 进程状态和等待队列
    3.1.3 用户模式辅助程序
    3.2 辅助接口
    3.2.1 链表
    3.2.2 散列链表
    3.2.3 工作队列
    3.2.4 通知链
    3.2.5 完成接口
    3.2.6 kthread辅助接口
    3.2.7 错误处理助手
    3.3 查看源代码
    第4章 基本概念
    4.1 设备和驱动程序介绍
    4.2 中断处理
    4.2.1 中断上下文
    4.2.2 分配irq号
    4.2.3 设备实例:导航杆
    4.2.4 softirq和tasklet
    4.3 linux设备模型
    4.3.1 udev
    4.3.2 sysfs、kobject和设备类
    4.3.3 热插拔和冷插拔
    4.3.4 微码下载
    4.3.5 模块自动加载
    4.4 内存屏障
    4.5 电源管理
    4.6 查看源代码
    第5章 字符设备驱动程序
    5.1 字符设备驱动程序基础
    5.2 设备实例:系统cmos
    5.2.1 驱动程序初始化
    5.2.2 打开与释放
    5.2.3 数据交换
    5.2.4 查找
    5.2.5 控制
    5.3 检测数据可用性
    5.3.1 轮询
    5.3.2 fasync
    5.4 和并行端口交互
    5.5 rtc子系统
    5.6 伪字符驱动程序
    5.7 混杂驱动程序
    5.8 字符设备驱动程序注意事项
    5.9 查看源代码
    第6章 串行设备驱动程序
    6.1 层次架构
    6.2 uart驱动程序
    6.2.1 设备实例:手机
    6.2.2 rs-485
    6.3 tty驱动程序
    6.4 线路规程
    6.5 查看源代码
    第7章 输入设备驱动程序
    7.1 输入事件驱动程序
    7.2 输入设备驱动程序
    7.2.1 serio
    7.2.2 键盘
    7.2.3 鼠标
    7.2.4 触摸控制器
    7.2.5 加速度传感器
    7.2.6 输出事件
    7.3 调试
    7.4 查看源代码
    第8章 i2c协议
    8.1 i2c/smbus是什么
    8.2 i2c核心
    8.3 总线事务
    8.4 设备实例:eeprom
    8.4.1 初始化
    8.4.2 探测设备
    8.4.3 检查适配器的功能
    8.4.4 访问设备
    8.4.5 其他函数
    8.5 设备实例:实时时钟
    8.6 i2c-dev
    8.7 使用lm-sensors监控硬件
    8.8 spi总线
    8.9 1-wire总线
    8.10 调试
    8.11 查看源代码
    第9章 pcmcia和cf
    9.1 pcmcia/cf是什么
    9.2 linux-pcmcia子系统
    9.3 主机控制器驱动程序
    9.4 pcmcia核心
    9.5 驱动程序服务
    9.6 客户驱动程序
    9.6.1 数据结构
    9.6.2 设备实例:pcmcia卡
    9.7 将零件组装在一起
    9.8 pcmcia存储
    9.9 串行pcmcia
    9.10 调试
    9.11 查看源代码
    第10章 pci
    10.1 pci系列
    10.2 寻址和识别
    10.3 访问pci
    10.3.1 配置区
    10.3.2 i/o和内存
    10.4 dma
    10.5 设备实例:以太网—调制解调器卡
    10.5.1 初始化和探测
    10.5.2 数据传输
    10.6 调试
    10.7 查看源代码
    第11章 usb
    11.1 usb体系架构
    11.1.1 总线速度
    11.1.2 主机控制器
    11.1.3 传输模式
    11.1.4 寻址
    11.2 linux-usb子系统
    11.3 驱动程序的数据结构
    11.3.1 usb_device结构体
    11.3.2 urb
    11.3.3 管道
    11.3.4 描述符结构
    11.4 枚举
    11.5 设备实例:遥测卡
    11.5.1 初始化和探测过程
    11.5.2 卡寄存器的访问
    11.5.3 数据传输
    11.6 类驱动程序
    11.6.1 大容量存储设备
    11.6.2 usb-串行端口转换器
    11.6.3 人机接口设备
    11.6.4 蓝牙
    11.7 gadget驱动程序
    11.8 调试
    11.9 查看源代码
    第12章 视频驱动程序
    12.1 显示架构
    12.2 linux视频子系统
    12.3 显示参数
    12.4 帧缓冲api
    12.5 帧缓冲驱动程序
    12.6 控制台驱动程序
    12.6.1 设备实例:手机
    12.6.2 启动logo
    12.7 调试
    12.8 查看源代码
    第13章 音频驱动程序
    13.1 音频架构
    13.2 linux声音子系统
    13.3 设备实例:mp3播放器
    13.3.1 驱动程序函数和结构体
    13.3.2 alsa编程
    13.4 调试
    13.5 查看源代码
    第14章 块设备驱动程序
    14.1 存储技术
    14.2 linux块i/o层
    14.3 i/o调度器
    14.4 块驱动程序数据结构和方法
    14.5 设备实例:简单存储控制器
    14.5.1 初始化
    14.5.2 块设备操作
    14.5.3 磁盘访问
    14.6 高级主题
    14.7 调试
    14.8 查看源代码
    第15章 网络接口卡
    15.1 驱动程序数据结构
    15.1.1 套接字缓冲区
    15.1.2 网络设备接口
    15.1.3 激活
    15.1.4 数据传输
    15.1.5 看门狗
    15.1.6 统计
    15.1.7 配置
    15.1.8 总线相关内容
    15.2 与协议层会话
    15.2.1 接收路径
    15.2.2 发送路径
    15.2.3 流量控制
    15.3 缓冲区管理和并发控制
    15.4 设备实例:以太网nic
    15.5 isa网络驱动程序
    15.6 atm
    15.7 网络吞吐量
    15.7.1 驱动程序性能
    15.7.2 协议性能
    15.8 查看源代码
    第16章 linux无线设备驱动
    16.1 蓝牙
    16.1.1 bluez
    16.1.2 设备实例:cf卡
    16.1.3 设备实例:usb适配器
    16.1.4 rfcomm
    16.1.5 网络
    16.1.6 hid
    16.1.7 音频
    16.1.8 调试
    16.1.9 关于源代码
    16.2 红外
    16.2.1 linux-irda
    16.2.2 设备实例:超级i/o芯片
    16.2.3 设备实例:ir dongle
    16.2.4 ircomm
    16.2.5 联网
    16.2.6 irda套接字
    16.2.7 lirc
    16.2.8 查看源代码
    16.3 wifi
    16.3.1 配置
    16.3.2 设备驱动程序
    16.3.3 查看源代码
    16.4 蜂窝网络
    16.4.1 gprs
    16.4.2 cdma
    16.5 当前趋势
    第17章 存储技术设备
    17.1 什么是闪存
    17.2 linux-mtd子系统
    17.3 映射驱动程序
    17.4 nor芯片驱动程序
    17.5 nand芯片驱动程序
    17.6 用户模块
    17.6.1 块设备模拟
    17.6.2 字符设备模拟
    17.6.3 jffs2
    17.6.4 yaffs2
    17.7 mtd工具
    17.8 配置mtd
    17.9 xip
    17.10 fwh
    17.11 调试
    17.12 查看源代码
    第18章 嵌入式linux
    18.1 挑战
    18.2 元器件选择
    18.3 工具链
    18.4 bootloader
    18.5 内存布局
    18.6 内核移植
    18.7 嵌入式驱动程序
    18.7.1 闪存
    18.7.2 uart
    18.7.3 按钮和滚轮
    18.7.4 pcmcia/cf
    18.7.5 sd/mmc
    18.7.6 usb
    18.7.7 rtc
    18.7.8 音频
    18.7.9 触摸屏
    18.7.10 视频
    18.7.11 cpld/fpga
    18.7.12 连接性
    18.7.13 专用领域电子器件
    18.7.14 更多驱动程序
    18.8 根文件系统
    18.8.1 nfs挂载的根文件系统
    18.8.2 紧凑型中间件
    18.9 测试基础设施
    18.10 调试
    18.10.1 电路板返工
    18.10.2 调试器
    第19章 用户空间的驱动程序
    19.1 进程调度和响应时间
    19.1.1 原先的调度器
    19.1.2 o(1)调度器
    19.1.3 cfs
    19.1.4 响应时间
    19.2 访问i/o区域
    19.3 访问内存区域
    19.4 用户模式scsi
    19.5 用户模式usb
    19.6 用户模式i2c
    19.7 uio
    19.8 查看源代码
    第20章 其他设备和驱动程序
    20.1 ecc报告
    20.2 频率调整
    20.3 嵌入式控制器
    20.4 acpi
    20.5 isa与mca
    20.6 火线
    20.7 智能输入/输出
    20.8 业余无线电
    20.9 voip
    20.10 高速互联
    20.10.1 infiniband
    20.10.2 rapidio
    20.10.3 光纤通道
    20.10.4 iscsi
    第21章 调试设备驱动程序
    21.1 kdb
    21.1.1 进入调试器
    21.1.2 kdb
    21.1.3 kgdb
    21.1.4 gdb
    21.1.5 jtag调试器
    21.1.6 下载
    21.2 内核探测器
    21.2.1 kprobe
    21.2.2 jprobe
    21.2.3 返回探针
    21.2.4 局限性
    21.2.5 查看源代码
    21.3 kexec与kdump
    21.3.1 kexec
    21.3.2 kdump与kexec协同工作
    21.3.3 kdump
    21.3.4 查看源代码
    21.4 性能剖析
    21.4.1 利用oprofile剖析内核性能
    21.4.2 利用gprof剖析应用程序性能
    21.5 跟踪
    21.6 ltp
    21.7 uml
    21.8 诊断工具
    21.9 内核修改配置选项
    21.10 测试设备
    第22章 维护与发布
    22.1 代码风格
    22.2 修改标记
    22.3 版本控制
    22.4 一致性检查
    22.5 构建脚本
    22.6 可移植代码
    第23章 结束语
    23.1 流程一览表
    23.2 下一步该做什么
    附录a linux汇编
    附录b linux与bios
    附录c seq文件

  • 上课时间地点

    本课程每期班限额15名,报满即停止报名,请提前在线报名(点击这里)或电话预约。

    ◆ 时间:根据报名人数确定,需提前预约。

    ◆ 地点:北京、上海、深圳、成都、南京、武汉、西安、广州、沈阳
    华清远见保留开课时间调整的权利,欢迎来电洽询 400-611-6270

  • 课程推荐

    ·嵌入式(Linux+Android)长期就业培训班(4个月)
    ·嵌入式Linux应用开发培训班
    ·嵌入式Linux系统开发培训班
    ·嵌入式Linux驱动开发培训班
    ·全国高校3G嵌入式师资培训班