Cente FileSystem

Cente FileSystem

・ハッシュ対応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 を同時に実行すると、タイミングによってファイル情報やディレクトリ情報が後から書込み操作したタスクから上書きされてしまう不具合の修正。

Cente SD Card FileSystem for TDS701

不具合修正

一部のSD カードがマウント出来ない不具合を修正

SDA Physical Layer Specification Version 2.00 の Standard Capacity に対応しました。

set_flgをiset_flgに修正

SDカードドライバ部の割り込みサービスルーチン(fs_sdc_dma_CompleteHandler、SDINFO1_INT_body)で使用しているctset_flg を ctiset_flg に修正しました。

Cente FileSystem

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を破壊してしまう)

Cente FileSystem

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」に改名。

Page 22 of 26