|
Много виртуальных UART, RPi3 |
|
|
|
Apr 12 2017, 16:28
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Добрый день Ну не то, чтоб я ноль прям в Linux  около того Но надо - значит надо. Есть задача такая: некий драйвер реализует в системе несколько виртуальных UART. Внешняя связь у него через один существующий - ttyS0 Драйвер от каждого виртуального UART собирает данные, заворачивает в обертку и отправляет в ttyS0 Оттуда же принимает завернутые данные и "рассовывает" по буферам соответствующих виртуальных UART Я так понимаю, мне не хватает знаний для: 1. Зарегистрировать имя в дереве устройств 2. Интерфейс драйвера UART для системы 3. Таймер для сбора данных из виртуальных портов Поможите примерами, люди добрые
|
|
|
|
|
 |
Ответов
|
Apr 19 2017, 10:31
|
Знающий
   
Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088

|
Цитата(toweroff @ Apr 18 2017, 20:19)  Товарищи, вот какой вопрос возник. Правильно ли будет забирать из драйвера данные физического порта, обрабатывать и рассовывать по виртуальным системным таймером? ИМХО, это неправильно, будить систему по каждому тику таймера, а не по приходу данных. Вообще, драйвер на уровне ядра тут лишний (как уже указывалось выше). Задача решается в userspace обычным демоном, который создает нужное вам количество char devices, после чего блокируется на read() из физического порта. Все пришедшие из "виртуальных" портов данные он пишет в физический порт, и наоборот, пришедшие из физического порта парсит, и рассовывает по "виртуальным".
--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
|
|
|
|
|
Apr 19 2017, 13:04
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(gerber @ Apr 19 2017, 13:31)  ИМХО, это неправильно, будить систему по каждому тику таймера, а не по приходу данных. Вообще, драйвер на уровне ядра тут лишний (как уже указывалось выше). Задача решается в userspace обычным демоном, который создает нужное вам количество char devices, после чего блокируется на read() из физического порта. Все пришедшие из "виртуальных" портов данные он пишет в физический порт, и наоборот, пришедшие из физического порта парсит, и рассовывает по "виртуальным". не нашел, все примеры в kernel space  или мой гугель сломался с другой стороны, если драйвер будет совершать по таймеру очень короткое действие раз эдак в 10мс, что с того? у меня ж еще вот какая загвоздка - создаваемые порты должны быть вполне себе полноценными, со всякими ioctl(), ибо на них будет садиться и звонилка модемная и еще вещи
|
|
|
|
Сообщений в этой теме
toweroff Много виртуальных UART Apr 12 2017, 16:28 nill Цитата(toweroff @ Apr 12 2017, 23:28) Пом... Apr 13 2017, 06:29 Olej Цитата(toweroff @ Apr 12 2017, 19:28) Ест... Apr 13 2017, 08:17 toweroff Проясните, пожалуйста, такой момент. Нашел я на пр... Apr 18 2017, 11:47 gerber Цитата(toweroff @ Apr 18 2017, 14:47) Куд... Apr 18 2017, 13:58  Olej Цитата(gerber @ Apr 18 2017, 16:58) Вкрат... Apr 18 2017, 14:20 krux не надо никаких самописных модулей ядра.
гуглите ... Apr 18 2017, 14:36 toweroff Значится так... Я тут нагуглил tty0tty - виртуальн... Apr 18 2017, 16:15    toweroff Цитата(Olej @ Apr 19 2017, 18:59) Как-то ... Apr 19 2017, 19:14     Olej Цитата(toweroff @ Apr 19 2017, 22:14) я о... Apr 19 2017, 21:58      toweroff Цитата(Olej @ Apr 20 2017, 00:58) Нужно б... Apr 20 2017, 04:52       Olej Цитата(toweroff @ Apr 20 2017, 07:52) Под... Apr 20 2017, 09:21        toweroff Цитата(Olej @ Apr 20 2017, 12:21) А подня... Apr 20 2017, 10:29     Tarbal Цитата(toweroff @ Apr 19 2017, 23:14) В п... May 20 2017, 21:51 toweroff В общем всем спасибо, все работает Apr 20 2017, 11:36 toweroff Поторопился...
похоже, не устанавливаются как нуж... Apr 20 2017, 20:01
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|