标题: Windows CE 6.0 Multi-bin的设计与实现 [打印本页] 作者: admin 时间: 2014-10-10 08:49 标题: Windows CE 6.0 Multi-bin的设计与实现 Windows CE是微软推出的一款32位的嵌入式操作系统。它具有良好的多媒体功能和友好的人机交互界面,支持PowerPC、X86、ARM和MIPS等多个系列处理器的体系结构,并为所支持的处理器提供完善的系统库[1]。它还提供了完善的设备驱动程序和软件开发包,大大缩短了开发周期,节约了电子智能产品的上市时间。在这些产品开发过程中,系统启动时间的时延是影响客户体验(QoE)的重要因素。启动速度受很多因素的影响,包括定制系统镜像文件的大小、系统内核加载驱动的多少、内存占用的大小等。为了减少系统启动时延,目前比较流行的做法是在Bootloader中添加LOGO启动画面,从而在视觉上降低客户的时延感受[2]。从本质上讲,这种方法并没有从根本上减少系统的启动时延,仅仅是从视觉的角度转移了客户的注意力。
本文在分析Windows CE 6.0系统启动过程的基础上,设计了一种在Bootloader中实现BinFS文件系统进而完成Multi-bin加载的方法,从而真正达到缩短启动时间的效果,同时还为用户节省了大量的内存空间。实验结果表明,该方法性能稳定,可移植性强,并已经应用到一款基于Samsung 2440处理器的IPTV手持式测试仪系统上。
当加载带有BinFS的映像时,Nand Flash设备上的Windows CE kernel(内核)重定位到RAM区域,当系统访问该区域时,BinFS负责访问Nand Flash设备上相对应的位置,并返回数据给系统。实际就是在Nand Flash设备上面实现了XIP(execute In place)的功能。
XIPKERNEL文件至少要包括下面的模块:
Nk.exe;Kernel.dll;Coredll.dll;K.coredll.dll;Oalioctl.dll;
Filesys.dll;Fsdmgr.dll;Mspart.dll
Romfsd.dll;Binfs.dll;Default.fdf or boot.hv(here choose
boot.hv);Fpcrt.dll (ARM-only)
Ceddk.dll (if required by your flash driver);Smflash.dll
(your flash driver)
本文提出一种普遍适用于Windows CE 6.0操作系统的Multi-bin技术。该技术的实现具有一定的通用性,不仅在Windows CE 6.0操作系统下实现了减少开机启动时延,而且节省了可观的内存空间,提高了用户质量体验(QoS)。基于本文提出的原理和方法对使用Windows CE操作系统的同类硬件平台(如ARM9、ARM11)的开发也具有一定的参考价值。