Fat FileSystem用ドライバの登録

SOLID-OSはFATファイルシステムを標準で搭載しています。このFATファイルシステムに デバイスを追加したい場合、solid_fatfs_driver.h にある、 SOLID_FatFS_RegisterDriver 関数を使って登録してください。

#include "solid_fatfs_driver.h"

データタイプ

SOLID_FATFS_DRIVER_INFO

typedef struct _SOLID_FATFS_DRIVER_INFO_ SOLID_FATFS_DRIVER_INFO
struct _SOLID_FATFS_DRIVER_INFO_

説明

デバイス情報用の構造体

定義

typedef struct _SOLID_FATFS_DRIVER_INFO_ {
    int bReadOnly;
    size_t SectorSize;
    size_t SectorCount;
    size_t EraseSize;
} SOLID_FATFS_DRIVER_INFO;

メンバー

int bReadOnly

書き込み不可属性

0:

書き込み可能

1:

書き込み不可

size_t SectorSize

セクタサイズ (単位:byte)

size_t SectorCount

総セクタ数

size_t EraseSize

削除の最小単位 (単位:byte)

SOLID_FATFS_DRIVER

typedef struct _SOLID_FATFS_DRIVER_ SOLID_FATFS_DRIVER
struct _SOLID_FATFS_DRIVER_

説明

FATFS用ドライバ登録用 構造体

定義

typedef struct _SOLID_FATFS_DRIVER_ {
    const char* path;
    void* param;
    int (*open)(void *param);
    int (*close)(void *param);
    int (*isAvailable)(void *param);
    int (*getDeviceInfo)(void *param, SOLID_FATFS_DRIVER_INFO *pInfo);
    int (*read)(void *param, unsigned long addr, void *buff, size_t length);
    int (*write)(void *param, unsigned long addr, const void *buff, size_t length);
    int (*flush)(void *param);
} SOLID_FATFS_DRIVER;

メンバー

const char *path

ドライバの識別に使用するprefix(例: "SD")

void *param

各関数を呼び出す際に渡す引数

int (*open)(void *param)

デバイスの使用開始時に呼び出されます。

int (*close)(void *param)

デバイスの使用終了時によびだされます。 これは各ファイルアクセスの終了時ではなく、デバイス自体を解放する際に呼び出されます。

int (*isAvailable)(void *param)

デバイスが利用可能かどうかを問い合わせます。 利用可能な時は1を、利用不可能な時は0を、エラーの場合はエラーコードを通知してください。

int (*getDeviceInfo)(void *param, SOLID_FATFS_DRIVER_INFO *pInfo)

デバイス情報を取得する際に呼び出されます。

int (*read)(void *param, unsigned long addr, void *buff, size_t length)

デバイスからデータを読み込みます。引数のaddr,lengthはセクタ単位で行います。

int (*write)(void *param, unsigned long addr, const void *buff, size_t length)

デバイスへデータを書き込みます。引数のaddr,lengthはセクタ単位で行います。

int (*flush)(void *param)

デバイスへの書き込みを完全に完了させます。

API

SOLID_FatFS_RegisterDriver

int SOLID_FatFS_RegisterDriver(SOLID_FATFS_DRIVER *pDriver)

FATファイルシステム用ドライバを登録します

パラメータ:
  • pHandler -- 登録用構造体

戻り値:

SOLID_FatFS_UnregisterDriver

int SOLID_FatFS_UnregisterDriver(SOLID_FATFS_DRIVER *pDriver)

FATドライバの登録を解除します

パラメータ:
  • pHandler -- 登録用構造体

戻り値:

要実装関数

FATファイルシステム用のドライバを登録するタイミングは、要実装関数 IMPL_FatFs_Driver_Init の中または、コアサービス内イベント IMPL_CS_EventNotifyINIT_FS 以降で行ってください。

IMPL_FatFs_Driver_Init

void IMPL_FatFs_Driver_Init()

FATドライバの初期登録を行う