UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 19676

EDK 6.2 SP1、Xilfatfs - Xilfatfs を使用して SystemACE から大きいファイルをキャラクタのような小さいストラクチャに読み込むと、時間がかかる

説明

キーワード : Xilfatfs, Xilfat, read, file, ACE, System, run, time, run-time, buffered, character, file, IO, 読み込み, ファイル, ランタイム, バッファ, キャラクタ, ファイル

重要度 : 標準

概要 :
Xilfatfs を使用して SystemACE から大きいファイルをキャラクタのような小さいストラクチャに読み込むと、時間がかかります。

ソリューション

現在のところ、Xilfatfs にはバッファがついていません。このため、大きいファイルからデータを小さいストラクチャに読み込むと、大変時間がかかります。

次はファイルからキャラクタを読み込む単純な例です。バッファの付いた IO と付いていない IO の影響を示しています。

while ((c = getc(fd)) != EOF) {
/* do something with the character c */
}

IO にバッファが付いていないと、getc() がそれぞれファイル システムで fread() になり、ディスクで get_sector になります。 IO にバッファが付いていると、最初の getc() が fread() と get_sector() になります。 ただし、fread() が 1024 サイズ以上のバッファにあると、getc() を入手するための続くコールは、fread() と get_sector() を呼ぶのではなく、単にこのバッファにアクセスするだけになります。 これにより、ハード ディスクまたはフラッシュの get_sector() が遅くなるため、getc() の速度が増加します。

Xilfatfs は大きいイメージ ファイルを読み込むために開発され、各 read() により複数のディスク セクタがローカル メモリに格納されるため、バッファは問題になりません。

バッファの付いたリード/ライトは EDK 7.1i でサポートされる予定です。
AR# 19676
日付 04/30/2007
ステータス アーカイブ
種類 一般
このページをブックマークに追加