esp-idf/components/fatfs/Kconfig

325 lines
13 KiB
Plaintext
Raw Permalink Normal View History

2017-02-05 23:32:52 -05:00
menu "FAT Filesystem support"
config FATFS_VOLUME_COUNT
int "Number of volumes"
default 2
range 1 10
help
Number of volumes (logical drives) to use.
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
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
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
bool "Portuguese (CP860)"
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
operating on an open file. For example, if one task is performing a lengthy
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
bool "Prefer external RAM when allocating FATFS buffers"
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.
2020-08-03 13:26:59 -04:00
config FATFS_USE_FASTSEEK
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).
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
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.
0: ANSI/OEM in current CP
1: Unicode in UTF-16LE
2: Unicode in UTF-16BE
3: Unicode in UTF-8
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
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.
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.
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
config FATFS_USE_LABEL
bool "Use FATFS volume label"
default n
help
Allows FATFS volume label to be specified using f_setlabel
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.
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
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