1

在我的板上,我有 10 个 LED 连接到不同的 GPIO。在板的 DTS 文件中,所有引脚定义为

leds {
    compatible = "gpio-leds";
    led0: led_0 {
        gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
        label = "Green LED 0";
    };
...
    led9: led_9 {
        gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
        label = "Green LED 9";
    };
};

在代码中,我有一长串 device_get_binding/gpio_pin_configure

如何使用 UTIL_LISTIFY 以及如何正确描述 DTS 文件中的引脚阵列以使用索引控制 LED?一般来说,我希望有一个类似于 cx1276.c 驱动程序的解决方案,但在用户空间中。

4

1 回答 1

0

好的,如果没有其他人回答,我会发布我的解决方案。在 Zephyr 中处理硬件操作的最佳方式 - 编写设备驱动程序。就我而言,我将所有引脚定义放入单独的 DTS 文件中,并将整个 LED 工作组织为单个系统调用函数。它可以显示预定义的模式或即时生成。

Github Gist 及解决方案:

https://gist.github.com/Delsian/f64e7a26ebc67c3b9ea4cf04d057f15c

于 2020-07-29T09:11:34.953 回答