长沙市网站建设公司,视频网站砸钱做生态,公司策划推广,电脑培训班一般需要多少钱概述
在Linux DTS中我们可以看到各种各样的节点#xff0c;每个节点都是对某一物理设备或功能抽象或具体的描述
设备节点
设备节点是对物理设备的一种具体的描述#xff0c;它一般包含设备的寄存器地址、设备的类型、中断、时钟频率这些通用信息#xff0c;除了这些通用信…概述
在Linux DTS中我们可以看到各种各样的节点每个节点都是对某一物理设备或功能抽象或具体的描述
设备节点
设备节点是对物理设备的一种具体的描述它一般包含设备的寄存器地址、设备的类型、中断、时钟频率这些通用信息除了这些通用信息还有一些设备节点会包含一些自己特有的细节例如Linux上的DTS节点就是最好的例子例如MIPI设备会包含Lens的描述以下是一个UART设备节点的DTS描述
uart1700000 {compatible vendor,uart;reg 0x1700000 0x1000;interrupts 0 10 0;clocks rk_clocks;
};虚拟节点
虚拟节点一般是用来描述特定的软件功能它不依赖于任何硬件一般该节点的描述非常简单例如下面是一个用来描述当前系统版本的节点 virtual_version {compatible firmware-version;version 1.0.0;string Example System Firmware v1.0.0;};Tips
虚拟节点也可以用来模拟一个硬件。逻辑节点
就是逻辑节点是用来描述硬件的特定功能它依赖于真实硬件以下是一个ISPP的示例
ispp {compatible virtual,node;isp_in: endpoint { remote-endpoint isp_in; }; };逻辑节点一般通过remote-endpoint进行连接ispp通过获取到isp设备节点的输入然后进行其它处理例如3A算法等。 下面是一个LED的逻辑节点示例 led0 {compatible simple-led;label LED0;gpios gpio0 10 GPIO_ACTIVE_HIGH;};该节点没有自己的寄存器地址和时钟等描述它依赖于gpio来实现自己的功能所以一般称为逻辑节点。
三者之间的区别
**设备节点**是描述真实的设备需要包含设备类型、寄存器物理地址、时钟频率…**虚拟节点**是描述特定的软件功能它一般是由系统虚拟的节点通过该节点应用层可以获取到一些系统信息或者用来模拟硬件。**逻辑节点**是描述特定的硬件功能它一般依赖于硬件通过endpoint来与硬件建立管道连接获取硬件的输入然后执行其它操作从而实现特定功能。
三者之间的关系
三者之间的关系并不大因为从根本意义上来说它们都是节点只是应用场景不同叫法不一样而已它们只是描述某种硬件或者某个功能的信息最终这些信息都会被驱动所接受并使用。
节点与驱动的关系
节点信息是描述某个硬件或功能的信息而驱动则是实现就像声明与实现一样。