I 2 C、 SPI、 USB驱动架构
2024-09-04 22:25:20
根据图12.4, Linux倾向于将主机端的驱动与外设端的驱动分离, 而通过一个核心层将某种总线的协议进行抽象, 外设端的驱动调用核心层API间接过渡到对主机驱动传输函数的调用。 对于I 2 C、 SPI这类不具备热插拔能力的总线而言, 一般在arch/arm/mach-xxx或者arch/arm/boot/dts中会有相应的板级描述信息, 描述外设与主机的连接情况。Linux的各个子系统都呈现为相同的特点, 表17.1类比了I 2 C、 SPI、 USB驱动架构, 其他的PCI等都是类似的。
表17.1 I 2 C、 SPI、 USB驱动架构的类比
对于USB、 PCI等总线而言, 由于它们具备热插拔能力, 所以实际上不存在类似I 2 C、 SPI这样的板级描述信息。 换句话说, 即便是有这类
信息, 其实也没有什么用, 因为如果写了板子上有个U盘, 但实际上没有, 其实反而是制造了麻烦; 相反, 如果没有写, U盘一旦插
入, Linux USB子系统会自动探测到一个U盘。
同时我们注意到, I 2 C、 SPI、 USB控制器虽然给别人提供了总线, 但是其实自己也是由它自身依附的总线枚举出来的。 比如, 对于SoC而
言, 这些控制器一般是直接集成在芯片内部, 通过内存访问指令来访问的, 因此它们自身是通过platform_driver、 platform_device这种模型枚举进来的。
最新文章
- Matrix4x4矩阵变换、欧拉角转四元数、角度转弧度
- 【Win 10应用开发】手动调用WCF服务
- oozie调用shell
- Nginx反向代理多虚拟主机代理
- BZOJ2584 : [Wc2012]memory
- ArcGIS API for Silverlight 地图元素点闪烁,线流动显示的处理方式
- 如何组织较大项目的MVC文件夹结构
- IronPython 设置包路径
- OTP【转】
- VxWorks 6.9 内核编程指导之读书笔记 -- 多任务(二)
- DEDECMS中,友情链接
- PLSQL显示乱码-无法进行中文条件查询解决
- 以中断方式实现1s定时
- Dreamweaver cs6安装破解
- hdu3715
- JMockit常用操作
- JS (全局作用域)
- JDBC driver for MySQL连接提示";The connection property 'zeroDateTimeBehavior' acceptable values are: 'CONVERT_TO_NULL', 'EXCEPTION' or 'ROUND'. The value 'convertToNull' is not acceptable.";解决方案
- inheritCombinedParasitic.js
- [Linux]实际操作中命令 su 与 sudo 的区别