Arlleex 122 21 февраля, 2020 Опубликовано 21 февраля, 2020 · Жалоба Приветствую! Есть борда с Linux на борту. Она по UART подключена к микроконтроллеру, который гоняет данные в SLIP-формате. Вопрос: есть ли в Linux готовая реализация SLIP (обрамляющие символы 0xC0, escape-ы 0xDBDC, 0xDBDD), чтобы я мог общаться со своей железкой? Желательно иметь функции что-то типа void send(void *buf, u32 len); void recv(void *buf, u32 *len); для организации простейшего обмена. Ну, или, например, передача так, как указано в прототипе выше, а прием колбэками. Что-то типа void msgproc(void *buf, u32 len) { my_struct_t s; if(len == sizeof(s)) { memcpy((void *)&s, buf, len); if(s.ledstate) LEDOn(); else LEDOff(); } } где этот msgproc будет дергаться всякий раз, когда с последовательного порта прилетело что-то внятное и закодированное SLIP-ом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 2 21 февраля, 2020 Опубликовано 21 февраля, 2020 (изменено) · Жалоба а через ppp контроллер не умеет? это в линуксах точно есть, а slip это совсем древняя вещь, но если его поднять (или ppp), то потом уже не надо функций send/recv, потом уже можно через tcp/udp/ip сокеты работать Изменено 21 февраля, 2020 пользователем gridinp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 122 21 февраля, 2020 Опубликовано 21 февраля, 2020 · Жалоба 31 минуту назад, gridinp сказал: а через ppp контроллер не умеет? это в линуксах точно есть... Контроллер сеть не умеет и не планируется. Его код прост и в целом девайс свои функции выполняет корректно. А вот Linux, как обычно, обосрался приходится пилить или искать что-то готовое. Казалось бы, простейшая вещь... SLIP штука, может, и древняя, но актуальности своей не потеряла в своей области применения. Использую повсеместно. Грубо говоря: есть блок, который по UART-у обменивается пачками данных, завернутых в SLIP-кадры. Поддержать этот обмен в Linux (почему-то?) для моего, скажем так, заказчика, стало камнем преткновения. Использовать готовое он с горем пополам может, а свой драйвер написать - нет. Вот я сижу и думаю; SLIP лет 30 уже не девочка. Неужели никто не соединял девайсы по UART-у с этим фреймером, используя на Linux-стороне готовые, м.б. утилиты типа raw mode для SLIP, хз как правильно объяснить. Вот я и хотел какой-то консультации, в какую сторону пнуть этому самому заказчику, куда копать хотя бы ему. Сам я в Linux копать не хочу, сейчас задача каким-то образом посодействовать заказчику и забыть весь этот секс как страшный сон. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 32 21 февраля, 2020 Опубликовано 21 февраля, 2020 · Жалоба Если заказчик хочет SLIP - пусть ручку позолотит. Глядишь и накопается что-то в Linux'e. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 3 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба 13 hours ago, Arlleex said: Он же простой. Я когда-то просто взял и написал прием и передачу на C. Ой уже 20 лет назад!!!!!!!!!!!!!! Тогда еще CSR чип не имел апликации внутри, а использовался SLIP как транспортный протокол для HCI. Какой драйвер? Это же не устройство. Просто распаковка и упаковка в SLIP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 2 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба в моих ubuntu и raspbian есть slattach Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба 12 hours ago, Arlleex said: Контроллер сеть не умеет и не планируется. Его код прост и в целом девайс свои функции выполняет корректно. А вот Linux, как обычно, обосрался приходится пилить или искать что-то готовое. https://lmgtfy.com/?q=SLIP+protocol+linux А это точно был линукс - тот кто обосрался? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 32 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба 12 minutes ago, one_eight_seven said: https://lmgtfy.com/?q=SLIP+protocol+linux А это точно был линукс - тот кто обосрался? Нет - это был тот, который между стулом и клавиатурой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 122 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба 47 минут назад, x893 сказал: Нет - это был тот, который между стулом и клавиатурой. Именно. Но что имеем, то имеем. На окнах я графическую приложуху написал, работает как часы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба 2 hours ago, Arlleex said: На окнах я графическую приложуху написал, работает как часы. Т.е. под игровой прошивкой нашел нужные библиотеки или что там еще, а в операционной системе — нет? Ну-ну… Чуть ли не по первой ссылке из выдачи гугола можно разобраться, как в линуксе с этим протоколом работать. Открываем сокет, читаем данные... Элементарно! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 122 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба 1 час назад, Eddy_Em сказал: Т.е. под игровой прошивкой нашел нужные библиотеки или что там еще, а в операционной системе — нет? Ну-ну… Курлык!? О чем речь вообще? Какие нафиг библиотеки? C++ Builder VCL + WinAPI для работы с COM-портом весь мой инструмент. Говорю, для проверки своего железа я на Windows накатал прогу, которая также должна будет работать на его плате с Linux-ой (по такой же логике). 1 час назад, Eddy_Em сказал: Чуть ли не по первой ссылке из выдачи гугола можно разобраться, как в линуксе с этим протоколом работать. Открываем сокет, читаем данные... Элементарно! SLIP - это еще не протокол! Это фреймер, работающий ниже протокольного уровня. Покажите мне по первой ссылке в гугле, как мне на Linux тупо передавать и принимать пакеты данных, завернутые в байт-стаффинг. Элементарно, блин... По первым ссылкам гугла я уже ездил и там речь только о работе с сетевыми сокетами. А оно мне нафиг не нужно. Мне куда проще надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба Если надо куда проще, то пишется все самостоятельно. Там же странички 3-4 кода… Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба 3 минуты назад, Arlleex сказал: О чем речь вообще? Какие нафиг библиотеки? C++ Builder VCL + WinAPI для работы с COM-портом весь мой инструмент. Я, если честно, тоже не понял, что такого есть в винде, чего не нашлось в линуксе? Нужна замена C++ Builder-у что ли? Если да, то это Qt Creator. С последовательным портом работать умеет, формочки клепать можно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 122 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба 2 минуты назад, Eddy_Em сказал: Если надо куда проще, то пишется все самостоятельно. Там же странички 3-4 кода… В том и дело... Только что, AHTOXA сказал: Я, если честно, тоже не понял, что такого есть в винде, чего не нашлось в линуксе? Опыта. Я на МК написал, на ПК написал и проверил, что все огонь. За кого-то писать не собираюсь, максимум - вразумить каким-то образом и направить в нужное русло. К сожалению, система построена так, что прогнуться придется мне, если товарищ линуксоид не поднимет сраный UART на своей борде. Это, конечно, жутко бесит, но деваться некуда. Как оказалось, "я доверяю всему готовому и не доверяю самодельному коду" (с) Ппц, у меня панический смех Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 22 февраля, 2020 Опубликовано 22 февраля, 2020 · Жалоба А, я вроде понял. Нужно состыковать вашу железку с линуксом, и вы не знаете, как доказать работоспособность железки. Я в таких случаях пишу тестовый скрипт на питоне. Питон работает и в винде, и в линуксе, и прочитать его может почти любой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться