4412驱动实验之05 总线_设备_驱动注册流程详解

  • -

5.1 本章导读

在 Linux2.6 之后,Linux 设备驱动分为三个实体总线、设备、驱动,平台总线将设备和驱
动匹配。在系统注册任意一个驱动的时候,都会寻找对应的设备;当系统注册设备的时候,系
统也会寻找对应的驱动进行匹配。
本节实验通过一张框架图,从理论上给大家分析总线设备驱动三者的关系。

总线和平台总线

在 Linux 系统中,任何一个 Linux 设备和 Linux 驱动都是需要挂载到一种总线中。有一些
常规的大家容易理解的总线,例如 media 总线、spi 总线、hid 输入子系统总线、eMMC 存储
设备总线等等。假如说设备本身就是一个总线设备,那么挂载到对应的总线上,那是容易理解
的。
在任意一个 soc 系统中,都有一些集成的总线,例如在 4412 中就集成了 i2c,spi、usb
等等。针对这些总线设备,它们注册驱动的时候,都会调用对应的总线设备,一个驱动对应一
个设备,这个概念很好理解。
但是还有一些例如 led、蜂鸣器等等一些设备,都不是从字面上理解的总线设备。针对这
个情况,Linux 创立了一种虚拟总线,也叫平台总线或者 platform 总线,这个总线也有对应的
设备 platform_device,对应的驱动叫 platform_driver。
这里介绍的平台总线,不能够直接和常规的总线对应,只是 Linux 系统提供的一种附加手
段,防止 linux 驱动的碎片化,降低 Linux 的使用难度。
另外这里的设备 platform_device 和驱动 platform_driver 也不是和常规的字符设备、块
设备、网络设备并列的概念,它只是一种附加的手段。

Linux 设备

硬件总类繁多,千变万化,一个 USB 接口就可以接无数种键盘、鼠标、存储设备等等。Linux将设备分为了三大类:字符设备、块设备、网络设备。
字符设备,字符设备是能够像字节流一样被访问的设备。一般说来对硬件设备 IO 的操作可以归结为字符设 备。常见的字符设备有 led、蜂鸣器、串口、键盘等等。
块设备,块设备室通过内存缓冲区访问,可以随机存取的设备,一般性的理解就是存储介质类的设备。常见的字符设备有 U 盘、TF 卡、eMMC、电脑硬盘、光盘等等
网络设备,可以和其它主机交换数据的设备。常见的以太网设备、WIFI、蓝牙等。虽然它们之间有这种官方的分类,但是也没有严格的界限,只是一个比较模糊的划分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值