· 多年嵌入式人才培养及项目研发经验总结
· 数百家企业嵌入式研发岗位人才需求汇总
· 数十所嵌入式专业大学院校教学现状调研
· 侧重实践及案例分析并辅以代码加以讲解
本书基于2.6.22内核,对USB子系统的大部分源代码逐行进行分析,系统地阐释了Linux内核中USB子系统是如何运转的,子系统内部的各个模块之间是如何互相协作互相配合的。
本书使用幽默诙谐的笔调对Linux内核中的USB子系统源代码进行了分析,形象且详尽地介绍了USB在Linux中的实现。本书从U盘、Hub、USB Core直到主机控制器覆盖了USB实现的方方面面,被一些网友誉为USB开发的“圣经”。
对于Linux初学者,可以通过本书掌握学习内核、浏览内核代码的方法;对于Linux驱动开发者,可以通过本书对设备模型有形象深刻的理解;对于USB开发者,可以通过本书全面的理解USB在一个操作系统中的实现;对于Linux内核开发者,也可以通过本书学习到很多Linux高手开发维护一个完整子系统时的编程思想。
Linux那些事儿之我是USB章节:
第1篇 Linux那些事儿之我是USB Core
1.引子 2
2.它从哪里来 2
3.PK 3
4.漫漫辛酸路 3
5.我型我秀 4
6.我是一棵树 5
7.我是谁 9
8.好戏开始了 11
9.不一样的core 13
10.从这里开始 17
11.面纱 20
12.模型,又见模型 22
13.繁华落尽 26
14.接口是设备的接口 28
15.设置是接口的设置 32
16.端点 35
17.设备 37
18.配置 45
19.向左走,向右走 48
20.设备的生命线(一) 53
21.设备的生命线(二) 56
22.设备的生命线(三) 61
23.设备的生命线(四) 67
24.设备的生命线(五) 73
25.设备的生命线(六) 80
26.设备的生命线(七) 88
27.设备的生命线(八) 94
28.设备的生命线(九) 100
29.设备的生命线(十) 104
30.设备的生命线(十一) 109
31.驱动的生命线(一) 122
32.驱动的生命线(二) 127
33.驱动的生命线(三) 131
34.驱动的生命线(四) 135
35.字符串描述符 138
36.接口的驱动 147
37.还是那个match 150
38.结束语 155
第2篇 Linux那些事儿之我是HUB
1.引子 157
2.跟我走吧,现在就出发 157
3.特别的爱给特别的Root Hub 158
4.一样的精灵不一样的API 160
5.那些队列,那些队列操作函数 164
6.等待,只因曾经承诺 169
7.最熟悉的陌生人——probe 171
8.蝴蝶效应 174
9.While You Were Sleeping(一) 178
10.While You Were Sleeping(二) 183
11.While You Were Sleeping(三) 185
12.While You Were Sleeping(四) 191
13.再向虎山行 194
14.树,是什么样的树 198
15.没完没了的判断 201
16.一个都不能少 206
17.盖茨家对Linux代码的影响 215
18.八大重量级函数闪亮登场(一) 220
19.八大重量级函数闪亮登场(二) 223
20.八大重量级函数闪亮登场(三) 225
21.八大重量级函数闪亮登场(四) 237
22.八大重量级函数闪亮登场(五) 241
23.是月亮惹的祸还是spec的错 249
24.所谓的热插拔 251
第3篇 Linux那些事儿之我是UHCI
1.引子 256
2.开户和销户 258
3.PCI,我们来了! 262
4.I/O内存和I/O端口 270
5.传说中的DMA 275
6.来来,我是一条总线,线线线线线线 281
7.主机控制器的初始化 285
8.有一种资源,叫中断 293
9.一个函数引发的故事(一) 295
10.一个函数引发的故事(二) 298
11.一个函数引发的故事(三) 303
12.一个函数引发的故事(四) 309
13.一个函数引发的故事(五) 311
14.寂寞在唱歌 313
15.Root Hub的控制传输(一) 321
16.Root Hub的控制传输(二) 327
17.非Root Hub的批量传输 339
18.传说中的中断服务程序(ISR) 345
19.Root Hub的中断传输 362
20.非Root Hub的中断传输 364
21.等时传输 375
22.“脱”就一个字 381
第4篇 Linux那些事儿之我是U盘
1.小城故事 388
2.Makefile 389
3.变态的模块机制 390
4.想到达明天现在就要启程 392
5.外面的世界很精彩 394
6.未曾开始却似结束 395
7.狂欢是一群人的孤单 396
8.总线、设备和驱动(上) 397
9.总线、设备和驱动(下) 398
10.我是谁的他 400
11.从协议中来,到协议中去(上) 401
12.从协议中来,到协议中去(中) 403
13.从协议中来,到协议中去(下) 405
14.梦开始的地方 406
15.设备花名册 411
16.冰冻三尺非一日之寒 412
17.冬天来了,春天还会远吗?(一) 416
18.冬天来了,春天还会远吗?(二) 422
19.冬天来了,春天还会远吗?(三) 425
20.冬天来了,春天还会远吗?(四) 427
21.冬天来了,春天还会远吗?(五) 431
22.通往春天的管道 436
23.传说中的URB 440
24.彼岸花的传说(一) 443
25.彼岸花的传说(二) 445
26.彼岸花的传说(三) 448
27.彼岸花的传说(四) 451
28.彼岸花的传说(五) 453
29.彼岸花的传说(六) 457
30.彼岸花的传说(七) 460
31.彼岸花的传说(八) 463
32.彼岸花的传说(The End) 467
33.SCSI命令之我型我秀 468
34.迷雾重重的批量传输(一) 472
35.迷雾重重的批量传输(二) 476
36.迷雾重重的批量传输(三) 479
37.迷雾重重的批量传输(四) 484
38.迷雾重重的批量传输(五) 489
39.迷雾重重的批量传输(六) 493
40.迷雾重重的批量传输(七) 495
41.跟着感觉走(一) 500
42.跟着感觉走(二) 503
43.有多少爱可以胡来?(一) 509
44.有多少爱可以胡来?(二) 513
45.当梦醒了天晴了 518
46.其实世上本有路,走的人多了,也便没了路 522
附录 Linux那些事儿之我是sysfs
1.sysfs初探 526
2.设备模型 527
2.1 设备底层模型 528
2.2 设备模型上层容器 532
2.3 示例一:usb子系统 535
2.4 示例二:usb storage驱动 541
3.sysfs文件系统 547
3.1 文件系统 547
3.2 sysfs 553
3.3 file_oprations 557