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

 
 
> SD Card Controller DMA, Cyclone V HPS
sonycman
сообщение May 23 2017, 07:34
Сообщение #1


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

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



Приветствую!

Ковыряюсь с файловой системой на карте памяти, думаю задействовать DMA контроллера SD/MMC.

Но вот требование к выравниванию памяти до 32-ух бит портит всю картину.
Для файловой системы невозможно обеспечить выравнивание адреса буфера чтения/записи, соответственно DMA невозможно будет использовать в случае таких адресов.

Может быть, тогда завести промежуточный выровненный буфер, с которым будет работать DMA, а потом копировать из/в него данные по месту назначения?
Но тогда в чем цимес такого DMA, когда все равно приходится работать "ручками"?
cranky.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sonycman
сообщение Jun 15 2017, 21:23
Сообщение #2


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

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



Сделал пока так, что DMA работает с выровненным промежуточным буфером в некешируемой области памяти, а я процессором копирую данные на нужный выровненный\невыровненный адрес.

Можно, наверное, для промежуточного буфера использовать часть OnChip памяти, чтобы копирование через memcpy было эффективнее.

Интересно, разве так трудно было сделать, чтобы DMA работало с невыровненными адресами?
Всего-то использовать сигналы byte enable и, наверное, сдвиговый регистр.
Может потом попробую свой модуль для этого написать...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 6th July 2025 - 12:37
Рейтинг@Mail.ru


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