feat(fatfs): Add Kconfig options to set FF_FS_NOFSINFO value

Closes https://github.com/espressif/esp-idf/issues/15241
This commit is contained in:
Adam Múdry
2025-01-23 12:21:14 +01:00
committed by BOT
parent 26a1b69a2a
commit d87a6d4b61
3 changed files with 36 additions and 2 deletions

View File

@@ -310,6 +310,7 @@ menu "FAT Filesystem support"
If enabled, the whole link operation (including file copying) is performed under lock.
This ensures that the link operation is atomic, but may cause performance for large files.
It may create less fragmented file copy.
config FATFS_USE_DYN_BUFFERS
bool "Use dynamic buffers"
depends on CONFIG_WL_SECTOR_SIZE_4096
@@ -321,4 +322,27 @@ menu "FAT Filesystem support"
If disabled, the greatest sector size will be used for all FATFS instances.
(In most cases, this would be the sector size of Wear Levelling library)
This might cause more memory to be used than necessary.
menu "File system free space calculation behavior"
help
Controls if the file system does or does not trust cached data like free cluster count and allocated
cluster number. Setting these to do not trust the data may result of more accurate output from
`f_getfree()` function but increased overhead (forces a full FAT scan, etc.).
config FATFS_DONT_TRUST_FREE_CLUSTER_CNT
int "Don't trust free cluster count"
default 0
range 0 1
help
If 1, the file system will not trust the free cluster count in the FSINFO (in FATFS struct).
This may result in more accurate output from `f_getfree()` function but increased overhead.
config FATFS_DONT_TRUST_LAST_ALLOC
int "Don't trust allocated cluster number"
default 0
range 0 1
help
If 1, the file system will not trust the last allocated cluster number in the FSINFO (in FATFS struct).
This may result in more accurate output from `f_getfree()` function but increased overhead.
endmenu
endmenu

View File

@@ -299,7 +299,7 @@
/ These options have no effect in read-only configuration (FF_FS_READONLY = 1). */
#define FF_FS_NOFSINFO 0
#define FF_FS_NOFSINFO (CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT << 0 | CONFIG_FATFS_DONT_TRUST_LAST_ALLOC << 1)
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at the first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.