|
TI AM1808, вопросы по EDMA3 |
|
|
|
Sep 12 2014, 13:59
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Приветствую! Начинаю разбираться с контроллером EDMA3 и есть вопросы (пока теория). Вопрос 1.В чём отличие DMA канала и QDMA канала и кто они такие (можно очень подробно)? Основное ли это отличие: Цитата DMA channel - A channel that can be triggered by external, manual, and chained events. All DMA channels exist in the EDMA3CC. QDMA channel - One of the 8 channels that can be triggered when writing to the trigger word (TRWORD) of a PaRAM set. , или есть что-то ещё? Вопрос 2.Зачем в EDMA3_CC 128 128 parameter RAM (PaRAM) entries, если DMA каналов 32 + 8 QDMA, а согласно DMA Channel to PaRAM Mapping Цитата The mapping between the DMA channel numbers and the PaRAM sets is a fixed, one-to-one mapping ??? Для DMA каналов можно использовать первые 32 PaRAM, всё остальное для 8 QDMA каналов???
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 18)
|
Sep 14 2014, 14:08
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(doom13 @ Sep 12 2014, 19:59)  В чём отличие DMA канала и QDMA канала и кто они такие (можно очень подробно)? Мне хватило обычных DMA-каналов на все нужды и зачем нужны QDMA я так и не понял (и не особо разбирался  Цитата(doom13 @ Sep 12 2014, 19:59)  Зачем в EDMA3_CC 128 128 parameter RAM (PaRAM) entries, если DMA каналов 32 + 8 QDMA, а согласно DMA Channel to PaRAM Mapping??? Первые 32 - физические каналы. Остальные - теневые каналы. Т.е. - если вам нужна транзакция связным списком (или пинг-понг и т.п.), то физический канал программируете на передачу первой порции данных, делаете в нём ссылку на первый теневой канал, в котором прописаны параметры для след. порции данных. Далее - в первом теневом можете сделать ссылку на второй теневой, в котором параметры для 3-го блока. И так далее. Или в одном из теневых каналов можно зациклить передачу на первый теневой канал. Теневой канал - это набор значений регистров конфигурации DMA канала, которые грузятся в ссылающийся на него физический канал, когда в физическом заканчивается очередной блок передачи. Примерно так. PS: Да, если что - моя информация из опыта с OMAP L137. Но думаю подходит.
|
|
|
|
|
Sep 15 2014, 09:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Спасибо, с PaRAM, вроде, стало понятно. Если работает канал DMA с номером N, то он всегда начинает обслуживать передачу с параметрами описанными в PaRAM с номером N, а далее либо по цепочке, либо пинг-понг, либо опять же PaRAM с этим номером при новой передаче. PaRAM с номером канала который не используется можно, как понял, использовать для других каналов (пинг-понг, связный список).
С QDMA-каналом пока остаются вопросы. Может можно и без них обойтись, но хотелось бы понять в каких случаях использовать QDMA предпочтительнее? А что значит QDMA стартует сразу? Т.е. заполнили соответствующий PaRAM и оно погнало, а DMА типо будет ждать что кто-то скажет "го"? Но ведь для DMA тоже можно запуск делать через запись регистра, т.е. практически тоже самое и настроить на перемещение данных из разных участков On-Chip memory. А QDMA - это от "quad"?
|
|
|
|
|
Sep 15 2014, 11:16
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(doom13 @ Sep 15 2014, 15:08)  Спасибо, с PaRAM, вроде, стало понятно. Если работает канал DMA с номером N, то он всегда начинает обслуживать передачу с параметрами описанными в PaRAM с номером N, а далее либо по цепочке, либо пинг-понг, либо опять же PaRAM с этим номером при новой передаче. PaRAM с номером канала который не используется можно, как понял, использовать для других каналов (пинг-понг, связный список). Не совсем точно. Первые 32 - это физические каналы. Т.е. - собственно сами каналы. И насколько я помню (хотя может ошибаюсь?) Вы не можете их использовать для хранения данных о следующих блоках пересылки. Следующие блоки всегда хранятся в теневых каналах. Теневые каналы - это собственно просто регион памяти (массив ParamSET), который может использовать EDMA3 для подгрузки данных о новых блоках передачи. Когда в физ. канале исчерпывается блок и в нём есть ссылка на один их теневых каналов, то данные о блоке загружаются из этого теневого канала в физический и начинают там выполняться. И так далее по цепочке блоков. В физическом канале счётчики декрементируются, адреса изменяются, а в теневом - нет.
|
|
|
|
|
Sep 15 2014, 13:48
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(doom13 @ Sep 15 2014, 17:34)  Ясно, как понимаю, этот "Quick" заключается только в том, что не надо устанавливать бит запуска в EVENT SET REGISTER. Задержка не в том, что надо устанавливать этот бит, а, собственно, в пачке тактов на прохождение этого евента через арбитраж до собственно запуска самой передачи.
|
|
|
|
|
Sep 17 2014, 06:52
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(SM @ Sep 16 2014, 20:31)  А я вот не помню каких либо ограничений на использование PARAM для LINK-ов. Да и в доке написано:
Any PaRAM set in the PaRAM can be used as a link/reload parameter set.
Есть только мелкое ограничение, касающееся, что если набор параметров ассоциирован с евентом, то он может использоваться для линка, если этот евент запрещен. Нашёл такое в доке, получается - любой PaRAM можно использовать в качестве линка. Но, наверное, первые 32 лучше не использовать, если только не хватает остальных.
|
|
|
|
|
Sep 19 2014, 12:14
|
Местный
  
Группа: Участник
Сообщений: 225
Регистрация: 15-11-09
Из: Москва
Пользователь №: 53 634

|
Цитата(doom13 @ Sep 17 2014, 10:52)  Нашёл такое в доке, получается - любой PaRAM можно использовать в качестве линка. Но, наверное, первые 32 лучше не использовать, если только не хватает остальных. Я нулевой дескриптор оставил на всякий случай, как "тупой" линк, все остальные использую произвольно. Но надо следить, чтобы лишние каналы DMA/QDMA не были включены. (это все на AM3352, но в AM18XX EDMA, вроде как, такой же) Теневыми возможностями не пользуюсь - вся работа напрямую.
Сообщение отредактировал Non-linear - Sep 19 2014, 12:16
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|