gpt4 book ai didi

c - GPIO 输出状态如何在进程退出后继续存在?

转载 作者:行者123 更新时间:2023-12-05 03:57:16 25 4
gpt4 key购买 nike

从以前已知的 sysfs 接口(interface),任何人都可以设置合理配置的 GPIO 线的输出,并且此输出将保持该值,直到 SoC 重置或有人更改线值。使用 GPIOlib,当消费者关闭 gpiochip 的句柄时,该值将重置为初始值。假设 GPIO 线路控制一个液压系统,该系统打开或关闭一扇门 - 当应用程序(消费者)因任何原因被杀死时,门打开或关闭(可能关闭) - 无论默认线路设置是什么。

我进行了一些网络搜索并阅读了文档 ( https://www.kernel.org/doc/html/latest/driver-api/gpio/index.html ),尝试了 https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ 提供的示例.

最后 - 结果总是一样的:当进程退出时,线路被重置。是否有机会保留特定的行值?

最佳答案

来自 gpioset.c ( https://github.com/brgl/libgpiod/blob/master/tools/gpioset.c ) 的来源:

printf("Note: the state of a GPIO line controlled over the character device reverts to default\n");
printf("when the last process referencing the file descriptor representing the device file exits.\n");
printf("This means that it's wrong to run gpioset, have it exit and expect the line to continue\n");
printf("being driven high or low. It may happen if given pin is floating but it must be interpreted\n");
printf("as undefined behavior.\n");

按设计工作...

对我来说,我错过了一个功能,线路保持(锁定)在我设置的状态。与sysfs的导出机制相比,绝对是一种倒退。

关于c - GPIO 输出状态如何在进程退出后继续存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58749989/

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