这些天在搞wince的快速启动问题,网上搜索了这样一篇文章《MULTI BIN的wince 5.0,smdk2440下的实现》,然而这篇文章需要eboot的支持,在此之前我的开发板是优龙公司的YL2410,启动部分是优龙自己的bootloader,没有资料说明怎样开发eboot,所以决定搞明白eboot。
在PB下面生成了eboot,通过YL2410的bootloader用USB下载到开发板,运行没有反应,看代码好像是debug.c中是用的UART1作为调试串口,于是把调试串口改为UART0。
还是没有信息出来,怎么回事呢,继续看eboot的代码,发现fw.s文件中有这句话bl KernelStart,改为bl main入口,还是没有反应,再修改main函数,在函数最开始加入下面两句
OEMDebugInit();
OEMWriteDebugByte('a');这样在川口调试工具中看到了字母'a',然后却出现了Dabort exception!!!,不知道什么原因,初步估计是YL2410的bootloader显示的信息,出现数据异常,看来不能直接bl main。
于是进入mmu.s里面看代码,到了这里看不懂了。。。
恳求做过2410eboot的兄弟指点迷津!!!指明方向,因为我现在也不知道我所走的路是不是能通。
引用: 引用楼主 gniyliu 的帖子:
这些天在搞wince的快速启动问题,网上搜索了这样一篇文章《MULTI BIN的wince 5.0,smdk2440下的实现》,然而这篇文章需要eboot的支持,在此之前我的开发板是优龙公司的YL2410,启动部分是优龙自己的bootloader,没有资料说明怎样开发eboot,所以决定搞明白eboot。
在PB下面生成了eboot,通过YL2410的bootloader用USB下载到开发板,运行没有反应,看代码好像是debug.c中是用的UART1作为调试串口,于是把调试串口改为UART0。
还是…
--------------奉劝你不要这样做,现在很多BSP都有带USB的EBOOT,你可以从网上下一个,然后放到你的开发板上运行,如果你的内存和nand flash都是是64M,那么几乎不用修改什么东西就可以启动。然后你就在这个上面修改。会比较快达到你的目的。
优龙,友善的BSP都是从4.2升级到5.0的,有些东西讲得莫名其妙。我原先想给我的老立宇泰开发板的EBOOT增加USB下载,后来搞到半路上不得不放弃,最后还是拿优龙的BIOS进行修改,很快就可以跑起来了。我觉得在ADS下面用JILINK好调试。
有兴趣可以加我头像上那个群,晚上可以一起看看EBOOT,俺以前看了比较久。
gooogleman ,我现在主要是想提高wince的启动速度,看网上资料好像需要eboot支持,所以才会跑去搞eboot,我用PB编译之后能生成eboot.nb0,eboot.bin等文件,而且eboot.nb0下载到SDRAM中也能跑起来,但是就是不正常,所以我才去看那些代码,而现在对这些代码看不懂,所以不知道怎么办。
另外,我从网上找到的eboot放入SMDK2410中编译都是同样的效果,我想问题是不是出在fw.s和mmu.s上面,这也不得而知,如果你有这方面的bsp和资料等,能否跟我一起分享一下!
BTY:我的qq是184194732,你的联系方式怎样?
这是个比较有意义的帖子,我看见驱动开发网有人讨论过,有个什么 远峰公司的东西启动相当快。-------我是初学者,不敢弄大侠搞的东西就没有保存下来。我找找看。
各位评估 关于64MB WINCE开机后,还有52MB可用的方法就是这个了。驱动开发网人气不怎么够,但是有些帖子很有价值,并且可以上传源码。
gooogleman,我刚刚又对比了一下YL2410的SMDK2410和另外一个《三星原厂的CE5.0bsp%2C包括eboot,nboot,kernel,driver。实现了kitl,directdraw驱动+eboot有usb下载功能__2440bsp5.0.rar》,发现他们的目录结构都不一样,这应该验证了你说的“优龙,友善的BSP都是从4.2升级到5.0的”,而我看到的YL2410的开发板的bootloader是ADS编译的,而非PB的编译工具链产生的,所以是不是可以推断出YL2410的eboot不会是那么完善。
另外你说的“后来搞到半路上不得不放弃,最后还是拿优龙的BIOS进行修改,很快就可以跑起来了。我觉得在ADS下面用JILINK好调试。”,我在想你是不是用的优龙的BIOS进行修改之后产生的bootloader和eboot的功能一样,可以代替PB的编译工具链产生的eboot呢?我想实现eboot的段式加在功能能否用你的方法也能够实现呢,会不会比较困难呢?如果能用ADS开发,这当然也是我所想要的结果。
刚看了《各位评估 关于64MB WINCE开机后,还有52MB可用的方法》的帖子,这个帖子的所有的东西都是基于eboot的,所以在没有搞定eboot之前,那些个都是空谈,郁闷死了。。。
引用: 引用 5 楼 gniyliu 的回复:
gooogleman,我刚刚又对比了一下YL2410的SMDK2410和另外一个《三星原厂的CE5.0bsp%2C包括eboot,nboot,kernel,driver。实现了kitl,directdraw驱动+eboot有usb下载功能__2440bsp5.0.rar》,发现他们的目录结构都不一样,这应该验证了你说的“优龙,友善的BSP都是从4.2升级到5.0的”,而我看到的YL2410的开发板的bootloader是ADS编译的,而非PB的编译工具链产生的,所以是不是可以推断出YL2410的eboot不会是那么完善。
另外…
优龙的ADS写的BIOS功能很强大啊。你的开发板是优龙的,你应该比我更清楚这点。
不一定的,他那个帖子没有贴出代码来,你可以根据它的文字提示,用ADS的优龙BIOS来做。这样方便调试。PB下面调试,真是很烦人。
快速你可以考虑:multi-xip,这个有专门的讨论,很是详细,
还有烧写时,选择解压后烧写,这样启动速度会快几倍。。。
引用: 引用 9 楼 hiproz 的回复:
快速你可以考虑:multi-xip,这个有专门的讨论,很是详细,
还有烧写时,选择解压后烧写,这样启动速度会快几倍。。。
这个在驱动开发网已经有人把代码贴出来了,现在还没有时间研究这个。
我编译了nboot,利用sjf2410.exe工具下载到nand flash的第一块,运行没有问题,能够显示如下信息
WinCE NAND Boot v1.00
Oct 08 2008 11:01:04
然后重新修改nboot代码,在里面实现了拷贝nand flash的0x200000之后的128k的代码(这里的代码是优龙的bootloader代码)到0x30200000只有的128k区域,之后程序跳转到0x30200000地址,将修改过的nboot.bin重新下载到nand flash的第一块,也能正常运行这段bootloader代码。
在我看来nboot用来引导eboot启动,eboot代码部分读取toc等信息,再引导系统的启动。
现在我想修改优龙的bootloader代码已取得和eboot代码相同的功能。不知是否有人愿意一起做这项工作,或者参与讨论。
另外一个ads jtag的调试问题,我调试arm9的ads功能时,为什么有时候能成功的进入main函数,而有时候却不能进行jtag调试,看汇编代码跟踪好像是由于硬件引起,代码进入异常。
在我看来nboot用来引导eboot启动,eboot代码部分读取toc等信息,再引导系统的启动。
现在我想修改优龙的bootloader代码已取得和eboot代码相同的功能。不知是否有人愿意一起做这项工作,或者参与讨论
==================本来就是这样的了。
昨晚上不了网了,没有加你。
加MSN吧,QQ在公司不给上
由龙的板子确实搞了搞,他的比较特殊。
一般说来 Nandflash只有前面的几K可以作为启动使用,而由龙的,将拷贝代码放在了前面,这样他的Nboot可以有30几K的量,这样一般Eboot需要的功能就可以实现了,都是通过ADS来调试实现的 ,这对硬件的调试有一定的优势。
但是,搞过他的人也许知道,它将一些CE的大众化的思路给变了,一般是 NBOOT TOC EBOOT Other... OS..., 而通过这样一搞后,一些东西完全变了,Nboot可能要划分了前面很多的块。 而我也没有见到那家确实使用起来了TOC,都是固定的分区,各家各家完全不同,完全是工程师自己的爱好来分配,这样当你用到了别人的BSP包的时候,你不得不面对这些问题,
也是这个原因, 我以后很少用由龙的这套做饭,而是使用更加规范的做法, 将Flash严格分区,定义不同阶段可以使用的不同的Flash,这样对系统规划有好处。后来自己做的2440就不再使用由龙的做发了,二十将它哪里作为自己的一个对硬件测试的独立的部分来对待,掌微的方案就是这样处理,可以看出其对Wince系统拥有的实力。