WinCE的快速启动

简介: PXA270上的双启动功能已经实现了,但又引入了一个新问题,WinCE的启动太慢,大概需要2分钟!这显然是不能忍受的。通过两天的努力,现在已经缩短到20秒,虽然还是有点长,但已改善不少了。

       PXA270上的双启动功能已经实现了,但又引入了一个新问题,WinCE的启动太慢,大概需要2分钟!这显然是不能忍受的。通过两天的努力,现在已经缩短到20秒,虽然还是有点长,但已改善不少了。先整理一下,免得忘了,有时间再做优化。

      WinCE启动慢的主要原因是从NAND FLASH中加载NK到内存特别慢,这几乎占了99%的时间,而加载完NK后的启动其实是挺快的。所以要缩短启动时间,可以通过缩小NK来实现,因为NAND FLASH的读写速度是一定的,没有太大的改善空间。

      WinCE中提供了Multi-BIN的功能,它将整个内核映像分成几部分,在WinCE启动时可只加载核心部分,这样就能有效提高WinCE的启动速度。

      要实现Multi-BIN,必须做两部分的修改,一是EBOOT,另外一个是映像。下面就简要说一下这两部分实现时的要点和注意点。

EBOOT中需要支持BINFS,这在先前做双启动时已经留好了路,没什么问题。

EBOOT中需要支持Multi-BIN的下载和烧写,这一部分可参考帮助文档的相关部分。

映像的修改,首先是bib文件,配置各部分的大小,并设定NK.bin中包含的文件,需要注意的是FLASH的驱动(nandflash.dll)必须包涵在NK.bin中。在定制系统时,需要添加BINFSFATFSROMONLYFSHIVE-BASEED的注册表。修改NANDFLASH的注册表配置,使其在BOOTPHASE 0加载。整个过程,代码的修改比较少,除了EBOOT中需要修改一些代码外,映像只需修改几个配置文件。

需要注意的是调试Multi-BIN的映像最好不要用Debug的方式编译下载,否则会出现一堆可怕的打印信息,摘录如下:

0x83d16000: BINFS: InitVolume - Signature of ROM Header does not Match- Assuming Chain Region

0x83d16000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x11689!!!

等这些打印信息完成,得要好几分钟。用Release的方式编译则不会有这个问题。Debug模式下,为什么会出现这些,还不清楚,有时间再看吧。

贴两张效果图,实现MULTI-BIN前后SDRAM的大小比较。


这是采用MULTI-BIN时,SDRAM的大小,60M Bytes


没有采用MULTI-BIN时,只有35M Bytes

这两幅图表明,MULTI-BIN除了能提高WinCE启动的速度,还能增加WinCE的可用内存。这是MULTI-BIN的另外一个重要作用。

除了MULTI-BIN能提高WinCE的启动速度外,优化启动时驱动的加载也能提高WinCE的启动速度。一般情况下,驱动的加载都很快,可以不予考虑。但在驱动加载很费时间时,如果通过异步的方式加载驱动,那将给用户带来极速体验,5秒钟进入WinCE界面!

目录
相关文章
|
5月前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
292 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
7月前
|
Dart 开发工具 Android开发
在 Windows 操作系统上安装和配置 Flutter 开发环境
在 Windows 操作系统上安装和配置 Flutter 开发环境
260 0
|
Ubuntu Linux Windows
Electron如何在UOS操作系统(统信)下打包成桌面应用?
Electron如何在UOS操作系统(统信)下打包成桌面应用?
|
Linux iOS开发 MacOS
Mac系统运行Win软件应用虚拟机软件CrossOver2023
CrossOver2023版是在Mac上运行Win软件的最简单方法,有了它,你无须 Win许可、重新启动或使用虚拟机即可在mac上使用Win软件。CrossOver23可以轻松地从Dock本地启动Win程序。CrossOver版还集成了macOS 功能,例如跨平台复制和粘贴,以及用于Win应用程序的共享文件系统。简单的使用方式,小白用户也可以自己安装虚拟机,让用户自己在mac电脑上安装Windows系统,增加电脑的使用方式,你可以用它来办公、来玩游戏,使用方式很广泛,需要注意的是,安装多个虚拟系统,需要电脑拥有很高的配置,方可支持运行!
266 0
|
Ubuntu Linux Shell
zynq操作系统:petalinux的环境搭建
Petalinux 工具是 Xilinx 公司推出的嵌入式 Linux 开发套件,包括了 u-boot、 Linux,Kernel、 device-tree、 rootfs 等源码和库,以及 Yocto recipes,可以让客户很方便的生成、配置、编译及自定义 Linux 系统。 Petalinux 支持 Versal 、 Zynq UltraScale+ MPSoC、Zynq-7000 SoC 以及 MicroBlaze,可与 Xilinx 硬件设计工具 Vivado 协同工作,大大简化了Linux 系统的开发工作。
866 0
zynq操作系统:petalinux的环境搭建
|
Linux
linux嵌入式移植部分配置
linux嵌入式移植部分配置
124 0
|
Web App开发 监控 安全
开发者曝 Android 13 “彩蛋”功能!虚拟化支持运行 Windows 11 和桌面版 Linux
开发者曝 Android 13 “彩蛋”功能!虚拟化支持运行 Windows 11 和桌面版 Linux
582 0
开发者曝 Android 13 “彩蛋”功能!虚拟化支持运行 Windows 11 和桌面版 Linux
|
API 开发工具 开发者
WinCE应用程序的开发
WinCE应用程序的开发是WinCE开发中很重要的一个环节。本文将简单介绍一些WinCE应用程序开发的基本概念。     先说开发工具,目前用得比较多的开发工具有EVC4(SP4)、VS2005、VS2008和Platform Builder。
1215 0
|
Ubuntu Unix Linux
Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件
未来我们可以在Windows里访问Linux文件了。微软此前曾透露计划在Windows 10中发布完整的Linux内核,现在该公司计划将Linux文件访问完全集成到内置的文件资源管理器中。在文件资源管理器的左侧导航窗格中将提供一个新的Linux图标,可为Windows 10中安装的所有发行版提供对根文件系统的访问。
409 0
Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件