|
我们通常都是通过eboot进入菜单选择U,然后通过dnw下载nk.bin的,其实,NK.NB0也可以直接下载到内存里面运行的,至少我用nor起来下载过NK.NB0运行的,这样有个好处,不用每次都烧写nand,效率高速度快。
但我手头的开发板没有nor,USB又不好使,我想调nk,只能通过jtag或者什么工具下载下去,但现在问题来了,每次运行NK.NB0都报错,就是一开始的汇编都出错了。
详细情况如下:
在我的config.bib里面定义如下:
MEMORY
NK 80200000 01E00000 RAMIMAGE
ROMSTART = 80200000
于是,我就把它下载到30200000地址,然后将pc指针指向这里,汇编语句看到了,
ldr r0, =WTCON ; disable the watchdog timer.
mov r1,#0
str r1, [r0]
我就一条一条执行,第一条,取0x53000000地址,没有问题;第二条,取0到R1,没有问题;第三条,把0存到0x53000000出错了,invalid address了。。。
我怀疑是MMU的问题,于是,我把stepldr加载进去,运行一把,再把eboot下载下去,运行一把,最后,下载NK.NB0,现在应该跟NAND里面起来一样了吧,但情况还是如此,这是为什么呢?
两个问题:
1,有没有谁直接运行过NK.NB0的?通过什么样的方法运行?先stepldr,再eboot,再nk.nb0嘛?
2,nk.nb0,比方说起始地址是80200000,那么一开始的代码是kernel\oal\start.s代码嘛?前几句看上去很像,后面就有点不像了,难道不是?
谢谢了。
|
|