picox  0.1

ROM上に作成するファイルシステムモジュールです [詳解]

Xromfs 連携図

データ構造

struct  XRomFs
 

マクロ定義

#define X_ROMFS_TAG   (X_MAKE_TAG('X', 'R', 'O', 'F'))
 

関数

XError xromfs_chdir (XRomFs *fs, const char *path)
 
XError xromfs_close (XFile *fp)
 
XError xromfs_closedir (XDir *dir)
 
void xromfs_deinit (XRomFs *fs)
 ファイルシステムの終了処理を行います [詳解]
 
XError xromfs_getcwd (XRomFs *fs, char *buf, size_t size)
 
XError xromfs_init (XRomFs *fs, const void *romimage)
 ファイルシステムを初期化します [詳解]
 
XStreamxromfs_init_stream (XStream *stream, XFile *fp)
 
void xromfs_init_vfs (XRomFs *fs, XVirtualFs *vfs)
 仮想ファイルシステムを初期化します [詳解]
 
XError xromfs_open (XRomFs *fs, const char *path, XOpenMode mode, XFile **o_fp)
 
XError xromfs_opendir (XRomFs *fs, const char *path, XDir **o_dir)
 
XError xromfs_read (XFile *fp, void *dst, size_t size, size_t *nread)
 
XError xromfs_readdir (XDir *dir, XDirEnt *dirent, XDirEnt **result)
 
XError xromfs_seek (XFile *fp, XOffset pos, XSeekMode whence)
 
XError xromfs_stat (XRomFs *fs, const char *path, XStat *statbuf)
 
XError xromfs_tell (XFile *fp, XSize *pos)
 

詳解

ROM上に作成するファイルシステムモジュールです

予め作成したROMファイルシステムイメージを、なんらかの方法でROM領域に埋め込ん で(コンパイラの拡張機能かpicoxが提供するxbin2c.pyを使用して配列に変換する)使 用することを想定したリードオンリーのファイルシステムです。

通常のファイルシステムは、ブロックアクセスが必要な外部記憶装置の特性に合わし た構造をしていますが、このファイルシステムはランダムアクセス可能かつリードオ ンリーであることを前提にしているため、使用領域に無駄がありません。

最近のMPUはRAMサイズに比べてROMはわりと潤沢にあるので、画像データや初期設定 ファイル等のリソースを埋め込んで使用することを想定しています。

1ファイルずつを個別に埋め込んだ場合に比べて、多少のオーバーヘッドはあります が、ファイルシステムのインターフェースを通してアクセスできるようになることと 、リソースデータだけを差し替えることが比較的容易になることが利点です。

参照
Xunionfs
Xvfs

関数詳解

void xromfs_deinit ( XRomFs fs)

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

事前条件
  • fs != NULL
XError xromfs_init ( XRomFs fs,
const void *  romimage 
)

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

引数
romimageROMファイルシステムのディスクイメージが格納された領域
事前条件
  • fs != NULL
  • romimage != NULL
void xromfs_init_vfs ( XRomFs fs,
XVirtualFs vfs 
)

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

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