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