图书介绍
深入理解Linux驱动程序设计PDF|Epub|txt|kindle电子书版本网盘下载
![深入理解Linux驱动程序设计](https://www.shukui.net/cover/39/30020727.jpg)
- 吴国伟,姚琳,毕成龙编著 著
- 出版社: 北京:清华大学出版社
- 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 kobject12
2.4.2 ktype14
2.4.3 kset14
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及makefile33
3.2.1 makefile文件34
3.2.2 编写makefile文件34
3.2.3 make命令38
3.3 调试方法41
3.3.1 printk42
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 tasklet66
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_netdev92
7.4.2 register_netdev92
7.4.3 ether_setup92
7.4.4 unregister_netdev93
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驱动实例——EEPROM146
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