我在网上看到你不能在用户空间注册中断。做类似事情的方法是-
1)让Linux内核模块/驱动程序在中断检测上向用户空间发送一个异步事件
2)在用户空间中有一个线程,该线程在设备节点上轮询该事件。
我已经编写了一个内核模块,它在GPIO pin的上升沿上注册事件,现在我想把它传递给用户空间。
有人能教我怎么做吗-
1)将事件从内核空间发送到用户空间
2)在用户空间中创建线程以轮询该事件
谢谢!
最佳答案
您可以使用Netlink套接字将事件从内核空间发送到用户空间。然后,您可以在用户空间中生成一个线程来侦听此Netlink套接字。这可以使用用户空间应用程序中的select()
或epoll()
函数来完成。http://www.linuxjournal.com/article/7356是一个很好的参考。