AR# 33075

12.1 EDK - 大きなイメージ ファイルを生成すると Mfsgen でエラーが発生する

説明

大きなイメージ上で mfsgen を実行すると、-b オプションを使用して十分なブロックが指定されていない場合、エラーが発生することがあります。

12.2 で表示されるメッセージ :
< input file name > ERROR:EDK:3823 - error writing mfs file

12.1 および 11.x で表示されるメッセージ :
< input file name > ERROR:EDK:3170 - error writing mfs file

-b オプションが指定されていない場合は、デフォルトで 5000 ブロックが使用されます。ブロックのサイズは 532 です。

また、イメージのファイル数やサイズを増やす場合は、前の設定が十分でない可能性があります。たとえば、XAPP1026 で次のようにコマンドを実行するように記載されています。
mfsgen -cvbfs ../image.mfs 1500 *

しかし、入力ファイルがアップデートされたサンプルで変更になり、1500 という値が十分でない可能性があります。

ソリューション

入力ファイルの合計サイズが 5000 (ブロック サイズは 532) を超えている場合、または前の -b オプションの設定を超えてしまっている場合、-b オプションを使用して同じ値に一致させるか、それ以上の値に設定し直す必要があります。

必要なサイズを確認するには du コマンドを実行します。(Windows ユーザーは EDK シェルからこれを実行することができます。)
du --total --block-size=512 < input files >

(MFS のオーバーヘッドを考慮して 512 など若干小さな値のブロック サイズを使用します。)

例 :
du --total --block-size=532 *

$ du -all --total --block-size=512 *
8 css/main.css
8 css/
8 index.html
16 total

$ mfsgen -cvbfs image.mfs 16 *
mfsgen
Xilinx EDK 12.2 EDK_MS2.63c
Copyright (c) 2004 Xilinx, Inc. All rights reserved.

css:
main.css 744
index.html 2966
MFS block usage (used / free / total) = 10 / 6 / 16
Size of memory is 8512 bytes
Block size is 532
mfsgen done!

最小値を使用する必要がある場合は、usage の行を確認します。例の続けます。
$ mfsgen -cvbfs image.mfs 10 *
mfsgen
Xilinx EDK 12.2 EDK_MS2.63c
Copyright (c) 2004 Xilinx, Inc. All rights reserved.

css:
main.css 744
index.html 2966
MFS block usage (used / free / total) = 10 / 0 / 10
Size of memory is 5320 bytes
Block size is 532
mfsgen done!

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
34609 EDK 12.x - アンサーのリスト N/A N/A
AR# 33075
日付 12/15/2012
ステータス アクティブ
種類 一般
ツール 詳細 概略