WINCE双核系统死机故障一例及解决方法

 2024-4-8     作者:杨阳     [nemail]    
[lablebox]

    近日,英创公司在测试WINCE双核文件系统时,发现一例系统死机故障。通过观察测试,该故障发生在以下环境中: 


  1. WINCE资源管理器处于打开状态,且当前浏览目录正好是正在高速读写的文件所在目录。

    1.png


  2. 高速读写的文件打开方式为共享读写方式。

    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。


  3. 读写频率很高,目前只有双核CPU系统测试出故障。


    由于必须同时满足以上3个条件,该故障才可能发生,所以可以很好的规避该故障。通常情况下,WINCE资源管理器是不会打开的,所以一般只有工程师在调试阶段才可能触发。 

    该故障产生的原因可能是,当文件为共享方式打开时,当文件进行读写大小发生改变后,WINCE资源管理器会刷新界面,当读写频率过高时,过于频繁的界面刷新导致WINCE后台崩溃。

    该故障出现在类似ESM7000的双核系统中,在ESM335X单核系统中虽然也会出现卡顿,但没有测试出系统死机重启的情况。可能与WINCE系统版本停止更新时还没有双核CPU有关。所以请使用ESM7000的工程师注意规避该故障。 


    客户可以联系英创工程师,获得相关测试程序。

[lablebox]