Перейти к содержанию
    

SD Card Controller DMA

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

 

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

 

Но вот требование к выравниванию памяти до 32-ух бит портит всю картину.

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

 

Может быть, тогда завести промежуточный выровненный буфер, с которым будет работать DMA, а потом копировать из/в него данные по месту назначения?

Но тогда в чем цимес такого DMA, когда все равно приходится работать "ручками"?

:cranky:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Интересно, разве так трудно было сделать, чтобы DMA работало с невыровненными адресами?

Всего-то использовать сигналы byte enable и, наверное, сдвиговый регистр.

Может потом попробую свой модуль для этого написать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А как?

Копировать надо из FIFO контроллера SD, к которому тоже доступ должен быть строго выровнен по 32 битам.

С произвольным смещением данные забрать нельзя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...