File System Component  Version 6.16.6
MDK Middleware for Devices with Flash File System
Differences to RL-FlashFS

The following tables give an overview of the changes to the API functions of the File System Component compared to RL-FlashFS, the Real-Time Library provided with MDK-ARM Version 4. The MDK-ARM Version 5 File System Component requires CMSIS-RTOS functionality. Events are no longer called by interrupt service routines which makes the timing of the overall system more predictable.
The API functions along with the differences are shown in the order:


RL-FlashFS: MDK-ARM Version 4 with links to the RL-ARM online manual.
File System Component: MDK-ARM Version 5.

Description of the difference.


General changes

  • SPI memory is now accessed using a configurable NOR Drive using the drive letter "N:", "N0:", or "N1:". The drive letter S: is not longer supported.
  • All file system functions return fsStatus (File System Component) instead of BOOL (RL-FlashFS).

System Routines changes


did not exist
fsStatus  fmount    (const char * drive)

Mount the File System of the specified Drive. A previous to call finit is required.


did not exist
fsStatus  funmount  (const char * drive)

Unmount the File System of the specified Drive. To completely release all resources related to the drive, a subsequent to call funinit is required.


Utility Routines changes


did not exist
fsStatus  fmedia    (const char *drive)

Check if media is present on a removable FAT drive.


did not exist
fsStatus  finfo  (const char *drive, fsDriveInfo *info)

Read general drive information from the volume.


int       fvol  (const char *drive, char *buf)
fsStatus  fvol  (const char *drive, char *label, uint32_t *serial)

Extended to read the volume label. Now returns the volume's serial number.


I/O Control Interface Routines changes

The IOC Interface was reworked completely.


int       ioc_init              (FAT_VI *vi)
removed

Not needed any more. User finit instead.


int       ioc_uninit            (FAT_VI *vi)
removed

Not needed any more. User funinit instead.


FAT_VI    ioc_getcb             (const char *drive)
int32_t   fs_ioc_get_id         (const char *drive)

Identical functionality, but not returning FAT_VI any more.


BOOL      ioc_read_info         (                 Media_INFO *info, FAT_VI *vi)
fsStatus  fs_ioc_read_info      (int32_t drv_id, fsMediaInfo *info)

Identical functionality; added drive identifier and removed access to FAT_VI structure.


BOOL      ioc_read_sect         (                U32      sect, U8      *buf, U32      cnt, FAT_VI *vi)
fsStatus  fs_ioc_read_sector    (int32_t drv_id, uint32_t sect, uint8_t *buf, uint32_t cnt)

Identical functionality; added drive identifier and removed access to FAT_VI structure.


BOOL      ioc_write_sect        (                U32      sect, U8      *buf, U32      cnt, FAT_VI *vi)
fsStatus  fs_ioc_write_sector   (int32_t drv_id, uint32_t sect, uint8_t *buf, uint32_t cnt)

Identical functionality; added drive identifier and removed access to FAT_VI structure.


did not exist
fsStatus  fs_ioc_get_cache      (int32_t drv_id, fsIOC_Cache *cache_info)

Gain information about the file system cache buffer location and its size.


did not exist
fsStatus  fs_ioc_device_ctrl    (int32_t drv_id, uint32_t code, void *p)

Send control code directly to the device driver, causing the device to perform a corresponding operation.


did not exist
fsStatus  fs_ioc_lock           (int32_t drv_id)

Lock a drive in order to block media access to the file system layer while the I/O Control Interface routines are in use.


did not exist
fsStatus  fs_ioc_unlock         (int32_t drv_id)

Unlock a drive and release media access to the File System layer.