关于dnw、u-boot、NK.nb0的几个问题
本帖最后由 mu163163 于 2012-10-29 11:56 编辑最近遇到了一些问题,百思不得其解,自己折腾了好几天没弄好,就只好向大神们求救了。
1.“dnw 50008000”中的地址和dnw里设置的usb下载地址有什么关系,如果说是以前面那个地址为准,那后面那个地址是什么时候有用的,这个问题好像之前也有人问过,好像没有回答
2.dnw里的usb port选项中的transmit和uboot选项有什么区别
3.“dnw 50008000”如果是把文件下载到内存50008000处的话,为什么“go 50008000”去运行该程序没有反应,即停住了,并没有执行
4.NK.nb0按理说是应该可以加载到内存后,直接可以运行的,用dnw命令加载,然后用go命令运行的话,没反应,跟上面说的一样呵。然后我根据网上一些大神的办法移植了一个uboot,添加了tftp的功能,用网络下载文件到内存,再用go命令去执行,如果是小文件,像u-boot.bin是可以正常运行的,而用TFTP下载NK.nb0到内存,再用go命令执行,结果串口打印:
Windows CE Kernel for ARM (Thumb Enabled) Built on Sep 25 2009 at 11:04:23
++OEMInit()
S3C6410_APLL_CLK : 532000000
ARMCLK : 532000000
HCLK : 133000000
PCLK : 66500000
InitializeGPIO()
InitializeCLKSource()
InitializeCLKGating()
InitializeBlockPower()
DCache: 128 sets, 4 ways, 32 line size, 16384 size
ICache: 128 sets, 4 ways, 32 line size, 16384 size
+OALArgsInit()
SocID:0x36410101
Arguments area is initialized
-OALArgsInit()
+OALTimerInit( 1, 33249, 0 )
-OALIntrRequestSysIntr(irq = 38, sysIntr = 16)
--OEMInit()
之后就停住了,我不知道是原来的NK.nb0的问题还是我在TFTP传输的过程中损坏了NK.nb0(因为tftp传输NK.nb0的时候经常出现错误,然后重传,NK.nb0是大文件,大小40M,相对而言),而用nboot加eboot加载运行NK.bin是可以正常启动的。
以上的问题还请版主们多费点心思回答一下,或者有哪位大神知道答案的,还请不吝赐教,小弟感激不尽!!!
自己顶一下,希望能快点解决,有人指点一下也好啊 我现在还没解决,想编译个debug版本的试试,看看到底跑到哪里出错,可是编译出错,出错信息:
BUILD: Message
BUILD: NMAKE :U1073: don't know how to make 'E:\WINCE600\PLATFORM\SMDK6410\lib\ARMV4I\retail\DriverLib.lib'
BUILD: NMAKE.EXE TargetExeFiles-i -c BUILDMSG=Stop.BUILDROOT=E:\WINCE600\PLATFORM\SMDK6410 CLEANBUILD=1 LINKONLY=1 NOPASS0=1MAKEDLL=1 failed - rc = 2
论坛里也有人问过这个问题,不知道现在有人解决了没有,或者飞凌官方有出debug版本的?还希望有解决过的人出来帮忙一下!!! 你用的是nand flash?
nand flash的板子是这样,nand flash不能执行程序,要通过steppingstone机制和bootloader的配合将程序全都复制到SDRAM中执行,dnw用usb下载的原理是先通过bootloader将数据接收在sdram中,然后由bootloader调用nand flash相关操作的接口函数,将数据写入。也就是说dnw中设置的usb地址0x30800000是ram的地址。而且nand flash的地址也没由映射到地址空间里来 mu163163 发表于 2012-11-22 16:27 static/image/common/back.gif
我现在还没解决,想编译个debug版本的试试,看看到底跑到哪里出错,可是编译出错,出错信息:
BUILD:
这个问题在几天前得到了解决,解决办法在我的另外一个帖子http://bbs.witech.com.cn/forum.php?mod=viewthread&tid=22291&extra=,有需要的人去看一下
weicz 发表于 2012-11-24 21:24 static/image/common/back.gif
你用的是nand flash?
nand flash的板子是这样,nand flash不能执行程序,要通过steppingstone机制和bootl ...
你说的这些我都知道,还有你说dnw中设置的usb地址是数据写入的地址,那恐怕是在Eboot中是这样,u-boot中“dnw 50008000”命令执行完后,文件是下载到0x50008000处的,而不是下载到usb地址所设置的0x57e00000,这应该跟实现有关,只是我没啥空去看这部分的源代码而已,不过还是感谢你的帮助:lol:handshake
xiangzi10 发表于 2012-11-22 15:53 static/image/common/back.gif
今天遇到同样的问题,百度到此,盼解决
不知道你要的是哪个问题的答案,不过第四个问题我已经解决的。
那是因为我的u-boot是自己移植的,移植过程中没发现内存的初始化程序只初始化了前128MB的内存,而后128MB的内存没有初始化(我的内存是256MB DDR),这在u-boot中是没问题的,因为u-boot中我设置的内存使用是前128MB。而wince系统中使用的是256MB的全部的内存,在跳转到wince内核执行之前,是要求在config.bib配置的RAMIMAGE和RAM段,物理上可访问的,可读的(即256MB的内存要是可访问,可读的);所以才出现了上面所说的第四个错误。把内存初始化对了之后,内核是可以跑起来的,不过LCD是花屏,而且NAND Flash好像也不是很对,那是另外的问题了。
经过这么久的盲目摸索,才自己找到了问题所在,在这里写下,希望对遇到同样问题的人有帮助。还有我发现,好像我问的问题怎么最后都是我自己来回答了,希望那些知道问题答案的人能多点在论坛回答一下问题,这对我们这些菜鸟的帮助是很大的,也只有这样,论坛才会越来越红火嘛:lol。 xiangzi10 发表于 2012-12-19 13:25 static/image/common/back.gif
谢谢!我遇到的主要是前面3个问题,我没有去自己移植uboot,至于下载程序到50008000,再go 50008000不运行 ...
这个问题我也发现了,只是忘了告诉你:D,加油咯!!
页:
[1]