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

 
 
 
Reply to this topicStart new topic
> 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
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
des333
сообщение Jun 15 2017, 23:08
Сообщение #3


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

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



А почему не стали выровненные куски буферов копировать при помощи DMA, а остатки -- "ручками"?


--------------------
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jun 16 2017, 08:52
Сообщение #4


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

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



Цитата(des333 @ Jun 16 2017, 03:08) *
А почему не стали выровненные куски буферов копировать при помощи DMA, а остатки -- "ручками"?

А как?
Копировать надо из FIFO контроллера SD, к которому тоже доступ должен быть строго выровнен по 32 битам.
С произвольным смещением данные забрать нельзя.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 2nd July 2025 - 00:17
Рейтинг@Mail.ru


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