Jump to content

    
Sign in to follow this  
Arlleex

SLIP в Linux: простой обмен между устройствами

Recommended Posts

35 minutes ago, mantech said:

Как и у меня, причем такое впечатление, что половина из этих клиентов еще с пальм не слезла. Очень остро стоит вопрос обновления ПО, под виндой - это скопировать пару экзешников, как это под линем делать - не представляю, а это им еще объяснить нужно будет...

В том и дело, что вот тут вообще не нужно ни объяснять. ни даже знать вашим клиентам ничего не надо. Ознакомьтесь с пакетами и управлением пакетами. Но если ваши клиенты сидят под виндой, то, конечно, им нужно ПО для работы с виндой. Тут опять же несколько путей - фронтенд на html и браузер, второй путь - кросс-компиляция, третья - нативная разработка под виндой. Пока не нужна поддержка с айпадиков, ведройдиков, и прочего - последний путь приемлем. Но он не является лучшим.

 

39 minutes ago, mantech said:

Так-то это очень узкая ниша со своей спецификой, я честно говоря, вообще не видал живьем отечественные МК или СОКи, и скорее всего это еще долго не представится, поэтому что там за ПО для них - без понятия...

То же самое, что и для иностранных. Основа подо всем этим - gcc/armcc/icc; отладчик - gdb; интерфейс - чаще всего openOCD. Часто это всё жёстко патчится под свои МК, иногда с апстримом (в случае ST и близких к ним) или без апстрима (в случае, например, NXP).
Я про ПО, которое поставляется для пользователей.

Share this post


Link to post
Share on other sites
21 минуту назад, one_eight_seven сказал:

То же самое, что и для иностранных. Основа подо всем этим - gcc/armcc/icc; отладчик - gdb; интерфейс - чаще всего openOCD.

Да вот видимо не то же... Про свой путь освоения МК скажу так, если б мне тогда сказали, что для того, чтобы написать "Hello World" мне нужно было настроить и освоить " gcc/armcc/icc; gdb; openOCD." я бы никогда не стал заниматься МК, а ушел бы в нишу вебкодеров. Благо в то время был IAR, на всю его установку и освоение ушло 2 дня по паре часов в день. Т.е. либо эти МК будут осваивать только "продвинутые" спецы, либо "из под палки", остальным привычнее будет то, что поддержано IAR, Keil и т.д. ИМХО, разумеется.

Share this post


Link to post
Share on other sites
1 minute ago, mantech said:

Да вот видимо не то же...

Как вы выборочно читаете...
Я говорю то, что знаю. Основа подо всем этим одна и та же. Вопрос в том, что кто-то придаёт значение тому, что нужно это всё окуклить под каким-нибудь эклипсом, а кто-то ленится это делать. И у иностранцев тоже.

Share this post


Link to post
Share on other sites
4 hours ago, Arlleex said:

Только ЗП у меня от этого не поменяется. Так что нахрен надо.

А ничего, что под линуксом программировать на пару порядков проще, чем под вантузом?

3 hours ago, mantech said:

Нет никакого желания становится маньяком командной строки

Сочувствую. Но все-таки надеюсь, что до лоботомии не дойдет!

1 hour ago, mantech said:

Тем, для кого главное удобство и простота, скорость создания рабочей программы, создание ГУИ легко и непринужденно - однозначно винда.

Батенька, это же бред из разряда "назло мамке отморожу уши"!!!

 

Говорить о том, что вантуз - операционная система, может только полный потребитель легкого поведения. А это, к сожалению, даже в психушке лечится только лоботомией…

Edited by Eddy_Em

Share this post


Link to post
Share on other sites
7 минут назад, Eddy_Em сказал:

Говорить о том, что вантуз - операционная система, может только полный потребитель легкого поведения. А это, к сожалению, даже в психушке лечится только лоботомией…

К сожалению, по таким заявлениям очень просто навесить на Вас ярлык того самого сектанта:spiteful:

Все симптомы - пена у рта и красные глаза, и все только из-за того, что у кого-то другие взгляды на вещи.

Share this post


Link to post
Share on other sites
1 час назад, Arlleex сказал:

Все симптомы - пена у рта и красные глаза,

"Белая горячка - типичный случай" (с) :biggrin:

2 часа назад, one_eight_seven сказал:

Как вы выборочно читаете...

NXP, ST, Cypress ... Все имеют поддержку профессиональных сред разработки или я что-то упускаю?

Edited by mantech

Share this post


Link to post
Share on other sites
24 minutes ago, mantech said:

NXP, ST, Cypress ... Все имеют поддержку профессиональных сред разработки или я что-то упускаю?

Конечно. Берут eclipse, делают свои плагины и вот тебе уже профессиональная среда.

А заодно и четверг с пятницей. :)

Share this post


Link to post
Share on other sites
On 2/22/2020 at 4:27 PM, Arlleex said:

По первым ссылкам гугла я уже ездил и там речь только о работе с сетевыми сокетами. А оно мне нафиг не нужно. Мне куда проще надо.

а что еще проще сокетов бывает ?  попробуйте создать raw socket и забиндить его на SLIP интерфейс который появляется после slattach (sl0) чтобы получать/отправлять сырые данные. Вот тут есть примеры для изернета

http://www.microhowto.info/howto/capture_ethernet_frames_using_an_af_packet_socket_in_c.html

Share this post


Link to post
Share on other sites
10 минут назад, sasamy сказал:

а что еще проще сокетов бывает ?  попробуйте создать raw socket и забиндить его на SLIP интерфейс который появляется после slattach (sl0) чтобы получать/отправлять сырые данные. Вот тут есть примеры для изернета

http://www.microhowto.info/howto/capture_ethernet_frames_using_an_af_packet_socket_in_c.html

Сырые данные, это именно сырые данные или IP over SLIP? Raw socket и raw data - вещи ортогонально разные...

Share this post


Link to post
Share on other sites
5 minutes ago, Arlleex said:

Сырые данные, это именно сырые данные или IP over SLIP?

сырые данные это буфер который принимает драйвер в ядре - пофиг что там IP или нет, к вам этот буфер попадет минуя сетевой стек ядра, У вас же не IP вот и делайте с ним что хотите - судя по коду драйвер сразу выпиливает из буфера ESC последовательности и добавляет при отправке

https://elixir.bootlin.com/linux/v5.5.6/source/drivers/net/slip/slip.c#L711

Share this post


Link to post
Share on other sites
6 минут назад, sasamy сказал:

сырые данные это буфер который принимает драйвер в ядре - пофиг что там IP или нет...

Ладно, будут лаги в самописном - всучу ему эту ссыль, пусть разбирается. Спасибо.

Share this post


Link to post
Share on other sites
3 hours ago, Arlleex said:

Ладно, будут лаги в самописном

гы, а зачем вы тогда тему создавали ? raw socket даст ровно то что вы спрашивали в самом начале - данные после фреймера SLIP и возможность обернуть произвольный буфер в фрейм SLIP, сомневаюсь что в винде есть что-то подобное готовое - Linux на голову выше винды и гибче.

Share this post


Link to post
Share on other sites
7 minutes ago, AHTOXA said:

У него же по UART данные ходят. А от SLIP только фрейминг.

а какая разница ? после slattach появится сетевой интерфейс sl0 - для него конечно будут особенности, надо пробовать, но в остальном интерфейс системы одинаковый для всех утсройств - ppp, slip, wlan, eth. Драйвер slip в ядре и есть только фреймер - он заполняет буфер skb декапсулированными данными, помечает что в буфере IP фрейм и отсылает в сетевой стек, когда вы получите этот буфер в неизменном виде - плевать что там доллжен быть IP фрейм - делайте с ним что вам нужно.

Edited by sasamy

Share this post


Link to post
Share on other sites
1 час назад, sasamy сказал:

гы, а зачем вы тогда тему создавали?

Потому что к текущему моменту уже написали (вроде как) самописный парсер SLIP.

Как он будет работать утверждать не ручаюсь, поэтому если будут баги, то пусть товарищ копает в сторону готовой реализации, которую предоставили Вы.

 

54 минуты назад, sasamy сказал:

Драйвер slip в ядре и есть только фреймер - он заполняет буфер skb декапсулированными данными, помечает что в буфере IP фрейм и отсылает в сетевой стек, когда вы получите этот буфер в неизменном виде - плевать что там доллжен быть IP фрейм - делайте с ним что вам нужно.

Вот тут, если можно, подробнее.

Допустим, моя железка отправляет фрейм "C0 12 34 56 78 C0".

Какой путь проделает этот фрейм от входа UART на Linux-борде до получения буфера с данными "12 34 56 78" в линушном приложении?

И наоборот: допустим, хочу отправить с Linux-машины данные "00 AB CD EF" на свой девайс.

Какой путь проделают эти данные до инкапсуляции в кадр "C0 00 AB CD EF C0" и вывода его на лапку Tx UART-модуля этой самой Linux-борды?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this