dts中配置节点寄存器地址有2个应该怎么配置
时间: 2024-02-21 17:58:09 浏览: 147
在DTS中配置节点寄存器地址有两种方式:一种是通过`reg`属性配置,另一种是通过`ranges`属性配置。
1. `reg`属性配置
`reg`属性用来指定设备在总线上的地址范围,可以用一个或多个`<address>`和`<size>`元组来描述。其中,`<address>`表示设备在总线上的起始地址,`<size>`表示设备的大小。
例如:
```
node {
compatible = "example-device";
reg = <0x12345678 0x1000>;
};
```
上面的例子中,设备在总线上的地址范围是从`0x12345678`到`0x12346678`,大小为`0x1000`字节。
2. `ranges`属性配置
`ranges`属性用来指定设备在父节点中的地址范围,可以用一个或多个`<child-address>`和`<parent-address>`元组来描述。其中,`<child-address>`表示设备在父节点中的起始地址,`<parent-address>`表示设备在总线上的地址。
例如:
```
node {
compatible = "example-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
device@1000 {
compatible = "example-device";
reg = <0x0 0x1000>;
};
};
```
上面的例子中,`#address-cells`和`#size-cells`属性分别指定了设备地址和大小的单元格数。`ranges`属性用来描述设备在总线上的地址范围,这里不需要指定具体的值,因为它会从`reg`属性中自动计算得出。`device@1000`节点表示设备在父节点中的地址为`0x1000`,在总线上的地址为`0x1000`,大小为`0x1000`字节。
阅读全文