реклама на сайте
подробности

 
 
> Рациональное применение DMA, Обращаюсь к коллективному разуму.
SasaVitebsk
сообщение Dec 19 2012, 20:17
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Доброго времени суток. Делаю новое изделие. Проект большой. FreeRTOS, GLCD+GUI, измерения и так далее. Проц stm32f407. Из сетевых - 3 порта USART c MODBUS + ETHERNET. Хотелось бы создать одну задачу по USART и запустить 3 экземпляра. Есть следующий вопрос. Просматривается, что при реализации посредством DMA объём потребляемой памяти увеличится. Кроме того с ETERNET никогда ранее не работал. Поэтому оценить пока не могу. Планирую LwIP применить. Возможно ещё при записи на AT45DB применю DMA, хотя это и не критично. Там объём работы незначителен.
Так вот вопрос. Не слишком ли много будет загрузки шины. 3 USART + ETH. Может при такой загрузке эфективность будет падать и выигрыш будет близкий к нулю, а расход памяти увеличится? Один USART будет плотно загружен на 115200 для примера. Остальные эпизодически. На ETH тоже MODBUS/TCP. То есть загрузка врятли плотная.
Кто подскажет в общих чертах? Стоит ли связываться с DMA на USART?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение Dec 19 2012, 20:31
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Не, падажжите. sm.gif
Если у Вас модбас на усартах, то хоть в RTU хоть в ASCII варианте DMA реально работает только по передаче. Правильно?
А на прием - чем оно поможет? При этом с трудом можно представить ситуацию, чтобы шину подгрузить. Это к ETH надо еще штук 40 усартов, чтобы проблема была...
ЗЫ
Все равно при приеме уарта и crc16 на лету надо считать и таймауты сбрасывать либо SOF/CR/LF ловить.

Сообщение отредактировал _Pasha - Dec 19 2012, 21:18
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 20 2012, 04:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Вообще не понимаю зачем народ так упорно пытается юзать UART через DMA???
Ну конечно если скорости из ряда стандартных до 115200 (если больше - тогда ещё есть резон).
При скорости 115200 частота прерываний при программной реализации == 115200/10/14 == 823Гц (TX IRQ ещё меньше) - для такого процессора это несущественно (даже на частотах <48МГц тактовой загрузка CPU на ISR будет не более сотых долей процента).
И гемору на порядок меньше.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Dec 20 2012, 05:14
Сообщение #4


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(jcxz @ Dec 20 2012, 08:59) *
115200/10/14 == 823Гц (TX IRQ ещё меньше)


Откуда /14 ?
И почему по TX должно быть меньше, чем по RX ?


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016