设备树节点为vision_apps_core_heaps_lo: vision-apps-core-heap-memory-lo@94000000 { compatible = "shared-dma-pool"; reg = <0x00 0x94000000 0x00 0x0a800000>; no-map; };,我该如何在驱动中获取不到vision_apps_core_heaps_lo这个参数
时间: 2023-11-22 21:57:01 浏览: 34
在设备树中,每个节点都有一个唯一的路径,称为节点路径。节点路径是设备树中节点的完整名称,从设备树根节点开始,到该节点的路径。在节点路径中,每个节点名称由斜杠(/)分隔。
因此,您可以使用设备树中节点的路径来引用该节点及其属性。在您的驱动程序中,您可以使用函数`of_find_node_by_path`或`of_find_node_by_name`来获取节点。
例如,在您的例子中,如果节点路径是`/some_parent_node/vision_apps_core_heaps_lo`,您可以使用以下代码获取该节点:
```
struct device_node *np;
np = of_find_node_by_path("/some_parent_node/vision_apps_core_heaps_lo");
```
或者,如果您知道节点的名称,您可以使用以下代码获取该节点:
```
struct device_node *np;
np = of_find_node_by_name(NULL, "vision_apps_core_heaps_lo");
```
在获取节点之后,您可以使用`of_property_read_u32_array`或`of_property_read_u64_array`等函数读取节点属性的值。例如,要读取`reg`属性的值,您可以使用以下代码:
```
u64 reg[2];
int ret;
ret = of_property_read_u64_array(np, "reg", reg, 2);
if (ret) {
dev_err(dev, "failed to read reg property\n");
return ret;
}
```