在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)啟動變慢
3)“\NandFlash\Documents and Settings\default.vol”文件變大
請參考文檔《CE6.0內置數據庫CEDB的異常檢測與修復》解決該故障。
2、在產品發布時請使用release版本程序,不使用debug版本程序。release版本程序不帶調試信息,exe大小也會明顯小于debug版本程序。
英創提供測試程序源代碼,有需要的客戶可以聯系英創工程師獲得,驗證該問題。
-
嵌入式主板
+關注
關注
7文章
6086瀏覽量
35622
發布評論請先 登錄
相關推薦
評論