生成的nb0文件拷到开发板中去,没有效果,

冰山一角   2008-9-26 22:45 楼主
刚开始接触WinCE,很多地方不懂,在这里碰到了一个问题。
手上有一个开发板,S3C2440A,K9F1208U0B的。
然后有一个文档,Installation Manual for S3C2440A(Windows CE 5.0).pdf。
还有一个文件夹PLATFORM,PUBLIC两个文件,里面的文件什么的都齐全。

然后,我按照Installation Manual for S3C2440A(Windows CE 5.0).pdf上说得,把一些文件夹,拷到我的C:\WINCE500等文件夹里面去,以及一些定制选项,直到PB产生了一个新的系统,里面stepldr.nb0,eboot.nb0等都很齐全。以上的过程,但是按照文档说的操作的,应该没什么问题。

文档的下半部分是把文件拷到开发板里去运行,可是我这个开发板被改过,和文档上描述的不一样,就没法进行下去。问了下别人,就用烧录工具把生成的stepldr.nb0,拷到开发板的0 block 里面去,然后用串口、并口、USB把开发板练到电脑上,打开dnw来观察,发现没有任何反应,别人给我的镜像都有信息出来,可是我的什么反应都没有。然后,觉得是代码里的配置文件不对,然后找到bootloader下面的stepldr文件夹,阅读了里面的代码,把里面一些不太对的配置都改了,像main.c、option.h里的。然后重新生成,把stepldr.nb0拷进开发板,还是不行。


上网搜了一下这些问题,有人说,是什么“因为微软编译器的原因,导致了我们按一般方法来编译.nb0时,前面的4K都是空的,”,或者说“stepldr.nb0最大之内4K”什么,然后按照网上的方法,修改了“stepldr.bib”文件,重新生成,都还是没用,不知道有人可以指点一下吗?

回复评论 (11)

你看看这篇文章,介绍的是2410下WinCE6.0的NBOOT的编译方法,应该跟你在做的差不多。:-D
[url=http://www.cnblogs.com/we-hjb/archive/2008/09/27/1299901.html][/url]
点赞  2008-9-27 09:26
学习了!
点赞  2008-9-27 09:39
1楼的那个博客文章,我看了,里面主要是说的是新建一个nboot文件夹,把一些文件自己写进去,然后让PB编译出nboot.nb1来使用,可是我的问题是,我的bootloader文件夹下面有一个Stepldr文件夹,生成了stepldr.nb0,
其实就是ads里的nboot.bin。

还有里面说的,把定义ROMSIZE=00001000,生成了stepldr.nb0,stepldr.nb1,stepldr.nb2,把nb1烧进去,
这个我早试过了,没有效果啊。
点赞  2008-9-27 10:57
使用STEPLDR,NB0就行了,其它几个NBX不要管。用并口烧到第0块就OK了。这样STEPLDR就会去引导你的EBOOT,EBOOT进而引导NK。
点赞  2008-9-28 13:42
你再看看你生成的nb0文件,到底用哪一个要看具体情况。
有些是用nb0,这种情况一般是先生成一个nb0,然后再截取其中的代码段为nb0。就象你说的前面有4K是没有用的。
如果生成了nb0,nb1,nb2,一般就是用nb1了。nb0是没用的那4K。
你可以用ultraedit看一下文件的内容来帮助判断具体用哪一个。

实在不行,你试试看用ADS来编译了。
点赞  2008-9-28 22:09
不过我实验的结果是用STEPLDR.NB0是可以的,虽然也生成了NB1,NB2,NB3.但我用NB0真的可以引导EBOOT,实验已经证明了这一点.
点赞  2008-9-28 23:26
过来学习,帮顶。
点赞  2008-10-1 09:50
关注一下
点赞  2008-10-1 22:04
感谢各位的提议,因为我用的是S3C2440A自带的BSP,而我用的板子是公司设计的,所以用标准的BSP是无法用的,,后来同事帮我把板子的频率改了一下,和S3C2440A标准的一样,然后我用生成的stepldr.nb0,stepldr.nb1,stepldr.nb2,把stepldr.nb1烧进去之后,可以引导了。但是其中还有不少问题,看来还需要摸索一下啊。
点赞  2008-10-8 09:13
现在这个问题,我已经解决了一部分。可以使用stepldr.nb1引导eboot.nb0了。
具体步骤是:按照s3c2440aBSP的安装文档“Installation Manual for S3C2440A(Windows CE 5.0)_V1.1.pdf”说得将BSP安装到pb5.0中去。
然后在编译之前,修改“\WINCE500\PLATFORM\SMDK2440A\Src\Bootloader\Stepldr\stepldr.bib”文件。
修改之后如下“
        ROMSTART=00000000
        ROMWIDTH=32
        ROMSIZE=00001000

确保pb5.0可以生成,stepldr.nb0、stepldr.nb1、stepldr.nb2三个文件。具网友分析,是由于pb的编译器的问题,导致stepldr.nb0是空的,要使用stepldr.nb1。将stepldr.nb1烧入nand flash的block 0中去。

烧进去之后,发现在dnw中查看不到串口传过来的信息。后来仔细分析之后,修改了晶振频率之后,就可以打印出来一些信息了。
打印的信息显示出现ECC errors,仔细阅读了s3c2440a的手册,三星官方Bsp的用的K9S1208V0M的手册,以及我用的K9F1208U0B的手册,由于K9S1208V0M是sm卡,K9F1208U0B是nand flash,所以在ecc上好像有差别,差别在哪不太明白,但是考虑到ECC只是检校作用,把其它的弄好之后再来做这个吧。将ECC的相关代码注释掉。发现可以顺利运行,要到eboot.nb0了。
这里面还有好多问题,我没弄明白,不过要等以后有时间再弄了,我要赶进度哦。
点赞  2008-10-20 10:14
。。。
点赞  2008-10-20 11:46
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复