代码拉取完成,页面将自动刷新
目录
前 言 0
第一章 文件系统 1
1.1应用程序执行过程 2
1.2 VFS虚拟文件系统 3
1.2.1 Linux文件系统对象 4
1.2.2 文件系统的挂载 19
1.2.3 文件描述符(fd) 21
1.3 文件系统注册 23
1.3.2 file_system_type 25
1.3.3 mount 26
1.3.4 file_operation 31
1.4 实现一个虚拟文件系统 33
1.4.1 定义文件系统结构 33
1.4.2 memfs源码 44
第二章 sysfs文件系统 56
2.1内核对象 56
2.1.1 kobject 57
2.1.2 kobj_type 59
2.1.3 kset 61
2.1.4 kernfs_node 63
2.2 文件创建 66
2.2.1 创建目录文件 66
2.2.2 创建属性文件 68
2.3 统一驱动模型 75
2.3.1 总线 76
2.3.2 设备 86
2.3.3 驱动 97
2.4 sysfs与热插拔 108
2.5 设备模型与字符设备关系 112
2.5.1 devtmpfs 113
2.5.2 设备节点与统一设备模型 114
2.6 子系统 115
2.6.4 设备类 118
2.6.5 总线与类的关系 122
2.7 实例说明 130
2.7.1 总线 132
2.7.2 控制器驱动 137
2.7.3 设备驱动 139
2.7.4 编译测试 140
2.8 component框架 142
第三章 热插拔机制 152
3.1 热插拔与sysfs关系 153
3.2 内核调用应用程序 161
3.3 热插拔事件关键字 166
3.3.1 ACTION 167
3.3.2 MAJOR和MINOR 169
3.3.3 MODALIAS(已过时) 170
3.3.5 DEVNAME和DEVPATH 174
3.3.6 其他关键字 174
3.3.4 sysfs属性文件 174
3.4 mdev热插拔 175
3.4.1 环境变量测试 177
3.4.2 mdev规则 182
3.5 udev热插拔 189
3.5.1 udev规则 190
3.5.2 动态挂载驱动 194
3.5.3 设置设备节点权限 200
3.5.4 设备节点连接文件 201
3.5.5 运行脚本 201
3.5.6 udev调试工具 203
3.5.7基于属性文件的热插拔驱动 203
3.6 实例说明 208
3.6.1 实现一个热插拔的LED驱动 208
第四章 内存管理 222
4.1 内存管理机制 223
4.1.1 基于位图的内存管理 223
4.1.2 基于链表的内存管理 224
4.2 内存管理单元 224
4.2.3 伙伴算法(buddy) 227
4.3 内存布局 230
4.3.1 内存地址映射 230
4.3.2 用户空间内存布局 232
4.4 内存分配 233
4.4.1 页分配器 234
4.4.2 slab分配器 236
4.4.3 kmalloc和vmalloc 237
4.5 mmap机制 239
4.5.1 映射类型(用户空间) 240
4.5.2 内核中的mmap 244
4.5.3 mmap优缺点 253
4.6 DMA内存 254
4.6.1 DMA设备驱动 254
4.6.2 DMA示例说明 261
4.6.3 DMA BSP驱动简单说明 264
第五章 系统调用 266
5.1 系统调用过程 266
5.2 阻塞与非阻塞IO 269
5.2.1 阻塞方式 270
5.2.2 非阻塞方式 278
5.3 异步IO 283
5.3.1 poll 284
5.3.2 select 291
5.3.3 epoll 293
5.3.4 异步通知 296
5.4 unlocked_ioctl 302
5.5 sysfs_notify 307
第六章 多线程与并发 314
6.1 线程与进程 314
6.2 内核线程 317
6.3 底半部机制 321
6.3.1 软中断 322
6.3.2 tasklet 323
6.3.3 工作队列 329
6.4中断线程化 338
6.5 进程 341
6.5.1 fork 342
6.5.2 vfork 344
6.5.3 clone 345
6.5.4 pthread_create 347
6.6 锁机制 348
6.6.1 原子操作 348
6.6.2 自旋锁 350
6.6.3 信号量 352
6.6.4 互斥锁 353
6.6.5 completion 354
第七章 DRM驱动程序设计 356
7.1 DRM简介 358
7.1.1 KMS(Kernel Mode Setting) 359
7.1.2 GEM(Graphics Execution Manager) 361
7.2 DRM驱动 362
7.2.1 驱动结构体 362
7.2.2 设备结构体 365
7.2.3 DRM驱动注册 367
7.2.4 DRM模式设置 370
7.3 实例说明 389
7.4 DRM Simple Display框架 402
7.5 DRM热插拔 414
7.5.1 中断方式 416
7.5.2 poll方式 432
7.5.3 实际中的热插拔 443
7.6 DRM中plane update函数详解 444
7.7 DRM相关结构 445
7.7.1 edid 445
7.7.2 panel 449
7.7.3 bridge 451
7.7.4 组件连接 458
第八章 GPIO子系统BSP驱动 466
8.1 GPIO寄存器说明 466
8.2 pinctrl子系统 474
8.2.1 pinctrl BSP驱动 477
8.2.2 pinctrl客户端驱动 487
8.2.3 虚拟pinctrl子系统实例 488
8.3 GPIO子系统 498
8.3.1 GPIO BSP驱动 498
8.3.2 GPIO 客户端驱动 507
8.3.3 虚拟GPIO子系统实例 508
第九章 SPI子系统BSP驱动 518
9.1 SPI硬件 518
9.1.1 SPI传输模式 519
9.1.2 SPI寄存器列表 521
9.1.3 SPI寄存器说明 522
9.2 SPI总线注册 537
9.3 SPI设备注册 541
9.4 SPI驱动注册 544
9.4.1 BSP驱动程序 544
9.4.2 设备驱动程序 551
9.4.3 SPI BSP例子 552
第十章 I2C子系统BSP驱动 561
10.1 I2C协议 561
10.1.1 I2C硬件 561
10.1.2 I2C控制器 564
10.1.3 I2C寄存器说明 565
10.2 I2C总线注册 575
10.3 I2C设备注册 578
10.4 I2C驱动注册 580
10.4.1 BSP驱动程序 580
10.4.2 设备驱动程序 585
10.4.3 I2C BSP实例 586
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。