07.12.2021, 18:48 шина CAN - Как получать данные CAN в драйвере устройства Linux? - Переполнение Стека Как получить данные CAN в драйвере устройства Linux? Спросили 1 год, 7 месяцев назад 1 Активен 1 год, 7 месяцев назад Просмотрено 130 раз Я хочу прочитать шину CAN и получить данные с определенного устройства на шине CAN. Я реализовал это ранее с помощью api связи сокетов, доступного в пользовательском пространстве (sys/сокет). Теперь у меня есть аналогичное требование, но на этот раз я работаю над драйверами устройств, которые работают в пространстве ядра. Я полагаю, что та же связь с сокетом недоступна в пространстве ядра, поэтому я предполагаю, что не могу скомпилировать модуль ядра с помощью #include . Подход, к которому я пришел, заключается в создании драйвера устройства для создания устройства и поддерживающей программы пользовательского пространства для взаимодействия с ним и предоставления данных CAN с помощью сокетной связи. Если есть какойлибо лучший подход, пожалуйста, предложите мне. linux-драйвер устройства can-ш ина сокеткан Поделиться Улучшите этот вопрос Подписаться задано 29 апреля 20 в 12:57 Санджай Варгезе 21 3 Итак, что вы сделали до сих пор? Что это за конкретный вопрос? –0андрий 30 апреля 20 в 7:54 Я использовал api SocketCAN в коде пользовательского пространства в другом приложении для получения данных из интерфейса CAN . Но то же самое нельзя использовать в модуле ядра. Мне нужен альтернативный вариант, который я могу использовать в модуле ядра для чтения данных CAN – Санджай Варгезе 1 мая 20 в 11:46 Да, и мой вопрос в том, что вы сделали после этого, когда обнаружили, что API пользовательского пространства и пространства ядра совершенно разные. –0андрий 1 мая 20 года в 13:36 Прямо сейчас я выполняю связь с сокетом can. и просто передаем данные после синтаксического анализа из кода пользовательского пространства в драйвер устройства. Драйвер устройства, получив полное сообщение, обновляет его в памяти. я также наткнулся на библиотеку candev в linux, которая работает в пространстве ядра. но я еще не нашел ни одной хорошей ссылки, чтобы понять все его функции, которые я мог бы использовать. – Санджай Варгезе 5 мая 20 в 11:10 Оригинальный текст: and just passing the data after parsing from the user space code to the device driver. Предложить перевод Присоединяйтесь к Stack Overflow, чтобы учиться, делиться знаниями и строить свою карьеру. https://stackoverflow.com/questions/61502349/how-to-receive-can-data-in-a-linux-device-driver электронную почту 1/1