我正在使用集成 CAN 总线接口对嵌入式硬件进行测试。该驱动程序提供 Linux Socket API。
我试图看到限制:我有一个尽可能快地写入 CAN 帧的发送器和一个连续读取的接收器。
片刻之后,接收器收到一个错误帧,表明 RX 溢出。我对此没有任何问题,这是正常的和预期的。
但我的问题是为什么此时没有收到更多帧?(设置了 restart-ms 选项)
我预计会出现一些丢帧和其他 RX 缓冲区错误,但不是接收结束。
在与socket-can开发人员和我的设备提供商交换电子邮件后,这是驱动程序中的一个错误。同时发布了一个补丁,将 at91_can 迁移到新的rx_fifo架构。 这个补丁修复了这个问题。