Управляем чем угодно откуда угодно

Краш-тест UART'а

Общие вопросы

Краш-тест UART'а

Сообщение eagafonov » 11 июн 2015, 00:28

В соседней теме возник вопрос

viewtopic.php?f=41&t=14711

Fiamma писал(а):В процессе наладки общения виртурилки и APM возникла проблема. APM выход телеметрии (UART2) подключен к UART0 виртурилки. При попытке загрузки демон последовательного порта не справляется с нагрузкой (APM, я извиняюсь, срет в канал так, что обработчик не успевает переваривать) и ядро не стартует. А если и стартует, то в админке в окне вывода системных сообщений красуется ошибка прерывания irq40. Как-нибудь можно это победить? В моей программе есть свой обработчик входящих сообщений. Я бы убила этого демона, только вот не знаю, где он живет.


Мозгом я понимаю, что чудес не бывает, и многомегаерцовый процессор без проблем сожрёт 115200 бит/сек из UART, но другая часть тела шепчет "А вдруг???"

Long story short: 115200 переваривается без особых проблем

"А теперь слайды!" (ц)

Идея - замкнуть TX и RX порта UART1, писать в него из одного процесса, читать из другого, замерять время и загрузку CPU

Часть железячно-подготовительная...

тут всё просто: открываем вики http://wiki.virt2real.ru/wiki/%D0%A1%D1 ... .D0.B8_J14 Находим UART1 На внутрееней части J1 - пины CON28 и CON29 - и замыкаем их джампером.

Ставим minicom для настройки и чтения UART

Код: Выделить всё
#> opkg-cl install minicom


Настраиваем UART1 на 115 килобит, 8 бит данных, один стоповый бит, без контроля чётности. Итого 10 бит в линии на передачу 8 бит данных.... Запомним это магическое известное всем соотношение

Код: Выделить всё
#> minicom --device /dev/ttyS1 --baudrate 115200 --8bit


Сразу после запуска выходим по Ctrl-A, Q.

В первом ssh-терминале запускаем читающую часть - cat

Код: Выделить всё
#> cat /dev/ttyS1 > /dev/null


В другой терминалке пишем в порт один блок размером 115200 случайных байт и засекаем время

Код: Выделить всё
#> time dd if=/dev/urandom of=/dev/ttyS1 bs=115200 count=1
1+0 records in
1+0 records out

real    0m10.381s
user    0m0.003s
sys     0m0.353s


10 секунд плюс минус копейки, как и предрекала теория.

Система при этом остаётся отзывчивой, web-админка web-админит, новые ssh-сессии открываются...
htop, отрытый в соседнем окне показывает, что ничего смертельного не происходит - dd и cat жрут по 10-20% CPU

В общем, жить можно.
Аватара пользователя
eagafonov
 
Сообщения: 175
Зарегистрирован: 18 сен 2013, 23:39
Откуда: Нижненовгородск

Re: Краш-тест UART'а

Сообщение Gol » 01 дек 2015, 02:55

Интересно было бы уарт до 1-2 мегабит разогнать и повторить тест :-)
Аватара пользователя
Gol
 
Сообщения: 507
Зарегистрирован: 17 фев 2012, 01:44
Откуда: Тула-Свободный-Щёкино-Тула-Москва


Вернуться в Общий раздел ("не знаю куда написать")

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

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

cron