0

現在、Win CE6 デバイスを新しい nand フラッシュ チップに適合させています。新しい nand はより高い ecc 要件 (4 ビット / 512 バイト) を持ち、オンチップの ecc 計算をサポートします。

Microsoft フラッシュ ファイルシステムは、セクターを消去せずに書き込みます。これは、SectorInfo->wReserved2 にステータス情報を書き込むときに発生します。ここでは、単一ビットのみがゼロに反転されます。

問題は、オンチップ ecc では、ファイルシステムが wReserved2 に書き込むときにもチップが ecc を計算することです。ただし、この ECC をデバイスに適切に書き込むことはできません。これは、ファイルシステムでは行われないセクターの消去が必要になるためです。

ページの予備部分には、1 ページあたり 15 バイトの ecc 非保護領域もあります。SectorInfo の重要な 6 バイトを 2 回保存することがわかりました (つまり、セクター ステータスの wReserved2 と論理セクター番号の dwReserved1)。

しかし、これら 2 つのコピーのいずれかでビットエラーが発生した場合、どちらが正しいかはまだわかりません。

だから、私の質問:

  • 保護されていない 15 バイトを使用してこれを解決する方法についてのアイデアはありますか?

  • 「ステータス情報を書き込む前に消去」をサポートするようにフラッシュファイルシステムを構成できますか

  • この問題に対する他のアプローチはありますか?

助けてくれてありがとう。

よろしく、ティム。

4

1 に答える 1

0

解決しました。dwReserved1 を 2 回格納しました (セクタの初期化時に 1 回だけ書き込まれるため、それぞれにパリティ ビットを使用)。wReserved2 を 3 回保存しました (ここではパリティ ビットを適用できないため、フラッシュ ファイルシステムはセクターを消去せずに wReserved2 に 3 回書き込みます。つまり、単一ビットを反転します)。2 つのコピーが同一である場合、それらは正しいと見なされます。

于 2015-03-09T15:35:10.943 に答える