dus*_*abo 8 c linux epoll embedded-linux beagleboard
我正在使用gpio中断.我在"/ sys/class/gpio/gpio38/value"中有一个文件.我想在属性值发生变化时发出通知.那么我怎样才能在用户空间中实现这一目标.由于我已经收集了信息,我可以使用select(),poll()或epoll().那么这个应用哪个是正确的?或者请建议我,如果我可以使用/ proc/irq或其他东西.谢谢 :)
我在这里找到了一些可能有帮助的东西:
GPIO 信号具有类似 /sys/class/gpio/gpio42/(对于 GPIO #42)的路径,并具有以下读/写属性:
“值”...读作 0(低)或 1(高)。如果GPIO配置为输出,则可以写入该值;任何非零值都被视为高值。
如果引脚可以配置为中断生成中断,并且已配置为生成中断(请参阅“edge”的描述),则可以对该文件进行 poll(2),只要中断发生,poll(2) 就会返回触发。如果使用 poll(2),请设置事件 POLLPRI 和 POLLERR。如果使用 select(2),请在 exceptfds 中设置文件描述符。poll(2) 返回后,要么 lseek(2) 到 sysfs 文件的开头并读取新值,要么关闭文件并重新打开它以读取该值。
虽然它说它适用于“gpio42”,但我猜这可能适用于您的情况。如果没有,请在我的回答中发表评论。