0
点赞
收藏
分享

微信扫一扫

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析


目录

​​第1章 “分离”的思想的来源​​

​​1.1 Linux一体化字符设备驱动程序的缺陷​​

​​1.2 懒人改进的思考​​

​​1.3 Linux硬件驱动程序期望的需要与目标​​

​​1.4 “分离”思想的来源​​

​​1.5  隐藏在Linux设备驱动程序中的“分离”的思想​​

​​1.6 “分离”遵循的原则​​

​​1.7 “分离”的好处​​

​​第2章 Linux设备驱动程序的六大“分离”​​

​​2.1 应用程序与驱动程序的分离​​

​​2.2 设备信息与驱动程序的分离​​

​​2.3 硬件无关代码和硬件相关代码的分离​​

​​2.4 主机控制器设备与外部Client设备分离​​

​​2.5 配置数据与源代码的分离​​

​​2.6 策略与规则的分离​​

​​第3章 “分离”思想对驱动工程师启发​​

​​3.1 Linux驱动工程师的基本指导思想​​

​​3.2 Linux的辩证哲学​​

​​3.3 爱与分离​​

第1章 “分离”的思想的来源

1.1 Linux一体化字符设备驱动程序的缺陷

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_02

备注:字符设备驱动程序是挂接在虚拟虚拟文件系统中的。贯彻了Linux中的一切皆文件的思想。

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_03

备注:定义了通过“文件”操作硬件设备的标准接口。

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_04

备注:定义了如何把设备驱动程序挂接到文件系统中的标准接口。

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_硬件_05

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_06

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_07

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_08

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_驱动_09

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_10

1.2 懒人改进的思考

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_11

1.3 Linux硬件驱动程序期望的需要与目标

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_12

如何达成上述的需求和目标呢?

1.4 “分离”思想的来源

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_驱动_13

(1)每一次的分离,都是事物发展的内生需求,并非主动的规划。

(2)每一次的分类,都会促进新生事物的发展。

(3)每一次的分离,都会促进整个系统效率的提升。

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_驱动_14

1.5  隐藏在Linux设备驱动程序中的“分离”的思想

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_15

1.6 “分离”遵循的原则

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_驱动_16

1.7 “分离”的好处

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_硬件_17

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_18

第2章 Linux设备驱动程序的六大“分离”

2.1 应用程序与驱动程序的分离

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_19

备注:用户空间与内核空间的分离

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_20

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_21

备注:用户空间到内核空间的数据传送有内核代码完成。

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_硬件_22

备注:应用程序通过标准的POSIX接口访问硬件设备。

2.2 设备信息与驱动程序的分离

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_23

备注:

设备:描述硬件设备信息的软件实体。

驱动:提供给应用程序,通过文件系统接口,对硬件设备进行数据读写操作的软件实体。

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_24

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_驱动_25

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_26

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_硬件_27

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_28

备注:

硬件设备通过内部定义的标准接口,把自己注册到硬件总线软件实体上。

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_29

备注:

硬件驱动程序也通过内部定义的标准接口,把自己注册到硬件总线软件实体上。

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_30

 备注:

由总线的软件实体负责把硬件设备的软件实体与硬件驱动程序的实体进行映射。

这样就完成了硬件设备与硬件驱动的分离和关联。

2.3 硬件无关代码和硬件相关代码的分离

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_31

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_驱动_32

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_33

备注:

RTC核心层:完成所有RTC设备标准公共接口和公共的代码实现。这部分代码有Linux内核提供。 

RTC驱动层:完成特定的RTC硬件设备的硬件操作的代码实现。这部分代码由特定硬件电路板的驱动程序员提供。

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_34

备注:

Misc核心层:完成所有Misc 设备标准公共接口和公共的代码实现。这部分代码有Linux内核提供。 

Misc驱动层:完成特定的Misc硬件设备的硬件操作的代码实现。这部分代码由特定硬件电路板的驱动程序员提供。

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_硬件_35

备注:

串口核心层:完成所有串口设备标准公共接口和公共的代码实现。这部分代码有Linux内核提供。 

窗口驱动层:完成特定的串口硬件设备的硬件操作的代码实现。这部分代码由特定硬件电路板的驱动程序员提供。

2.4 主机控制器设备与外部Client设备分离

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_硬件_36

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_37

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_38

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_硬件_39

SPI控制器驱动程序:负责通过SPI控制器完成SPI总线协议。

  • SPI总线核心层
  • SPI硬件控制设备
  • SPI控制器驱动程序

SPI外设驱动程序:完成特定SPI外设寄存器的访问。

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_硬件_40

 备注:把SPI驱动注册到SPI总线上。

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_41

备注:把SPI外设注册到SPI总线上。

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_驱动_42

备注:SPI驱动内部的消息队列机制。

2.5 配置数据与源代码的分离

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_43

备注:

设备树就是一种硬件配置数据,Linxu内核驱动就是一种源代码。

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_44

 

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_驱动_45


[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_硬件_46

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_47

2.6 策略与规则的分离

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_驱动_48

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_49

第3章 “分离”思想对驱动工程师启发

3.1 Linux驱动工程师的基本指导思想

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_思想_50

3.2 Linux的辩证哲学

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_Linux_51

3.3 爱与分离

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析_框架_52

举报

相关推荐

0 条评论