OSStatus platform_flash_init( platform_flash_driver_t *driver, const platform_flash_t *peripheral ) { OSStatus err = kNoErr; require_action_quiet( driver != NULL && peripheral != NULL, exit, err = kParamErr); require_action_quiet( driver->initialized == false, exit, err = kNoErr); driver->peripheral = (platform_flash_t *)peripheral; if( driver->peripheral->flash_type == FLASH_TYPE_INTERNAL ){ err = internalFlashInitialize(); require_noerr(err, exit); } #ifdef USE_MICO_SPI_FLASH else if( driver->peripheral->flash_type == FLASH_TYPE_SPI ){ err = init_sflash( &sflash_handle, 0, SFLASH_WRITE_ALLOWED ); require_noerr(err, exit); } #endif else{ err = kTypeErr; goto exit; } #ifndef NO_MICO_RTOS err = mico_rtos_init_mutex( &driver->flash_mutex ); #endif require_noerr(err, exit); driver->initialized = true; exit: return err; }
OSStatus platform_flash_init( const platform_flash_t *peripheral ) { OSStatus err = kNoErr; require_action_quiet( peripheral != NULL, exit, err = kParamErr); if( peripheral->flash_type == FLASH_TYPE_EMBEDDED ){ err = internalFlashInitialize(); require_noerr(err, exit); } #ifdef USE_MICO_SPI_FLASH else if( peripheral->flash_type == FLASH_TYPE_SPI ){ err = init_sflash( &sflash_handle, 0, SFLASH_WRITE_ALLOWED ); require_noerr(err, exit); } #endif else{ err = kTypeErr; goto exit; } exit: return err; }