在内核模块(Linux)中写入的中断可以通知Qt中正在运行的程序吗?没有用户空间程序等待/轮询?

时间:2012-12-07 15:54:49

标签: c embedded-linux interrupt

有没有来自内核模块的中断可以通知在用户空间中运行的Qt嵌入式程序?不使用ioctl的“wait_event_interruptible()”?

我希望我的程序能够正常运行,而不必“等待”或进行轮询以检查中断是否发生。一旦中断发生,程序就会做出反应

这个问题类似于我的How kernel notify a user space program an interrupt occurrs,但他正在使用“wait_event_interruptible()”

由于

1 个答案:

答案 0 :(得分:1)

您也可以尝试使用netlink(libnl)。在驱动程序中,您需要的是将单播消息发送到的pid号码。从应用程序中,您可以使用套接字的recvmsg()来等待偶数发生。

  • [app] ---- {向驱动程序发送消息} ---> [司机](司机现在知道pid&保存它)
  • [app] ------ {blocking recvmsg} --------->等待事件被提升
  • [app]< -------- {带有效载荷的消息} --- [驱动程序](将事件信息作为单播发送到pid)

希望这有帮助,

问候