WinCE6.0补丁包的恢复与再更新
怪事经常有,最近特别多。这两周接二连三的碰到了很多奇怪的问题。刚开始都是百思不得其解,不过后来大多都找到了合理的解释,唯独今天这个,折腾了一天,最后还是不得不暂时放下。
先说说现象吧,使用原厂提供的最新的USBHOST驱动编译出来的系统,读写U盘不正常。准确的说,当写入的文件大于3600字节时就会失败,而小于3580字节就不会有问题,读U盘是正常的。使用上一版发布的驱动编译出的系统没有这个问题。由于这部分的代码原厂没有提供,只有相应的LIB和DLL,所以自己也无法进一步跟踪,只能寻求原厂的支持。
原厂工程师ZSZ提了很多建议,换OTG的线、换U盘、格式化U盘、使用原厂的BSP在Demo板上验证……,结果都一样。最后的结论是,这是个例,因为没有别的客户反应这个问题,他们自己也没有碰到,而我也无法让他们重现。后来,从他们提供的FTP上下载了一个韩文版的系统固化到Demo板上,也是一样。ZSZ开始还有些怀疑,后来亲自测试并确认上述问题确实存在,但还是说这个不能说明问题。因为这个系统只是他们做应用程序的工程师编译出来测试应用的。到这里,我不得不投降了。花了一天的时间,证明了我们的板子、OTG线、U盘应该不会有问题。那还有什么可以去怀疑的呢。大概只剩下编译环境了,难道是微软补丁包惹得祸?ZSZ说他只打到了6月份的,而我前两天刚打了7月份的补丁包。可能是病急乱投医吧,虽然知道不太可能,但也只好再试一试。
恢复PB6.0的补丁包之前没有做过,所以特地记录了一下。在安装补丁包时默认创建了备份,恢复的方法很简单,直接复制备份目录下的所有文件及目录,粘贴到WINCE600的目录下。做完恢复的操作后,必须使用Clean Sysgen重新生成系统。
用CEUpdateCheck工具检查了一下补丁包的状态,如下图所示。
可以看到,7月份补丁的状态为Corrupted,说明恢复生效了。但问题依然存在。又一次冤枉人家微软了。既然与补丁无关,那就再恢复回来吧。恢复的方式也很简单,重新安装一次7月份的补丁包就可以。安装完成后,用CEUpdateCheck工具检查了一下,如下图所示。
7月份的补丁状态显示正常了。
整整折腾一天,虽然问题没有解决,但也不能说毫无收获,至少缩小了问题的范围,而且第一次用了补丁包的恢复功能,也许以后还会派上用场。