Filesystem support

Filesystem interface

(image by xs-labs)

theCore provides filesystem classes, somewhat similar to, and inspired by the Virtual File System pattern. In that way, theCore virtual filesystem can work with any “real” filesystem.

Right now, only FAT filesystem is supported as underlying filesystem in theCore.

Source code

The main filesystem utility located under lib/fs/ directory, relative to theCore root. The FATFS code is placed in lib/fs/fat/ directory, relative to theCore root.

FAT filesystem

The FATFS support is based on Petite FAT from ELM. This FATFS implementation is device-agnostic, meaning it can work above any driver that can provide read/write/seek interface.

Compatible low-level device drivers

FATFS usage example

Note

This section is under construction.

Verified hardware

FATFS was tested along with SDSPI driver and Catalex micro-SD card adapter/module on high-capacity, class 10 micro SD card.

Known limitations

  • theCore FATFS module can only work with FAT32 filesystems. FAT16 and FAT12 are pending.
  • FATFS module must be configured similarly for every underlying device: i.e. there is no way to have 2 SD cards with 2 FAT, configured one as readonly, an one as read-write. Both of them must be the same type.