|
|
  |
Эффективность DMA в SAM7, Выделено из "ARM много,..." |
|
|
|
Sep 28 2008, 21:01
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Друзья мои, я опечален © Во-первых, из-за ошибки в скрипте линкера у меня клинило DMA при работе из Flash; а во-вторых, SPI как-то криво работает на частоте MCK/1  Поток SPI пришлось сократить в 2 раза. RAM 0WS Код PDC Idle: 9224 PDC TX: 9832 PDC TX+RX: 11472 FLASH 0WS Код PDC Idle: 9216 PDC TX: 9840 PDC TX+RX: 11472 FLASH 1WS Код PDC Idle: 15368 PDC TX: 16392 PDC TX+RX: 16400 Тем не менее, можно видеть, что не так уж все и плохо  Дополнительно попробовал запустить 2xMCK/2 SPI. Не тянет уже. RAM 0WS Код PDC Idle: 9224 PDC TX: 10928 PDC TX+RX: 12136 (DMA передача не уложилась по времени - 141%) FLASH 0WS Код PDC Idle: 9216 PDC TX: 10928 PDC TX+RX: 12136 (DMA передача не уложилась по времени - 141%) FLASH 1WS Код PDC Idle: 15368 PDC TX: 16392 PDC TX+RX: 19120 (DMA передача не уложилась по времени - 149%) Такие вот пирожки с котятами.
|
|
|
|
|
Sep 28 2008, 21:37
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(singlskv @ Sep 28 2008, 22:54)  уже не очень похоже на ARM7, подходы совсем другие, Отнюдь, какая разница на одну или две шины дешифрировать адресное пространство - ядро знать не знает. Все достаточно архитектурно просто. В приложении простенькая картинка. Цитата(aaarrr @ Sep 28 2008, 23:01)  Такие вот пирожки с котятами. Тем неменее внесена определенная ясность, и это уже хорошо, ибо даже если не все радужно, то praemonitus praemunitus!
Эскизы прикрепленных изображений
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 28 2008, 21:44
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(aaarrr @ Sep 28 2008, 23:41)  ядро существенно Цитата не тормозится.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 28 2008, 21:47
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zltigo @ Sep 29 2008, 01:37)  Тем неменее внесена определенная ясность, и это уже хорошо, ибо даже если не все радужно, то praemonitus praemunitus! Ну да, не все радужно, конечно  Но пользоваться вполне можно. Тем более, что перелопатить такой поток, на котором встал DMA, процессор все равно не сможет. Цитата(zltigo @ Sep 29 2008, 01:44)  существенно По мне так лучше бы оно вставало совсем - у меня процессор стоит в качестве дешевой замены FPGA, думать ему особо не приходится
|
|
|
|
|
Sep 28 2008, 22:04
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(aaarrr @ Sep 28 2008, 23:47)  Тем более, что перелопатить такой поток, на котором встал DMA, процессор все равно не сможет. Ну и последний эксперимент увеличить число DMA каналов с 4x до 6-8, какой предел пропускной способности одного канала? Цитата Тем более, что перелопатить такой поток, на котором встал DMA, процессор все равно не сможет. Ну насколько я понял, у Вас, как и у меня, одна из задач пропускать поток частично и мимо контроллера, просто используя его MAC? У меня это, правда, задача вспомогательно-опциональная, но и потоки потоньше - 64Kbit, хотя их побольше - до 16.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 28 2008, 22:18
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zltigo @ Sep 29 2008, 02:04)  Ну и последний эксперимент увеличить число DMA каналов с 4x до 6-8, какой предел пропускной способности одного канала? Попробуем, но уже не сегодня. Цитата(zltigo @ Sep 29 2008, 02:04)  Ну насколько я понял, у Вас, как и у меня, одна из задач пропускать поток частично и мимо контроллера, просто используя его MAC? У меня это, правда, задача вспомогательно-опциональная, но и потоки потоньше - 64Kbit, хотя их побольше - до 16. Не совсем так. У меня постоянно передаются один или два потока по 20Мбит/с, но данные для них меняются только при смене фрейма раз в 13мс. Процессору за это время нужно перепаковать и откорректировать (через LUT) данные, полученные из Ethernet'а, и его производительности хватает почти в любом случае.
|
|
|
|
|
Sep 29 2008, 11:31
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 23-08-05
Пользователь №: 7 902

|
Цитата(zltigo @ Sep 27 2008, 22:32)  Да нет, не как у всех  - c STM32 работаю. Глюков чрезмерно много - в стиле ST  (традиция в ряду STR7/9xx)и само ядро V1 с багами, кривыми усеченными "библиотеками" латается отсутствие внятной документации  и неполность erratа... Но с точки зрения использования малоногих и шустрых (кому еще и малопотребляющих) чипов альтернатив им нет. Буду использовать, ибо LPC1300 уже не дождусь, а LPC210x не вытянут желаемого. Если и начинать с Cortex-M3, то уже почти доступны LPC1700. Там и ядро V2, и периферия от LPC23xx отлаженная и цену на ..дцать процентов меньше обещают. Можно поподробнее про глюки STM32? А то уж слишком красиво на новый проект ложатся. Кардинальные отличия между версиями Cortex-M3 есть?
|
|
|
|
|
Sep 29 2008, 11:49
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Shuuura @ Sep 29 2008, 13:31)  Можно поподробнее про глюки STM32? Errata для начала. Дальше - дальше хуже  часто натыкался просто на невозможность использовать чего-либо удобным способом, хотя по логике вещей вроде и не должно было-бы быть проблем. Может это и не баги, а неописаные ограничения  . Вместо документации, блин, "библиотеки". Если свобода творчества в пределах ограниченных "библиотеками" устравивает, то наверное и проблем особых вообще не будет. Цитата А то уж слишком красиво на новый проект ложатся. Пользуйте, как-нибудь обойдете. Цитата Кардинальные отличия между версиями Cortex-M3 есть? Есть  Где-то 5 багов в ядре постепенно от подверсии к подверсии исправлявниеся, но все известное исправленно во второй версии (но это будет только в LPC + несколько новых команд). Компиляторы латают. По Corteх есть отдельная ветка - продолжите там.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 29 2008, 16:12
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(zltigo @ Sep 27 2008, 21:32)  Вы мне пытаетесь объяснить, что без DMA совсем труба? - согласен. Для помянутого тупого заглатывания по UART 256 байтовых пакетов формально DMA типа меньше ресурсов потребит, нежели 16байтовое FIFO у LPC, только вот что-то я никогда не писал алгоритмов по заглатыванию 256 байт всякой всячины и возможного мусора и последующем ДОЛГОМ в нем копании. Насчет заглатывания UART'a - поддерживаю. Байт-ориентед удобнее побайтово принимать и разгребать. А вот такая задачка: оцифровка с последущим анализом (FFT) и воспроизведение звука с минимальным джиттером между семплами, скажем так Fd= 44.1kHz, mono. С SAM'овским DMA задача решается на ура без интервенции процессора, получаем сразу подготовленные для FFT выборки требуемого размера. Жрет на SAM'е эта задачка процентов 10 ресурсов проца. Будет ли такая же эффективность на LPC без DMA? И вообще можно ли ее решить на LPC, если учесть что эта задача - не самоцель, а есть еще и другие функции выполяемые МК (FIQ то только один)?
|
|
|
|
|
Sep 29 2008, 17:01
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Sep 29 2008, 20:12)  Будет ли такая же эффективность на LPC без DMA? Дык на новых LPC есть DMA. Посмотрел Atmel'овские статейки. Очень мило пишут про PDC, типа: Цитата The device easily supports 25 Mbps SPI or TWI transfers, and still has 96% of it resources available to execute embedded control functions. Всюду они эти 25Мбит суют. А TWI приплетен вообще непонятно каким боком, ибо к PDC подключения не имеет, а 25Мбит передавать не может по определению. Easily, блин. А за easily сразу кирдык
|
|
|
|
|
Sep 29 2008, 19:15
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Sep 29 2008, 23:03)  Это в новых, а в тех что нет? Вместо старого NXP лучше взять новый NXP, а не старый Atmel. О чем спорить-то? Цитата(defunct @ Sep 29 2008, 23:03)  Задачка в защиту "полной непотребности" SAM7 DMA. Ну, о полной непотребности говорить уже не приходится. Хотя некоторая непотребность/недодокументированность есть. Цитата(defunct @ Sep 29 2008, 23:03)  опечатка вестимо. доки пишут иногда люди далекие от все этого. Это из статьи. Опечатка забавная - вспомнили самый глючный модуль, которому этого PDC весьма, кстати, не хватает.
|
|
|
|
|
Sep 30 2008, 08:08
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата джиттером между семплами, скажем так Fd= 44.1kHz, mono. С SAM'овским DMA задача решается на ура без интервенции процессора, получаем сразу подготовленные для FFT выборки требуемого размера. Жрет на +1 - использую я PDC для АЦП на SAM7 - _очень_ удобно. На LPC пришлось для тех же целей все "ручками" делать. +1 - еще PDC использую для SPI - у меня второй абонент более 4мбит не жрет, так что ни о какой блокировке шины речи не идет. -1 - для MMC/SD по SPI PDC не очень хорошо подходит - удобнее побайтно, параллельно считая CRC -1 - еще пытался использовать PDC для USARTа (протоколы на RS-485) - не понравилось, код распух, хотя ресурсов немного меньше от процессора отожралось. В итоге вернулся к "побайтовому" разбору - SAM-овский UART очень рулит - не понадобился допонительный таймер. P.S. А вообще потихоньку переходим с SAM7A3/S/X/SE на LPC214x/23x8/24x8 - быстрее, честные RTC, номенклатура больше (есть 144-ногие). И по большому счету - уже пофиг LPC или SAM - HAL-ы под наши задачи понаписаны на оба семейства, все максимально абстрагировано получается. Как "партия" (рыночная коньюнктура) прикажет - такой проц и заложим  , нефиг из LPC или SAM религию устраивать.
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|