我们有一个成熟的Wince 6.0 R2定制设备,能够通过WiFi下载文件并将它们存储在NAND flash FAT文件系统分区中。它已经在世界各地的15000多台设备上运行了一年多,但最近在一些新软件和操作系统版本的测试系统上,我们已经看到一些文件系统损坏,其中特定的目录似乎有一个递归链接回到顶级\Flash内容。特别是,我们有一个\Flash目录,其中包含一个名为GCMaps的子目录。通常这包含许多地图图像,但当损坏发生时,它还包括明显递归循环中的所有高级\ \Flash\Manifest\GCMaps\Manifest\GCMaps\Manifest...文件和子目录,例如\Flash\Manifest\GCMaps\program.exe和Flash
尽管我们的许多测试设备完全不受影响,但问题总是出现在同一个目录中,并且在我们的测试机架上的多个设备上也发生了这种情况。我可以通过重新格式化文件系统分区或擦除整个闪存设备、重新分区、重新刷新操作系统并重新创建文件系统来临时修复受影响的设备。但受影响的设备在几天内继续发展损坏。
最近的测试表明,在多次更改Manifest文件后,文件系统仍然完好无损,但是我们会在午夜自动重新启动,并且在启动时,一些受影响的设备会出现此问题。
奇怪的是,我们最近没有更改任何清单下载或集成逻辑,也没有任何与GCMaps有关的内容。我最近做的一个主要改变是移除了Windows Shell,并在"Kiosk模式“下运行我们的设备,我们的应用程序是唯一的UI。
以前有人在CE上遇到过这种递归目录损坏吗?如果有,你找到解决方案了吗?有没有什么原因,移除外壳可能会导致这种情况?如有任何建议或信息,将不胜感激!
谢谢,里奇·琼斯
发布于 2011-09-28 14:28:40
如果您在重启之前不刷新文件系统缓冲区(或者如果您强制关闭设备),FAT很容易损坏。这适用于PC和其他使用FAT的设备。所以可能是重启导致了这个问题。shell的移除可以是相关的,也可以是无关的-- shell可能会定期执行一些刷新,这使您避免了之前的问题。
https://stackoverflow.com/questions/7579089
复制相似问题