FATファイルシステムドライバの登録¶
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)
-
int bReadOnly¶
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)¶
デバイスへの書き込みを完全に完了させます。
-
const char *path¶
API¶
SOLID_FatFS_RegisterDriver¶
-
int SOLID_FatFS_RegisterDriver(SOLID_FATFS_DRIVER *pDriver)¶
FATファイルシステム用ドライバを登録します
- パラメータ:
pHandler -- 登録用構造体
- 戻り値:
SOLID_ERR_OK
: 正常終了それ以外: エラー
SOLID_FatFS_UnregisterDriver¶
-
int SOLID_FatFS_UnregisterDriver(SOLID_FATFS_DRIVER *pDriver)¶
FATドライバの登録を解除します
- パラメータ:
pHandler -- 登録用構造体
- 戻り値:
SOLID_ERR_OK
: 正常終了それ以外: エラー
要実装関数¶
FATファイルシステム用のドライバを登録するタイミングは、要実装関数
IMPL_FatFs_Driver_Init
の中または、コアサービス内イベント
IMPL_CS_EventNotify
の INIT_FS
以降で行ってください。
IMPL_FatFs_Driver_Init¶
-
void IMPL_FatFs_Driver_Init()¶
FATドライバの初期登録を行う