gpt4 book ai didi

embedded-linux - 在 libgpiod 中使用 ctxless 函数是更糟还是更好?

转载 作者:行者123 更新时间:2023-12-02 02:45:47 25 4
gpt4 key购买 nike

有没有熟悉 libgpiod 的人可以回答这个问题:

使用 ctxless 函数而不是调用单个函数来操作芯片线(或一般情况下)是否有任何缺点?例如,要打开一条线,我可能会这样写:

struct gpiod_chip* chip = gpiod_chip_open_by_name("gpiochip2");
struct gpiod_line* line = gpiod_chip_get_line(chip, 10);
gpiod_line_request_output(line, "foo", 0);
gpiod_chip_close(chip);

或者我可以简单地使用一个调用:
gpiod_ctxless_set_value("gpiochip2", 10, 1, false, "foo", NULL, NULL);

你什么时候会使用一个?

最佳答案

ctxless 函数非常适合快速设置或获取 GPIO 的值。但是,我会在您的程序的整个生命周期中将其保留一次。

原因是使用 ctxless 函数,libgpiod 必须始终重做相同的设置(打开 gpiochip,请求线路,设置其方向),然后获取或设置值。

如果您在程序中多次读取或设置该值,您可能不应该使用 ctxless 函数。

此外,在您的程序生命周期内保留请求的行绝对是一件好事,这将阻止任何其他程序使用该 GPIO。

关于embedded-linux - 在 libgpiod 中使用 ctxless 函数是更糟还是更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55166203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com