В схеме я оставил подтяжку только на линию CMD.
Чтение заработало. Использован файле cd_card_mode.c из проекта USB Mass Storage.
При пошаговом проходе было замечено, что монтирование fat, открытие файла и чтение из него происходит успешно.
Пришлось установить задержку
short_delay(); //vovka, в функции
static inline SdState_t _SdRead(pInt8U pData, Int32U Add, Int32U Length)
Код
// wait receive complete
while (DMA_GetFlagStatus(DMA2_FLAG_GL4) == RESET)
{
StatusReg = SDIO->STA;
if(StatusReg & ( SDIO_IT_DTIMEOUT
| SDIO_IT_STBITERR
| SDIO_IT_DCRCFAIL
| SDIO_IT_RXOVERR))
{
break;
}
}
short_delay(); //vovka
if(DMA_GetFlagStatus(DMA2_FLAG_TE4))
{
return(SdDmaError);
}
Думал, когда разберусь с записью, то расскажу о результатах или весь проект выложу.
Но пока до этого не дошел.
Решал и решаю другие вопросы.
Запись отложена на будущее.
Как бы стек отложенных задач не переполнился ;-)