我正在Qt上开发GUI应用程序,我正在使用UART,GPIO和CAN外设。
如何将信号从内核空间发送到相关外设的用户空间,如接收中断?
编辑:我需要这个,因为我不知道它什么时候会来CAN总线的Rx信号,我想捕捉瞬间CAN总线的Rx信号。我认为,如果我定期阅读这些消息,就会错过它们。
如果您有不同的解决方案,请写信给我。
发布于 2021-08-16 05:34:17
内核API中有kill_pid()过程,但你可能需要使用另一种通知方法,而不是发送信号。内核如何知道信号应该发送到哪个进程ID?例如,我建议你使用字符设备或netlink套接字来通知用户空间一些事件。然后在Qt应用程序中使用select()方法。第二件事--如果每秒会有很多中断,该怎么办?
编辑:在我看来,在这种情况下从用户空间捕获RX信号是非常糟糕的想法。在非常快速的传输中,它只会丢失数据。如果您计划从用户空间从CAN总线读取数据-这是行不通的。读取RX信号必须在内核空间完成,然后信息应该通过字符设备、netlink套接字或类似的东西发送到用户空间-就像我前面提到的那样。
https://stackoverflow.com/questions/68798445
复制