ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
480640
rod-i-on (17.01.2014 01:35 - 01:39, просмотров: 1725)
Начал прикручивать к проекту на отладке Discovery с STM32F4 работу с карточкой через SDIO. Не работает. Отключил работу с акселерометром, заработало. SDIO сделано через DMA. Не могу понять с какого перепугу? Разве SDIO как-то связан с SPI? Падает на этом куске: /* Initialize FAT area */ for (m = 0; m < N_FATS; m++) { mem_set(tbl, 0, SS(fs)); /* 1st sector of the FAT */ if (fmt != FS_FAT32) { n = (fmt == FS_FAT12) ? 0x00FFFF00 : 0xFFFFFF00; n |= partition; ST_DWORD(tbl, n); /* Reserve cluster #0-1 (FAT12/16) */ } else { ST_DWORD(tbl+0, 0xFFFFFFF8); /* Reserve cluster #0-1 (FAT32) */ ST_DWORD(tbl+4, 0xFFFFFFFF); ST_DWORD(tbl+8, 0x0FFFFFFF); /* Reserve cluster #2 for root dir */ } if (disk_write(drv, tbl, b_fat++, 1) != RES_OK) return FR_DISK_ERR; mem_set(tbl, 0, SS(fs)); /* Following FAT entries are filled by zero */ for (n = 1; n < n_fat; n++) { if (disk_write(drv, tbl, b_fat++, 1) != RES_OK) return FR_DISK_ERR; } } Конкретно выпадает на второй return FR_DISK_ERR; вот здесь if (disk_write(drv, tbl, b_fat++, 1) != RES_OK) в ff.c библиотеки Чена