精通Linux设备驱动程序开发 中英文版 高清电子书

 精通Linux设备驱动程序开发 中英文版 高清电子书

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

精通Linux设备驱动程序开发 ,人民邮电出版社,英文原版书名:Essential linux devies drivers。作者:斯里克里斯汉·温卡特斯瓦兰(Sreekrishnan Venkateswaran) 著, 宋宝华 等译。《精通Linux设备驱动程序开发》是Linux设备驱动程序开发领域的著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深入探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如PCMCIA、I2C和USB等外部总线以及视频、音频、无线连网和闪存等驱动程序的开发,并讲解了相关的内核源码文件,给出了完整的开发实例。

精通Linux设备驱动程序开发 图书目录

第1章引言1
1.1演进1
1.2GNU Copyleft2
1.3kernel.org2
1.4邮件列表和论坛3
1.5Linux发行版3
1.6查看源代码4
1.7编译内核7
1.8可加载的模块8
1.9整装待发9

第2章内核11
2.1启动过程11
2.1.1BIOS—provided physical RAM map12
2.1.2758MB LOWMEM available14
2.1.3Kerne lcommand line:ro root=/dev/hda114
2.1.4Calibrating delay…1197.46 BogoMIPS(1pj=2394935)15
2.1.5Checking HLT instruction16
2.1.6NET:Registered protocol family217
2.1.7Freeing initrd memory:387k freed17
2.1.8io scheduler anticipatory registered(default)18
2.1.9Setting up standard PCI resources18
2.1.10EXT3—fs:mounted filesystem19
2.1.11INIT:version 2.85 booting19
2.2内核模式和用户模式20
2.3进程上下文和中断上下文20
2.4内核定时器21
2.4.1HZ和Jiffies21
2.4.2长延时22
2.4.3短延时24
2.4.4Pentium时间戳计数器24
2.4.5实时钟25
2.5内核中的并发26
2.5.1自旋锁和互斥体26
2.5.2原子操作30
2.5.3读—写锁31
2.5.4调试32
2.6proc文件系统32
2.7内存分配33
2.8查看源代码34

第3章内核组件37
3.1内核线程37
3.1.1创建内核线程37
3.1.2进程状态和等待队列41
3.1.3用户模式辅助程序42
3.2辅助接口43
3.2.1链表44
3.2.2散列链表49
3.2.3工作队列49
3.2.4通知链51
3.2.5完成接口54
3.2.6kthread辅助接口56
3.2.7错误处理助手57
3.3查看源代码58

第4章基本概念61
4.1设备和驱动程序介绍61
4.2中断处理63
4.2.1中断上下文63
4.2.2分配IRQ号64
4.2.3设备实例:导航杆65
4.2.4softirq和tasklet68
4.3Linux设备模型71
4.3.1udev71
4.3.2sysfs、kobject和设备类73
4.3.3热插拔和冷插拔76
4.3.4微码下载76
4.3.5模块自动加载77
4.4内存屏障78
4.5电源管理79
4.6查看源代码79

第5章字符设备驱动程序81
5.1字符设备驱动程序基础81
5.2设备实例:系统CMOS82
5.2.1驱动程序初始化83
5.2.2打开与释放86
5.2.3数据交换88
5.2.4查找92
5.2.5控制94
5.3检测数据可用性95
5.3.1轮询95
5.3.2Fasync98
5.4和并行端口交互99
5.5RTC子系统108
5.6伪字符驱动程序109
5.7混杂驱动程序110
5.8字符设备驱动程序注意事项115
5.9查看源代码115

第6章串行设备驱动程序118
6.1层次架构119
6.2UART驱动程序121
6.2.1设备实例:手机122
6.2.2RS—485132
6.3TTY驱动程序132
6.4线路规程134
6.5查看源代码141

第7章输入设备驱动程序143
7.1输入事件驱动程序144
7.2输入设备驱动程序150
7.2.1serio150
7.2.2键盘150
7.2.3鼠标152
7.2.4触摸控制器157
7.2.5加速度传感器158
7.2.6输出事件158
7.3调试159
7.4查看源代码160

第8章I2C协议161
8.1I2C/SMBus是什么161
8.2I2C核心162
8.3总线事务164
8.4设备实例:EEPROM164
8.4.1初始化165
8.4.2探测设备167
8.4.3检查适配器的功能169
8.4.4访问设备169
8.4.5其他函数170
8.5设备实例:实时时钟171
8.6i2c—dev174
8.7使用LM—Sensors监控硬件174
8.8SPI总线174
8.91—Wire总线176
8.10调试176
8.11查看源代码176

第9章PCMCIA和CF179
9.1PCMCIA/CF是什么179
9.2Linux—PCMCIA子系统181
9.3主机控制器驱动程序183
9.4PCMCIA核心183
9.5驱动程序服务183
9.6客户驱动程序183
9.6.1数据结构184
9.6.2设备实例:PCMCIA卡185
9.7将零件组装在一起188
9.8PCMCIA存储189
9.9串行PCMCIA189
9.10调试191
9.11查看源代码191

第10章PCI193
10.1PCI系列193
10.2寻址和识别195
10.3访问PCI198
10.3.1配置区198
10.3.2I/O和内存199
10.4DMA200
10.5设备实例:以太网—调制解调器卡203
10.5.1初始化和探测203
10.5.2数据传输209
10.6调试214
10.7查看源代码214

第11章USB216
11.1USB体系架构216
11.1.1总线速度218
11.1.2主机控制器218
11.1.3传输模式219
11.1.4寻址219
11.2Linux—USB子系统220
11.3驱动程序的数据结构221
11.3.1usb_device结构体221
11.3.2URB222
11.3.3管道223
11.3.4描述符结构223
11.4枚举225
11.5设备实例:遥测卡225
11.5.1初始化和探测过程226
11.5.2卡寄存器的访问230
11.5.3数据传输233
11.6类驱动程序236
11.6.1大容量存储设备236
11.6.2USB—串行端口转换器241
11.6.3人机接口设备243
11.6.4蓝牙243
11.7gadget驱动程序243
11.8调试244
11.9查看源代码245

第12章视频驱动程序247
12.1显示架构247
12.2Linux视频子系统249
12.3显示参数251
12.4帧缓冲API252
12.5帧缓冲驱动程序254
12.6控制台驱动程序265
12.6.1设备实例:手机266
12.6.2启动logo270
12.7调试270
12.8查看源代码271

第13章音频驱动程序273
13.1音频架构273
13.2Linux声音子系统275
13.3设备实例:MP3播放器277
13.3.1驱动程序函数和结构体278
13.3.2ALSA编程287
13.4调试288
13.5查看源代码289

第14章块设备驱动程序291
14.1存储技术291
14.2Linux块I/O层295
14.3I/O调度器295
14.4块驱动程序数据结构和方法296
14.5设备实例:简单存储控制器298
14.5.1初始化299
14.5.2块设备操作301
14.5.3磁盘访问302
14.6高级主题304
14.7调试306
14.8查看源代码306

第15章网络接口卡308
15.1驱动程序数据结构308
15.1.1套接字缓冲区309
15.1.2网络设备接口310
15.1.3激活311
15.1.4数据传输311
15.1.5看门狗311
15.1.6统计312
15.1.7配置313
15.1.8总线相关内容314
15.2与协议层会话314
15.2.1接收路径314
15.2.2发送路径315
15.2.3流量控制315
15.3缓冲区管理和并发控制315
15.4设备实例:以太网NIC316
15.5ISA网络驱动程序321
15.6ATM321
15.7网络吞吐量322
15.7.1驱动程序性能322
15.7.2协议性能323
15.8查看源代码324

第16章Linux无线设备驱动326
16.1蓝牙327
16.1.1BlueZ328
16.1.2设备实例:CF卡329
16.1.3设备实例:USB适配器330
16.1.4RFCOMM331
16.1.5网络332
16.1.6HID334
16.1.7音频334
16.1.8调试334
16.1.9关于源代码334
16.2红外335
16.2.1Linux—IrDA335
16.2.2设备实例:超级I/O芯片337
16.2.3设备实例:IRDongle338
16.2.4IrCOMM340
16.2.5联网340
16.2.6IrDA套接字341
16.2.7LIRC341
16.2.8查看源代码342
16.3WiFi343
16.3.1配置343
16.3.2设备驱动程序346
16.3.3查看源代码347
16.4蜂窝网络347
16.4.1GPRS347
16.4.2CDMA349
16.5当前趋势350

第17章存储技术设备352
17.1什么是闪存352
17.2Linux—MTD子系统353
17.3映射驱动程序353
17.4NOR芯片驱动程序358
17.5NAND芯片驱动程序359
17.6用户模块361
17.6.1块设备模拟361
17.6.2字符设备模拟361
17.6.3JFFS2362
17.6.4YAFFS2363
17.7MTD工具363
17.8配置MTD363
17.9XIP364
17.10FWH364
17.11调试367
17.12查看源代码367

第18章嵌入式Linux369
18.1挑战369
18.2元器件选择370
18.3工具链371
18.4Bootloader372
18.5内存布局374
18.6内核移植375
18.7嵌入式驱动程序376
18.7.1闪存377
18.7.2UART377
18.7.3按钮和滚轮378
18.7.4PCMCIA/CF378
18.7.5SD/MMC378
18.7.6USB378
18.7.7RTC378
18.7.8音频378
18.7.9触摸屏379
18.7.10视频379
18.7.11CPLD/FPGA379
18.7.12连接性379
18.7.13专用领域电子器件380
18.7.14更多驱动程序380
18.8根文件系统380
18.8.1NFS挂载的根文件系统381
18.8.2紧凑型中间件382
18.9测试基础设施383
18.10调试383
18.10.1电路板返工384
18.10.2调试器385
……
第19章用户空间的驱动程序386
第20章其他设备和驱动程序403
第21章调试设备驱动程序414
第22章维护与发布446
第23章结束语451
附录ALinux汇编453
附录BLinux与BIOS457
附录Cseq文件461

如何下载精通Linux设备驱动程序开发 中英文版 高清电子书

关注老wu博客的公众号,并在公众号里发送对应的下载关键字获取下载链接

关注吴川斌的博客公众号

在公众号里给老吴发消息:

下载|精通Linux设备驱动程序开发

或者

下载|6052

建议复制粘贴过去不会码错字哟,O(∩_∩)O~

吴川斌

吴川斌

1 Comment

  • 链接失效了

Leave a Reply