gpt4 book ai didi

linux-kernel - GPIO 更改状态时如何更新 sysfs?

转载 作者:行者123 更新时间:2023-12-04 05:01:19 32 4
gpt4 key购买 nike

假设 gpio X 可以在 sysfs 中作为输入引脚导出,之后将在/sys/class/gpio/中创建一个名为 gpioX 的目录。 gpioX/包含一些文件,例如表示 gpio X 的当前状态(高或低)的“值”。

当施加到引脚 X 的信号改变其状态(例如从低到高)时(在内核空间中)会发生什么?

我的意思是,在转换之前 gpioX/value 包含“低”,但之后它将包含“高”值。操作系统如何更新此文件?

我认为需要中断机制。是否使用中断机制来更新sysfs?

最佳答案

How is this file updated by the OS? I think that an interrupt mechanism is required.


它不需要中断机制,除非它支持轮询( man poll )或替代异步通知。至少在大多数版本中,/sys/class/gpio/仅在有人读取文件时才读取 GPIO 级别。
sysfs、debugfs、configfs、procfs 等是虚拟文件系统。当您访问该文件时,Linux 内核中的代码会运行以提供该值。 sysfs 只提供类似文件的接口(interface);这并不意味着它有实际状态的支持。状态是可以随时读取的 GPIO 电平。
gpio_value_show()似乎是当前的实现。您用中断描述的内容是可能的。可以通过 sysfs_set_active_low()函数或 sysfs 文件/sys/class/gpio/gpioN/edge.如果 GPIO 不支持中断,写入文件可能会返回错误。见 gpio.txt更多(特别是对于您的特定版本的 Linux)。

关于linux-kernel - GPIO 更改状态时如何更新 sysfs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19744811/

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