英创信息技术WinCE6系统CEDB故障分析介绍

描述

在2017年4月份,英创公司发现了CEDB的故障,并发布了文章介绍如何解决该问题:《CE6.0内置数据库CEDB的异常检测与修复》。由于该故障较罕见,一直以来我们怀疑是由于调试程序时USB连接不稳定导致的。直到近期,英创公司通过大量实验,找到了触发CEDB故障的原因。本文将介绍我们的实验结果,为防止CEDB故障,希望客户注意:

使用WINCE6平台的客户,在产品发布时请使用release版本程序,不要使用debug版本程序。

实验情况

实验设备

实验使用英创各不同嵌入式主板,分两组,一组为WINCE6工控主板,ESM928x及EM9280。另一组为WEC7工控主板ESM335x。

实验程序

实验使用两组代码,一组代码使用MFC,带窗口界面。一组代码使用命令行工程,不带界面。两组代码分别用release模式和debug模式编译,共生产4个不同的应用程序。

两组代码均采用多线程对多个文件同时进行大量文件操作(每秒300次以上文件开关及读写操作)。保证CPU占用100%在满负荷工作。两组代码对文件操作量大致相同。

实验过程

让工控主板上电后自动执行实验程序。

在程序运行一定时间后对工控主板进行断电处理。

不断重复以上过程,并监测工控主板系统启动时内置CEDB是否出现错误数据,并记录错误数据条数。

测试时间为一天。

实验结果如下:

板卡 测试程序 测试结果
WinCE6主板 MFC测试程序
Debug版
实验几分钟后CEDB即开始出现错误数据。
一日后,所有板卡均出现CEDB故障,启动速度明显变慢,CEDB无用数据均有几百条
WinCE6主板 MFC测试程序
Release版
正常
WinCE6主板 命令行测试程序
Debug版
一日后,CEDB有出现几条错误数据。启动速度变化不明显
WinCE6主板 命令行测试程序
Release版
正常
WEC7主板 MFC测试程序
Debug版
正常
WEC7主板 MFC测试程序
Release版
正常
WEC7主板 命令行测试程序
Debug版
正常
WEC7主板 命令行测试程序
Release版
正常

 

实验表明:

CEDB故障均出现在WINCE6平台的工控主板上,这也和英创公司主板维修记录里的信息一致。

WINCE6工控主板运行Release版本的测试程序均没有出现CEDB故障,而运行DEBUG版测试程序后均出现CEDB故障。

MFC下DEBUG版测试程序更容易导致CEDB故障,可能是因为带界面程序CPU消耗相对更大。

测试发现当CPU处于满负荷状态下断电,才有一定几率导致CEDB内错误数据增加。而少量的CEDB错误数据对系统启动速度影响很小,所以CEDB故障不容易被发现。

解决办法

1、当出现CEDB故障时:

1)启动变慢

2)activesync连接故障

3)“\NandFlash\Documents and Settings\default.vol”文件变大

请参考文档《CE6.0内置数据库CEDB的异常检测与修复》解决该故障。

2、在产品发布时请使用release版本程序,不使用debug版本程序。release版本程序不带调试信息,exe大小也会明显小于debug版本程序。

英创提供测试程序源代码,有需要的客户可以联系英创工程师获得,验证该问题。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分