您当前的位置:首页 > 养生 > 内容

英创信息技术Windows(CE5.0文件系统分析)

英创信息技术Windows(CE5.0文件系统分析)

因为工控设备的逐渐变化,Windows CE5.0在目前的嵌入式主板上仍然被广泛使用。英国公司的EM9160、EM9360等工控主板也继续预装CE5.0操作系统。由于CE5.0文件系统是基于微软 Windows95/98内核,基于FAT的CE5.0文件系统应用于NandFlash设备时,NandFlash的逐扇区读写模式和逐块擦除模式可能会使CE5.0文件系统产生较大的NAND闪存单元排序工作量。大规模的NandFlash整理会消耗很大一部分CPU时间。如果应用程序此时有繁重的数据存储任务,极端情况下可能会导致CE5.0文件系统的FAT表损坏。针对这种情况,本文提出了两种解决方案。

目前我们通常使用NandFlash的两种逻辑结构,一种是扇区大小为512字节,一个块由32个扇区组成,称为小扇区结构;另一种是扇区大小为2048字节(即2KB),一个块包括64个扇区。NandFlash的这种结构通常被称为大扇区。很容易计算出,按文件系统排序NandFlash,大扇区的工作量是小扇区的8倍。因此,在相同的运行条件下,大扇区结构的NandFlash对文件系统的负载要高得多。为了确定CE5.0文件系统的这个潜在问题,我们选择了基本配置为16位数据宽度、32MB内存、128MB大扇区NandFlash的EM9160简化版作为实验平台。16位数据宽度减少了CPU 的处理能力至少提高一倍,而128MB NandFlash只为文件系统提供768块,更容易触发文件系统的后台整理进程。

我们的基本测试程序(即应用程序)基于低效的小文件(一个文件大小不超过512字节,测试文件大小为180字节)。256个小文件存放在一个目录中,总共循环写入256个目录。同时在测试程序中启动一个计时线程,计时时间为5s到100s之间的随机数。当时机到来时,线程将强制重启系统,从而对文件系统施加随机重启影响。为了观察CPU的基本工作状态,测试程序的主线程每隔2s从调试串口输出CPU负载率等系统信息。基本测试条件如下:

1、CPU常规负载率处于65%的水平。当系统被NandFlash排序时,负载率会上升到95%的水平,最长时间会持续近10s。

2、连续24小时测试后,约3%主板的FAT表会损坏,导致系统启动失败。

测试程序中采用的文件写入方法是最直接的过程:

//CreateFile-WriteFile-close handle

当写入的文件已经存在于NandFlash中时,CE5.0的TFAT文件系统会以某种方式保留原文件,这样如果在写入文件的过程中重启系统,重启后系统可以恢复原文件。但这样做的代价是CE5.0文件系统会启动后台线程并行处理这些旧文件。经过大量的实验分析,我们认为正是NandFlash这种类似并行运行的机制可能存在一些缺陷,导致脂肪在极端情况下的损伤。

根据以上分析,我们的第一种处理方法是在应用程序中添加和删除同名文件,然后进行常规的文件写入过程,即:

//第一种方法:

//DeleteFile-CreateFile-WriteFile-close handle

它可以将原来需要后台并行处理的任务变成应用线程的顺序执行,从而大大减少多线程并行操作NandFlash的情况。修改后的试验表明,脂肪损伤率降低了至少一个数量级,脂肪损伤可以在当前的测试范围内无法检测到。

第一种方法是通过调整应用程序来降低NandFlash操作的并行性,避免触发CE5.0文件的缺陷。但是,第一种方法可以不能完全杜绝NandFlash的并行操作,因为后台整理一直存在。所以第二种方法是监控CPU负载率,一旦CPU负载超过一定阈值,应用线程就会暂停文件写操作,从而主动阻止应用程序与后台并行运行NandFlash。基本流程变成:

//第二种方法:bret=g _ pnandmonitor-enternanddaccess(dw time out);//获取NAND访问//如果bRet=TRUE,则进入正常NAND操作://delete file-create file-writefile-close handle g _ pnandmonitor-leavenandaccess();//返回NAND访问

在上面的过程中,我们使用了一个NandFlashMonitor,一个CPU负载率监控类。当CPU负载率超过指定阈值时,应用程序线程调用EnterNandAccess函数,这将导致应用程序线程阻塞(挂起),直到超时或CPU负载率低于指定阈值。使用CPU负载率监控方法后,可以看到后台整理期间CPU负载率从原来的95%下降到85%,说明这段时间内应用程序的NandFlash确实停止了。同时也说明这期间分配给应用程序的资源其实很少,所以写文件的效率很低。延迟写入方法不会影响整体性能。需要检测NandFlashMonitor代码的客户可以通过邮件向盈创的技术支持获取。

总之,实验表明CE5.0的TFAT文件系统在NandFlash的管理策略上确实存在一些缺陷。在大扇区NandFlash和频繁文件操作的应用中,这个缺陷可能会对设备造成威胁。然而,我们也可以有足够的手段来完全避免这种风险,而不降低系统的整体性能。

标签:NandFlashCE5文件系统


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 水龙头感应器电路图(两款感应式自动出水龙头电路详解)

下一篇: 戴尔电脑客服电话400(戴尔电脑投诉热线)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号