SocketCAN 应用程序在 linux 平台上运行。启动时,它会使用适当的设置配置 canX,并在更高层 CAN 堆栈开始使用它之前启动套接字(“ip link”/“ifconfig”)。
按照设计,应用程序会关闭套接字,然后再次启动它而不会出现任何问题。但有时,TX 帧不再被发送出去,但 RX 帧仍然进来。测试从 canX 上的新套接字发送帧,例如通过新控制台,是可行的。这种情况并不总是发生,而是随机发生。
当套接字被取下并重新设置时会发生什么?描述符或其他动态分配是否已更改,导致应用程序对 canX 的使用过时?