近日,英創公司在測試WINCE雙核文件系統時,發現一例系統死機故障。通過觀察測試,該故障發生在以下環境中:
WINCE資源管理器處于打開狀態,且當前瀏覽目錄正好是正在高速讀寫的文件所在目錄。
高速讀寫的文件打開方式為共享讀寫方式。
hFile = CreateFile(wsFileName, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, 0, OPEN_ALWAYS, 0, 0);
//hFile = CreateFile(wsFileName, GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_ALWAYS, 0, 0);
打開方式為FILE_SHARE_READ|FILE_SHARE_WRITE共享讀寫方式,建議非必要可以將參數設為0。
讀寫頻率很高,目前只有雙核CPU系統測試出故障。
由于必須同時滿足以上3個條件,該故障才可能發生,所以可以很好的規避該故障。通常情況下,WINCE資源管理器是不會打開的,所以一般只有工程師在調試階段才可能觸發。
該故障產生的原因可能是,當文件為共享方式打開時,當文件進行讀寫大小發生改變后,WINCE資源管理器會刷新界面,當讀寫頻率過高時,過于頻繁的界面刷新導致WINCE后臺崩潰。
該故障出現在類似ESM7000的雙核系統中,在ESM335X單核系統中雖然也會出現卡頓,但沒有測試出系統死機重啟的情況。可能與WINCE系統版本停止更新時還沒有雙核CPU有關。所以請使用ESM7000的工程師注意規避該故障。
客戶可以聯系英創工程師,獲得相關測試程序。
成都英創信息技術有限公司 028-8618 0660