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

 
 
> LPC17xx: использование DMA и SLEEP, несовместимо?
sonycman
сообщение Aug 25 2010, 18:40
Сообщение #1


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Доброго времени суток.

Сегодня весь вечер убил на то, чтобы понять, почему стала глючить передача по SSP с помощью DMA на LPC1768.

Под scmRTOS выполняются несколько процессов, и в определённый момент один из них использует DMA для работы с картой памяти.
А в Idle процессе есть инструкция __WFI(), чтобы остановить CPU, пока делать особо нечего.

Но после того, как выполняется WFI(), перестаёт нормально работать DMA - передача идёт и завершается нормально, только передаются нули вместо нужных данных.
Пробовал располагать данные в ОЗУ или во флеш - толку нет.

В принципе, правильно - DMA вроде тактируется от одного с CPU клока, который в SLEEP режиме останавливается.
Поэтому и не может DMA нормально работать.

Но это ведь облом получается - что-же, если пользуешься DMA, то режимы энергосбережения не получится включать?
В мануале только предупреждение о DEBUG, а о косяках DMA и слова нет sad.gif

Может быть, есть способ решить эту проблему?
Go to the top of the page
 
+Quote Post



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

 


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


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