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

 
 
> STM32F4Discovery + SDIO DMA, Не читает как надо
__inline__
сообщение Mar 16 2018, 11:06
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Здравствуйте!

Использую Дискавери на STM32F407 + карту SD Micro 4 GB на чтение.

Чтение через поллинг (Polling) идет отлично, даже файлы верно читаются с помощью FatFs.

Но через DMA не удаётся нормально работать.
Помотрел как читается нулевой(первый сектор) карты в 2 случаях: Polling и DMA.

Фрагменты кода (прерывания включил, карту проинитил, данные выровнял на 16 байт) :

Код
u8 buff[512] __attribute__((aligned (16)));

void SDIO_IRQHandler(void)
{
SD_ProcessIRQSrc();
}

void SD_SDIO_DMA_IRQHANDLER(void)
{
SD_ProcessDMAIRQ();
}

void SD_NVIC_Configuration(void)
{
// SDIO Interrupt ENABLE

NVIC_InitTypeDef NVIC_InitStructure;

               NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn;
               NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
               NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
               NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
               NVIC_Init(&NVIC_InitStructure);
               // DMA2 STREAMx Interrupt ENABLE
               NVIC_InitStructure.NVIC_IRQChannel = SD_SDIO_DMA_IRQn;
               NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
               NVIC_Init(&NVIC_InitStructure);
}

SD_Init();

SD_NVIC_Configuration();
__enable_irq();

SD_ReadBlock(buff,0<<9,512);

OLED_ON();

#define COL 255

for(u32 i=0;i<512;i++)OLED_Char(i%20,i/20,buff[i],COL|(COL<<8)|(COL<<16));

while(1);



Фотки прикладываю. Вывод содержимого нулевого сектора на дисплей.

Первая картинка - перез Polling - там всё OK.

Вторая через DMA - первые байты (от трети до половины всего экрана) - нулевые.

Куда копать, чтобы DMA нормально на чтение с SDIO начал работать?

Прикрепленное изображение

Прикрепленное изображение
Go to the top of the page
 
+Quote Post



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

 


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


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