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