1.2.7.4.1 SYS_FS_Initialize Function

C

SYS_FS_RESULT SYS_FS_Initialize
(
    const void* initData
);

Summary

Initializes the file system abstraction layer (sys_fs layer).

Description

This function initializes the abstraction layer (sys_fs layer) and sets up the necessary parameters.

Precondition

This is the first function to be called during usage of sys_fs. Calling other functions of sys_fs without initializing the sys_fs will cause unpredictable behavior.

Parameters

ParamDescription
initDataPointer to an array of type SYS_FS_REGISTRATION_TABLE. The number of elements of array is decided by the definition SYS_FS_MAX_FILE_SYSTEM_TYPE. If the application uses one file system (say only FAT FS), SYS_FS_MAX_FILE_SYSTEM_TYPE is defined to be 1. Otherwise, if the application uses 2 file systems (say FAT FS and MPFS2), SYS_FS_MAX_FILE_SYSTEM_TYPE is defined to be 2.

Returns

SYS_FS_RES_SUCCESS - SYS FS Layer was initialized successfully.

SYS_FS_RES_FAILURE - SYS FS Layer initialization failed. The reason for the failure can be retrieved with SYS_FS_Error.

Example

// This code shows an example of how the SYS FS is initialized
// Only one file system is used

#define SYS_FS_MAX_FILE_SYSTEM_TYPE 1

// Function pointer table for FAT FS
const SYS_FS_FUNCTIONS FatFsFunctions =
{
    .mount = FATFS_mount,
    .unmount = FATFS_unmount,
    .open = FATFS_open,
    .read = FATFS_read,
    .write = FATFS_write,
    .close = FATFS_close,
    .seek = FATFS_lseek,
    .tell = FATFS_tell,
    .eof = FATFS_eof,
    .size = FATFS_size,
    .fstat = FATFS_stat,
};

const SYS_FS_REGISTRATION_TABLE sysFSInit [ SYS_FS_MAX_FILE_SYSTEM_TYPE ] =
{
    {
        .nativeFileSystemType = FAT,
        .nativeFileSystemFunctions = &FatFsFunctions
    }
};

SYS_FS_Initialize((const void *)sysFSInit);