273 lines
11 KiB
Text
273 lines
11 KiB
Text
menu "LittleFS"
|
|
|
|
config LITTLEFS_SDMMC_SUPPORT
|
|
bool "SDMMC support (requires ESP-IDF v5+)"
|
|
default n
|
|
help
|
|
Toggle SD card support
|
|
This requires IDF v5+ as older ESP-IDF do not support SD card erase.
|
|
|
|
config LITTLEFS_MAX_PARTITIONS
|
|
int "Maximum Number of Partitions"
|
|
default 3
|
|
range 1 10
|
|
help
|
|
Define maximum number of partitions that can be mounted.
|
|
|
|
config LITTLEFS_PAGE_SIZE
|
|
int "LITTLEFS logical page size"
|
|
default 256
|
|
range 256 1024
|
|
help
|
|
Logical page size of LITTLEFS partition, in bytes. Must be multiple
|
|
of flash page size (which is usually 256 bytes).
|
|
Larger page sizes reduce overhead when storing large files, and
|
|
improve filesystem performance when reading large files.
|
|
Smaller page sizes reduce overhead when storing small (< page size)
|
|
files.
|
|
|
|
config LITTLEFS_OBJ_NAME_LEN
|
|
int "Maximum object name length including NULL terminator."
|
|
default 64
|
|
range 16 1022
|
|
help
|
|
Includes NULL-terminator. If flashing a prebuilt filesystem image,
|
|
rebuild the filesystem image if this value changes.
|
|
mklittlefs, the tool that generates the image will automatically be rebuilt.
|
|
If downloading a pre-built release of mklittlefs, it was most-likely
|
|
built with LFS_NAME_MAX=32 and should not be used.
|
|
|
|
config LITTLEFS_READ_SIZE
|
|
int "Minimum size of a block read."
|
|
default 128
|
|
help
|
|
Minimum size of a block read. All read operations will be a
|
|
multiple of this value.
|
|
|
|
config LITTLEFS_WRITE_SIZE
|
|
int "Minimum size of a block write."
|
|
default 128
|
|
help
|
|
Minimum size of a block program. All write operations will be a
|
|
multiple of this value.
|
|
|
|
config LITTLEFS_LOOKAHEAD_SIZE
|
|
int "Look ahead size."
|
|
default 128
|
|
help
|
|
Look ahead size. Must be a multiple of 8.
|
|
|
|
config LITTLEFS_CACHE_SIZE
|
|
int "Cache Size"
|
|
default 512
|
|
help
|
|
Size of block caches. Each cache buffers a portion of a block in RAM.
|
|
The littlefs needs a read cache, a program cache, and one additional
|
|
cache per file. Larger caches can improve performance by storing more
|
|
data and reducing the number of disk accesses. Must be a multiple of
|
|
the read and program sizes, and a factor of the block size (4096).
|
|
|
|
config LITTLEFS_BLOCK_CYCLES
|
|
int "LittleFS wear-leveling block cycles"
|
|
default 512
|
|
range -1 1024
|
|
help
|
|
Number of erase cycles before littlefs evicts metadata logs and moves
|
|
the metadata to another block. Suggested values are in the
|
|
range 100-1000, with large values having better performance at the cost
|
|
of less consistent wear distribution.
|
|
Set to -1 to disable block-level wear-leveling.
|
|
|
|
config LITTLEFS_USE_MTIME
|
|
bool "Save file modification time"
|
|
default "y"
|
|
help
|
|
Saves timestamp on modification. Uses an additional 4bytes.
|
|
|
|
config LITTLEFS_USE_ONLY_HASH
|
|
bool "Don't store filepath in the file descriptor"
|
|
default "n"
|
|
help
|
|
Records the filepath only as a 32-bit hash in the file descriptor instead
|
|
of the entire filepath. Saves approximately `sizeof(filepath)` bytes
|
|
per file descriptor.
|
|
If enabled, functionality (like fstat) that requires the file path
|
|
from the file descriptor will not work.
|
|
In rare cases, may cause unlinking or renaming issues (unlikely) if
|
|
there's a hash collision between an open filepath and a filepath
|
|
to be modified.
|
|
|
|
config LITTLEFS_HUMAN_READABLE
|
|
bool "Make errno human-readable"
|
|
default "n"
|
|
help
|
|
Converts LittleFS error codes into human readable strings.
|
|
May increase binary size depending on logging level.
|
|
|
|
choice LITTLEFS_MTIME
|
|
prompt "mtime attribute options"
|
|
depends on LITTLEFS_USE_MTIME
|
|
default LITTLEFS_MTIME_USE_SECONDS
|
|
help
|
|
Save an additional 4-byte attribute. Options listed below.
|
|
|
|
config LITTLEFS_MTIME_USE_SECONDS
|
|
bool "Use Seconds"
|
|
help
|
|
Saves timestamp on modification.
|
|
|
|
config LITTLEFS_MTIME_USE_NONCE
|
|
bool "Use Nonce"
|
|
help
|
|
Saves nonce on modification; intended for detecting filechanges
|
|
on systems without access to a RTC.
|
|
|
|
A file who's nonce is the same as it was at a previous time has
|
|
high probability of not having been modified.
|
|
|
|
Upon file modification, the nonce is incremented by one. Upon file
|
|
creation, a random nonce is assigned.
|
|
|
|
There is a very slim chance that a file will have the same nonce if
|
|
it is deleted and created again (approx 1 in 4 billion).
|
|
|
|
endchoice
|
|
|
|
config LITTLEFS_SPIFFS_COMPAT
|
|
bool "Improve SPIFFS drop-in compatability"
|
|
default "n"
|
|
help
|
|
Enabling this feature allows for greater drop-in compatability
|
|
when replacing SPIFFS. Since SPIFFS doesn't have folders, and
|
|
folders are just considered as part of a file name, enabling this
|
|
will automatically create folders as necessary to create a file
|
|
instead of throwing an error. Similarly, upon the deletion of the
|
|
last file in a folder, the folder will be deleted. It is recommended
|
|
to only enable this flag as a stop-gap solution.
|
|
|
|
config LITTLEFS_FLUSH_FILE_EVERY_WRITE
|
|
bool "Flush file to flash after each write operation"
|
|
default "n"
|
|
help
|
|
Enabling this feature extends SPIFFS capability.
|
|
In SPIFFS data is written immediately to the flash storage when fflush() function called.
|
|
In LittleFS flush() does not write data to the flash, and fsync() call needed after.
|
|
With this feature fflush() will write data to the storage.
|
|
|
|
config LITTLEFS_OPEN_DIR
|
|
bool "Support opening directory"
|
|
default "n"
|
|
depends on !LITTLEFS_USE_ONLY_HASH && LITTLEFS_SPIFFS_COMPAT
|
|
help
|
|
Support opening directory by following APIs:
|
|
|
|
int fd = open("my_directory", O_DIRECTORY);
|
|
|
|
config LITTLEFS_FCNTL_GET_PATH
|
|
bool "Support get file or directory path"
|
|
default "n"
|
|
depends on !LITTLEFS_USE_ONLY_HASH
|
|
help
|
|
Support getting directory by following APIs:
|
|
|
|
char buffer[MAXPATHLEN];
|
|
|
|
int fd = open("my_file", flags);
|
|
fcntl(fd, F_GETPATH, buffer);
|
|
|
|
config LITTLEFS_FCNTL_F_GETPATH_VALUE
|
|
int "Value of command F_GETPATH"
|
|
default 20
|
|
depends on LITTLEFS_FCNTL_GET_PATH
|
|
help
|
|
ESP-IDF's header file "fcntl.h" doesn't support macro "F_GETPATH",
|
|
so we should define this macro here.
|
|
|
|
config LITTLEFS_MULTIVERSION
|
|
bool "Support selecting the LittleFS minor version to write to disk"
|
|
default "n"
|
|
help
|
|
LittleFS 2.6 bumps the on-disk minor version of littlefs from lfs2.0 -> lfs2.1.
|
|
|
|
This change is backwards-compatible, but after the first write with the new version,
|
|
the image on disk will no longer be mountable by older versions of littlefs.
|
|
|
|
Enabling LITTLEFS_MULTIVERSION allows to select the On-disk version
|
|
to use when writing in the form of 16-bit major version
|
|
+ 16-bit minor version. This limiting metadata to what is supported by
|
|
older minor versions. Note that some features will be lost. Defaults to
|
|
to the most recent minor version when zero.
|
|
|
|
choice LITTLEFS_DISK_VERSION
|
|
prompt "LITTLEFS_DISK_VERSION"
|
|
depends on LITTLEFS_MULTIVERSION
|
|
default LITTLEFS_DISK_VERSION_MOST_RECENT
|
|
help
|
|
See LITTLEFS_MULTIVERSION for details.
|
|
|
|
config LITTLEFS_DISK_VERSION_MOST_RECENT
|
|
bool "Write the most recent LittleFS version"
|
|
|
|
config LITTLEFS_DISK_VERSION_2_1
|
|
bool "Write LittleFS 2.1"
|
|
|
|
config LITTLEFS_DISK_VERSION_2_0
|
|
bool "Write LittleFS 2.0 (no forward-looking erase-state CRCs)"
|
|
|
|
endchoice
|
|
|
|
choice LITTLEFS_MALLOC_STRATEGY
|
|
prompt "Buffer allocation strategy"
|
|
default LITTLEFS_MALLOC_STRATEGY_DEFAULT
|
|
help
|
|
Maps lfs_malloc to ESP-IDF capabilities-based memory allocator or
|
|
disables dynamic allocation in favour of user-provided static buffers.
|
|
|
|
config LITTLEFS_MALLOC_STRATEGY_DISABLE
|
|
bool "Static buffers only"
|
|
help
|
|
Disallow dynamic allocation, static buffers must be provided by the calling application.
|
|
|
|
config LITTLEFS_MALLOC_STRATEGY_DEFAULT
|
|
bool "Default heap selection"
|
|
help
|
|
Uses an automatic allocation strategy. On systems with heap in SPIRAM, if
|
|
the allocation size does not exceed SPIRAM_MALLOC_ALWAYSINTERNAL then internal
|
|
heap allocation if preferred, otherwise allocation will be attempted from SPIRAM
|
|
heap.
|
|
|
|
config LITTLEFS_MALLOC_STRATEGY_INTERNAL
|
|
bool "Internal heap"
|
|
help
|
|
Uses ESP-IDF heap_caps_malloc to allocate from internal heap.
|
|
|
|
config LITTLEFS_MALLOC_STRATEGY_SPIRAM
|
|
bool "SPIRAM heap"
|
|
depends on SPIRAM_USE_MALLOC || SPIRAM_USE_CAPS_ALLOC
|
|
help
|
|
Uses ESP-IDF heap_caps_malloc to allocate from SPIRAM heap.
|
|
|
|
endchoice
|
|
|
|
config LITTLEFS_ASSERTS
|
|
bool "Enable asserts"
|
|
default "y"
|
|
help
|
|
Selects whether littlefs performs runtime assert checks.
|
|
|
|
config LITTLEFS_MMAP_PARTITION
|
|
bool "Memory map LITTLEFS partitions"
|
|
default "n"
|
|
help
|
|
Use esp_partition_mmap to map the partitions to memory, which can provide a significant
|
|
performance boost in some cases. Make sure the chip you're using has enough available address
|
|
space to map the partition (for the ESP32 there is 4MB available).
|
|
|
|
config LITTLEFS_WDT_RESET
|
|
bool "Reset task watchdog during flash operations"
|
|
default "n"
|
|
help
|
|
Enable calling esp_task_wdt_reset() during flash read/write/erase operations
|
|
to prevent task watchdog timeouts during long-running filesystem operations.
|
|
|
|
endmenu
|