ファイルシステム

SOLIDでのファイルへのアクセスは、SOLID_FS APIを介して行います。

SOLID_FS APIを使用するには、solid_fs.h をインクルードしてください。

#include "solid_fs.h"

SOLIDには、基本構成としてFATファイルシステム、簡易的なメモリファイルシステム、デバッガ接続時のみ 使用可能なVLINKファイルシステムが存在します。 どのファイルシステムへのアクセスかは、パス名の先頭にて区別されます。 例えば、FATファイルシステムへのアクセスは、\\FATFS\\ を先頭につけます。

本項

ドライバの登録

ドライバの登録について

Fat FileSystem用ドライバの登録

Fatファイルシステムのドライバの登録について

API

SOLID_FS_Open

int SOLID_FS_Open(int *fd, const char *path, int mode)

ファイルへのアクセスを開始します

成功した場合、fdに識別子が入ります

パラメータ
  • fd -- オープンしたファイルの識別子

  • path -- ファイルパス(文字列,NUL終端)

  • mode -- O_XXX (fcntl.hを参照)

戻り値

SOLID_FS_Close

int SOLID_FS_Close(int fd)

ファイルへのアクセスを終了します

パラメータ

fd -- ファイルの識別子

戻り値

SOLID_FS_Read

int SOLID_FS_Read(int fd, void *buf, size_t size, size_t *result)

ファイルからデータを読み込みます

パラメータ
  • fd -- ファイルの識別子

  • buf -- 格納先

  • size -- 読み込むサイズ(byte)

  • result -- 実際に取得できたサイズ(byte)

戻り値

SOLID_FS_Write

int SOLID_FS_Write(int fd, const void *buf, size_t size, size_t *result)

ファイルへデータを書き込みます

パラメータ
  • fd -- ファイルの識別子

  • buf -- 書き込むデータ

  • size -- 書き込むサイズ(byte)

  • result -- 実際に書き込んだサイズ(byte)

戻り値

SOLID_FS_Lseek

int SOLID_FS_Lseek(int fd, off_t offset, int whence)

ファイルのアクセス位置を移動します

パラメータ
  • fd -- ファイルの識別子

  • offset -- オフセット(byte)

  • whence -- SEEK_XXX(fcntl.hを参照)

戻り値

SOLID_FS_Sync

int SOLID_FS_Sync(int fd)

ファイルの書き込みをフラッシュします

パラメータ

fd -- ファイルの識別子

戻り値

SOLID_FS_Ftell

int SOLID_FS_Ftell(int fd, off_t *result)

ファイルのアクセス位置を取得します

パラメータ
  • fd -- ファイルの識別子

  • result -- 現在のアクセス位置(先頭からのオフセット,byte)

戻り値

SOLID_FS_Feof

int SOLID_FS_Feof(int fd, int *result)

ファイルのアクセス位置が終端に来ているかどうかを取得します

パラメータ
  • fd -- ファイルの識別子

  • result -- 終端:1 それ以外:0

戻り値

SOLID_FS_Fsize

int SOLID_FS_Fsize(int fd, size_t *result)

ファイルサイズを取得します

パラメータ
  • fd -- ファイルの識別子

  • result -- ファイルサイズ(byte)

戻り値

SOLID_FS_Truncate

int SOLID_FS_Truncate(const char *path, off_t size)

指定されたファイルのサイズを切り詰めます

パラメータ
  • path -- ファイルパス(文字列,NUL終端)

  • size -- ファイルサイズ(byte)

戻り値

SOLID_FS_OpenDir

int SOLID_FS_OpenDir(const char *path, S_DIR *pDir)

ディレクトリをオープンする

パラメータ
  • path -- オープンするディレクトリへのパス(文字列,NUL終端)

  • pDir -- ディレクトリ識別子

戻り値

SOLID_FS_CloseDir

int SOLID_FS_CloseDir(S_DIR dir)

ディレクトリをクローズする

パラメータ

dir -- ディレクトリ識別子

戻り値

SOLID_FS_ReadDir

int SOLID_FS_ReadDir(S_DIR dir, struct dirent *dirp)

ディレクトリの情報を取得する

パラメータ
  • dir -- ディレクトリ識別子

  • dirp -- ディレクトリ情報の格納先

戻り値

  • SOLID_ERR_OK: 正常終了(データあり)

  • それ以外: データなし、またはエラー

SOLID_FS_Stat

int SOLID_FS_Stat(const char *path, struct stat *buf)

ファイル/ディレクトリの情報を取得する

パラメータ
  • path -- ファイル/ディレクトリのパス(文字列,NUL終端)

  • buf -- 情報格納先(stat.h参照)

戻り値

SOLID_FS_Rename

int SOLID_FS_Rename(const char *oldpath, const char *newpath)

ファイル/ディレクトリの名前を変更する

パラメータ
  • oldpath -- ファイル/ディレクトリのパス(文字列,NUL終端)

  • newpath -- 変更後のパス(文字列,NUL終端)

戻り値

SOLID_FS_Chmod

int SOLID_FS_Chmod(const char *path, int mode)

ファイル/ディレクトリの属性を変更する

パラメータ
  • path -- ファイル/ディレクトリのパス(文字列,NUL終端)

  • mode -- S_XXX (stat.h参照)

戻り値

SOLID_FS_Utime

int SOLID_FS_Utime(const char *path, time_t time)

ファイル/ディレクトリのタイムスタンプを変更する

パラメータ
  • path -- ファイル/ディレクトリのパス(文字列,NUL終端)

  • time -- 変更する時間

戻り値

SOLID_FS_Mkdir

int SOLID_FS_Mkdir(const char *path)

ディレクトリを作成する

パラメータ

path -- 生成するディレクトリパス(文字列,NUL終端)

戻り値

メモリファイルシステム

SOLIDでのファイルシステムは、メモリの一部をファイルの内容としてアクセスする、 簡易的なファイルシステムが実装されています。

指定するファイルパスは、"\\ROM\<アドレス>,<サイズ>" を指定します。 アドレスおよびサイズは16進数で指定してください。