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

説明

デバイス情報用の構造体

定義

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

メンバー

bReadOnly

書き込み不可属性

0:書き込み可能
1:書き込み不可
SectorSize
セクタサイズ (単位:byte)
SectorCount
総セクタ数
EraseSize
削除の最小単位 (単位:byte)

SOLID_FATFS_DRIVER

typedef struct _SOLID_FATFS_DRIVER_ 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;

メンバー

path
ドライバの識別に使用するprefix(例: 「SD」)
param
各関数を呼び出す際に渡す引数
open
デバイスの使用開始時に呼び出されます。
close
デバイスの使用終了時によびだされます。 これは各ファイルアクセスの終了時ではなく、デバイス自体を解放する際に呼び出されます。
isAvailable
デバイスが利用可能かどうかを問い合わせます。 利用可能な時は1を、利用不可能な時は0を、エラーの場合はエラーコードを通知してください。
getDeviceInfo
デバイス情報を取得する際に呼び出されます。
read
デバイスからデータを読み込みます。引数のaddr,lengthはセクタ単位で行います。
write
デバイスへデータを書き込みます。引数のaddr,lengthはセクタ単位で行います。
flush
デバイスへの書き込みを完全に完了させます。

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_EventNotify()INIT_FS 以降で行ってください。

IMPL_FatFs_Driver_Init

void IMPL_FatFs_Driver_Init()

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