在2017年4月份,英創(chuàng)公司發(fā)現(xiàn)了CEDB的故障,并發(fā)布了文章介紹如何解決該問題:《CE6.0內(nèi)置數(shù)據(jù)庫CEDB的異常檢測與修復(fù)》。由于該故障較罕見,一直以來我們懷疑是由于調(diào)試程序時USB連接不穩(wěn)定導(dǎo)致的。直到近期,英創(chuàng)公司通過大量實驗,找到了觸發(fā)CEDB故障的原因。本文將介紹我們的實驗結(jié)果,為防止CEDB故障,希望客戶注意:
使用WINCE6平臺的客戶,在產(chǎn)品發(fā)布時請使用release版本程序,不要使用debug版本程序。
實驗情況
實驗設(shè)備
實驗使用英創(chuàng)各不同嵌入式主板,分兩組,一組為WINCE6工控主板,ESM928x及EM9280。另一組為WEC7工控主板ESM335x。
實驗程序
實驗使用兩組代碼,一組代碼使用MFC,帶窗口界面。一組代碼使用命令行工程,不帶界面。兩組代碼分別用release模式和debug模式編譯,共生產(chǎn)4個不同的應(yīng)用程序。
兩組代碼均采用多線程對多個文件同時進行大量文件操作(每秒300次以上文件開關(guān)及讀寫操作)。保證CPU占用100%在滿負荷工作。兩組代碼對文件操作量大致相同。
實驗過程
讓工控主板上電后自動執(zhí)行實驗程序。
在程序運行一定時間后對工控主板進行斷電處理。
不斷重復(fù)以上過程,并監(jiān)測工控主板系統(tǒng)啟動時內(nèi)置CEDB是否出現(xiàn)錯誤數(shù)據(jù),并記錄錯誤數(shù)據(jù)條數(shù)。
測試時間為一天。
實驗結(jié)果如下:
板卡 | 測試程序 | 測試結(jié)果 |
WinCE6主板 |
MFC測試程序 Debug版 |
實驗幾分鐘后CEDB即開始出現(xiàn)錯誤數(shù)據(jù)。 一日后,所有板卡均出現(xiàn)CEDB故障,啟動速度明顯變慢,CEDB無用數(shù)據(jù)均有幾百條 |
WinCE6主板 |
MFC測試程序 Release版 |
正常 |
WinCE6主板 |
命令行測試程序 Debug版 |
一日后,CEDB有出現(xiàn)幾條錯誤數(shù)據(jù)。啟動速度變化不明顯 |
WinCE6主板 |
命令行測試程序 Release版 |
正常 |
WEC7主板 |
MFC測試程序 Debug版 |
正常 |
WEC7主板 |
MFC測試程序 Release版 |
正常 |
WEC7主板 |
命令行測試程序 Debug版 |
正常 |
WEC7主板 |
命令行測試程序 Release版 |
正常 |
實驗表明:
CEDB故障均出現(xiàn)在WINCE6平臺的工控主板上,這也和英創(chuàng)公司主板維修記錄里的信息一致。
WINCE6工控主板運行Release版本的測試程序均沒有出現(xiàn)CEDB故障,而運行DEBUG版測試程序后均出現(xiàn)CEDB故障。
MFC下DEBUG版測試程序更容易導(dǎo)致CEDB故障,可能是因為帶界面程序CPU消耗相對更大。
測試發(fā)現(xiàn)當(dāng)CPU處于滿負荷狀態(tài)下斷電,才有一定幾率導(dǎo)致CEDB內(nèi)錯誤數(shù)據(jù)增加。而少量的CEDB錯誤數(shù)據(jù)對系統(tǒng)啟動速度影響很小,所以CEDB故障不容易被發(fā)現(xiàn)。
解決辦法
1、當(dāng)出現(xiàn)CEDB故障時:
1)啟動變慢
3)“\NandFlash\Documents and Settings\default.vol”文件變大
請參考文檔《CE6.0內(nèi)置數(shù)據(jù)庫CEDB的異常檢測與修復(fù)》解決該故障。
2、在產(chǎn)品發(fā)布時請使用release版本程序,不使用debug版本程序。release版本程序不帶調(diào)試信息,exe大小也會明顯小于debug版本程序。
英創(chuàng)提供測試程序源代碼,有需要的客戶可以聯(lián)系英創(chuàng)工程師獲得,驗證該問題。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6084瀏覽量
35154
發(fā)布評論請先 登錄
相關(guān)推薦
評論