内核设备模型与设备树深度解析

📚 共计 30 章节
01
课程导论:为什么需要设备模型?
从字符设备驱动的痛点说起,理解设备模型的核心价值。
入门思维
02
kobject 与 kset
设备模型的最小单元与组织架构,内核对象基石。
基础kobject
03
ktype 与属性
如何为内核对象定义操作接口,属性文件机制。
接口sysfs
04
uevent 机制
内核如何通知用户空间设备变化,热插拔核心。
事件udev
05
bus、device、driver 三角关系
核心数据结构与匹配逻辑,驱动模型骨架。
核心匹配
06
bus 子系统深度解析
注册、遍历与属性文件,总线核心机制。
总线遍历
07
device 生命周期
从创建、注册到销毁,设备完整旅程。
生命周期device
08
driver 核心
probe、remove 与电源管理回调,驱动灵魂。
驱动probe
09
class 与 class_device
为用户空间提供统一的设备视图,分类管理。
class用户空间
10
设备模型中的锁与并发
如何安全操作设备链表,并发防护策略。
并发
11
设备树(DT)起源
从 PowerPC 到 ARM 的演进之路,硬件描述革命。
历史设备树
12
DTS 语法基础
节点、属性、标签与包含,编写你的第一个dts。
语法dts
13
DTC 与编译过程
从 .dts 到 .dtb 再到 .dtbo,编译与反编译。
编译dtc
14
常用属性详解
compatible、reg、interrupts、status 等核心属性。
属性必备
15
地址映射与 ranges 属性
CPU 地址与总线地址的桥梁,地址转换精髓。
地址ranges
16
中断控制器与 interrupts-extended
复杂中断拓扑描述,级联与扩展中断。
中断拓扑
17
GPIO 与 pinctrl
设备树中的引脚控制与复用,GPIO 绑定。
GPIOpinctrl
18
时钟与复位
clocks、resets 属性与框架绑定,时钟树描述。
时钟复位
19
设备树中的 regulator
电源管理描述,regulator 框架与设备树集成。
电源regulator
20
DMA 与 IOMMU
设备树中的内存访问控制,DMA 与 IOMMU 描述。
DMAIOMMU
21
设备树 Overlay
运行时动态修改设备树,overlay 与插件。
动态overlay
22
内核解析 DTB 流程
从 bootloader 到 device_node,逐层解析。
启动DTB
23
of_ 系列 API
内核中操作设备树的常用函数,of_ 接口详解。
APIof_
24
设备树匹配机制
从 compatible 到 platform_driver,匹配全流程。
匹配platform
25
设备树与 ACPI 对比
两种硬件描述方案的优劣,适用场景分析。
对比ACPI
26
设备树中的热插拔
描述可移除设备与 PCIe 桥,热插拔支持。
热插拔PCIe
27
设备树调试技巧
常用工具与常见错误排查,调试利器。
调试工具
28
设备模型与设备树的结合
platform_device 的诞生,模型与树融合。
platform结合
29
实战:编写一个完整的 I2C 设备驱动
基于设备树,从零实现 I2C 驱动。
实战I2C
30
课程总结:设备模型与设备树的未来演进方向
回顾核心,展望演进,持续学习路线。
总结未来