Bulk Storage and Filing Systems

Sming uses a class-based layered approach to bulk storage.

The Storage Management Component defines the Storage::Device abstract class, which devices such as SPI flash implement to provide raw read/write/erase access. Devices are partitioned into areas for specific uses which applications access using a Storage::Partition object.

The Disk Storage library provides support for block-access devices which use standard partitioning schemes (MBR, GPT). SD cards are supported via the SD Storage library.

Sming uses an installable (virtual) filing system mechanism based on IFS::IFileSystem. This is managed by the Installable File System Component and contains the FWFS lightweight read-only filing system.

Additional filing system implementations are provided in separate libraries:

Note that when using bulk storage of more than about 4GB in size applications should be built with ENABLE_STORAGE_SIZE64 =1. This changes all sizes and offsets to 64-bit.

If manipulating files greater than about 2GB (signed 32-bit value) then the ENABLE_FILE_SIZE64 setting should also be enabled.