picox  0.1
Xspiffs

spiffsをバックエンドとするファイルシステムモジュールです [詳解]

Xspiffs 連携図

データ構造

struct  XSpiFFs
 

マクロ定義

#define X_SPIFFS_TAG   (X_MAKE_TAG('X', 'S', 'P', 'F'))
 

関数

XError xspiffs_close (XFile *fp)
 
XError xspiffs_closedir (XDir *dir)
 
void xspiffs_deinit (XSpiFFs *fs)
 ファイルシステムの終了処理を行います [詳解]
 
XError xspiffs_flush (XFile *fp)
 
XError xspiffs_getcwd (XSpiFFs *fs, char *buf, size_t size)
 
void xspiffs_init (XSpiFFs *fs, spiffs *src)
 ファイルシステムを初期化します [詳解]
 
XStreamxspiffs_init_stream (XStream *stream, XFile *fp)
 
void xspiffs_init_vfs (XSpiFFs *fs, XVirtualFs *vfs)
 仮想ファイルシステムを初期化します [詳解]
 
XError xspiffs_open (XSpiFFs *fs, const char *path, XOpenMode mode, XFile **o_fp)
 
XError xspiffs_opendir (XSpiFFs *fs, const char *path, XDir **o_dir)
 
XError xspiffs_read (XFile *fp, void *dst, size_t size, size_t *nread)
 
XError xspiffs_readdir (XDir *dir, XDirEnt *dirent, XDirEnt **result)
 
XError xspiffs_remove (XSpiFFs *fs, const char *path)
 
XError xspiffs_rename (XSpiFFs *fs, const char *oldpath, const char *newpath)
 
XError xspiffs_seek (XFile *fp, XOffset pos, XSeekMode whence)
 
XError xspiffs_stat (XSpiFFs *fs, const char *path, XStat *statbuf)
 
XError xspiffs_tell (XFile *fp, XSize *pos)
 
XError xspiffs_write (XFile *fp, const void *src, size_t size, size_t *nwritten)
 

詳解

spiffsをバックエンドとするファイルシステムモジュールです

SPIフラッシュROM向けに実装されたspiffs をバックエンドとし、picoxファイルシステムインターフェースを実装しています。 spiffsはSPIフラッシュの書き換え回数制限を考慮して、ウェアレベリング機能が実 装されていることが大きな特徴です。

spiffsを使用するために必要な下位ドライバ実装には関知していないので、新規ター ゲットへの移植時は、まずはspiffsを直接使用して、R/Wが正常に行えることを確認 することからはじめてください。

覚え書き
spiffsではフラットファイル構造が採用されているため、ディレクトリを持てないこ とに注意してください。
参照
Xunionfs
Xvfs

関数詳解

void xspiffs_deinit ( XSpiFFs fs)

ファイルシステムの終了処理を行います

事前条件
  • fs != NULL
void xspiffs_init ( XSpiFFs fs,
spiffs *  src 
)

ファイルシステムを初期化します

引数
src初期化済みspiffsオブジェクト
事前条件
  • fs != NULL
  • src != NULL

spiffsの本体を利用可能にするためには、別途SPIFFS_mount()等の呼び出しが必要で す。

void xspiffs_init_vfs ( XSpiFFs fs,
XVirtualFs vfs 
)

仮想ファイルシステムを初期化します

事前条件
  • fs != NULL
  • vfs != NULL