2011-09-28 65 views
0

我們有一個成熟的Wince 6.0 R2定製設備,能夠通過WiFi下載文件並將它們存儲在NAND閃存FAT文件系統分區中。這已經在全世界超過15000臺設備上運行了一年多,但最近在一些用於新軟件和操作系統版本的測試系統上,我們已經看到一些文件系統損壞,其中特定目錄似乎具有遞歸鏈接頂級\ Flash內容。特別是,我們有一個\ Flash \ Manifest目錄,其中包含一個名爲GCMaps的子目錄。通常這包含許多地圖圖像,但是當發生損壞時,它還包括所有高級別的\ Flash文件和子目錄,以明顯的遞歸循環,例如, \ Flash \ Manifest \ GCMaps \ program.exe和\ Flash \ Manifest \ GCMaps \ Manifest \ GCMaps \ Manifest ...Wince 6.0文件系統損壞 - 目錄似乎在遞歸

它始終是相同的目錄有問題,它發生在我們的多個設備上測試機架,儘管我們的許多測試設備完全不受影響。我可以通過重新格式化文件系統分區或擦除整個閃存設備,重新分區,重新刷新操作系統以及重新創建文件系統來暫時修復受影響的設備。但受影響的設備在幾天內繼續發展腐敗。

最近的測試顯示,在多次更改Manifest文件後,文件系統保持不變,但隨後我們在午夜自動重啓,啓動時,一些受影響的設備出現問題。

奇怪的是,我們最近沒有更改任何清單下載或集成邏輯,也沒有任何與GCMaps有任何關係。我最近做出的一個主要改變是移除Windows Shell並以「Kiosk Mode」運行我們的設備,我們的應用程序是唯一的UI。

有沒有人在CE上遇到這種遞歸目錄損壞,如果是的話,你找到了解決方案嗎?是否有任何理由刪除殼可能導致這種情況?任何建議或信息將不勝感激!

感謝, 裏奇·瓊斯

+0

我很懷疑這是沖洗問題,因爲我不缺少文件和文件不會自己損壞。相反,我得到一個始終在一個特定子目錄下出現的目錄結構的循環引用。 FAT在讀取過程中可能被損壞嗎?這就是我們在損壞發生時用特定目錄中的文件所做的所有事情。 – rjones54

+1

如果你想添加一些你的問題,編輯它,而不是發表評論。 –

回答

0

FAT是容易滋生腐敗,如果你重新啓動之前不刷新文件系統緩存(或者,如果你強行關閉設備)。這適用於使用FAT的PC和其他設備。所以可能是重新啓動導致問題。刪除shell可能是相關的或不相關的 - shell可能會定期執行一些刷新操作,這可以幫助您避免此問題。

+0

感謝您的輸入!我忽略了提到最後一次寫入和重新啓動之間的時間長達數小時,所以我不認爲文件系統緩衝區仍然沒有被清除,除非shell像之前指出的那樣負責了這一點。我肯定會加入強制刷新,儘管我也看到了在HKEY_LOCAL_MACHINE \ System \ StorageManager \ FATFS中將「EnableCache」設置爲「0」的建議,以完全禁止緩存。有誰知道這是一個好主意嗎? – rjones54

+0

@ rjones54關於禁用緩存 - 您需要衡量性能,因爲答案取決於您的使用場景。 –