Zephyr---定义用户device tree

开发环境:VSCode + nRF52840-DK

1.VSCode 导入例程zephyr\samples\basic\blinky

2.在工程目录blinky下添加如下文件目录

 

 2.1 boards\nrf52840dk_nrf52840.overlay

文件名称xxx.overlay, 其中xxx需与xxx.dts的名称一致

/ {
    test {
        compatible = "test-ctrl";
        test-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;//需以-gpios结尾
label = "Test GPIO"; }; };

2.2 dts\bindings\test-ctrl.yaml

Note:必须放在dts\bindings目录下,vscode默认编译时才能找到该文件

description: TEST CTRL parent node

compatible: "test-ctrl"

properties:
    label:
      required: true
      type: string

    test-gpios: #需以-gpios结尾
    type: phandle-array required: true

3. 添加测试代码读取以上定义的节点

	printk("lable: %s\r\n", DT_PROP(DT_INST(0, test_ctrl), label));
	printk("pin: %d\r\n", DT_GPIO_PIN(DT_INST(0, test_ctrl), test_gpios));

4.下载到nRF52840-DK,可以在串口看到如下打印信息

*** Booting Zephyr OS build v2.6.99-ncs1-1  ***
lable: Test GPIO
pin: 11

  

 

 

 

 

 

posted @ 2021-11-25 12:11  非正式码农  阅读(370)  评论(0编辑  收藏  举报