SocketCAN прекращает чтение после переполнения RX, это нормально?
Я делаю тесты на встроенном оборудовании со встроенным интерфейсом шины CAN. Драйвер предоставляет Linux Socket API.
Я пытаюсь увидеть пределы: у меня есть один передатчик, который записывает кадры CAN как можно быстрее, и приемник, который читает постоянно.
Через некоторое время приемник получает сообщение об ошибке кадра, сигнализирующее о переполнении RX. У меня нет проблем с этим, это нормально и ожидаемо.
Но мой вопрос: почему в этот момент больше не получен кадр? (Опция restart-ms установлена)
Я ожидал, что некоторые пропущенные кадры и другие ошибки буфера RX, но не конец приема.
1 ответ
После обмена электронными письмами с разработчиками сокетов и моим провайдером устройств это была ошибка в драйвере. Тем временем был выпущен патч для перехода at91_can к новой архитектуре rx_fifo. этот патч исправит проблему.