技术开发 频道

只争朝夕,WinCE快速启动有窍门

【Windows嵌入式有奖征文系列】
  
  【IT168 专稿】快速启动对于嵌入式消费电子产品是比较重要的要求之一。我这次负责的项目是一个嵌入式消费电子产品的开发,系统用的是ARM处理器+WinCE平台。但每次WinCE启动的时候都非常慢,这对客户来说显然是不能忍受的,为此开发团队经受着公司的巨大压力。

  为什么会出现这种情况呢?经过几个晚上通宵达旦的加班分析和研究,原来主因是系统的引导过程、内核加载和硬件关键时延因素太多导致速度缓慢。本文通过对以上因素进行分析,并提出相应的解决办法。但由于启动速度非常依赖于硬件平台,而且有的方法互相排斥,因此在具体应用时需要综合考虑和选择。

  1.WindowsCE启动慢原因分析

  (1)系统启动加载慢
  嵌入式系统在启动时一般需要三个基本元素:引导工具BootLoader,内核加载和初始化进程等。如果要它成为完整的操作系统,还得加上硬件驱动程序、硬件接口程序和应用程序组。因此,即使在一个简单的嵌入式系统里,系统启动时都需要加载内核和加载许多组件或驱动程序。

  因此,WinCE启动快慢和WinCE系统里面引导初始化时间、内核加载时间、驱动程序加载时间、组件加载时间和应用程序加载时间有直接关系。也就是说,在启动的时候,一方面系统会花一部分时间在内核的的处理上,例如引导初始化和内核初始化。另一方面,启动组件和驱动程序也需要花费一定的时间,例如基本的驱动程序或自运行的程序等。

  (2)硬件关键时延因素太多
  一般来说,嵌入式设备的启动速度与硬件的选择也是很有关系的,如CPU、内存的选择。例如在处理器方面,低端的如ARM7根本跑不了WinCE,而且有些ARM9跑起来也会比较慢。另外,非易失闪存的合理选择也是一个重要的影响因素,如选择NOR Flash还是Nand Flash,而且和Nandflash的驱动是否进行优化也有很大的关系。

  2.WinCE启动过程详细分析

  一般来说,Windows CE的启动一般由两部分构成:引导初始化和操作系统执行环境的初始化。其中引导初始化一般也由两部分构成:第一部分是板级、片级初始化,主要是通过设置寄存器初始化硬件的工作方式,如设置时钟、中断控制寄存器等,完成内存映射、初始化MMU等。第二部分是加载程序,将操作系统内核和应用程序的映像从只读存储器加载或者拷贝到系统的RAM中并执行。

0
相关文章