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

 
 
> Xilinx Microblaze + DMA(Scatter/Gather)
Denis C
сообщение Oct 6 2015, 21:26
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 9-06-06
Из: Saint-Petersburg
Пользователь №: 17 924



Здравствуйте! Хотелось бы спросить у знатоков о следующей ситуации:
Используется DMA в режиме Scatter/Gather. Отлаживаю канал S2MM. Софт написан на основе примера от Xilinx'а "xaxidma_multichan_sg_intr".
Завел к примеру 8 дескрипторов (1 дескриптор = 1 внешний AXI-stream пакет, кончающийся по сигналу TLAST).
Приходят 8 пакетов. После чего все дескрипторы становятся обработанными (post-processed). Если потом не освободить и не передать корке DMA новые дескрипторы, то естественно пропадает сигнал TREADY и еще неожиданно появляется ошибка-прерывание(флаг Err_irq в 14 бите регистра S2MM_DMASR) и после этого корка не работает без сброса.
Тем, что я не даю корке новые дескрипторы, я пытался эмулировать задержку дальнейшей обработки данных (некий Flow-control организовать). При этом я расчитывал, что корка просто не будет давать сигнал TREADY источнику данных.
Вопрос: как в данной ситуации правильно организовать flow-control S2MM в данном случае ? Ведь могут быть ситуации, когда записанные в память данные, потребитель обрабатывает с меньшей скоростью.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
doom13
сообщение Oct 13 2015, 14:53
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Что-то похожее возникало в начале работы с DMA, сейчас даже не могу повторить данную ошибку. Может быть всё дело в последовательности настройки/запуска DMA, у меня всё сделано по даташиту:
0) Инициализация кольца дескрипторов
1) Сброс DMA
2) Запись Current Descriptor
3) Установка Start-bit
4) Разрешение прерываний
5) Запись Tail Descriptor

Далее софт просто возвращает обработанные дескрипторы, стирает в дескрипторе бит Compl и записывает дескриптор в Tail.
Go to the top of the page
 
+Quote Post
Denis C
сообщение Oct 14 2015, 11:07
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 9-06-06
Из: Saint-Petersburg
Пользователь №: 17 924



В принципе также настраиваю. Ваш драйвер не тормозит S2MM канал обнулением бита Start ? И кстати какая версия DMA используется (у меня 6.03а)?
Go to the top of the page
 
+Quote Post



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

 


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


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