Cente FileSystem
最新更新日/2010.06.07 : Ver5.71

製品概要
- 組込み機器開発専用のFAT互換ファイルシステム
- RTOS無しでも使用可能
- FAT12/16/32/VFAT(ロングファイル名)に対応
- 階層ディレクトリをサポート
- ANSI準拠のファイル入出力APIおよびPOSIX準拠のディレクトリ操作API
- Centeオリジナルのファイル/ディレクトリ操作API
- Shift-JIS/UNICODEそれぞれに対応
- FAT及びディレクトリのキャッシュ機能
- キャッシュの自動保存機能により安全性を強化
- ダイレクトアクセスによる高速ファイル検索機能
- ハッシュ処理による高速ファイル検索機能
- FAT領域のbitmap化機能による空きFAT検索の高速化
- 遅延書込機能によるアプリケーション処理の効率化(RTOS必須)
- メモリカードの活線挿抜でFATを保護するメタデータ保護機能
- チェックディスク機能
- マルチパーティションメディアに対応
- PCMCIA/CFコントローラドライバサンプルを付属
- ATAドライバサンプルを付属
【最新情報・トピックス】
・Ver5.71をリリースしました。(2010.06)
詳しくは改版履歴をご覧ください。
・Ver5.70をリリースしました。(2009.12)
詳しくは改版履歴をご覧ください。
TI社のDSP-BIOSに対応しました。(2009.01)
テキサス・インスツルメンツ社のDSP BIOSカーネル(TM)/Code Composer Studio(統合開発環境)に対応しました。同社のDSPプロセッサ(DSP C674x等)上で簡単にFATファイルシステム機能を実現することができます(ホストCPUは不要)。
・ハッシュ処理による高速ファイル検索が可能になりました。(Ver5.60)
・Ver5.50で大幅な機能追加や性能改善を行っています。
詳しくは改変履歴をご覧ください。
製品詳細情報
価格
価格:84万円/プロジェクト限定ライセンス
- 表記の価格は、1プロジェクトライセンス、税込みの定価となります。
- 他のライセンス形態につきましては、お問い合わせください。
改版履歴
2010.06.07 : Ver5.71
・save_cache関数修正
セーブキャッシュ時にデバイスへのアクセスに失敗した場合、FAT、ディレクトリ領域用のセマフォ返却が行なわれない不具合を修正。
・new_cache, new_dcache関数修正
FAT, Directory Cacheのデバイスへのアクセスに失敗した場合のキャッシュの扱いにおける不具合を修正。
・ct_get_api_fsyser, set_api_fsyser関数修正
エラーコード取得時に格納変数配列を超えてアクセスしてしまう不具合を修正。
・fwrite関数修正
書込みエラー発生時に、正しい戻り値を返さない場合がある不具合を修正。
・fclose関数修正
ファイルクローズ時にエラーが発生した場合、ファイル構造体の資源が減少してしまう不具合を修正。
・readdir_uni関数修正
ビックエンディアンでreaddir_uniを実行した場合に、正しいディレクトリ・ファイル情報が取得できない不具合を修正。
・fread, fwrite関数修正
入出力バッファを更新する時に、バッファに保存しているデータに対するセクタ番号の情報を誤った内容に更新してしまう場合がある不具合を修正。
・fs_find_dir_entry_root_sub、fs_find_dir_entry_sub関数修正
ショートファイル名のチルダ(~)後の番号の上限チェックが行われない為ショートファイル名が重複してしまい、ファイル/ディレクトリに正常にアクセスできない不具合、及びバッファオーバーフローが発生しシステムが誤動作する可能性がある不具合を修正。
・fclose, fflush関数修正
入出力バッファ内の未保存データを書き込み時にエラーが発生した場合、再度fflushを行おうとしてもデータをデバイスに反映できない不具合を修正。
・遅延書込みタスク取り扱い変更
マクロ(DLYWT)指定による遅延書込みタスクの組込み方式を廃止しました。
今後はパッケージ内に提案されたサンプルを参考にして頂き導入の可否をご判断願います。
2009.12.14 : Ver5.70
・new_cluster、next_cluster、fs_vins_clust関数修正
戻り値の型がunsigned longであるにも関わらず、マイナス値を返していた箇所を修正しました。
・fs_ini_disklock、fs_rst_disklock関数修正
アンマウント実行時にセマフォの削除が行えず、再度マウントを実行すると過剰にセマフォを生成してしまう不具合を修正しました。
・fread、fwrite、ct_ins_clust関数修正
get_api_fsyserによる、マルチタスク環境下でのエラーの詳細コード取得に対応できていない不具合を修正しました。
・ini_blk_cache_dir関数修正
ini_blk_cache_dir()の引数には最低でも、バッファサイズ / (キャッシュサイズ * ブロック数) が3以上になる値が指定される必要があるが、それを下回る値を指定することができてしまう不具合を修正しました。
・fwrite関数修正
アクセス速度パラメータ(#define WRITE_CLUSTER)に 1 を設定した場合で、書き込み開始クラスタの先頭から書き込み終了位置までのサイズが1クラスタ以上、2クラスタ未満の場合に、セクタ番号の更新が行われずDATAが上書きされてしまう不具合を修正しました。
・fs_find_dir_entry関数修正
FAT領域アクセス用のセマフォ獲得及び返却に失敗した場合に、それ以前にディレクトリエントリ領域アクセス用に獲得したセマフォの返却が行なわれない不具合を修正しました。
・fs_ini_disklock関数修正
複数のパーティションに分割されたメディアにおいて、各ドライブは同一ドライバで動作するため、生成するセマフォは1つになるが、fs_ini_disklock()の先頭でセマフォIDのクリアを行なっていたため、同一ドライバでも複数個セマフォが生成されてしまう不具合を修正しました。
・ini_disk_sect、mount_disk関数修正
fs_ini_disklock()によりセマフォ資源を生成している箇所について、その後の処理でエラー終了した場合にセマフォ資源の削除が行なわれない不具合を修正しました。
・ct_ini_disk_sect、mount_disk関数修正
連続未使用クラスタ検索機能を有効(#define FS_FREE_CLUST 1)にした状態でのマウント処理において、獲得したワーク用バッファの返却を二重に行なっている箇所があり、その結果OSの誤動作を招く不具合を修正しました。
・fopen、fopen_cl、fopen_hash、fopen_uni関数修正
高速fseek機能有効時(#define FS_SEEK_BF 1)、fseek用2次キャッシュバッファ獲得後の処理でエラー終了した場合に、バッファの返却が行なわれない不具合を修正しました。
・ini_disk_sect、mount_disk、remove_hash、fs_r_sect、fs_w_sect関数修正
セマフォの獲得/返却またはメモリプールの獲得/返却に失敗した場合に、OSシステムコールのエラーコードをそのままFileSsytem APIが戻り値として返してしまう不具合を修正しました。
・fopen_hash、hash_entry、hash_delete、ini_fsys、reset_fsys関数修正
fopen_hash()で作成したファイルをmoveで移動した後、再度同一名称のファイルをfopen_hash()で作成しようとした場合、ハッシュテーブルへのハッシュ値が存在するため、エラーで終了してしまう不具合を修正しました。
・get_dev0関数修正
マルチパーティション環境(#define FS_MULTI_P 1)で、スーパーフロッピーディスク形式に対応するためのコードを追加しました。
・unmount_disk関数修正
ファイル操作中にメディアが抜かれてしまった場合の対応として、入出力バッファ、高速fseek用バッファのメモリブロック解放がunmount_disk()実行時に必ず行なわれるように改善しました。
・ini_disk、ini_disk_sect、mount_disk、unmount_disk関数修正
デバイスドライバ上でエラーが発生した場合は戻り値として-2を返すように変更を行ない、デバイスドライバ上のエラー、FileSystem上のエラーを区別できるように改善を行ないました。
・fs_find_dir_entry_root、fs_find_dir_entry、fs_fat_chain_clear、set_fsinfo、fs_find_dir_entry_root_uni、fs_find_dir_entry_uni、fs_remove_entry関数修正
サブ関数を新設し、セマフォ獲得・返却関数の呼び出しが一回で済むような形に改善しました。
・fs_iniworkmem関数修正
正常の場合の戻り値としてOSシステムコールからの戻り値をそのまま返していたため、「0」に置き換えて返すように修正しました。
・ini_fsys、ini_disk_sect、reset_fsys関数修正
エラー発生時に直ぐにエラー終了せず、そのエラーが無視され処理が続けて行なわれてしまう不具合を修正しました。
・fread、chg_filelen関数修正
マウントのチェック処理が抜けていたため追加を行ないました。
・save_cache関数修正
FAT領域保護用のセマフォ獲得/返却はct_save_cache()内で行なっているが、メタデータ保護機能又はキャッシュの自動保存機能を有効にした際、各APIではfs_save_cache()を実行しているため、fs_save_cahe()内でFAT領域保護用のセマフォ獲得/返却が行なわれるように修正しました。
・mount_disk、ini_disk_sect関数修正
マウント処理時にFAT32用のディスク構造体メンバの初期化処理を追加しました。
・fclose関数修正
入出力バッファの解放前にファイル構造体メンバの stat を 0 に初期化していたため、マルチタスク環境下では入出力バッファの解放前にそのファイル構造体が別のファイルに割り当てられしまう不具合を修正しました。
・fopen_cl、fopen_hash関数修正
FAT12/16ルートディレクトリ上において、オープン対象ファイルのディレクトリエントリの位置が1セクタを超える場合に正しいディレクトリエントリの検索が行なえず、誤ったディレクトリエントリにサイズ情報を書き込んでしまう不具合を修正しました。
・ライトプロテクトチェックの追加
キャッシュ機能有効の状態でライトプロテクト機構のあるメディアを使用した場合、キャッシュの自動フラッシュが起こってしまい誤動作する可能性があるため、書き込み系APIではST_DISK構造体のdsk_flgにセットされたライトプロテクトビットのチェックを行い、早期にエラー終了するように修正しました。
・デバッグログの削除
メタデータ保護機能評価用として各ソースファイル内に組み込まれていたデバッグログを全て削除しました。
・エラーコード返却不具合修正
・fs_er()により戻された0/-1の値を再びfs_er()に渡してしまっている箇所を修正しました。
・発生したエラーとエラーコードの意味が異なる箇所を修正しました。
・最初に返したエラーコードを、その後、全く意味の異なるエラーコードに置き換えている箇所を修正しました。
・エラーコード以外を返している箇所を修正しました。
・リエントラントを考慮されていないエラーコード保存箇所を修正しました。
2009.04.04 : Ver5.63
・chg_attr、chg_tstamp関数修正
SAVE_CACHEマクロが有効な時に、ディレクトリキャッシュを保存する処理を追加しました。
・ct_chg_attrfp、ct_chg_tstampfp関数修正
"r"モードで開いたファイルのファイル属性、タイムスタンプが変更されてしまう不具合を修正しました。
・fs_ini_fatlock、fs_ini_direntrylock関数修正
初期化時に構造体の0クリア処理を追加しました。
・new_cluster関数修正
16BitCPUでFAT32フォーマットされたメディアを使用した場合に、new_clusterの戻り値をint型で返してしまい上位ビットが反転してしまう不具合を修正しました。
・get_dev_free、save_cache、refresh_cache関数修正
複数タスクから左記APIを同時に実行すると、タイミングによってFAT情報が後からAPIを実行したタスクに上書きされてしまう不具合を修正しました。
・opendir_cl、fopen_cl、fopen_uni、opendir_uni、readdir_uni、opendir_hash関数修正
複数タスクから左記APIを同時に実行すると、タイミングによってディレクトリ情報が後からAPIを実行したタスクに上書きされてしまう不具合を修正しました。
・get_sect_no関数修正
get_sect_noでエラーが発生した時に、ワークバッファの返却を実行しない不具合を修正しました。
・fopen、fopen_cl、fopen_hash、fopen_uni関数修正
16BitCPUを使用してFS_SEEK_BFマクロを有効にした場合に、クラスタ個数を格納する変数がint型ですとオーバーフローする可能性があるので、unsigned long型に変更しました。
・ct_ini_disk_sect関数修正
16BitCPUを使用する場合に、ct_ini_disk_sectで使用する変数sectSizeがint型だとオーバーフローする可能性があるので、unsigned long型に変更しました。
・fs_num_chk関数修正
16BitCPUを使用する場合に、変数sectSizeがint型だとオーバーフローする可能性があるので、unsigned long型に変更しました。
・ct_ini_disk_sect、ct_mount_disk変更
アロケーションユニットサイズが最大65536バイトのメディアまでマウントする様に変更しました。
2009.03.24 : Ver5.62
・fs_direntry_unlock・fs_fat_unlock関数修正
複数タスクからAPIを実行した時に、セマフォの獲得ができなくなりAPIがエラーを返してしまう不具合を修正しました。
2009.03.17 : Ver5.61
・fs_time.c修正
"rtc.h"と"string.h"をインクルードしている記述を削除しました。
・opendir_hash関数修正
ct_hash_entry関数に渡す第二引数をct_hash_entry関数に合わせてキャストする様に修正しました。
・readdir_uni関数修正
取得したUNICODE文字列の終端コードの付け方にミスがありました。終端コードを1byte(0x00)から2byte(0x0000)に修正しました。
・fs_lock.c修正
戻り値を常に0を返している箇所を修正しました。
・fs_original.c・fs_system.h修正
16BitCPUでクラスタサイズが64KByte以上のデバイスを使用した時に、コンパイラによってshort型の変数の演算を行い、演算結果をlong型に代入する時に、演算結果が17Bit以上になった場合16Bitのみ代入し桁落ちしてしまう不具合を修正しました。
2009.03.06 : Ver5.60
・ハッシュ対応APIの追加
ファイル検索時にハッシュ法を用いる事でファイル検索の高速化を実現しました。
・FAT領域のbitmap化
FAT領域のクラスタの使用/未使用情報をRAM上に持つ事で、空きクラスタ検索時にデバイスドライバのアクセス頻度が低減しクラスタ検索が高速になりました。
・fopen_uni関数修正
既存ファイルを"w"モードでオープンした時に過剰にセマフォ資源を返却している箇所を修正しました。
・ディレクトリキャッシュ処理修正
ディレクトリキャッシュ実行時にローカルバッファに一旦コピーしている箇所を修正しました。
・create_pwc_area関数変更
メータデータ保護機能の管理ファイル作成方法を変更しました。
・fs_system.h修正
-Ver5.50で削除してしまった、Ver5.40までで定義されていたfeofマクロのundefを復活しました。
-ST_WORK構造体で使用していないメンバnameを削除しました。
・fs_memory.c修正
戻り値を常に0を返している箇所の修正しました。
・fs_lock.c修正
-FAT領域セマフォをドライブ毎に獲得する様に取り方修正。
-Ver5.50で削除してしまった、Ver5.40までで用いられていたセマフォ関連関数を復活しました。
・fopen・fopen_cl・fopen_uni・opendir・opendir_cl・opendir_uni・fs_divide・fs_ins_clust関数修正
複数タスクから左記API を同時に実行すると、タイミングによってファイル情報やディレクトリ情報が後から書込み操作したタスクから上書きされてしまう不具合の修正。
2008.12.24 : Ver5.50
fwrite・fread関数修正
クラスタサイズが64KByte以上のデバイスを使用した時に、入出力データバッファ内オフセットをunsigned short型にキャストしている箇所があり、データ書き込み・読み込み時に、本来参照すべき入出力データバッファ内オフセットを参照できずにいた不具合を修正。
ST_FILE構造体のsectnoがクラスタ内の先頭セクタか終端セクタかでAPIが参照バッファ内のオフセット位置を間違えていた箇所の修正。
fs_find_dir_entry・fs_find_dir_entry_root関数修正
(ドット)で始まり、ドットを含む4文字以下全て大文字のファイルディレクトリ名の時にremoveできない不具合の修正。
get_dev1関数修正
アロケーションユニットサイズが64Kbyteの時にscが負の値になる不具合を修正。
fs_memory.c・fs_lock.cソース修正
OSのシステムコール発行時にIDのチェックを行い、不正IDの時はエラーを返しシステムコールを実行しない様に修正。
ダイレクトアクセス機能追加
クラスタ番号・オフセットを指定してファイルアクセスできるAPIを追加しました。
UNICODE対応
UNICODEを指定してファイルアクセスできるAPIを追加しました。
マルチパーテーション対応
基本領域・拡張領域にパーテーション分割されたメディアに対応しました。
ディレクトリキャッシュ機能追加
ディレクトリキャッシュ機能を追加しました。
ファイル分割・クラスタ挿入機能追加
ファイルの分割・クラスタを挿入するAPIを追加しました。
リエントラント対応(排他処理変更)
排他処理について変更を行い、複数タスクからの同時アクセスが可能になりました。
fwrite関数修正
ディスクフルまでの書込みを行なった時に、ファイルポインタの指すST_FILE構造体のsectnoに誤ったセクタ番号を格納してしまい、その後ディスクフルにも関わらず誤った場所にデータを書込めてしまう不具合を修正。(FATを破壊してしまう)
2008.08.31 : Ver5.40
fat_recover関数修正
fat_recover関数内で使用している変数chk_countの型がshort型なので、4GByte以上のストレージデバイスに対応されていない不具合を修正。
fat_recover仕様変更
fat_recoverで使用するバッファサイズをユーザー指定可能になる様に変更。
fs_find_dir_entry関数修正
サブディレクトリ上のロングファイル名のショートエントリがセクタの先頭にあった場合、存在するはずのファイル検索に失敗する不具合を修正。
fclose関数修正
メタデータ保護機能有効時にclr_island_flg()を実行するタイミングを修正
fputc・fputs関数修正
1クラスタ確保前にモードチェックを行っていない不具合を修正。
fopen関数修正
"a"モードでファイルを新規作成できなかった場合に、エラー処理を行っていない不具合を修正。
unmount_disk関数修正
ディレクトリをオープンしたままストレージデバイスを抜くと、オープンディレクトリ用資源の枯渇を招いる不具合を修正。
fs_get_c_dent関数修正
FAT32フォーマットされたストレージデバイスを使用した時に、16BitCPU使用時に開始クラスタ番号上位を取得できない不具合を修正。
マクロ名修正
マクロ名の重複を避けるため「UNICODE」を「FS_UNICODE」に改名。
マクロ名「NORTI」を「ITRON」に改名。
2007.11.02 : Ver5.32
fopen関数修正
ファイル(ディレクトリでは無い)下にファイルが出来てしまう不具合を修正。
mkdir関数修正
ファイル(ディレクトリでは無い)下にディレクトリが出来てしまう不具合を修正。
スタック使用量修正
rename, remove, mkdir, rmdir関数においてメタデータ保護機能無効時であってもスタック使用量が多かった点を修正。
ファイル検索関連修正
エントリがクラスタサイズ丁度だった時、ファイル検索の結果見つからなかった時のエラーコードが正しく無い点を修正。
VFAT不具合修正
FAT12/16ルートディレクトリにおいてロングファイル名のショートエントリでの「~」以降の番号付記不具合を修正。
API選択マクロ不具合修正
API選択マクロの指定に依っては、chk_possect関数にまつわるコンパイルエラーが出る不具合修正。
メタデータ保護機能修正
fs_pwc.cのclr_island_flg()で島状FAT警告フラグのdown countにて0以下になってしまう不具合修正。
fs_pwc.cのcreate_pwc_area(), analyze_pwc(), pwc_repair()にて関数の実体にstatic宣言が抜けていた点を修正。
FATキャッシュ関連修正
FAT32にてFSINFOのNextFreeClusterからブロックキャッシュを確保した場合同一セクタを重複して持ってしまう不具合を修正。(フラッシュの際に上書きによりFAT破壊してしまう)
FSINFOの取り扱い変更
FAT32のFSINFOのFreeClusterCountとNextFreeClusterの扱いをSDA仕様に対応しました。
fwrite関数修正
4G超え時FSYSERへのエラーコードセットを追加修正。
fclose関数修正
メディアアクセスエラーであっても fp開放、メモリプール返却するよう修正。
OS依存部修正
fs_memory.c 生成情報パケットの第5引数を削除しNORTi以外のOSに対応しました。
fs_lock.c 生成情報パケットの第4引数を削除しNORTi以外のOSに対応しました。
rename関数修正
Newnameの長さに対する仕様ミスを修正。
(正しくは、oldnameのパス長+newname <= FULLPATHLEN(258))
引数チェック強化
finfo, chg_attr, get_attr, chg_tstamp, get_tstamp の各関数における引数の正当性チェックを強化しました。
get_attrfp関数修正
エラーコードの引渡しミスを修正。
2007.04.24 : Ver5.31
排他制御関連修正(fs_lock.c)
特定のOS(NORTi)用のマクロ(MSEC)を使っていた点を修正。
rename関数修正
ルートディレクトリ(FAT12/16)に対する電源断対応処理不具合修正。
fclose関数修正
“r”モードで開いたファイルに対しても電源断処理を実施していた点を修正。
電源断対応機能修正(fs_pwc.c)
fs_pwc.cにおいてOS用ヘッダファイル(ctkernel.h)を無条件にインクルードしていた点を修正。
chk_dsk関数修正
FAT32において開始クラスタ番号が65535を超える場合正常に修復できない点を修正。
2006.12.07 : Ver5.30
電源断機能の改善
電源断対応アルゴリズムを大幅に見直す事で旧バージョンでの使用制限を撤廃しました。
これに依りより使いやすく且つ信頼性が向上しました。
チェックディスク機能追加
chk_dsk関数を追加。
2006.06.30 : Ver5.20
マウント直後の動作改善(FAT32)
FSINFOの「最終変更クラスタ番号」の利用及び「連続未使用クラスタ検索関数」を追加した事に依りマウント直後の書込み系APIを高速に処理できるよう改善しました。(FAT32)
fseek関数改善
“r”モードで開いたファイルのfseekを高速に処理できるよう改善しました。
キャッシュ関連改善
FATCacheBuffer構造を改良した事に依りFAT操作に関係するAPIの処理速度を高速化しました。
save_cache,refresh_cache関数修正
FATCache未使用ドライブに対しても動作してしまう不具合を修正。
VFAT不具合修正
全角文字を使用したロングファイル名のショートエントリにて「~」以降の番号付記不具合を修正。
fwrite関数修正
4GByte以上の書込み抑制により戻り値が不正になる点を修正。
move関数修正
ドライブ名を大文字化して比較していなかった点を修正。
fopen関数修正
サイズ0のファイルに対し”r”もしくは”a”モードで開いた場合、無関係なデータを入出力バッファに読み込んでしまう点を修正。
reapir関数修正
ルート下へのreapir関数でエラーを返す事がある点を修正。
2006.02.10:Ver5.11
fseek関数改善
4GByteシーク可能に改善。
キャッシュ関連改善
FAT Cacheの設定最大値を 255個から65535個に拡大。
電源断対応機能修正
・fs_pwc.c chkDirPart()において変数pTmpFentPosの型修正。
・fs_pwc.c fatRecon() 変数名の誤りを修正。
・fs_pwc.c fatCpyPart() 論理演算子の不適切を修正。
・fs_pwc.c ini_pwc() FAT12において正常に初期化できない点を修正。
・fs_ansi.c fs_vfopen() 論理演算子の不適切を修正。
・fs_posix.c DT_mkdir() 引数名の誤りを修正。
fseek関数
クラスタチェーンの誤認識によるEOF誤検出を修正。
ロングファイル名不具合修正
ファイルもしくはフォルダのエントリが3セクタにまたがるような長い名前の場合、クラスタサイズが1及び2の時、エントリ領域確保が正しく取得できていない点を修正。
fopen関数修正
"a"モードにおいてドライバエラー発生時NULLPOINTアクセスしてしまう点を修正。
opendir関数修正
ドライブ読出し機能を無効にしていた誤りを修正。
Linux対応について
Linux対応コードを削除(LinuxのAPIとしての機能提供を終了しました)。
2005.06.03:Ver5.10
ctkernel対応
ctkernelモジュールの導入に伴なう修正。
2005.05.23:Ver5.01
move関数機能追加
move関数にディレクトリ移動機能を追加。
VFAT不具合修正
ロングファイル名のショートエントリにて「~」以降の番号付記不具合を修正。
マクロ名改名
「DELETE」マクロ名の重複を回避する為「FS_DELETE」に改名しました。
スタック消費量見直し
電源断対応機能が無効の場合でもスタック消費量が多大だった関数を修正。
該当API:rename,remove,mkdir,rmdir,chg_attr,chg_tstamp
2005.03.04:Ver5.00
対応クラスタサイズを拡大
従来の32KByte以上に対応。
電源断対応機能強化
電源断後のFileSystem起動時間の短縮とFATテーブルのコピー時間の短縮を図りました。
ファイル移動、改名関数追加
move関数を追加。
fs_cfg.hを新設
マクロ定義をこのファイルに集約し、各種条件下でのコンパイルを容易に行えるようになりました。
ヘッダファイル名改名
fsys.h->fs_system.hに変更しました。
ソースファイル名改名
機能別に分離独立しました。(vfsys.c->fs_ansi.c,fs_posix.c…など)
Linuxに対応
Linux上でのアプリケーションとして動作できるようになりました。
ロングファイル名検索・削除修正
512bytes/sector以外のメディアで、ディレクトリエントリからロングファイル名を検索できない、及び削除できない不具合を修正。
fwrite関数修正
メディアの空き領域を超えるサイズでfwriteを実行すると、戻り値が実際に書き込んだサイズと異なる不具合を修正。
fp操作関数修正
ファイルポインタがNULLだった場合の不具合を修正。
fclose,fgetc,fgets,fputc,fputs,fread,fwrite,fseek
ソース整理
ソース整理
2004.04.16:Ver4.02
遅延書き込み機能追加
タスクによる遅延書き込みをすることで積極的なファイル保護機能が充実しました。
ファイル操作関数追加
fflush関数を追加。
S-JIS->UNICODE変換範囲を修正
NO_UNICODEマクロを指定時、半角カタカナ(0xA1~0xDF)部分を範囲に含めていた不具合修正。
電源断対応機能修正
電源断対応機能が1ドライブしか制御できなかったが、複数ドライブ対応に修正。
電源断機能対象でないドライブに対して電源断処理をしてしまう不具合を修正。
q_format関数不具合修正
電源断機能対象でないドライブに対しても電源断初期化処理をしてしまう不具合を修正。
fclose関数不具合修正
デバイスドライバから異常終了だった場合セマフォの返却をしていなかった不具合修正。
ソース整理
ソース整理
2004.02.27:Ver4.01
マルチセクタ機能追加
セクタサイズをユーザで指定できるように改版。
SJISマクロを関数化
日本語変換機構を完全分離。外国語対応を容易にしました。
SJIS⇔UNICODEテーブル削除機能
全角コードを使わない際、テーブルを簡単に削除できるようマクロを追加。
SJIS⇔UNICODE重複回避機能
異なるSJISが同一UNICODEを持つ為、逆変換で不具合がでる事に対応
chg_tstamp,chg_tstampfp関数
閏年以外の年でも2月29日に変更できてしまう不具合修正。
ini_cache関数修正
セマフォを解放せずに関数を抜ける場合がある不具合修正。
fputc,fwrite関数修正
4Gbyte以上を書き込んでしまうことがある不具合修正。
ファイル名対応
名前の最後がスペースでもファイルが出来てしまう不具合修正。(Windowsでファイル削除できなくなる)
削除処理不具合修正
FAT32時、ルート下の先頭にあるショートファイル名を削除できない不具合修正。
文字識別不具合修正
Win2K,XPで作られた8+3の小文字で格納されたファイルを小文字処理できない不具合修正。
2003.12.05:Ver4.00
電源断(リカバリー機能)追加
不意な電源断が起きたときのFATとエントリの整合性を修復する機能を追加。
aとaのファイル名に対応
a.txtが存在する時にa.txtをfopenできないことに対応。
全角小文字ファイルに対応
全角小文字のショートファイル名の時にロングエントリが作成されない不具合に対応。
SJIS->UNICODE変換範囲を修正
SJIS->UNICODE変換処理で変換範囲が少ない不具合に対応。
エントリの削除処理修正
セクタをまたいでエントリがある場合の削除処理を修正。
FAT32の時q_format処理修正
FAT32でq_formatを行なうとゴミが書き込まれる不具合を修正。
q_format処理修正
q_formatを行なった後に読込んでいたセクタを読むと前のデータが読み出される不具合修正。
fseek処理修正
fseek処理でクラス単位でデータを読込む際に同じクラスタデータを複数回読んでいる処理修正。
new_cluster処理修正
FATチェック処理で一度チェックした領域を再度チェックしないように修正。
2003.09.16:Ver3.12
fwrite関数修正(Ver3.08)ミス
Ver3.08不具合項目4を再修正。
ファイル名対応
.で始まるファイル名に対応。
mkdir関数不具合修正
ルート下作成可能数一杯の時、クラスタを確保してしまう点を修正。
q_format関数不具合修正
FAT32時、FATエリアの初期化が正しくおこなわれていない点を修正。
ini_disk関数
固定ディスク時、マウント内に残容量取得処理を追加。
chg_tstamp,chg_tstampfp関数
chg_tstamp,chg_tstampfp関数の引数チェックを追加。
fopen,mkdir関数修正
空白文字列のファイルが作成される点を修正。
reset_fsys関数不具合修正
ini_fsys後ini_disk前にreset_fsys関数をコールした時の資源の解放を本関数で実施するよう修正。
rename関数不具合修正
第2引数に空文字列""を指定してもエラーにならない点を修正。
ショートファイル名で指定した時、無効なエントリが残る点を修正。
fwrite,fputc関数不具合修正
0バイト指定の書き込みをおこなった時クラスタを確保してしまう点を修正。
opendir不具合修正
ルート下へのopendir関数でエラーを返すことがある点を修正。
fopen関数不具合修正
空ファイルをfopen"r"モードでオープンした時、無関係のセクタを読み込むことがある点を修正。
同一のショートファイル名が作成されることがある点を修正。
remove関数不具合修正
remove関数で対象ファイルがある時にエラーコード(R_NO_FILE)を返すことがある点を修正。
2003.06.06:Ver3.11
fseek不具合修正
fseek関数でファイルサイズ以上のセクタをリードする場合がある点を修正。
未対応文字指定時処理修正
未対応文字を指定した時の動作を修正。
2003.05.23:Ver3.08
作成日時、更新日時設定不具合修正
作成日時、更新日時の設定の不具合を修正。
文字識別不具合修正
「+」を含むファイル名のDOS形式不具合修正。
S-JIS-UNICODE変換テーブル変更
S-JIS-UNICODE変換テーブルをWindowsベースに変更。
fwrite関数不具合修正
ファイルポインタがクラスタ境界にありかつ内部バッファがデバイスに対し更新済みのときfwriteによってFATのチェーンに不具合が生じるのを修正。
削除処理不具合修正
FAT32時、ルート下の先頭にあるショートファイル名を削除した時、無関係のセクタに書き込んでしまう不具合修正。
DOS名作成不具合修正
DOS名作成不具合を修正。
2002.12.26:Ver3.07
q_formatFAT32対応
q_format関数をFAT32に対応。
文字識別不具合修正
「=+;」を含むファイル名のDOS形式不具合修正。
ST_DISK型メンバ変更
ST_DISK型のsfをunsignedshort→unsignedlongに変更。
fopen不具合修正
fopenでエラー時、同一名による次のオープンでR_OPENEDを返すことがある不具合修正。
reset_fsys関数追加
reset_fsys関数を追加。
UNICODE変換ミス修正
「/」及び「∥」のS-JIS-UNICODE変換テーブルが間違っていたのを修正。
ファイル作成日時設定
ファイル、ディレクトリの作成時刻、作成日付を設定するようにした。
ソース整理
ソース整理。
2002.08.09:Ver3.06
reflesh_cache関数名変更
reflesh_cache→refresh_cacheに名前を変更。
ini_disk関数引数変更
ini_disk関数の引数を変更。
fclose他API関数型変更
fclosefputsfseekfeofrenameremovemkdirrmdirclosedir関数の戻り値をsignedchar→intに変更。
排他制御コード追加
refresh_cache関数に排他制御処理を追加。
ソース整理
ソース整理。
2002.06.24:Ver3.05
排他制御関連を別ファイル化
NORTiセマフォ関連の記述をfs_lock.cに移行。
同時オープンファイル数上限変更
同時オープン可能ファイル数の設定上限を127から32767個に変更。
get_tstampfpchg_tstampfp不具合修正
エンディアンの違いで、タイムスタンプの値が異なる不具合を修正。
FAT32不具合修正
クラスタ番号の扱いオーバーフローしていた不具合を修正。
ソース整理
ソース整理。
2002.04.17:Ver3.04
rename関数不具合修正
セクタの先頭にショートファイル名がある時、renameによって前エントリを壊してしまう不具合修正。
fseek戻り値不具合修正
クラスタサイズのファイル終端へのfseekでEOFを返す不具合修正。
文字識別不具合修正
8+3の大文字で格納されたファイルを小文字で指定できない不具合修正。
「[」及び「]」を含むファイル名のDOS形式変換不具合修正。
remove関数不具合修正
remove関数でディレクトリを削除する不具合修正。
reapir関数エラーコード修正
reapir関数で最終を示すNULLを返す時エラーコードが-13になる時がある不具合修正。
get_dev_free関数処理速度改善
FAT32に対する空き容量取得の処理速度を改善。
get_dev_free関数不具合修正
FAT16でFAT数256以上のときオーバーフローする不具合修正。
fopen誤仕様修正
読取専用ファイルを"w""a"オープンできてしまうのを修正。
2001.12.03:Ver3.03
処理速度改善
キャッシュ設定時の処理速度を改善。
get_dev_freeget_dev_total関数修正
get_dev_freeget_dev_total関数を4GB以上に対応。
q_format関数不具合修正
FAT128セクタ以上の時正常に処理されない不具合修正。
fseek関数不具合修正
fs_memory.c未設定時、セクタ境界へのfseek不具合修正。
fopen不具合修正
ルート下作成可能数超過時にfopenでNULLを返さない不具合修正。
fwrite戻り値修正
fwrite関数エラー時の戻り値を修正。
VFAT不具合修正
「~」を含むファイル名に対する操作が正しくない点を修正。
ファイルサイズ取得・変更関数追加
chg_filelenget_filelen関数を追加。
FAT32不具合修正
キャッシュ未設定時、FAT更新されていない不具合修正。(FAT32)
ドライブ読出機能追加
opendir("/")またはopendir("\\")指定時ドライブ名を返すよう機能追加。
FILE型名前変更
ST_FILE型をFILE型に名前変更。
エラーコード修正
存在しないファイルをオープンした時のエラーコードが正しくないのを修正。
ソース整理
ソース整理。
2001.08.27:Ver3.02
ロングファイル名作成不具合修正
ロングファイル名作成時の不具合を修正。
remove関数不具合修正
ファイルオープン中のremove動作を行えないよう修正。
ディスクフル時不具合修正
ディスクフル判定の不具合修正。
セマフォ関連不具合修正
セマフォID自動取得時、sig_semをコールしていない不具合修正。
速度改善
小サイズ毎の書き込み時の速度を改善。
"r"モード見直し
"r"モードでの複数オープンを可能に。
バッファの動的取得
バッファを動的に取得するユーザーカスタマイズ部分(fs_memory.c)追加。
remove関数不具合修正
サブディレクトリ下のremove関数不具合修正。
エラーコード格納処理追加
エラーコードを静的変数に格納するよう変更。
タイムスタンプ取得、変更関数追加
get_tstampchg_tstampget_tstampfpchg_tsatmpfp関数を追加。
属性取得、変更関数追加
get_attrchg_attrget_attrfpchg_attrfp関数を追加。
2001.05.30:Ver3.01
reapir機能拡張
ロングファイル名、ショートファイル名ともにfullnameに格納するよう変更。
finfo関数不具合修正
エラーコードが正しくない点を修正。
get_dev_free関数改善
処理速度を向上。
opendir仕様変更
ルートディレクトリ指定時、"a:"及び"a:\\"を可能とするよう変更。
rmdir不具合修正
空でないディレクトリに対しても削除してしまう不具合修正。
opendir不具合修正
ファイルに対しても成功してしまう不具合修正。
キャッシュ関連不具合修正
キャッシュ未使用時、サブFATを書いていない不具合修正。
ファイル名規則不具合修正
大文字小文字別の同一名ファイルに対する仕様ミスを修正。
日立CVer6.0A対応
日立CVer6.0Aに対応。
ライブラリ化
SH4&日立C環境下でのライブラリとして提供。
ヘッダーファイル見直し
fsys.h内の定義を見直し。
rmdir関数不具合修正
サブディレクトリの削除時チェーン構造の消し忘れの不具合を修正。
ソース整理
ソース整理。
2001.04.09:Ver3.00(β版)
評価版リリース
FAT12/16/VFAT/32に対応。
2000.06.12 : Ver1.00
新規作成
FATファイルシステムシリーズ
- Cente FileSystem
- Cente Compact FileSystem
- Cente FileSystem Encrypting Module
- Cente exFAT FileSystem
- Cente SD Card Driver for MC9328MX1
- Cente SD Card Driver for MC9328MX21
- Cente SD Card Driver for MN5774
- Cente SD Card Driver for TC6404【販売終了】
- Cente SD Card Driver for TDS701
- Cente NAND Flash FileSystem
- Cente SPI Memory Card Driver
製品マニュアルのお問い合わせ
以下のフォームに必要事項を入力し、「内容確認へ」ボタンを押してください。
※印の項目は入力必須です。
- μITRONはMicro Industrial The Realtime Operating System Nucleusの略称です。
- Centeはデータテクノロジー株式会社の商標登録です。
- ESPTはビー・ユー・ジー社製のネットワーク通信機能付き小型CPU基板です。
- その他の製品名・ブランド名は各社の商標または登録商標です。
- 記載の仕様・価格・概観等については、予告なく変更する場合があります。


