40楼#
发布于:2007-08-29 22:23
兄弟,公司的网络挡掉QQ了
不过我先提一下,加入XIPKERNEL的档案,多一点没关系~ 因为没需要因为小小的数百K~1MB,而伤透脑筋.. 另外,我是用你的来改的,第一次ok后,我要再改其它资料却又出问题了,卡在XIPKERNEL, 索性我就重新建一个peoject, 再Rebuild就好了,怪哉~ |
|
41楼#
发布于:2007-08-30 10:41
现在修改了EBOOT,因为在MUKLTI-BIN,时生成的XIP被下载下来还是当做一个BIN文件,所以我在EBOOT里面对他做了一些处理,我把BIN文件都一个个提取出来,然后在存入FLASH,在启动时,只读取RAMIGAGE的段和CHAIN段!
|
|
42楼#
发布于:2007-08-30 11:01
搞定,内核 1。9M!
|
|
43楼#
发布于:2007-08-30 11:13
兄弟 恭喜阿!! XIP搞OK了,是不是觉得很爽? 嘻嘻
你开机后,系统RAM显示是多少? 然后系统占用多少? 图片:Scr-050809144702.gif 图片:Scr-050809145603.gif |
|
44楼#
发布于:2007-08-30 11:23
至于BOOT的部分,我是改成读取3MB就去RUN了...
不果整体开机时间还是要9秒...如果可以压缩到4-5秒 就真的完美了 |
|
45楼#
发布于:2007-08-30 14:46
harktrip兄弟
搞定后发表一下做法文档啊! 我下星期也找个时间玩玩,思路按照你们的来玩 不过有点想不明白,把NK做成XIPKERNEL.nb0(内核部分)跟nk.nb0(其它镜像) 我eboot首先把XIPKERNEL.nb0拷到内存去运行,运行完了呢?怎么去加载第二部分的nk.nb0文件呢?还是要把第二部分NK.NB0拷到内存去吗?这样不是又要占用拷贝时间? 你NK.NB0部分跟RAM部分区载还有重叠吧? |
|
|
46楼#
发布于:2007-08-30 15:41
OXOX,最近忙歪了...没时间写这些数据
不过你边做 边参考这一串讨论,就可搞定了 我下载到目标板,是用产生的XIP.NB0 --->这是结合两个NB0的 NK.NB0是和DRAM完全重迭的 |
|
47楼#
发布于:2007-08-30 19:38
BinFS.dll总不能加载,为何呢?
|
|
48楼#
发布于:2007-08-31 09:06
应该保证BINFS在系统从default.hv和user.hv读取注册表前就可用,所以你要保证你的boot.hv,BINFS,FMD驱动到RAMIMAGE的region里面而不是NANDIMAGE!所以对BINFS和SMFLASH的驱动的注册表的值也应该在:
;HIVE BOOT SECTION ;END HIVE BOOT SECTION 这个设置你可以参考网站上很多资料。 |
|
49楼#
发布于:2007-08-31 09:53
相同手法移植到2410的板子上...大失败~~~
Windows CE Firmware Init INFO: Initializing system interrupts... INFO: Initializing system clock(s)... INFO: Initializing driver globals area... OEMInit Done... Sp=ffffc7cc OEMSetRealTime: Year: 2002, Month: 1, Day: 2, Hour: 3, Minute: 42, second: 33 rcnr=1h OEMSetRealTime(register): Year: 2, Month: 1, Day: 2, Hour: 3, Minute: 42, second: 33 rcnr=1h FMD::FMD_Init FMD::FMD_OEMIoControl = 0x71c24 Data Abort: Thread=8ffee5d0 Proc=8c526958 'filesys.exe' AKY=00000003 PC=03f9775c RA=03f83e54 BVA=04000000 FSR=00000007 Data Abort: Thread=8ffee5d0 Proc=8c526958 'filesys.exe' AKY=00000003 PC=03f9775c RA=03f83e54 BVA=04000000 FSR=00000007 RaiseException: Thread=8ffee5d0 Proc=8c526958 'filesys.exe' AKY=00000003 PC=8c206da8 RA=8c2049d8 BVA=4ffee80e FSR=4ffee80e Exception 'RaiseException' Thread=8ffee5d0 AKY=00000003 PC=2ffc645a BVA=4ffee80e R0=8c5286a0 R1=4ffee80e R2=00000000 R3=2ff95aea R4=8c5283bc R5=8c20b3c4 R6=8c5286a0 R7=8ff95ae8 R8=8c205ee8 R9=00000000 R10=8c20d8c8 R11=2ff95aea R12=0405f97c SP=8ffc6458 Lr=8c205ee8 Psr=8000001f |
|
50楼#
发布于:2007-08-31 16:14
2410搞定
|
|
51楼#
发布于:2007-08-31 16:43
一直有关注这个帖子,看你们似乎已经到此为止了,提几个问题,希望你们再接再励,看了harktrip发了贴图,知道系统跑起来占用了11432K,实际上已经用了11M之多了,前面辛辛苦苦挤那么个1~2M,这里系统基本没跑自己的应用程序就占用了11M之多。实际上最终说起来可用于自己的应用程序的内存只剩下47M多点。还有个问题,启动时间还是缩短不了。对比远峰的产品,我看到可用于程序内存是61M,系统跑起来,跑了主界面应用之后,explorer,我通过控制面板看到它占用的程序内存不到6M,光这点比我们自己作出来的节省5M之多内存,还有就是它的启动速度。所以要达到这个水平看来现在这种做法还有很大距离。
|
|
52楼#
发布于:2007-08-31 17:31
做这个完全不是为了提高启动速度,启动速度和很多有关系,自己加载的驱动多少,另外内存占用的大小也和你的驱动和模块的多少有关。 现在我的整个IMAGE达到了36M,当时候MULTI-BIN之后,最终使用的RAM也就10多M,这样怎么也省了个10M。如果真要做成那样,那就精简IMAGE吧!
|
|
53楼#
发布于:2007-08-31 18:03
引用第52楼simula于2007-08-31 17:31发表的 : 现在问题是这个做法使启动时间变长了,8,9秒钟的时间太长了,实际上如果是精简IMAGE的话就不需要使用这个所谓的MULTI-BIN了,现在这样的用法,显然不是MULTI-BIN的初衷。做产品的话客户就会比较在意启动时间,否则自己玩玩的话就无所谓了。 |
|
54楼#
发布于:2007-08-31 19:02
搞到现在,我自己觉得要加强的…
1. 2440在WINCE开机后,已先占用10MB (图中11M,是因为执行了抓图软件), 但2410的板子,却只占8MB. 但因为LCD BUFFER我都是抓到1MB,可降的空间有限, 不过还是可以再试试 (我没记错的话,远峰GPS开机后占用6MB) 2.关于XIPKERNEL的大小,其实想想,降到最低时,例如0.8~1 MB, 但启动WINCE时势必会因为要读取驱动程序,而拖延到开机时间,不过我现在的2.6MB是大了点. 3.就是开机时间了, 2440的现在送电到看到桌面=7秒, 2410的为9秒. 不过监看debugmessage ,有些过程的确需要再改进, 因为ETHERNET驱动和其它INIT的动作,有稍微停顿..| 我估计修正过后,再加上看到桌面前就跑自己的AP,可以到5秒左右. 就看这几天优化后的情况吧! |
|
55楼#
发布于:2007-09-02 17:20
都是强人,我目前遇到的问题就是开机速度太慢,不加XIP都要15S,加了12S,真正要优化到4~5S还是真的有很长的路要走。 zheshijie大侠,我看你走的比较前,可否就EBOOT启动给兄弟们补补课。 |
|
56楼#
发布于:2007-09-02 18:26
部分硬件的驱动(dll)可以放在XIPKERNEL里,可以加快开机~
|
|
57楼#
发布于:2007-09-02 19:30
楼上,这样做的话,你的XIPKENEL就变大了。这个不是很划算吧。
你觉得呢, 我参照你的思路,做一版试试。谢谢,Harktrip |
|
58楼#
发布于:2007-09-02 20:00
楼上的兄弟,我现在研究的就是看到桌面前,到底做了哪些驱动INIT…
目前只确定s3c2440disp.dll 是一定要含在里面的 触控的也要含在内会比较恰当 enthernet(cs8900,dm9000) 当然就到桌面之后才init 另外FMD_INIT_DONE之后不知做啥了…也做太久了..至少停顿1秒 至于xipkernel变大..只要在3MB以内,都是我可接受的范围内 xipkernel的大小,我是放弃了,因为拼命搞到1MB吧,可是开机时间多了2-3秒,这不划算~~ |
|
59楼#
发布于:2007-09-03 14:04
遇到棘手的问题了。
使用了HIVE之后,出现驱动加载不了的情况,打印信息如下: Windows CE Kernel for ARM (Thumb Enabled) Built on Jun 24 2004 at 18:25:00 ProcessorType=0920 Revision=0 sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 802268d8 -ConfigureGPIO..... Invalid XIP region found. Sp=ffffc7cc year reset +OEMSetRealTime(2007/1/1 4:44:56.000) 似乎问题出在:Invalid XIP region found.。。。 继续查找问题中,希望大虾指点。 |
|