Linux 设备和驱动模型深度解析
1. Linux 设备和驱动模型概述
Linux 设备和驱动模型是开发 Linux 设备驱动的核心内容。在 Linux 内核 2.6 版本中引入了统一的设备模型,它提供了一种单一机制来表示设备并描述其在系统中的拓扑结构。该模型将设备和驱动组织到总线上,具有以下优点:
- 最小化代码重复。
- 代码组织清晰,设备驱动与控制器驱动分离,硬件描述与驱动本身分离等。
- 能够确定系统中的所有设备,查看其状态和电源状态,了解它们连接到的总线,并确定负责它们的驱动程序。
- 能够生成系统整个设备结构的完整有效树,包括所有总线和互连。
- 能够将设备与其驱动程序相互关联。
- 按设备类型(类)对设备进行分类,例如输入设备,而无需了解物理设备拓扑。
该模型涉及“设备”“驱动”和“总线”等术语:
- 设备:连接到总线的物理或虚拟对象。
- 驱动:可以探测并绑定到设备并执行某些管理功能的软件实体。
- 总线:作为其他设备连接点的设备。
设备模型围绕三个主要数据结构组织:
1. bus_type 结构,代表一种类型的总线(例如 USB、PCI、I2C)。
2. device_driver 结构,代表一个能够处理特定总线上某些设备的驱动程序。
3. device 结构,代表连接到总线的一个设备。
2. 总线核心驱动
对于内核支持的每个总线,都有一个通用的总线核心驱动。总线是处理器与一个或多个设备之间的通道。在设备模型中
超级会员免费看
订阅专栏 解锁全文
1251

被折叠的 条评论
为什么被折叠?



