本人有项目需要,需要使用nboot启动wince内核,通过minitools将nboot.nb0和nk.bin烧写入flash之后,从flash启动,出现如下情况:
1.nboot能够正常执行加载内核操作;
2.LCD正常显示加载进度条;
3.跳转并启动内核失败,黑屏;
我看了一下源代码,发现你们最后跳转的地址就是LOAD_ADDRESS_PHYSICAL ,通过查找相关资料,发现launch address并不是所谓的内核的加载地址,估计就是这个原因导致不能启动wince,我添加了
#define LAUNCH_ADDRESS_PHYSICAL (LOAD_ADDRESS_PHYSICAL+0X8298)//GSF ADD
并将跳转语句修改为:
((PFN_IMAGE_LAUNCH)(LAUNCH_ADDRESS_PHYSICAL))();//GSF MODIFIED LOAD_ADDRESS_PHYSICAL->LAUNCH_ADDRESS_PHYSICAL
重新编译之后,生成了nb0至nb3共四个文件,但是CPU上电拷贝的最多只有8K的代码到stepping stone执行,我将编译好的nboot.nb0烧写入flash,发现:
1.LCD花屏;
2.wince不能启动;
估计是驱动分散到了4个文件中,nboot.nb0代码不完整,不能完全驱动,但是nboot有8K的代码量限制,这如何解决?
针对如上问题,我想寻求的解决是:
1.如果wince不能启动的原因就是launch地址不对,那请友善的工程师提供一个能够使用的nboot.nb0
2.为何编译出来的nboot有4个文件,如何解决?
再三表示感谢!