我们有一个成熟的Wince 6.0 R2自定义设备,能够通过WiFi下载文件并将其存储在NAND闪存FAT文件系统分区中。这已经在全球超过15000台设备上运行了一年多,但最近在新软件和操作系统版本的一些测试系统上,我们已经看到一些文件系统损坏,其中特定目录似乎有一个递归链接回顶级\ Flash内容。特别是,我们有一个\ Flash \ Manifest目录,其中包含一个名为GCMaps的子目录。通常,这包含许多地图图像,但是当发生损坏时,它还包括明显递归循环中的所有高级\ Flash文件和子目录,例如, \ Flash \ Manifest \ GCMaps \ program.exe和\ Flash \ Manifest \ GCMaps \ Manifest \ GCMaps \ Manifest ...
它始终是存在问题的同一目录,它发生在我们测试机架上的多个设备上,尽管我们的许多测试设备完全不受影响。我可以通过重新格式化文件系统分区或擦除整个闪存设备,重新分区,重新刷新操作系统以及重新创建文件系统来临时修复受影响的设备。但受影响的设备会在几天内继续发生腐败。
最近的测试表明,在多次更改Manifest文件后文件系统仍保持不变,但是我们在午夜进行了自动重启,一旦启动,一些受影响的设备就会出现问题。
奇怪的是,我们最近没有改变任何清单下载或集成逻辑,也没有任何与GCMaps有任何关系的东西。我最近做的一个重大改变是删除Windows Shell并在“Kiosk模式”下运行我们的设备,我们的应用程序是唯一的UI。
之前有没有人在CE上遇到过这种递归目录损坏,如果有,你找到了解决方案吗?有没有理由删除shell可能导致这个?任何建议或信息将不胜感激!
谢谢, Rich Jones
答案 0 :(得分:0)
如果在重新启动之前没有刷新文件系统缓冲区(或者强行关闭设备),则FAT容易出现损坏。这适用于PC和使用FAT的其他设备。所以它可能重新启动导致问题。 shell的删除可能是相关的或不相关的 - shell可能会定期执行一些刷新,这可以让您从以前的问题中解脱出来。