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

 
 
> Рациональное применение 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
SasaVitebsk
сообщение Dec 20 2012, 19:27
Сообщение #4


Гуру
******

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



Цитата(jcxz @ Dec 20 2012, 07:59) *
Вообще не понимаю зачем народ так упорно пытается юзать UART через DMA???

biggrin.gif
Нет, как раз и не пользовал. Вот и спрашивал, стоит ли начинать. Правда, на LPC fifo на 16 байт было иможно было пакетом обрабатывать. Там вообще не парился.
Кстати здесь CRC зато есть. ))
===
Спасибо всем за советы. Так и поступлю. Программный UART. Если что, то потом перепишу. Лучше поупираюсь с at45db. Хотя там у меня тоже объёмы очень небольшие и смысла большого тоже не просматривается.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 21 2012, 01:55
Сообщение #5


Гуру
******

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



Цитата(SasaVitebsk @ Dec 21 2012, 01:27) *
Кстати здесь CRC зато есть. ))

В LPC177x/LPC178x тоже есть.
Go to the top of the page
 
+Quote Post



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

 


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


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