【发布时间】:2016-02-22 07:08:25
【问题描述】:
我需要编写一个能够在串口和can总线端口上读写的驱动程序。
串行端口是通过sigaction() 和事件处理程序实现的。当我尝试为 can 总线实现同样的事情时,只会通知最后一个事件处理程序,因为可能只是分配给 sigaction() 的事件句柄。
有没有其他办法可以解决这个问题?
【问题讨论】:
标签: c linux io serial-port can-bus
我需要编写一个能够在串口和can总线端口上读写的驱动程序。
串行端口是通过sigaction() 和事件处理程序实现的。当我尝试为 can 总线实现同样的事情时,只会通知最后一个事件处理程序,因为可能只是分配给 sigaction() 的事件句柄。
有没有其他办法可以解决这个问题?
【问题讨论】:
标签: c linux io serial-port can-bus
您的信号处理程序需要确定发出信号的原因并采取适当的行动。您可能想要使用 sigprocmask() 阻止更多信号,因为您可能会在信号处理程序中被中断,检查串行端口和 CAN 总线上是否有任何数据可用,将其复制出来或设置您需要的任何标志到,然后在信号处理程序结束时取消阻塞信号。
【讨论】: