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

 
 
> STM32F4xx, работа с FSMC через DMA
esaulenka
сообщение Aug 25 2014, 19:16
Сообщение #1


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

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Ситуация. Есть STM32F4xx с внешней шиной, на которой висят SRAM и NAND.

Вздумалось мне оптимизировать код, и в функции чтения NAND конструкцию
Код
    for (i = 2112/4; i; i--)
        *buffer32 ++ = (*(volatile uint32_t *)(BANK_NAND_ADDR | NAND_DATA_AREA));

заменил работой с DMA (использую DMA2, Stream0)

Всё работает прекрасно, пока буфер находится во внутренней памяти. Но стоит перенести его во внешнюю память, DMA ломается.
Счётчик данных уменьшается на 32 dword'а (я 32-битными данными работаю, адреса выровнены), регистр FIFO сообщает, что FIFO пустое.
А дальше - всё - счётчик данных "тикать" больше не хочет, биты в регистре статуса не устанавливается, enable не сбрасывается.

Это фича такая? Что-то я нигде описания не нашёл...


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post



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

 


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


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