* Fixed FFat::end. Fixes #3244 * Missed the handle check in format
This commit is contained in:
parent
f32083a6d0
commit
ca88fdc273
@ -40,16 +40,20 @@ const esp_partition_t *check_ffat_partition(const char* label)
|
|||||||
|
|
||||||
bool F_Fat::begin(bool formatOnFail, const char * basePath, uint8_t maxOpenFiles, const char * partitionLabel)
|
bool F_Fat::begin(bool formatOnFail, const char * basePath, uint8_t maxOpenFiles, const char * partitionLabel)
|
||||||
{
|
{
|
||||||
if(_wl_handle){
|
if(_wl_handle != WL_INVALID_HANDLE){
|
||||||
log_w("Already Mounted!");
|
log_w("Already Mounted!");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!check_ffat_partition(partitionLabel)) return false;
|
if (!check_ffat_partition(partitionLabel)){
|
||||||
|
log_e("No fat partition found on flash");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
esp_vfs_fat_mount_config_t conf = {
|
esp_vfs_fat_mount_config_t conf = {
|
||||||
.format_if_mount_failed = formatOnFail,
|
.format_if_mount_failed = formatOnFail,
|
||||||
.max_files = maxOpenFiles
|
.max_files = maxOpenFiles,
|
||||||
|
.allocation_unit_size = CONFIG_WL_SECTOR_SIZE
|
||||||
};
|
};
|
||||||
esp_err_t err = esp_vfs_fat_spiflash_mount(basePath, partitionLabel, &conf, &_wl_handle);
|
esp_err_t err = esp_vfs_fat_spiflash_mount(basePath, partitionLabel, &conf, &_wl_handle);
|
||||||
if(err){
|
if(err){
|
||||||
@ -62,13 +66,13 @@ bool F_Fat::begin(bool formatOnFail, const char * basePath, uint8_t maxOpenFiles
|
|||||||
|
|
||||||
void F_Fat::end()
|
void F_Fat::end()
|
||||||
{
|
{
|
||||||
if(_wl_handle){
|
if(_wl_handle != WL_INVALID_HANDLE){
|
||||||
esp_err_t err = esp_vfs_fat_spiflash_unmount(_impl->mountpoint(), _wl_handle);
|
esp_err_t err = esp_vfs_fat_spiflash_unmount(_impl->mountpoint(), _wl_handle);
|
||||||
if(err){
|
if(err){
|
||||||
log_e("Unmounting FFat partition failed! Error: %d", err);
|
log_e("Unmounting FFat partition failed! Error: %d", err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_wl_handle = 0;
|
_wl_handle = WL_INVALID_HANDLE;
|
||||||
_impl->mountpoint(NULL);
|
_impl->mountpoint(NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,7 +81,7 @@ bool F_Fat::format(bool full_wipe, char* partitionLabel)
|
|||||||
{
|
{
|
||||||
esp_err_t result;
|
esp_err_t result;
|
||||||
bool res = true;
|
bool res = true;
|
||||||
if(_wl_handle){
|
if(_wl_handle != WL_INVALID_HANDLE){
|
||||||
log_w("Already Mounted!");
|
log_w("Already Mounted!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -102,7 +106,8 @@ bool F_Fat::format(bool full_wipe, char* partitionLabel)
|
|||||||
// Now do a mount with format_if_fail (which it will)
|
// Now do a mount with format_if_fail (which it will)
|
||||||
esp_vfs_fat_mount_config_t conf = {
|
esp_vfs_fat_mount_config_t conf = {
|
||||||
.format_if_mount_failed = true,
|
.format_if_mount_failed = true,
|
||||||
.max_files = 1
|
.max_files = 1,
|
||||||
|
.allocation_unit_size = CONFIG_WL_SECTOR_SIZE
|
||||||
};
|
};
|
||||||
result = esp_vfs_fat_spiflash_mount("/format_ffat", partitionLabel, &conf, &temp_handle);
|
result = esp_vfs_fat_spiflash_mount("/format_ffat", partitionLabel, &conf, &temp_handle);
|
||||||
esp_vfs_fat_spiflash_unmount("/format_ffat", temp_handle);
|
esp_vfs_fat_spiflash_unmount("/format_ffat", temp_handle);
|
||||||
|
@ -37,7 +37,7 @@ public:
|
|||||||
bool exists(const String& path);
|
bool exists(const String& path);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
wl_handle_t _wl_handle;
|
wl_handle_t _wl_handle = WL_INVALID_HANDLE;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user