zephyr/subsys/fs/Kconfig
Audun Korneliussen 917afdf89d subsys/fs/fatfs: Add kconfig option for FAT LFN (Long Filename)
ELM FatFS implementation supports LFN, enabled via ffconf.h
configuration file. Additionally, code page (character set),
max file name length, and memory mode (LFN working buffer location)
are configurable options closely related to LFN.
Without LFN filenames are restricted to 8.3 filename format.

Add kconfig options to expose following FatFS configurations:
enable LFN, specify max filename length, specify code page
(character set), specify LFN working buffer location.

Signed-off-by: Audun Korneliussen <audun.korneliussen@nordicsemi.no>
2020-01-23 17:50:19 +01:00

142 lines
3 KiB
Plaintext

# Copyright (c) 2016 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
menu "File Systems"
config FILE_SYSTEM
bool "File system support"
help
Enables support for file system.
if FILE_SYSTEM
module = FS
module-str = fs
source "subsys/logging/Kconfig.template.log_config"
config APP_LINK_WITH_FS
bool "Link 'app' with FS"
default y
help
Add FS header files to the 'app' include path. It may be
disabled if the include paths for FS are causing aliasing
issues for 'app'.
config FAT_FILESYSTEM_ELM
bool "ELM FAT File System"
select DISK_ACCESS
help
Use the ELM FAT File system implementation.
config FILE_SYSTEM_LITTLEFS
bool "LittleFS file system support"
depends on FLASH_MAP
depends on FLASH_PAGE_LAYOUT
help
Enables LittleFS file system support.
config FILE_SYSTEM_SHELL
bool "Enable file system shell"
depends on SHELL
depends on HEAP_MEM_POOL_SIZE > 0
help
This shell provides basic browsing of the contents of the
file system.
config FUSE_FS_ACCESS
bool "Enable FUSE based access to file system partitions"
depends on ARCH_POSIX
help
Expose file system partitions to the host system through FUSE.
menu "FatFs Settings"
visible if FAT_FILESYSTEM_ELM
config FS_FATFS_NUM_FILES
int "Maximum number of opened files"
default 4
config FS_FATFS_NUM_DIRS
int "Maximum number of opened directories"
default 4
config FS_FATFS_LFN
bool "Enable long filenames (LFN)"
help
Without long filenames enabled, file names are limited to 8.3 format.
This option increases working buffer size.
if FS_FATFS_LFN
choice
prompt "LFN memory mode"
default FS_FATFS_LFN_MODE_BSS
config FS_FATFS_LFN_MODE_BSS
bool "Static buffer"
help
Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
config FS_FATFS_LFN_MODE_STACK
bool "Stack buffer"
help
Enable LFN with dynamic working buffer on the STACK.
config FS_FATFS_LFN_MODE_HEAP
bool "Heap buffer"
help
Enable LFN with dynamic working buffer on the HEAP.
endchoice
config FS_FATFS_MAX_LFN
int "Max filename length"
range 12 255
default 255
help
The working buffer occupies (FS_FATFS_MAX_LFN + 1) * 2 bytes and
additional 608 bytes at exFAT enabled.
It should be set 255 to support full featured LFN operations.
endif # FS_FATFS_LFN
config FS_FATFS_CODEPAGE
int "FatFS code page (character set)"
default 437 if FS_FATFS_LFN
default 1
help
Valid code page values:
1 - ASCII (No extended character. Non-LFN cfg. only)
437 - U.S.
720 - Arabic
737 - Greek
771 - KBL
775 - Baltic
850 - Latin 1
852 - Latin 2
855 - Cyrillic
857 - Turkish
860 - Portuguese
861 - Icelandic
862 - Hebrew
863 - Canadian French
864 - Arabic
865 - Nordic
866 - Russian
869 - Greek 2
932 - Japanese (DBCS)
936 - Simplified Chinese (DBCS)
949 - Korean (DBCS)
950 - Traditional Chinese (DBCS)
endmenu
source "subsys/fs/Kconfig.littlefs"
endif # FILE_SYSTEM
source "subsys/fs/fcb/Kconfig"
source "subsys/fs/nvs/Kconfig"
endmenu