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_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ドライバの初期登録を行う