/***************************************************************************//** * @brief * Initialize MicroSD driver. * @return * Returns 0 if initialization succeded, non-zero otherwise. ******************************************************************************/ int initFatFS(void) { MICROSD_Init(); if (f_mount(0, &Fatfs) != FR_OK) return -1; return 0; }
/**************************************************************************//** * @brief * SDCARD_Initialization. * @details * Initialize SD Card *****************************************************************************/ void SDCARD_Initialization() { /* Enable SPI */ USART1->CMD = USART_CMD_MASTEREN | USART_CMD_TXEN | USART_CMD_RXEN; volatile int waiting; /* Initialize SD Card */ while(1) { MICROSD_Init(); /*Initialize MicroSD driver */ USART1->CMD = USART_CMD_MASTEREN | USART_CMD_TXEN | USART_CMD_RXEN; resCard = disk_initialize(0); /*Check micro-SD card status */ switch(resCard) { case STA_NOINIT: /* Drive not initialized */ break; case STA_NODISK: /* No medium in the drive */ break; case STA_PROTECT: /* Write protected */ break; default: break; } if (!resCard) break; /* Drive initialized. */ /* wait a moment */ for(waiting = 0; waiting < 0xfff; waiting++){ waiting++; waiting--; } } }
extern void init_filesystem() { while (1) { // Initialize SD card and setup USART0 MICROSD_Init(); resCard = disk_initialize(0); if (!resCard) break; } // Mount filesystem if (f_mount(0, &fatfs) != FR_OK) { /* Could not mount filesystem due to MicroSD missing or no FAT32 */ while(1); } }
/**************************************************************************//** * @brief * Initialize the storage media interface. *****************************************************************************/ bool MSDDMEDIA_Init( void ) { #if ( MSD_MEDIA != MSD_SDCARD_MEDIA ) && ( MSD_MEDIA != MSD_NORFLASH_MEDIA ) numSectors = MEDIA_SIZE / 512; #endif #if ( MSD_MEDIA == MSD_PSRAM_MEDIA ) storage = (uint8_t*)EBI_BankAddress( EBI_BANK2 ); storage[0] = 0; /* To force new "format disk" when host detects disk. */ #endif #if ( MSD_MEDIA == MSD_SDCARD_MEDIA ) /* Enable SPI access to MicroSD card */ BSP_PeripheralAccess( BSP_MICROSD, true ); MICROSD_Init(); if ( disk_initialize( 0 ) != 0 ) return false; /* Get numSectors from media. */ if ( disk_ioctl( 0, GET_SECTOR_COUNT, &numSectors ) != RES_OK ) return false; #endif #if ( MSD_MEDIA == MSD_FLASH_MEDIA ) flashStatus.pendingWrite = false; MSC_Init(); /* Unlock and calibrate flash timing */ MSC_Deinit(); /* Lock flash */ #endif #if ( MSD_MEDIA == MSD_NORFLASH_MEDIA ) flashStatus.pendingWrite = false; NORFLASH_Init(); /* Initialize NORFLASH interface */ storage = (uint8_t*)NORFLASH_DeviceInfo()->baseAddress; flashPageSize = NORFLASH_DeviceInfo()->sectorSize; /* Use external PSRAM as page (flash sector) buffer */ flashPageBuf = (uint8_t*)EBI_BankAddress( EBI_BANK2 ); numSectors = NORFLASH_DeviceInfo()->deviceSize / 512; #endif return true; }