How Reliance Edge Supports ARM mbed?
ARM mbed is an IoT ecosystem built around the ARM Cortex-M processor line. ARM mbed is unique as an IoT platform in that it is developed in C++ and uses C++ classes to support file system integration into its Virtual File System (VFS). Reliance Edge integrates with mbed by implementing a FileSystemLike subclass.
When Reliance Edge is configured to use its POSIX-like interface, this allows users to access volumes through the FileSystemLike subclass or through the C standard library interface (such as “fopen()”). Most programs written for other file systems on ARM mbed will work with this interface without significant changes.
If the Reliance Edge File System Essentials (FSE) API is chosen instead, users must call the FSE functions directly. This may be preferred in some scenarios to keep RAM and CPU requirements to a minimum.
The interface to the underlying block device is implemented using a C++ class hierarchy: the Reliance Edge FileSystemLike subclass must be inherited by another subclass which defines the interface to the block device. This structure is identical to what mbed’s FAT file system (FATFileSystem) uses, so any subclasses that work with the FATFileSystem (such as SDFileSystem and USBFileSystem) work with Reliance Edge with only minimal changes. Two such adaptations are provided: one that uses a SPI interface to access an SD card, and another that uses a RAM virtual disk for storage.
What is the existing file system and how does Reliance Edge compare?
The default file system on ARM mbed, and perhaps the only full-featured pre-ported filesystem other than Reliance Edge, is an adaptation of ChaN’s FatFs known as FATFileSystem. Depending on the block device implementation, this filesystem may also be called SDFileSystem or USBFileSystem.
Some other interesting file-system-like modules are also shown here for comparison.
FatFs (SDFileSystem, USBFileSystem)
|API Support||Accessed through mbed VFS or File System Essentials API||Accessed through mbed VFS||Accessed through mbed VFS||Accessed through mbed VFS|
|File system functionality||Full-featured, highly configuable||Full-featured, configurable||Flat (no directory support)||Read-only|
|Reliability||Full transactional reliability||Vulnerable to corruption from power failure||Unknown||N/A, read-only file system|
|Media supported||SD, RAM disk, extensible||SD, RAM disk, USB, extensible||ARM mbed on-device storage*||CPU's FLASH program storage|
|Professionally developed and tested||Yes||No**||No||No|
* This is the semihost storage that shows up in Windows as an “MBED” drive when you plug in mbed-enabled hardware via USB. It is not designed for runtime application storage.
** The FatFs file system is widely used on various IoT platforms, but the ARM mbed port is not known to be professionally developed and tested. Datalight internal testing has exposed flaws in the port code.
For a generic comparison of Reliance Edge vs FAT and other filesystems, see the Product Introduction of the Reliance Edge Developers’ Guide.
Reliance Edge Resources
Kits Available For
The open source version of Reliance Edge is licensed under the terms of GNU General Public License, version 2.