[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析相关的知识,希望对你有一定的参考价值。
目录
第1章 “分离”的思想的来源
1.1 Linux一体化字符设备驱动程序的缺陷
备注:字符设备驱动程序是挂接在虚拟虚拟文件系统中的。贯彻了Linux中的一切皆文件的思想。
备注:定义了通过“文件”操作硬件设备的标准接口。
备注:定义了如何把设备驱动程序挂接到文件系统中的标准接口。
1.2 懒人改进的思考
1.3 Linux硬件驱动程序期望的需要与目标
如何达成上述的需求和目标呢?
1.4 “分离”思想的来源
(1)每一次的分离,都是事物发展的内生需求,并非主动的规划。
(2)每一次的分类,都会促进新生事物的发展。
(3)每一次的分离,都会促进整个系统效率的提升。
1.5 隐藏在Linux设备驱动程序中的“分离”的思想
1.6 “分离”遵循的原则
1.7 “分离”的好处
第2章 Linux设备驱动程序的六大“分离”
2.1 应用程序与驱动程序的分离
备注:用户空间与内核空间的分离
备注:用户空间到内核空间的数据传送有内核代码完成。
备注:应用程序通过标准的POSIX接口访问硬件设备。
2.2 设备信息与驱动程序的分离
备注:
设备:描述硬件设备信息的软件实体。
驱动:提供给应用程序,通过文件系统接口,对硬件设备进行数据读写操作的软件实体。
备注:
硬件设备通过内部定义的标准接口,把自己注册到硬件总线软件实体上。
备注:
硬件驱动程序也通过内部定义的标准接口,把自己注册到硬件总线软件实体上。
备注:
由总线的软件实体负责把硬件设备的软件实体与硬件驱动程序的实体进行映射。
这样就完成了硬件设备与硬件驱动的分离和关联。
2.3 硬件无关代码和硬件相关代码的分离
备注:
RTC核心层:完成所有RTC设备标准公共接口和公共的代码实现。这部分代码有Linux内核提供。
RTC驱动层:完成特定的RTC硬件设备的硬件操作的代码实现。这部分代码由特定硬件电路板的驱动程序员提供。
备注:
Misc核心层:完成所有Misc 设备标准公共接口和公共的代码实现。这部分代码有Linux内核提供。
Misc驱动层:完成特定的Misc硬件设备的硬件操作的代码实现。这部分代码由特定硬件电路板的驱动程序员提供。
备注:
串口核心层:完成所有串口设备标准公共接口和公共的代码实现。这部分代码有Linux内核提供。
窗口驱动层:完成特定的串口硬件设备的硬件操作的代码实现。这部分代码由特定硬件电路板的驱动程序员提供。
2.4 主机控制器设备与外部Client设备分离
SPI控制器驱动程序:负责通过SPI控制器完成SPI总线协议。
- SPI总线核心层
- SPI硬件控制设备
- SPI控制器驱动程序
SPI外设驱动程序:完成特定SPI外设寄存器的访问。
备注:把SPI驱动注册到SPI总线上。
备注:把SPI外设注册到SPI总线上。
备注:SPI驱动内部的消息队列机制。
2.5 配置数据与源代码的分离
备注:
设备树就是一种硬件配置数据,Linxu内核驱动就是一种源代码。
详解:
https://blog.csdn.net/HiWangWenBing/article/details/127103201
2.6 策略与规则的分离
第3章 “分离”思想对驱动工程师启发
3.1 Linux驱动工程师的基本指导思想
3.2 Linux的辩证哲学
3.3 爱与分离
以上是关于[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析的主要内容,如果未能解决你的问题,请参考以下文章
[架构之路-56]:目标系统 - 平台软件 - 总体架构概述
[架构之路-28]:目标系统 - 系统软件 - Linux OS内核功能架构图解内核构建内核启动流程
[架构之路-25]:目标系统 - 系统软件 - bootloader uboot内存映射与启动流程
[架构之路-21]:目标系统 - 系统软件 - 计算机系统架构计算机指令系统结构化程序与分层编程。