Zephyr 3.2 弃用devicetree 中node 里的label property

节点(node)是用来描述Zephyr电路板里设备(device)的,设备有一系列特性(property),比如 status、compatible、reg等,下面是一个例子:
        radio: radio@40001000 {
            compatible = "nordic,nrf-radio";
            reg = <0x40001000 0x1000>;
            interrupts = <1 NRF_DEFAULT_IRQ_PRIORITY>;
            status = "okay";
        };
在Zephyr 3.2 之前 label是一个property,比如花括号里的 “CLOCK”作为label的值,展示一个人类可读的名字。但是Zephyr又有一个node label 的语法,用来引用一个node,比如下例第一行的小写clock,它通过一个冒号接着指向的node。
    clock: clock@40000000 {
            compatible = "nordic,nrf-clock";
            reg = <0x40000000 0x1000>;
            interrupts = <0 NRF_DEFAULT_IRQ_PRIORITY>;
            status = "okay";
            label = "CLOCK";
        };
但是从Zephyr 3.2 之后,label property 被弃用。这样学习使用node label时不会与label property 混淆,真是一件大快人心的事。
前面讲了定义一个node label 的方法,要想引用这个被node label标识的node,只要用 &加上node label 字串就可以了。
uart0: uart@40002000 {
            /* uart can be either UART or UARTE, for the user to pick */
            /* compatible = "nordic,nrf-uarte" or "nordic,nrf-uart"; */
            compatible = "nordic,nrf-uarte";
            reg = <0x40002000 0x1000>;
            interrupts = <2 NRF_DEFAULT_IRQ_PRIORITY>;
            status = "disabled";
            label = "UART_0";
        };
上面定义了一个 node,其node label是uart0 , &uart0 表示引用上面定义的node。下面指向的是同一个uart,增加了一些property的描述。
&uart0 {
    compatible = "nordic,nrf-uarte";
    status = "okay";
    current-speed = <115200>;
    tx-pin = <6>;
    rx-pin = <8>;
    rx-pull-up;
    rts-pin = <5>;
    cts-pin = <7>;
    cts-pull-up;
};
需要说明的是我这个例子是从3.2 之前的代码里摘取出来的,里面还有label property。新版本的代码我还没有。

参考 :Zephyr 3.2.0 - Zephyr Project

你可能感兴趣的:(Zephyr,linux,嵌入式,Zephyr,OS)