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

 
 
> DMA и FreeRTOS
Jenya7
сообщение May 31 2018, 04:55
Сообщение #1


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Мне нужно переслать по SPI пакет данных 4K при помощи DMA.
Если произошла смена таска DMA умеет продолжить после того как вернулся таск? Или ему не важна смена таска?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rudy_b
сообщение Jun 1 2018, 11:16
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



Можно чуть иначе. Начало передачи определяется командой или таймером. В этот момент ставится CS и запускается таймер на фиксированное время - слейву на подготовку данных к передаче и запуска своего DMA на прием/передачу. По истечении таймера (прерывание) мастер запускает свой DMA на прием/передачу и разрешает прерывание по завершению приема по DMA. По этому прерыванию он снимает CS - цикл передачи завершен.

Слейв по переднему фронту CS (прерывание по ноге) готовит данные, запускает свой DMA на прием/передачу и разрешает прерывание завершения приема DMA. По этому прерыванию обрабатывает полученные данные.

Состояние CS используется только если нужно навесить несколько слейвов - тогда по переднему фронту CS считывается адрес (доп. ноги) и, если он совпадает - готовится передача и нога MISO включается как выход. По снятию CS (прерывание по заднему фронту) эта нога переключается во вход.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 14:39
Рейтинг@Mail.ru


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