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 Storage::spiFlash 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. USB devices are supported via the USB 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.