Uploaded by Владимир Данилов

шина CAN - Как получать данные CAN в драйвере устройств

advertisement
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
Download