Linux设备驱动开发 (第2版)

本网站不提供下载链接,喜欢看书的朋友请关注公众号:【lennylee的碎碎念】(lennyleede),首页回复:授人以渔,自动获取搜索资源的方法。

内容简介:

本书讲解了Linux设备驱动开发的基础知识以及所用到的开发环境。全书分为17章,内容涵盖了各种Linux子系统、内存管理、RTC、IIO和IRQ管理等,还讲解了DMA和部分设备驱动程序的使用方法。在学完本书之后,读者将掌握Linux设备驱动开发过程中涉及的各种概念,并可以从零开始为嵌入式设备编写驱动程序。 阅读本书需要具备基本的C语言编程能力,且熟悉Linux基本命令。

作者简介:

前言
资源与支持
第1篇 Linux内核开发基础
第1章 内核开发简介
1.1 设置开发环境
1.2 配置和构建Linux内核
第2章 Linux内核模块的基本概念
2.1 模块概念的介绍
2.2 构建Linux内核模块
2.3 处理模块参数
2.4 处理符号导出和模块依赖
2.5 学习Linux内核编程技巧
2.6 总结
第3章 处理内核的核心辅助函数
3.1 Linux内核加锁机制和共享资源
3.2 处理内核等待、睡眠和延迟机制
3.3 深入理解Linux内核时间管理
3.4 实现工作延迟机制
3.5 内核中断处理
3.6 总结
第4章 编写字符设备驱动程序
4.1 主设备号和次设备号的概念
4.2 字符设备数据结构介绍
4.3 创建设备节点
4.4 实现文件操作
4.5 总结
第2篇 Linux内核平台抽象和设备驱动程序
第5章 理解和利用设备树
5.1 设备树机制的基本概念
5.2 如何表示和寻址设备
5.3 处理资源
5.4 总结
第6章 设备、驱动程序和平台抽象简介
6.1 Linux内核平台抽象和数据结构
6.2 设备与驱动程序匹配机制详解
6.3 总结
第7章 平台设备和驱动程序的概念
7.1 Linux内核中的平台核心抽象
7.2 处理平台设备
7.3 平台驱动程序抽象和架构
7.4 从零开始编写平台驱动程序
7.5 总结
第8章 编写I2C设备驱动程序
8.1 Linux内核中的I2C框架抽象
8.2 I2C设备驱动程序抽象和架构
8.3 如何避免编写I2C设备驱动程序
8.4 总结
第9章 编写SPI设备驱动程序
9.1 Linux内核中的SPI框架抽象
9.2 SPI设备驱动程序抽象和架构
9.3 如何避免编写SPI设备驱动程序
9.4 总结
第3篇 充分发挥硬件的潜力
第10章 深入理解Linux内核内存分配
10.1 Linux内核内存相关术语简介
10.2 揭开地址转换和MMU的神秘面纱
10.3 内存分配机制及其API
10.4 使用I/O内存与硬件通信
10.5 内存(重)映射
10.6 总结
第11章 实现DMA支持
11.1 设置DMA映射
11.2 完成(completion)的概念
11.3 DMA引擎API
11.4 综合实例——单缓冲区的DMA映射
11.5 关于循环DMA的说明
11.6 了解DMA和设备树绑定
11.7 总结
第12章 内存访问抽象化
12.1 初识Regmap
12.2 Regmap初始化
12.3 使用Regmap寄存器访问函数
12.4 将所有内容整合在一起——基于Regmap的SPI设备驱动程序示例
12.5 从用户空间利用Regmap
12.6 总结
第13章 揭秘内核IRQ框架
13.1 中断的简要介绍
13.2 理解中断控制器和中断多路复用
13.3 深入研究高级外设IRQ管理
13.4 揭秘per-CPU中断
13.5 总结
第14章 LDM简介
14.1 LDM数据结构简介
14.2 深入理解LDM
14.3 sysfs中的设备模型概述
14.4 总结
第4篇 嵌入式领域内的多种内核子系统
第15章 深入了解IIO框架
15.1 IIO数据结构简介
15.2 集成IIO触发缓冲区支持
15.3 访问IIO数据
15.4 内核中的IIO消费者接口
15.5 编写用户空间的IIO应用程序
15.6 遍历用户空间IIO工具
15.7 总结
第16章 充分利用引脚控制器和GPIO子系统
16.1 硬件术语介绍
16.2 引脚控制子系统介绍
16.3 利用GPIO控制器接口
16.4 充分利用GPIO子系统
16.5 学习如何避免编写GPIO客户端驱动程序
16.6 总结
第17章 利用Linux内核输入子系统
17.1 Linux内核输入子系统简介
17.2 分配和注册输入设备
17.3 使用轮询输入设备
17.4 生成和报告输入事件
17.5 处理来自用户空间的输入设备
17.6 总结
· · · · · · (收起)

原文摘录: