(2)精简内核体积,做到最小化系统
在调试过程中,我们发现WinCE启动慢的主要原因是从NAND FLASH中加载内核到内存特别慢,这几乎占了99%的时间,而加载完内核后的启动其实是挺快的。所以要缩短启动时间,可以通过缩小内核来实现。也就是说,在不删除必要组件的前提下必须减小内核文件体积。要减小内核文件体积可以在定制内核向导中选择自定义,也就是说对于每个组件都由自己来选择,而不是选择标准配置。同时,减小内核文件体积最有效最直接的办法是缩小字体,尤其对于东亚字体,采用字体压缩技术并且选择合理的字库文件将明显缩小文件体积。
(3)精简加载内容,以最小化配置来启动系统
在启动WinCE时,我们还发现慢的原因是内核在启动时会有许多静态和延迟加载依赖项,尤其是各种安全性 DLL,无疑这些加载项会增加启动时间。因此,要想减小启动时间的首要规则是尽量以精简原则来启动系统。例如设备上的外壳程序或启动时的界面等。
当我们着手删除许多对启动无关的组件配置项后,只根据需要的配置来启动内核时,我们就会发现实际上内核映像还是能够启动。因此,使启动速度加快的一个重要窍门,是在设备能正常启动和应用的情况下,以最少数量的组件和驱动来启动系统。
(4)优化系统,以最小化加载驱动和自启动程序
在调试中我们还发现,启动时间较小是因为着启动时加载较少的驱动程序、设备和自启动程序。因此,如果尽可能的以最小化来加载设备驱动和启动程序是一个很好的方法。以此方式来优化系统中由于加载造成延时,或取消不必要的长时间延迟。
(5)选择合理闪存类型和优化闪存驱动
NOR和NAND是现在两种主要的非易失闪存技术。对于存储少量的代码,NOR闪存更适合,而NAND则是高数据存储密度的理想解决方案。NOR的特点是芯片内执行(XIP),应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。NOR的读速度比NAND稍快一些,而NAND的写入速度比NOR快很多。
NAND能提供极高的单元密度,但在使用NAND时必须先写入驱动程序,而且向NAND写入信息需要相当的技巧,因为绝不能向坏块写入,这就意味着在NAND上自始至终都必须进行虚拟映射,也就可能会产生额外的时间花费。但如果能对NAND驱动进行合理的优化,则也能收到很好的效果。
总而言之,快速启动系统是开发WinCE系统第一步。因为只有一个快速启动而又稳定工作的系统,才能够避免客户长时间等待的烦燥,又能够满足客户极速爽快的体验需求,才能最终使嵌入式电子产品得到客户的好评。