#address-cells 和#size-cells
时间: 2023-08-02 19:07:16 浏览: 63
在设备树中,#address-cells 和 #size-cells 是用于描述设备地址和大小的属性。它们是可选属性,但是如果设备树节点需要描述地址或大小,则应该包含这些属性。
#address-cells 属性指定了设备地址单元的数量。一个设备的地址通常由多个单元组成,每个单元的大小由相应的 #address-cells 属性指定。例如,一个 32 位的地址可能由两个 16 位的单元组成,因此 #address-cells 的值为 2。
#size-cells 属性指定了设备大小单元的数量。类似地,一个设备的大小通常由多个单元组成,每个单元的大小由相应的 #size-cells 属性指定。例如,一个设备的大小可能由两个 32 位的单元组成,因此 #size-cells 的值为 2。
这些属性通常出现在设备树节点的开头,并且它们的值是整数。例如:
```
spi@12345678 {
compatible = "spi-slave";
reg = <0x12345678 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
...
};
```
在这个例子中,spi@12345678 节点描述了一个 SPI 设备。它有一个 16KB 的寄存器区域,其起始地址为 0x12345678。由于地址是一个 32 位的值,因此 #address-cells 的值为 1。因为寄存器区域没有子节点,所以 #size-cells 的值为 0。
相关问题
设备树为什么要配置#address-cells = <1>; #size-cells = <0>;
在设备树中,每个设备节点通常都需要指定它的物理地址和大小。而#address-cells和#size-cells属性就是用来指定这些信息的格式。#address-cells指定物理地址所需要的单元数量,#size-cells指定设备大小所需要的单元数量。这两个属性的值通常是固定的,例如#address-cells = <1>表示物理地址需要一个32位的单元,#size-cells = <0>表示设备大小不需要指定单元数量,即设备大小以字节为单位。这样做的好处是可以在设备树中统一描述设备信息,便于内核和驱动程序的解析和使用。
&amba_pl { vcap_mipi { compatible = "xlnx,video"; dma-names = "port0"; dmas = <&v_frmbuf_wr_0 0>; vcap_ports: ports { #address-cells = <1>; #size-cells = <0>; vcap_port: port@0 { direction = "input"; reg = <0>; vcap_in: endpoint { remote-endpoint = <&csc_out>; }; }; }; }; };
这一个 Device Tree 的片段,其中定义了一个名为 "vcap_mipi" 的视频设备节点,它使用了 Xilinx 的 video 驱动,并且只有一个输入端口 "vcap_in",通过DMA传输数据到 "v_frmbuf_wr_0" 设备的端口0。同时,该节点也定义了一个名为 "vcap_ports" 的子节点,其中包含一个名为 "vcap_port" 的输入端口,它连接到 "vcap_in" 终端节点,并且设置了方向为 "input"。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)