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

 
 
> STM32L4 + SD + DMA + FatFs
Allregia
сообщение Jul 26 2017, 18:49
Сообщение #1


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

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Джентельмены, нет ли у кого работающего примера работы SD+FatFs через DMA на L4? Буду очень признателен.

Пробовали пример от STM32L476G_EVAL, но там только в поллинге.
Попробовали пределать под DMA, но пока не работает, читает только первый килобайт а потом ошибка, с записью вообще пока не работает.
В поллинге нет проблем, но он работает только при выключенных прерываниях (оно есть в коде на еваборду).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Allregia
сообщение Jul 27 2017, 18:53
Сообщение #2


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

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



У L4, как я понял. в DMA нет барста, поэтому так выравнивать не надо.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 27 2017, 19:43
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Дело не только и не столько в burst, сколько в пословном доступе к невыровненным данным. Этого, думаю, и L4 не любит.
(FatFs при определённых условиях вызывает функцию записи блока с адресом буфера, не кратным 4).


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jul 29 2017, 08:22
Сообщение #4


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

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(AHTOXA @ Jul 27 2017, 20:43) *
Дело не только и не столько в burst, сколько в пословном доступе к невыровненным данным. Этого, думаю, и L4 не любит.
(FatFs при определённых условиях вызывает функцию записи блока с адресом буфера, не кратным 4).


Так на 4 я выравниваю, я имел ввиду что если нет барста то не надо на 512 выравнивать.
Вообще, когда-то делал на Ф4 с FatFs R0.11 и драйвром от Nemui Trinomius (http://nemuisan.blog.bai.ne.jp)
Проблем не замечал.
А вот с L4 тут напарник занимается, я сильно не влазил, так он уже неделю ковыряется. То что калокуб нагенерил было вообще сразу снесено, им только проверили что железо работает, потом переделали под драйвер от EVAL - хоть поллинг нормально заработал, а с ДМА пока засада, даже на чтении -пишет блоками до 1023 байта, дальше дикс эррор, если дать блок 8К или 16К, как задумывалось изначально, то эррор сразу (это я все пишу со слов напарника).
Мое личное мнение (проверю на след. неделе), что он не делает, илиделает не правильно, какую-нибудь из проверок.

У меня disk_read выглядел так:

Код
DRESULT disk_read (
                   BYTE drv,        /* Physical drive nmuber (0..) */
                   BYTE *buff,        /* Data buffer to store read data */
                   DWORD sector,    /* Sector address (LBA) */
                   BYTE count        /* Number of sectors to read (1..255) */
                     )
{
  switch (drv)   {
    case SDIO_DRIVE: {    

             Status = SD_ReadMultiBlocks((uint8_t*)(buff),(sector)*SECTOR_SIZE,SECTOR_SIZE,count);

             /* Check if the Transfer is finished */
             Status = SD_WaitReadOperation();

            /* Wait until end of DMA transfer */
            while(SD_GetStatus() != SD_TRANSFER_OK);

            if (Status == SD_OK)    return RES_OK;
            else                           return RES_ERROR;
    }

  }
  return RES_PARERR;
}


а у него:
Код
DRESULT SD_read(BYTE lun, BYTE *buff, DWORD sector, UINT count){
  DRESULT res = RES_ERROR;
  uint32_t timeout = 100000;

  if(BSP_SD_ReadBlocks_DMA((uint32_t*)buff,
                                        (uint32_t) (sector),
                                         count, SD_DATATIMEOUT) == MSD_OK)
  {
    while(BSP_SD_GetCardState()!= MSD_OK)  {
         if (timeout-- == 0)   {
              return RES_ERROR;
         }
    }
    res = RES_OK;
  }
  return res;
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Allregia   STM32L4 + SD + DMA + FatFs   Jul 26 2017, 18:49
- - Genadi Zawidowski   Есть для не "L" а для "F" htt...   Jul 26 2017, 18:54
- - Allregia   Спасибо, попробую.   Jul 26 2017, 19:24
- - Allregia   Трудно там разобраться, тем более что L4 и F4 немн...   Jul 27 2017, 08:20
- - Genadi Zawidowski   Да, у L проще... так попробовали бы по аналогии......   Jul 27 2017, 08:57
- - Шаманъ   Genadi Zawidowski, а зачем разные размеры источник...   Jul 27 2017, 11:34
|- - AHTOXA   Цитата(Шаманъ @ Jul 27 2017, 16:34) Genad...   Jul 27 2017, 14:46
|- - Шаманъ   Цитата(AHTOXA @ Jul 27 2017, 17:46) А, ту...   Jul 27 2017, 20:03
- - Genadi Zawidowski   Там было много непонятного... много казалось бы ра...   Jul 27 2017, 11:41
|- - Шаманъ   Цитата(Genadi Zawidowski @ Jul 27 2017, 14...   Jul 27 2017, 11:49
- - Genadi Zawidowski   Если посмотришь, у меня только инициализация DMA с...   Jul 27 2017, 11:58
- - Genadi Zawidowski   Используя у себя FatFs R0.12b, дорабатывал напильн...   Jul 28 2017, 17:06
|- - AHTOXA   Выравнивание buf структуры FIL не помогает, всё ра...   Jul 28 2017, 19:28
- - Genadi Zawidowski   Цитатаbuf структуры FIL не помогает Я два поля упо...   Jul 28 2017, 22:03
|- - AHTOXA   Цитата(Genadi Zawidowski @ Jul 29 2017, 03...   Jul 29 2017, 11:11
- - Genadi Zawidowski   невыровненные обращения к фпайлу fatfs делает чере...   Jul 29 2017, 11:29
- - Шаманъ   Народ, может просто сделать RTFM? Отсюда и дальше...   Jul 30 2017, 06:22
|- - AHTOXA   Цитата(Шаманъ @ Jul 30 2017, 11:22) Народ...   Jul 30 2017, 07:37
- - Genadi Zawidowski   ЦитатаНичего править в FatFs надобности нет. Включ...   Jul 30 2017, 06:44
- - Шаманъ   Цитата(Genadi Zawidowski @ Jul 30 2017, 09...   Jul 30 2017, 07:58
|- - Allregia   Джентельмены, мы пишем стрим строго по 8К или 16К ...   Jul 30 2017, 08:05
|- - AHTOXA   Цитата(Шаманъ @ Jul 30 2017, 12:58) Однак...   Jul 30 2017, 08:17
|- - Шаманъ   Цитата(AHTOXA @ Jul 30 2017, 11:17) А как...   Jul 30 2017, 08:43
|- - AHTOXA   Цитата(Шаманъ @ Jul 30 2017, 13:43) Более...   Jul 30 2017, 09:13
|- - Шаманъ   Цитата(AHTOXA @ Jul 30 2017, 12:13) Вот, ...   Jul 30 2017, 09:24
|- - AHTOXA   Цитата(Шаманъ @ Jul 30 2017, 14:24) Так м...   Jul 30 2017, 12:06
- - Genadi Zawidowski   ЦитатаГеннадия доступ к памяти побайтный, и я прив...   Jul 30 2017, 13:29
- - Шаманъ   Цитата(Genadi Zawidowski @ Jul 30 2017, 16...   Jul 30 2017, 15:35


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

 


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


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