File System Interfaces
LVGL has a File system module to provide an abstraction layer for various file system drivers.
LVG has built in support for:
STDIO (Linux and Windows using C standard function .e.g fopen, fread)
POSIX (Linux and Windows using POSIX function .e.g open, read)
WIN32 (Windows using Win32 API function .e.g CreateFileA, ReadFile)
MEMFS (read a file from a memory buffer)
You still need to provide the drivers and libraries, this extension provides only the bridge between FATFS, STDIO, POSIX, WIN32 and LVGL.
Usage
In lv_conf.h
enable LV_USE_FS_...
and assign an upper cased
letter to LV_FS_..._LETTER
(e.g. 'S'
). After that you can access
files using that driver letter. E.g. "S:path/to/file.txt"
.
The work directory can be set with LV_FS_..._PATH
. E.g.
"/home/joe/projects/"
The actual file/directory paths will be
appended to it.
Cached reading is also supported if LV_FS_..._CACHE_SIZE
is set to
not 0
value. lv_fs_read()
caches this size of data to lower the
number of actual reads from the storage.
To use the memory-mapped file emulation an lv_fs_path_ex_t
object must be
created and initialized. This object can be passed to lv_fs_open()
as
the file name:
lv_fs_path_ex_t mempath;
lv_fs_file_t file;
uint8_t *buffer;
uint32_t size;
/*Initialize buffer*/
...
lv_fs_make_path_from_buffer(&mempath, LV_FS_MEMFS_LETTER, (void*)buffer, size);
lv_fs_res_t res = lv_fs_open(&file, (const char *)&mempath, LV_FS_MODE_RD);