在Linux设备树语法中,当出现重复标签时会发生什么?

在Linux设备树语法中,当出现重复标签时会发生什么?

我想知道是否允许,并且 *.dts 设备树文件中可能会出现重复的标签,如果是的话,会发生什么?

例如,新标签是否允许覆盖/重新定义旧标签?

为了使问题更加透明和清晰,我想说明一下这个示例 dts 数据会发生什么情况的问题。

/dts-v1/;
/ {
    #address-cells = <1>;
    #size-cells = <1>;
    chosen { 
        labelname: bootargs = "lalalallal";
        labelname: bootargs2 = "lalalallal";
    };
    aliases { };
    memory { device_type = "memory"; reg = <0 0>; };
};

其中我们重复使用了 label labelname

这个问题的动机是无法找到关于 dts 语法的清晰明了的文档,告诉标签需要独特的

答案1

在设备树中一一定不使用重复的标签。如果无论如何这样做并且遇到重复项直达它会产生这样的错误:

ERROR (duplicate_label): Duplicate label 'labelX' on 'node' in /path and 'node2' in /path

我现在只是希望有一个参考添加到文档中,这将使我意识到“标签必须是唯一的”。也许一些评论或附加/替代答案可以指向我尚未发现的这个资源:)

相关内容