#address-cells 和#size-cells
时间: 2023-08-02 10:07:16 浏览: 173
linux devicetree-specification 2021.pdf
在设备树中,#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。
阅读全文