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

 
 
> Эффективность DMA в SAM7, Выделено из "ARM много,..."
zhevak
сообщение Sep 27 2008, 13:58
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(Cemen @ Sep 27 2008, 16:18) *
...
Направьте на верный путь, товарищи!

Это мы сечас! Это мы мигом! Уж чего-чего, а советы давать -- это мы умеем! Нас хлебом не корми, дай только возможность кого-нибудь на путь истинный поставить. Ну, теперь, Cemen, держись! Ибо вопрос Ваш прележит области религии.

Итак, будучи в аналогичном невменяемом состоянии по вопросам АРМов и задвшись таким же вопросом я попытался сравнить AT91SAM7 и LPC2000. Я не стал все мануалы и даташиты подряд читать, а сделал упор только на достаточно легковесные вещи, которые не отнимают для своего понимания много времени. Короче. Я попытался сравнить, как организованы вотч-доги и часы реального времени в SAM-ах и LPC. Мое мнение -- у LPC все это сделано как-то более правильно, продуманно. У SAM -- не очень продуманно, имеется какая-то надуманная функциональность. (ВАЖНО! Это моя субъективная точка зрения. Она может не совпадать с мнениями других людей.)

Что мне особенно нравится в LPC, кроме продуманности. Более быстрая работа ядра (72МГц против 55МГц), более четко составлено описание. Больше номенклатура изделий. Что не нравится -- два питания (+3.3В и +1.8В), но есть чипы и со встренным LDO-стабилизатором.

Наличие USB (за исключением SAM7S32) у всех SAM7 не приносит особого опреимущества. Это скорее заморочка, чем помощь. Вы делаете единичные изделия. Какая разница сколько будет стоить та или иная микросхема для Вашего устройства? -- Итоговая стоимость Вашего устройства будет на два порядка дороже самой дорогой микросхемы. Ибо Вы делаете не сотни Фордов, а Бентли ручной сборки. Научитесь ценить свое время (== себя) и все сразу встанет на свои места. Так вот, возвращаясь к USB, скажу, что если у Вас возникнет необходимость подцепить Ваш замечательный девайс к компу через USB, то цена вопроса каких-то полторы сотни рублей с одно стороны (FT232R) и неделя убитая на освоение встроенного в SAM7 USB с другой стороны. Я уже проходил это и говорб Вам с практической точки зрения. (Мой девайс собирал "живой" сигнал с датчика и отправлял поток данных в комп. Данные собирались в полевых условиях, т.е. 220В не было. Использовался ноутбук. У нотика были только USB-дырки. Прикупив FT323B и потратив полдня на прикручивание ее к девайсу, я легко закрыл проблему. Не представляю, сколько времени я вымучивал-бы USB, изучал, отлаживал... но мне кажется ну ни как не полдня. Сэкономленное время -- теже дньги!)

Стартовые платы Олмекса достаточно хорошие. Сам их юзаю, когда нужно быстро соорудить какой-нибудь стенд для исследования/производства. Что мне у них нравится -- это как правило большое монтажное поле (дырок много!!!) и наличие крепежных отверстий по краям платы. Собранная и отлаженная плата достаточно легко монтируется в подходящий по размерам корпус на стоечки. Хочу обратить Ваше внимание также на платы П.Иванченко (http://www.starterkit.ru). Не взирая на их незначительные "косячки" на них все-таки стоит посмотреть, ибо стоят они даже дешевле, чем болгарские. ("Косячки": отсутствие крепежных дырочек, вульгарно торчащий часовой кварц,... пожайлуй хватит!).

DpInRock
Цитата
1) нормальную 4-х слойку заказывать. Это 200 баксов. Но зато все есть. Прям как у людей.
2) А филипсы - не люблю. Они дикий I2C придумали. Назло людям.
SPI - вот отличный ответ. Быстро, выгодно, удобно.

1) Цель оправдывает средства. Средства = 200 баксов. А какая цель?
2) Не могу согласиться. Это специально придумали назло Вам, а мне -- для облегчения жизни smile.gif
(Нельзя сравнивать пурген и аспирин. И то и другое -- таблетки. Назначение разное!)


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Proton
сообщение Sep 27 2008, 14:36
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 3-08-05
Из: Новосибирск
Пользователь №: 7 334



В своё время стоял перед выбором между SAM7 и LPC, решающим стало наличие DMA у SAM7. До этого работал с DSP и уже с трудом представляю как без него(DMA) обходиться.


--------------------
Всяк хорошая мысля к нам приходит опосля.
Go to the top of the page
 
+Quote Post
injen-d
сообщение Sep 27 2008, 18:08
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 10-10-07
Из: Воронежа
Пользователь №: 31 250



Цитата
ну очень необходимая для SAM7 приблуда - стоящее колом ядро не имеющее доступа ни к данным ни к командам во время работы DMA захватившего единственную шину.


Цитата
DMA в любом завалящем DSP и в SAM7, это "две большие разницы". В SAM7 - это чистой воды маркетинг.


Абсолютно не согласен на счет бесполезности.
Мне, например, на данный момент необходимо принимать и передавать пакеты по UART'у со скоростью 500 кбит/с, максимальная длинна пакета 256 байт. По второму байту пакета определяю оставшееся кол-во байт в пакете и "заряжаю" на него DMA. при отправке все еще проще. Так вот, вопрос - 256 входов в прерывание для обработки одного пакета лучше чем 2 ? При передаче и того проще.
На этом фоне работают прерывания от PIO(примерно от 16 ног порта), PIT, TC1, SPI, UART1, и DMA сдесь как нельзя кстати.
Не, ну если передавать изредка по одному, два байта - вопросов нет - бесполезная штука. Если скорость обмена с выбранным модулем сопоставима со скоростью работы ядра, то так же эффективность DMA у SAM7 стремится к нулю из-за постоянного захвата шины. Но это два крайних варианта.
Ну да, есть у SAM7 недостатки, как и у других, и во многом он проигрывает более новым LPC,
но заявления по поводу полной бесполезности DMA у SAM7, на мой взгляд, чистая религия.


--------------------
- Бендер, ты же робот, зачем тебе пить пиво?
- Незачем! Я могу бросить в любой момент!
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 27 2008, 20:37
Сообщение #4


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(injen-d @ Sep 27 2008, 22:08) *
Абсолютно не согласен на счет бесполезности.
Мне, например, на данный момент необходимо принимать и передавать пакеты по UART'у со скоростью 500 кбит/с, максимальная длинна пакета 256 байт. По второму байту пакета определяю оставшееся кол-во байт в пакете и "заряжаю" на него DMA. при отправке все еще проще. Так вот, вопрос - 256 входов в прерывание для обработки одного пакета лучше чем 2 ? При передаче и того проще.
+1
Аналогично, у меня 3 uart одновременно на 115200 непрерывно + всякие рассчеты в float
при попытке переключить на прием без DMA(ну там с подсчетом CRC например) начинают
тереться пакеты.
Пакеты длинной до 256байт, FIFO например в 16 байт будет более эфективен ?


Цитата(zltigo @ Sep 27 2008, 23:34) *
А уж если сбой какой, то тут уже и пляски с бубном - где начало, где конец, выбросить битый фрейм, переслать огрызок потенциально целого по месту, DMA препрограммировать нештатно.... Короче где экономия от того, что у меня с небольшими затратами в памяти что-то потенциально НЕПОНЯТНОЕ оказалось? Для идеальных паркетных условий - спору нет - раз DMA и в дамки. Только ведь идеальных условий нет практически никогда.
А каков % таких нештатных ситуаций/битых пакетов ?
Если 0,01% то DMA неэфективен ?
А если 0,1% ?
А если 1% ?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 27 2008, 20:42
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Справедливости ради:

Цитата(singlskv @ Sep 28 2008, 00:32) *
при попытке переключить на прием без DMA(ну там с подсчетом CRC например)

...и без FIFO...
Цитата(singlskv @ Sep 28 2008, 00:32) *
начинают тереться пакеты.

Ничего удивительного.


Цитата(singlskv @ Sep 28 2008, 00:32) *
Пакеты длинной до 256байт, FIFO например в 16 байт будет более эфективен ?

UART - не самый удачный пример в данном случае. Вот скоростной SPI - другое дело.

Но лучше иметь и DMA и FIFO - тогда появляется возможность выбора.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 27 2008, 20:50
Сообщение #6


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(aaarrr @ Sep 28 2008, 00:42) *
Справедливости ради:
...и без FIFO...
Ничего удивительного.
Конечно, но согласитесь что в данном случае ДМА лучший вариант чем FIFO.
Цитата
UART - не самый удачный пример в данном случае. Вот скоростной SPI - другое дело.

Цитата(aaarrr @ Sep 27 2008, 22:03) *
PDC предназначен для обслуживания медленной периферии, и с этой задачей справляется отлично.
Вот я чего-то недопонимаю, почему пример с uart в данном случае не лучший ?
Цитата
Но лучше иметь и DMA и FIFO - тогда появляется возможность выбора.
Кто б спорил, более того иногда можно совмещать эти 2 варианта.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 27 2008, 21:05
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(singlskv @ Sep 28 2008, 00:50) *
Вот я чего-то недопонимаю, почему пример с uart в данном случае не лучший ?

Потому что он слишком медленный, и при наличии FIFO серьёзную нагрузку на процессор дать не может.

Цитата(zltigo @ Sep 28 2008, 01:00) *
Эти варианты ДОЛЖНЫ быть совмещены, ибо что будет делать периферия, если ей канал DMA мгновенно не дадут когда ей приспичит.

А кто же ему запретит-то? smile.gif И уж на одно слово FIFO присутствует всегда.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:35
Рейтинг@Mail.ru


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