nboot的lanch问题?

dhmgwb333   2009-12-22 17:39 楼主
请教大家一个问题 我现在nboot中lanch 0x30038000 pc指针也跳转到3003800执行了 但是在跳转到30039000时遇到一个问题我ads跟踪发现 eboot中的寄存器地址都变了,不是我定义的那个地址了??请问下有人遇到过吗??
30039000        [0xe59f03a4]   ldr      r0,0x300393ac ; = #0x00660073
30039004        [0xe3a01a01]   mov      r1,#0x1000
30039008        [0xe5801000]   str      r1,[r0,#0]
3003900c        [0xe59f039c]   ldr      r0,0x300393b0 ; = #0x006c0075
30039010        [0xe3a01020]   mov      r1,#0x20
30039014        [0xe5801000]   str      r1,[r0,#0]
30039018        [0xeaffffff]   b        0x3003901c

这是eboot代码:
ldr        r0,=GPBCON
        ldr        r1,=0x1000
        str        r1,[r0]
        ldr        r0,=GPBDAT
        ldr        r1,=0x20
        str        r1,[r0]  
这是我在eboot中点灯的代码。按道理GPBCON=0x56000010 GPBDAT=0x56000014!可是现在是#0x00660073
#0x006c0075这两个!请各位大侠帮忙分析什么原因呢??

回复评论 (9)

没人帮我顶呀!自己顶下!各位大侠看看这是什么问题呀??
点赞  2009-12-23 08:45
帮顶!是不是在nboot中对GPIO B做了映射了?楼主是在SDRAM中调试代码吗?0x00660073是什么存储区的地址,FLASH还是RAM?这个时候MMU还没有开吧?
点赞  2009-12-23 09:57
好像弄错了。楼主贴出来的代码显示GPBCON地址=0x300393ac GPBDAT地址=0x300393b0
点赞  2009-12-23 10:02
lz 在 nboot 中 copy eboot 的 size 是多少, 是不是太少了, 还是 copy 有错误.

Paul, Chao @ Techware
点赞  2009-12-23 11:35
首先感谢下楼上几位回复!我这问题好难呀!我感觉自己能力有限了!
dwSector=64*2;//从block:2 page:0开始存放eboot
dwLength=64*3;//一共6个block;block2-7;96K容量;如果eboot文件大于96K,需要修改该代码
dwRAM=0x30038000;//eboot load Start address;把NAND FLASH内容拷贝到0X30038000
TO  Paul, Chao 大侠!我的是1g08的nand 我cpoy的大小是64*3 我在开发部上时可以copyeboot并成功运行的。我不知道 这里是不是小了?还请明示!
点赞  2009-12-23 11:42
问题解决了!结贴!
点赞  2009-12-23 14:31
1. 1g08 有 small page(512bytes/page), 也有 large page(2Kbytes/page), lz 再看看是不是这个地方有设错吧

2. 不然把从 nand copy 到 ram 完後, 把 ram 的内容 dump 出来, 比比看是哪一个地方有问题.

Paul, Chao @ Techware
点赞  2009-12-23 14:36
楼主是怎么解决的啊?
点赞  2009-12-23 15:34
就是1G08问题!换了块片子就好了!
点赞  2009-12-23 16:03
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复