Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SDIO + DMA + FatFs
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Nikitoc
Всем привет. Пытаюсь прикрутить известный примерчик от ST (SDIO+DMA для stm32f205) к FatFs. Все функции работают корректно кроме мультиблоковой записи. И именно это выносит мне мозг. Все зависает на функции:
Код
SD_Error SD_WaitWriteOperation(void)
     {
           SD_Error errorstatus = SD_OK;
           while ((SD_DMAEndOfTransferStatus() == RESET) && (TransferEnd == 0) && (TransferError == SD_OK))
           {
             /*if ((SDIO->STA & 0x03) != 0x00){
                 printf(" 0x%X ", SDIO->STA);
             }*/
           }
           if (TransferError != SD_OK)
           {
                 return(TransferError);
           }
           /*!< Clear all the static flags */
           SDIO_ClearFlag(SDIO_STATIC_FLAGS);
           return(errorstatus);
     }


Закомментированный участок кода - это моя отладочная функция. Собственно говоря, когда я начинаю записывать файл мультиблоковая функция нормально отрабатывает несколько раз (5-15, каждый раз по-разному), а затем подвисает. При этом в статусном регистре содержится значение 0x42. Т.е. устанавливаются флаги DCRCFAIL (Data block sent/received (CRC check failed)) и CMDREND (Command response received (CRC check passed)). Почему устанавливается второй флаг - не понимаю.
Если есть какие-нибудь мысли или что-то подобное встречалось - просьба поделиться.
Заранее благодарен.
Igor4444
Привет. Не мог бы ты выложить весь код мультиблоковой записи( как я вижу ты написал свой, ну или по крайней мере не Ченовский rolleyes.gif )
Я бьюсь сейчас над похожей проблемой. Подробнее в другой теме форума
Nikitoc
Привет. Я весь код не писал. Я взял примерчик от ST (который идет с IAR 6.30). А в файле diskio.c (который для FatFS) просто написал вызовы функций чтения/записи, которые из примерчика.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.