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

 
 
> Подвисает SGDMA, Идеи?
alexPec
сообщение Jul 5 2011, 19:04
Сообщение #1


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Добрый день всем. Ситуация такая. Периодически приходят данные, которые отсылаю по dma на выход (мемори то стрим). Данные приходят регулярно, раз в 100 мс. Пока данные копятся в одном буфере, из второго в это время dma качает наружу. Когда проверяю с брейкпоинтами на процедурах старта dma - все стабильно работает. Т.е. нажимаю РАН - останавливается на брейкпоинте старта первого буфера, снова нажимаю РАН - останавливается на брейкпоинте второго буфера и т.д., в таком режиме все ок. Если убираешь брейк хотя бы с одного буфера, т.е. дма запускается два раза без брейка, - все, конец. Больше от ДМА данных не дождешься пока софт не перезапустишь. Признаки такие:

-дескрипторы не портятся, в обоих случаях одинаковые.

Регистры на брейкпоинте:

Статус регистр дма - 0x0000000C ( когда в норме, означает Chain complete + Descriptor complete)
0x00000014 ( когда НЕ в норме, означает Busy + Descriptor complete)
Control регистр дма - 0x00020060 ( когда в норме, означает PARK+RUN+DMAERR) ??? Почему run и dmaerr, ведь транзакция закончена, а dmaerr вообще написано только для stream to memory, а у меня наоборот.
0x00020000 ( когда НЕ в норме, означает PARK)

Порылся в штатных алтеровских процедурах запуска тразакции - поскольку бит busy в 1 - они и не запускают дма. А чем он занят, не понятно. Сигнал дма Ready находится в 1, данные на выход не идут.

UPD: попробовал сделать простую программку, которая по очереди запускает дма сначала первого, потом второго буфера. По шагам все ок, как только запускаешь подряд сначала первый буфер, потом сразу второй - говорит busy и больше не стартует. Как то сбросить бы его...
Go to the top of the page
 
+Quote Post



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

 


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


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