如何减小NK大小&&WinCE的快速启动

我的NK一旦在setting菜单选择中文,编译出来的NK就是25M多了,但是有些人可以弄到中文NK15M,现在我也来试试。

 

我用优龙的2410,发现启动最慢的地方是在把NAND下的WINCE考到SDRAM的过程,大概需要15秒
WINCE的NK.NB0文件大概有30M,我尝试去掉那些WORD VIEW,PDF VIEW等,编译出来的WINCE并没有变小多少
或者有没有更快的 读取NAND的方法,目的只为了提高启动速度,
谢谢!

30m的话你的NK是中文的吧?
如果是中文的添加Agfa AC3 Font Compression/GB18030 Dta Converter/simsun&nsimsun(subset 2_50)
这样大概可以小10M左右
另外你的BSP都调试确定没有问题之后,生产的时候可以将那些串口打印信息都屏蔽掉,还会省一点时间。
你的意思是不用设置下面的这个菜单了?
要设置,只是上边选组件的时候选的字体比PB默认选的中文字体小,并且Agfa AC3 Font Compression是压缩字库的。
我目前16M
 

从NANDFLAG拷贝到SDRAM的时候很慢,要大概15S,运行的时候不慢。
所以问大家如何把WINCE剪小。
另外我重新编译的时候,发现NK.NB0并没有变小,字节长度一样,但NK.BIN却小很多了,

补充下(未测试):
==================================================
下载NK.NB0的时候,先清空SDRAMD的内润NB0后面的NULL数据都不下了,然后直接运行。
======================================================
如何在不删除必要组件的前提下减小内核文件长度?  
1是自定义组件
2是压缩字库。
=======================================================
从NANDFLAG拷贝到SDRAM的时候很慢,要大概15S,运行的时候不慢。
所以问大家如何把WINCE剪小。
另外我重新编译的时候,发现NK.NB0并没有变小,字节长度一样,但NK.BIN却小很多了,

补充下(未测试):
==================================================
下载NK.NB0的时候,先清空SDRAMD的内润NB0后面的NULL数据都不下了,然后直接运行。
======================================================
如何在不删除…


nk.nb0是根据设置生成固定大小的,具体是在哪个文件里设置的忘了,而NK.BIN是根据你实际内核需要的存储空间来决定大小的。

nk.nb0的大小是你在config.bib中设定的Romsize的大小,你所做的去组件的工作只会减小nk的大小,要减小nk.nb0,lz需要修改romsize的大小,但是切记有个度,不能让他比你生成的nk.bin的实际大小还要小。

如何减小wince内核(nk.bin以及nk.nb0)的大小

一、字体

CSDN-xu_mercury深圳 说:
哎。果然是。以前都是在Setting设置个中文。其实根本不需要。直接加个FONT就好了
CSDN-xu_mercury深圳 说:
系统小了好多
wogoyixikexie@gliet 说:
在哪里加?
CSDN-xu_mercury深圳 说:
catalog-》core os-》international-》locale speciific support-》chinese-》fonts-》选2_50那个就可以了
CSDN-xu_mercury深圳 说:
platform->setting 里面那个可以不用选。选了至少加了个3-5M
CSDN-xu_mercury深圳 说:
直接选一个font我现在系统才19M
wogoyixikexie@gliet 说:
哦,那这样很好啊
CSDN-xu_mercury深圳 说:
是啊。轻量级了

二、把有些你不用的组件去掉,网络,多媒体等,这样会很小的了

以上转自:http://blog.csdn.net/zmq5411/article/details/6312573

WinCE的快速启动

       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中。在定制系统时,需要添加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 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界面!

wince如何实现multi bin详见:http://bbs.eeworld.com.cn/thread-149737-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值