2017-02-05 23:32:52 -05:00
|
|
|
menu "FAT Filesystem support"
|
|
|
|
|
2021-09-30 06:23:25 -04:00
|
|
|
config FATFS_VOLUME_COUNT
|
|
|
|
int "Number of volumes"
|
|
|
|
default 2
|
|
|
|
range 1 10
|
|
|
|
help
|
|
|
|
Number of volumes (logical drives) to use.
|
|
|
|
|
2022-09-28 11:55:49 -04:00
|
|
|
choice FATFS_LONG_FILENAMES
|
|
|
|
prompt "Long filename support"
|
|
|
|
default FATFS_LFN_NONE
|
|
|
|
help
|
|
|
|
Support long filenames in FAT. Long filename data increases
|
|
|
|
memory usage. FATFS can be configured to store the buffer for
|
|
|
|
long filename data in stack or heap.
|
|
|
|
|
|
|
|
config FATFS_LFN_NONE
|
|
|
|
bool "No long filenames"
|
|
|
|
config FATFS_LFN_HEAP
|
|
|
|
bool "Long filename buffer in heap"
|
|
|
|
config FATFS_LFN_STACK
|
|
|
|
bool "Long filename buffer on stack"
|
|
|
|
endchoice
|
2021-12-06 12:17:20 -05:00
|
|
|
choice FATFS_SECTOR_SIZE
|
|
|
|
prompt "Sector size"
|
|
|
|
default FATFS_SECTOR_4096
|
|
|
|
help
|
|
|
|
Specify the size of the sector in bytes for FATFS partition generator.
|
|
|
|
|
|
|
|
config FATFS_SECTOR_512
|
|
|
|
bool "512"
|
|
|
|
config FATFS_SECTOR_4096
|
|
|
|
bool "4096"
|
|
|
|
endchoice
|
2019-01-25 11:10:53 -05:00
|
|
|
choice FATFS_CHOOSE_CODEPAGE
|
|
|
|
prompt "OEM Code Page"
|
|
|
|
default FATFS_CODEPAGE_437
|
|
|
|
help
|
|
|
|
OEM code page used for file name encodings.
|
|
|
|
|
|
|
|
If "Dynamic" is selected, code page can be chosen at runtime using
|
|
|
|
f_setcp function. Note that choosing this option will increase
|
|
|
|
application size by ~480kB.
|
|
|
|
|
|
|
|
config FATFS_CODEPAGE_DYNAMIC
|
|
|
|
bool "Dynamic (all code pages supported)"
|
|
|
|
config FATFS_CODEPAGE_437
|
|
|
|
bool "US (CP437)"
|
|
|
|
config FATFS_CODEPAGE_720
|
|
|
|
bool "Arabic (CP720)"
|
|
|
|
config FATFS_CODEPAGE_737
|
|
|
|
bool "Greek (CP737)"
|
|
|
|
config FATFS_CODEPAGE_771
|
|
|
|
bool "KBL (CP771)"
|
|
|
|
config FATFS_CODEPAGE_775
|
|
|
|
bool "Baltic (CP775)"
|
|
|
|
config FATFS_CODEPAGE_850
|
|
|
|
bool "Latin 1 (CP850)"
|
|
|
|
config FATFS_CODEPAGE_852
|
|
|
|
bool "Latin 2 (CP852)"
|
|
|
|
config FATFS_CODEPAGE_855
|
|
|
|
bool "Cyrillic (CP855)"
|
|
|
|
config FATFS_CODEPAGE_857
|
|
|
|
bool "Turkish (CP857)"
|
|
|
|
config FATFS_CODEPAGE_860
|
2024-03-28 04:14:05 -04:00
|
|
|
bool "Portuguese (CP860)"
|
2019-01-25 11:10:53 -05:00
|
|
|
config FATFS_CODEPAGE_861
|
|
|
|
bool "Icelandic (CP861)"
|
|
|
|
config FATFS_CODEPAGE_862
|
|
|
|
bool "Hebrew (CP862)"
|
|
|
|
config FATFS_CODEPAGE_863
|
|
|
|
bool "Canadian French (CP863)"
|
|
|
|
config FATFS_CODEPAGE_864
|
|
|
|
bool "Arabic (CP864)"
|
|
|
|
config FATFS_CODEPAGE_865
|
|
|
|
bool "Nordic (CP865)"
|
|
|
|
config FATFS_CODEPAGE_866
|
|
|
|
bool "Russian (CP866)"
|
|
|
|
config FATFS_CODEPAGE_869
|
|
|
|
bool "Greek 2 (CP869)"
|
|
|
|
config FATFS_CODEPAGE_932
|
|
|
|
bool "Japanese (DBCS) (CP932)"
|
|
|
|
config FATFS_CODEPAGE_936
|
|
|
|
bool "Simplified Chinese (DBCS) (CP936)"
|
|
|
|
config FATFS_CODEPAGE_949
|
|
|
|
bool "Korean (DBCS) (CP949)"
|
|
|
|
config FATFS_CODEPAGE_950
|
|
|
|
bool "Traditional Chinese (DBCS) (CP950)"
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
config FATFS_CODEPAGE
|
|
|
|
int
|
|
|
|
default 0 if FATFS_CODEPAGE_DYNAMIC
|
|
|
|
default 437 if FATFS_CODEPAGE_437
|
|
|
|
default 720 if FATFS_CODEPAGE_720
|
|
|
|
default 737 if FATFS_CODEPAGE_737
|
|
|
|
default 771 if FATFS_CODEPAGE_771
|
|
|
|
default 775 if FATFS_CODEPAGE_775
|
|
|
|
default 850 if FATFS_CODEPAGE_850
|
|
|
|
default 852 if FATFS_CODEPAGE_852
|
|
|
|
default 855 if FATFS_CODEPAGE_855
|
|
|
|
default 857 if FATFS_CODEPAGE_857
|
|
|
|
default 860 if FATFS_CODEPAGE_860
|
|
|
|
default 861 if FATFS_CODEPAGE_861
|
|
|
|
default 862 if FATFS_CODEPAGE_862
|
|
|
|
default 863 if FATFS_CODEPAGE_863
|
|
|
|
default 864 if FATFS_CODEPAGE_864
|
|
|
|
default 865 if FATFS_CODEPAGE_865
|
|
|
|
default 866 if FATFS_CODEPAGE_866
|
|
|
|
default 869 if FATFS_CODEPAGE_869
|
|
|
|
default 932 if FATFS_CODEPAGE_932
|
|
|
|
default 936 if FATFS_CODEPAGE_936
|
|
|
|
default 949 if FATFS_CODEPAGE_949
|
|
|
|
default 950 if FATFS_CODEPAGE_950
|
|
|
|
default 437
|
|
|
|
|
|
|
|
config FATFS_MAX_LFN
|
|
|
|
int "Max long filename length"
|
|
|
|
depends on !FATFS_LFN_NONE
|
|
|
|
default 255
|
|
|
|
range 12 255
|
|
|
|
help
|
|
|
|
Maximum long filename length. Can be reduced to save RAM.
|
|
|
|
|
|
|
|
choice FATFS_API_ENCODING
|
|
|
|
prompt "API character encoding"
|
|
|
|
depends on !FATFS_LFN_NONE
|
|
|
|
default FATFS_API_ENCODING_ANSI_OEM
|
|
|
|
help
|
|
|
|
Choose encoding for character and string arguments/returns when using
|
|
|
|
FATFS APIs. The encoding of arguments will usually depend on text
|
|
|
|
editor settings.
|
|
|
|
|
|
|
|
config FATFS_API_ENCODING_ANSI_OEM
|
|
|
|
bool "API uses ANSI/OEM encoding"
|
|
|
|
config FATFS_API_ENCODING_UTF_8
|
|
|
|
bool "API uses UTF-8 encoding"
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
config FATFS_FS_LOCK
|
|
|
|
int "Number of simultaneously open files protected by lock function"
|
|
|
|
default 0
|
|
|
|
range 0 65535
|
|
|
|
help
|
|
|
|
This option sets the FATFS configuration value _FS_LOCK.
|
|
|
|
The option _FS_LOCK switches file lock function to control duplicated file open
|
|
|
|
and illegal operation to open objects.
|
|
|
|
|
|
|
|
* 0: Disable file lock function. To avoid volume corruption, application
|
|
|
|
should avoid illegal open, remove and rename to the open objects.
|
|
|
|
|
|
|
|
* >0: Enable file lock function. The value defines how many files/sub-directories
|
|
|
|
can be opened simultaneously under file lock control.
|
|
|
|
|
|
|
|
Note that the file lock control is independent of re-entrancy.
|
|
|
|
|
|
|
|
config FATFS_TIMEOUT_MS
|
|
|
|
int "Timeout for acquiring a file lock, ms"
|
|
|
|
default 10000
|
|
|
|
help
|
|
|
|
This option sets FATFS configuration value _FS_TIMEOUT, scaled to milliseconds.
|
|
|
|
Sets the number of milliseconds FATFS will wait to acquire a mutex when
|
2024-03-28 04:14:05 -04:00
|
|
|
operating on an open file. For example, if one task is performing a lengthy
|
2019-01-25 11:10:53 -05:00
|
|
|
operation, another task will wait for the first task to release the lock,
|
|
|
|
and time out after amount of time set by this option.
|
|
|
|
|
|
|
|
|
|
|
|
config FATFS_PER_FILE_CACHE
|
|
|
|
bool "Use separate cache for each file"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
This option affects FATFS configuration value _FS_TINY.
|
|
|
|
|
|
|
|
If this option is set, _FS_TINY is 0, and each open file has its own cache,
|
|
|
|
size of the cache is equal to the _MAX_SS variable (512 or 4096 bytes).
|
|
|
|
This option uses more RAM if more than 1 file is open, but needs less reads
|
|
|
|
and writes to the storage for some operations.
|
|
|
|
|
|
|
|
If this option is not set, _FS_TINY is 1, and single cache is used for
|
|
|
|
all open files, size is also equal to _MAX_SS variable. This reduces the
|
|
|
|
amount of heap used when multiple files are open, but increases the number
|
|
|
|
of read and write operations which FATFS needs to make.
|
|
|
|
|
|
|
|
|
|
|
|
config FATFS_ALLOC_PREFER_EXTRAM
|
2024-03-28 04:14:05 -04:00
|
|
|
bool "Prefer external RAM when allocating FATFS buffers"
|
2019-01-25 11:10:53 -05:00
|
|
|
default y
|
|
|
|
depends on SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC
|
|
|
|
help
|
|
|
|
When the option is enabled, internal buffers used by FATFS will be allocated
|
|
|
|
from external RAM. If the allocation from external RAM fails, the buffer will
|
|
|
|
be allocated from the internal RAM.
|
|
|
|
Disable this option if optimizing for performance. Enable this option if
|
|
|
|
optimizing for internal memory size.
|
2017-10-17 06:27:40 -04:00
|
|
|
|
2020-08-03 13:26:59 -04:00
|
|
|
|
|
|
|
config FATFS_USE_FASTSEEK
|
2020-08-31 16:57:30 -04:00
|
|
|
bool "Enable fast seek algorithm when using lseek function through VFS FAT"
|
2020-08-03 13:26:59 -04:00
|
|
|
default n
|
|
|
|
help
|
|
|
|
The fast seek feature enables fast backward/long seek operations without
|
|
|
|
FAT access by using an in-memory CLMT (cluster link map table).
|
2020-11-05 15:01:41 -05:00
|
|
|
Please note, fast-seek is only allowed for read-mode files, if a
|
|
|
|
file is opened in write-mode, the seek mechanism will automatically fallback
|
|
|
|
to the default implementation.
|
2020-08-03 13:26:59 -04:00
|
|
|
|
2024-03-10 19:58:04 -04:00
|
|
|
choice FATFS_USE_STRFUNC_CHOICE
|
|
|
|
prompt "Enable string functions, f_gets(), f_putc(), f_puts() and f_printf()"
|
|
|
|
default FATFS_USE_STRFUNC_NONE
|
|
|
|
help
|
|
|
|
These are specialized alternatives to stdio functions for working
|
|
|
|
directly with FATFS without VFS. Legacy code may need functions,
|
|
|
|
but for new development, it is advised to use stdio under VFS.
|
|
|
|
|
|
|
|
0: Disable. FF_PRINT_LLI, FF_PRINT_FLOAT and FF_STRF_ENCODE have no effect.
|
|
|
|
1: Enable without LF-CRLF conversion.
|
|
|
|
2: Enable with LF-CRLF conversion.
|
|
|
|
|
|
|
|
config FATFS_USE_STRFUNC_NONE
|
|
|
|
bool "0:Disable"
|
|
|
|
|
|
|
|
config FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV
|
|
|
|
bool "1:Enable without LF-CRLF conversion"
|
|
|
|
|
|
|
|
config FATFS_USE_STRFUNC_WITH_CRLF_CONV
|
|
|
|
bool "2:Enable with LF-CRLF conversion"
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
config FATFS_PRINT_LLI
|
|
|
|
depends on !FATFS_USE_STRFUNC_NONE
|
|
|
|
bool "Make fatfs f_printf() support long long argument"
|
|
|
|
default 0
|
|
|
|
|
|
|
|
config FATFS_PRINT_FLOAT
|
|
|
|
depends on !FATFS_USE_STRFUNC_NONE
|
|
|
|
bool "Make fatfs f_printf() support floating point argument"
|
|
|
|
default 0
|
|
|
|
|
|
|
|
choice FATFS_STRF_ENCODE_CHOICE
|
|
|
|
prompt "FatFS string functions: convert character encoding"
|
|
|
|
depends on !FATFS_LFN_NONE && !FATFS_USE_STRFUNC_NONE
|
|
|
|
default FATFS_STRF_ENCODE_UTF8
|
|
|
|
help
|
|
|
|
When FF_LFN_UNICODE >= 1 with LFN enabled, string functions convert the character
|
|
|
|
encoding in it. FF_STRF_ENCODE selects assumption of character encoding ON THE FILE
|
|
|
|
to be read/written via those functions.
|
2024-04-16 01:55:46 -04:00
|
|
|
0: ANSI/OEM in current CP
|
|
|
|
1: Unicode in UTF-16LE
|
|
|
|
2: Unicode in UTF-16BE
|
|
|
|
3: Unicode in UTF-8
|
2024-03-10 19:58:04 -04:00
|
|
|
|
|
|
|
config FATFS_STRF_ENCODE_ANSI
|
|
|
|
bool "0:ANSI/OEM in current CP"
|
|
|
|
|
|
|
|
config FATFS_STRF_ENCODE_UTF16LE
|
|
|
|
bool "1:Unicode in UTF-16LE"
|
|
|
|
|
|
|
|
config FATFS_STRF_ENCODE_UTF16BE
|
|
|
|
bool "2:Unicode in UTF-16BE"
|
|
|
|
|
|
|
|
config FATFS_STRF_ENCODE_UTF8
|
|
|
|
bool "3:Unicode in UTF-8"
|
|
|
|
endchoice
|
2020-08-03 13:26:59 -04:00
|
|
|
|
2020-08-31 16:57:30 -04:00
|
|
|
config FATFS_FAST_SEEK_BUFFER_SIZE
|
|
|
|
int "Fast seek CLMT buffer size"
|
|
|
|
default 64
|
|
|
|
depends on FATFS_USE_FASTSEEK
|
|
|
|
help
|
|
|
|
If fast seek algorithm is enabled, this defines the size of
|
|
|
|
CLMT buffer used by this algorithm in 32-bit word units.
|
|
|
|
This value should be chosen based on prior knowledge of
|
|
|
|
maximum elements of each file entry would store.
|
|
|
|
|
2023-02-27 19:50:31 -05:00
|
|
|
config FATFS_VFS_FSTAT_BLKSIZE
|
|
|
|
int "Default block size"
|
|
|
|
default 0
|
|
|
|
help
|
|
|
|
If set to 0, the 'newlib' library's default size (BLKSIZ) is used (128 B).
|
|
|
|
If set to a non-zero value, the value is used as the block size.
|
|
|
|
Default file buffer size is set to this value
|
|
|
|
and the buffer is allocated when first attempt of reading/writing to a file is made.
|
|
|
|
Increasing this value improves fread() speed, however the heap usage is increased as well.
|
|
|
|
|
|
|
|
NOTE: The block size value is shared by all the filesystem functions
|
|
|
|
accessing target media for given file descriptor!
|
|
|
|
See 'Improving I/O performance' section of 'Maximizing Execution Speed' documentation page
|
|
|
|
for more details.
|
2023-09-22 02:55:00 -04:00
|
|
|
|
|
|
|
config FATFS_IMMEDIATE_FSYNC
|
|
|
|
bool "Enable automatic f_sync"
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
Enables automatic calling of f_sync() to flush recent file changes after each call of vfs_fat_write(),
|
|
|
|
vfs_fat_pwrite(), vfs_fat_link(), vfs_fat_truncate() and vfs_fat_ftruncate() functions.
|
|
|
|
This feature improves file-consistency and size reporting accuracy for the FatFS,
|
|
|
|
at a price on decreased performance due to frequent disk operations
|
2023-11-11 18:00:08 -05:00
|
|
|
|
|
|
|
config FATFS_USE_LABEL
|
|
|
|
bool "Use FATFS volume label"
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
Allows FATFS volume label to be specified using f_setlabel
|
2023-10-30 05:02:54 -04:00
|
|
|
|
|
|
|
config FATFS_LINK_LOCK
|
|
|
|
bool "Perform the whole link operation under lock"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
If enabled, the whole link operation (including file copying) is performed under lock.
|
2024-03-28 04:14:05 -04:00
|
|
|
This ensures that the link operation is atomic, but may cause performance for large files.
|
2023-10-30 05:02:54 -04:00
|
|
|
It may create less fragmented file copy.
|
2023-12-19 04:41:01 -05:00
|
|
|
config FATFS_USE_DYN_BUFFERS
|
|
|
|
bool "Use dynamic buffers"
|
2023-12-20 03:23:55 -05:00
|
|
|
depends on CONFIG_WL_SECTOR_SIZE_4096
|
2023-12-19 04:41:01 -05:00
|
|
|
default y
|
|
|
|
help
|
|
|
|
If enabled, the buffers used by FATFS will be allocated separately from the rest of the structure.
|
|
|
|
This option is useful when using multiple FATFS instances with different
|
|
|
|
sector sizes, as the buffers will be allocated according to the sector size.
|
|
|
|
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.
|
2017-02-05 23:32:52 -05:00
|
|
|
endmenu
|