图书介绍
深入理解Linux驱动程序设计pdf电子书版本下载
- 吴国伟,姚琳,毕成龙编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302401636
- 出版时间:2015
- 标注页数:192页
- 文件大小:59MB
- 文件页数:203页
- 主题词:Linux操作系统-程序设计
PDF下载
下载说明
深入理解Linux驱动程序设计PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 Linux内核组成和机制 1
1.1 Linux内核版本与发展 1
1.1.1 Linux操作系统的诞生 1
1.1.2 Linux内核版本的变迁 2
1.2 Linux内核编译 3
1.2.1 获取内核源码 3
1.2.2 内核源码树 3
1.2.3 编译内核 4
1.3 Linux内核组成 6
1.4 Linux内核机制 7
1.4.1 内核启动过程 7
1.4.2 模块机制 8
第2章 Linux内核设备管理方式 10
2.1 devfs设备文件系统 10
2.2 sysfs文件系统 10
2.3 udev设备文件系统 12
2.4 主要数据结构 12
2.4.1 kobject 12
2.4.2 ktype 14
2.4.3 kset 14
2.4.4 三者关系 15
2.5 热插拔设备管理机制 16
2.5.1 热插拔事件流程 16
2.5.2 涉及的模块 18
2.5.3 关键驱动函数 19
第3章 Linux驱动开发基础 20
3.1 同步机制 20
3.1.1 内核同步机制分类 21
3.1.2 自旋锁与信号量的比较 33
3.2 make及makefile 33
3.2.1 makefile文件 34
3.2.2 编写makefile文件 34
3.2.3 make命令 38
3.3 调试方法 41
3.3.1 printk 42
3.3.2 /proc文件系统 43
3.3.3 调试器及相关工具 44
第4章 Linux字符设备驱动开发 46
4.1 关键数据结构 48
4.2 接口函数部分内核代码分析 51
4.3 字符设备驱动设计 57
4.3.1 字符设备驱动设计场景描述 57
4.3.2 字符设备驱动设计过程 57
第5章 Linux内核中断机制 61
5.1 中断 61
5.2 中断处理 62
5.2.1 注册中断处理程序 62
5.2.2 编写中断处理程序 63
5.3 中断上半部与下半部的对比 63
5.4 中断下半部 64
5.5 BH机制与任务队列机制 64
5.6 软中断 65
5.6.1 软中断的实现 65
5.6.2 软中断的使用 66
5.7 tasklet 66
5.7.1 tasklet的实现 66
5.7.2 tasklet的使用 68
5.8 工作队列 68
5.8.1 工作队列的实现 68
5.8.2 工作队列的使用 69
第6章 Linux块设备驱动开发 71
6.1 块设备管理机制 71
6.1.1 块设备基本概念 71
6.1.2 块设备在Linux中的结构 72
6.2 块设备关键数据结构 73
6.2.1 gendisk数据结构 73
6.2.2 block_device_operations数据结构 74
6.2.3 request数据结构 75
6.2.4 request_queue数据结构 77
6.2.5 bio数据结构 78
6.3 块设备驱动设计函数 81
6.3.1 块设备驱动注册与注销函数 81
6.3.2 块设备驱动打开与关闭函数 81
6.3.3 块设备驱动ioctl、read和write函数 81
6.3.4 块设备驱动的请求函数 82
6.4 Ramdisk块设备驱动实例 83
6.4.1 Ramdisk块设备驱动实例分析 83
6.4.2 Ramdisk块设备驱动实例测试 84
第7章 Linux网络设备驱动开发 86
7.1 网络设备 86
7.1.1 网络系统分层结构 86
7.1.2 网络设备管理 87
7.2 NAPI机制 89
7.3 关键数据结构 90
7.4 内核提供的网络设备驱动设计函数 92
7.4.1 alloc_netdev 92
7.4.2 register_netdev 92
7.4.3 ether_setup 92
7.4.4 unregister_netdev 93
7.5 网络设备驱动开发实例 93
7.5.1 snull_init_module函数 94
7.5.2 snull_init函数 94
7.5.3 相关操作函数 95
第8章 Linux MMC/SD驱动开发 100
8.1 MMC子系统基本架构 100
8.2 关键数据结构 101
8.2.1 基本数据结构 101
8.2.2 基本数据结构主要成员及关系 101
8.3 MMC/CD卡驱动实例 105
8.3.1 MMC/SD卡设备驱动设计场景 105
8.3.2 MMC/SD卡设备驱动实例实现 107
第9章 LinuxUSB驱动开发 115
9.1 USB设备管理机制 115
9.1.1 USB与串口 115
9.1.2 USB设备属性拓扑结构管理机制 115
9.1.3 USB设备逻辑组织管理机制 116
9.2 USB驱动关键数据结构分析 117
9.3 USB设备驱动函数及其使用说明 119
9.3.1 客户端驱动管理 119
9.3.2 USB设备配置和管理 120
9.3.3 主机控制器的管理 121
9.3.4 协议控制命令集和数据传输管理 122
9.4 USB设备驱动开发实例 123
9.4.1 实例开发场景设计 123
9.4.2 USB设备驱动开发实例的实现 123
9.4.3 驱动测试分析 128
第10章 Linux I2C总线设备驱动 130
10.1 Linux总线驱动及I2C总线 130
10.1.1 Linux总线驱动设计过程 130
10.1.2 I2C总线的工作原理与应用 131
10.1.3 总线基本操作 132
10.2 Linux I2C体系结构 133
10.2.1 Linux的I2C体系结构组成 133
10.2.2 Linux I2C关键数据结构 134
10.3 Linux I2C核心 139
10.4 Linux I2C总线驱动 141
10.4.1 I2C适配器驱动加载与卸载 141
10.4.2 I2C总线通信方法 141
10.5 Linux I2C设备驱动 143
10.5.1 Linux I2C设备驱动模块加载与卸载 144
10.5.2 Linux I2C设备驱动的数据传输 144
10.5.3 Linux i2c-dev.c文件分析 145
10.6 Linux I2C驱动实例——EEPROM 146
10.6.1 初始化 146
10.6.2 探测设备 147
10.6.3 检查适配器的功能 148
10.6.4 访问设备 148
10.6.5 其他函数 149
第11章 Linux PCI总线设备驱动 151
11.1 PCI总线设备 151
11.1.1 PCI总线 151
11.1.2 PCI设备 152
11.2 PCI设备驱动结构 155
11.3 PCI设备驱动实例 156
11.3.1 PCI设备驱动程序基本框架 156
11.3.2 初始化设备模块 158
11.3.3 打开设备模块 159
11.3.4 数据读写和控制信息模块 160
11.3.5 中断处理模块 160
11.3.6 释放设备模块 161
11.3.7 卸载设备模块 162
第12章 Linux输入设备驱动 163
12.1 Linux输入子系统结构 163
12.2 输入设备驱动核心数据结构分析 164
12.3 Linux输入设备驱动实例 168
12.3.1 输入设备驱动流程 168
12.3.2 USB鼠标驱动编写实例 169
第13章 Linux Flash驱动开发 174
13.1 Flash存储器 174
13.2 Linux MTD系统层次结构 174
13.3 关键数据结构 175
13.3.1 mtd_info结构体 176
13.3.2 mtd_table结构体 178
13.3.3 mtd_part结构体 179
13.3.4 mtd_partition结构体 179
13.3.5 map_info结构体 179
13.4 驱动相关函数 180
13.4.1 add_mtd_device函数 180
13.4.2 del_mtd_device函数 180
13.4.3 add_mtd_partitions函数 180
13.4.4 del_mtd_partitions函数 181
13.4.5 do_map_probe函数 182
13.5 Nor型Flash驱动实例 183
13.5.1 Nor型Flash驱动设计流程 183
13.5.2 Nor型Flash驱动详细设计 184
13.6 Nand型Flash驱动实例 188
13.6.1 Nand型Flash设备驱动设计步骤 188
13.6.2 Nand型Flash驱动实现 189
参考文献 192