终于搞懂Linux 设备树中的#address-cells,#size-cells 和reg 属性
在Linux设备树中,#address-cells
和#size-cells
属性是用来描述子节点地址和大小的。reg
属性定义了设备的资源,通常是地址和大小。
#address-cells
:定义了子节点reg
属性中地址所需的单元数量。#size-cells
:定义了子节点reg
属性中大小描述所需的单元数量。reg
:包含了地址和大小对,表示设备的资源。
举个例子,假设有一个简单的设备树节点如下:
node {
#address-cells = <1>;
#size-cells = <1>;
child@0x100 {
compatible = "example,child";
reg = <0x100 0x10>;
};
};
在这个例子中,node
是一个父节点,它定义了子节点的地址和大小是32位宽。child
是一个子节点,它的reg
属性设置了它的起始地址为0x100,大小为0x10。
如果你需要更复杂的地址和大小描述,可以使用更多的单元。例如:
node {
#address-cells = <2>;
#size-cells = <2>;
child@0x100,0x20 {
compatible = "example,child";
reg = <0x100 0x20 0x1000 0x100>;
};
};
在这个例子中,地址和大小都变成了64位宽。
评论已关闭