Easyelectronics.ru • Просмотр темы - Нежданные задержки между посылками UART в Debian.

Easyelectronics.ru

Электроника для всех
Текущее время: 21 авг 2018, 04:52

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 18 ноя 2015, 18:51 
Старожил

Зарегистрирован: 19 июн 2012, 14:17
Сообщения: 3440
margadon писал(а):
Цитата:
надо смотреть в сторону ОСРВ ядра

#uname -a
Linux a20-olimex 3.4.90+ #11 SMP PREEMPT Wed Aug 20 08:20:32 EEST 2014 armv7l GNU/Linux

Обычное ядро с включенным вытеснением. Где rt?

margadon писал(а):
Цитата:
и/или переносить код обработки пакетов в более привилегированный контекст.

И это делали, с помощью nice. безрезультатно.

nice устанавливает приоритет, на контекст он не влияет никаким образом. Питон как выполнялся в пользовательском контексте, так и выполняется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 19 ноя 2015, 13:55 
Старожил

Зарегистрирован: 17 сен 2013, 13:53
Сообщения: 3158
margadon писал(а):
драйвер UART вот тут: https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/tty/serial/serial_core.c
там есть метод static int uart_write(struct tty_struct *tty,const unsigned char *buf, int count)
со строки 498 начинается.


Это не драйвер UART, это драйвер консоли, которая может быть поверх UART, а может быть поверх чего угодно, хоть TCP сокета.

margadon писал(а):
Цитата:
То, что должен делать системный процесс, делает пользовательский.

fr0ster, как Вы это определили?
под спойлером методы осуществляющие чтение и запись из модуля pyserial, которым пишем и читаем из UARTa.:
откуда следует что именно моя программа отсылает данные непосредственно в UART?


А я и не говорю, что ваша программа отсылает в UART, как раз я и говорю, что контролировать пакеты на уровне UART вы хотите из программы, хотя ваша программа ниже уровня консоли не опускается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 19 ноя 2015, 18:11 
Только пришел

Зарегистрирован: 12 ноя 2015, 18:10
Сообщения: 8
Цитата:
Это не драйвер UART, это драйвер консоли, которая может быть поверх UART, а может быть поверх чего угодно, хоть TCP сокета.

Подскажите пожалуйста, Где драйвер UART искать?
Цитата:
Обычное ядро с включенным вытеснением. Где rt?

Ок, сейчас буду пробовать патчить ядро.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 19 ноя 2015, 18:37 
Старожил

Зарегистрирован: 17 сен 2013, 13:53
Сообщения: 3158
margadon писал(а):
Цитата:
Это не драйвер UART, это драйвер консоли, которая может быть поверх UART, а может быть поверх чего угодно, хоть TCP сокета.

Подскажите пожалуйста, Где драйвер UART искать?


Нигде, скорее всего вам придется писать драйвер самим, если вам важны временные характеристики приема-отсылки пакетов. Разделить программу на две части, ту часть, которой критична синхронная работа с UART вынести в ядерный модуль драйвера. За основу можете код того же консоли взять, ссылку на которую приводили. А остальная часть функционала программы будет асинхронно общаться с драйвером модуля.
Соответственно вся механика отсылающая пакеты и проверяющая ответы будет в ядре, а остальная часть будет хоть на питоне написанная, хоть на баше. Главное уровень, на котором оперируют пакетами вы спрячете в драйвер, который сможер работать с UART синхронно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 02 дек 2015, 12:49 
Только пришел

Зарегистрирован: 12 ноя 2015, 18:10
Сообщения: 8
Цитата:
Разделить программу на две части, ту часть, которой критична синхронная работа с UART вынести в ядерный модуль драйвера.

Почему Вы думаете что сейчас это не так происходит?
Разве не ядро сейчас пишет у меня данные в буфер UART? ведь я этого в своей программе нигде не делаю, а данные в UART идут...
Цитата:
Нигде, скорее всего вам придется писать драйвер самим,

Цитата:
Это не драйвер UART, это драйвер консоли

ок, а кто тогда шлет данные в UART?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 04 дек 2015, 18:45 
Только пришел

Зарегистрирован: 12 ноя 2015, 18:10
Сообщения: 8
Цитата:
Обычное ядро с включенным вытеснением. Где rt?
Собрал RT ядро. Не помогло. задержки остались, хотя период их возникновения увеличился с 0.3 сек до примерно 1 сек.
Если кому надо rt-ядро 3.4.104 -rt128 для Olinuxino Lime A20 тут можно скачать образ
img с linux-sunxi готовый для записи на sd карту. (4 гига) можно скачать тут : https://yadi.sk/d/mmXIZZkPkyGNw
Если надо GUI, оно появляется после apt-get update apt-get upgrade


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 07 дек 2015, 14:26 
Старожил

Зарегистрирован: 17 сен 2013, 13:53
Сообщения: 3158
margadon писал(а):
Цитата:
Разделить программу на две части, ту часть, которой критична синхронная работа с UART вынести в ядерный модуль драйвера.

Почему Вы думаете что сейчас это не так происходит?
Разве не ядро сейчас пишет у меня данные в буфер UART? ведь я этого в своей программе нигде не делаю, а данные в UART идут...


Вы пишете не в UART, а в консоль.
Упрощенного говоря, UART это физический уровень, консоль лежит над ним.
Драйвер консоли не дает вам жестко контролировать тайминги и время отклика.

margadon писал(а):
Цитата:
Нигде, скорее всего вам придется писать драйвер самим,

Цитата:
Это не драйвер UART, это драйвер консоли

ок, а кто тогда шлет данные в UART?


Драйвер консоли. Но вам важнее не кто и куда, а как. Вам нужен по сути драйвер вашего протокола обмена пакетами через UART. Его только писать самому.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 07 дек 2015, 14:28 
Старожил

Зарегистрирован: 17 сен 2013, 13:53
Сообщения: 3158
margadon писал(а):
Собрал RT ядро. Не помогло. задержки остались, хотя период их возникновения увеличился с 0.3 сек до примерно 1 сек.


Собственно это сразу и говорилось. Консоль не способ работы с UART если вам нужно котролировать тайминги пакетов ваших, а не консольных.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 07 дек 2015, 17:55 
Только пришел

Зарегистрирован: 12 ноя 2015, 18:10
Сообщения: 8
Цитата:
Консоль не способ работы с UART если вам нужно котролировать тайминги пакетов ваших, а не консольных

Т.Е. брать консольный драйвер в качестве примера для своего драйвера не стоит, т.к. там с таймингами проблема?
А как мне понять какой образец будет годным?
Смотрю в код консольного драйвера.
Никак не пойму где там места, из за которых задержки возникают...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нежданные задержки между посылками UART в Debian.
СообщениеДобавлено: 07 дек 2015, 23:03 
Старожил

Зарегистрирован: 17 сен 2013, 13:53
Сообщения: 3158
margadon писал(а):
Цитата:
Консоль не способ работы с UART если вам нужно котролировать тайминги пакетов ваших, а не консольных

Т.Е. брать консольный драйвер в качестве примера для своего драйвера не стоит, т.к. там с таймингами проблема?
А как мне понять какой образец будет годным?


Вам как раз за основу взять консольный драйвер можно. А использовать сам консольный драйвер для работы с UART не стоит, вам же нужно не просто посылать пакеты в UART как в молоко, у вас вроде как свой протокол есть. Вот вам и нужно всю работу с посылаемыми пакетами и проверками реализовать в драйвере.


margadon писал(а):
Смотрю в код консольного драйвера.
Никак не пойму где там места, из за которых задержки возникают...


Задержки возникают не в драйвере, а в программе, где вы ответы на посланные пакеты проверяете.
В консольном драйвере вы это сделать не можете, он не для этого писался.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB