SDFileSystem::disk_initialize problem ()

SDカードを接続していない状態でSDFileSystemでマウントした場所にあるファイルを開こうとすると、mbedがフリーズすることがありました。 調べてみたらSDFileSystem::disk_initializeのエラーチェックが抜けてました。

SDFileSystem.cppにチェックを追加すると直ります。

int SDFileSystem::disk_initialize() {
    int i = initialise_card();
    //<add>
    if(i==SDCARD_FAIL){
        return 1; 
    }
    //</add>
    debug_if(SD_DBG, "init card = %d\n", i);
    _sectors = _sd_sectors();
    
    // Set block length to 512 (CMD16)
    if (_cmd(16, 512) != 0) {
        debug("Set 512-byte block timed out\n");
        return 1;
    }
    
    _spi.frequency(1000000); // Set to 1MHz for data transfer
    return 0;
}


Please log in to post comments.