西安 网站建设 培训学校,网站建设需要待摊吗,游戏制作器,遵义企业做网站PXA270上的双启动功能已经实现了#xff0c;但又引入了一个新问题#xff0c;WinCE的启动太慢#xff0c;大概需要2分钟#xff01;这显然是不能忍受的。通过两天的努力#xff0c;现在已经缩短到20秒#xff0c;虽然还是有点长#xff0c;但已改善不少了。先整理一下但又引入了一个新问题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中。在定制系统时需要添加BINFS、FATFS、ROMONLY的FS和HIVE-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 doesnt 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界面 、、在CSDN里发贴问到的 30m的话你的NK是中文的吧 如果是中文的添加Agfa AC3 Font Compression\GB18030 Dta Converter\simsunnsimsun(subset 2_50) 这样大概可以小10M左右 另外你的BSP都调试确定没有问题之后生产的时候可以将那些串口打印信息都屏蔽掉还会省一点时间。 增加字体压缩组件如LS所说是一个可行的方法 如果CPU速度低于300MHZAgfa AC3 Font Compression最好不要选这样仍然可以比默认的减小7M左右 你的意思是不用设置下面的这个菜单了 要设置只是上边选组件的时候选的字体比PB默认选的中文字体小并且Agfa AC3 Font Compression是压缩字库的。 我目前16M 相应的Boot程序也得跟着改如果NK是10MBoot上电只读10M。这样开机Boot读NK到内存速度快NK启动速度也快。可以控制在10秒内 可以修改下启动文件在NANDFLASH中存放nk.bin在copy时将nk.bin释放到ram中这样的话会快点。 IE浏览器也有几兆还有那些JSCRIPT去掉一些组件,目前我的压缩到18M了 如果用XIP会不会速度快点或者调试注册表的信息。具体的我也不清楚但是我想内核大和启动速度应该不是完全对应的吧 调试信息设备管理器加载驱动的多少等也影响启动速度。所以注册表和BSP都要瘦身 从NANDFLAG拷贝到SDRAM的时候很慢要大概15S运行的时候不慢。 所以问大家如何把WINCE剪小。 另外我重新编译的时候发现NK.NB0并没有变小字节长度一样但NK.BIN却小很多了 补充下未测试 下载NK.NB0的时候先清空SDRAMD的内润NB0后面的NULL数据都不下了然后直接运行。 如何在不删除必要组件的前提下减小内核文件长度 1是自定义组件 2是压缩字库。 首先NK.BIN中的内容是被压缩过的,NK.NB0中的内容是没有压缩的。 两者大小的区别是因为在生成过程中BIN会将你设定的后面的NULL自动去掉而NB0就不会。 NB0的大小就是第三个变量ROMSIZE所设置的大小。 由于nk.nb0是非压缩的数据里面的数据就是NK展开以后在内存里面的数据。 而nk.bin是有压缩的数据里面的数据是压缩以后类似于成块形的数据被loader拷贝到内存以后没有区别。 由于bin文件需要解压因而其下载方式也不一样 通常通过串口直接下载用nb0pb下载用bin。 其次nk.nb0是可以直接烧到FLASH/ROM中的是代码镜像可以直接跳转到其入口执行。 而nk.bin是Microsoft binary image格式的文件必须按其格式定义解开到其指定的地址空间的位置才能执行。 75、如何在不删除必要组件的前提下减小内核文件长度 要减小内核文件长度首先要在使用PB的定制内核向导中选择自定义也就是说对于每个组件都由自己来选择而不是选择PB的标准配置。但减小内核文件长度最有效最直接的办法是缩小字体尤其对于东亚字体采用字体压缩技术并且选择合理的字库文件将明显缩小文件长度。 1、在定制内核时选择AGFA AC3 Font Compression组件。SYSGEN变量为SYSGEN_AGFA_FONT。 2、参考标题为“East Asian Font Versions”的帮助文档从中选择你需要的字库文件加到内核中从文档可以看出加AC3压缩比不加压缩在文件长度方面差距很大。