我的Nboot从nand到SDRAM为何错误!

MCU—杨博   2008-6-3 17:29 楼主
大家好!
目前我在调试2440的板子。打算从nand flash(三星K9F1208U0C)启动。然后Nboot起来后,从axd上看到写道NAND和映射SRAM的值是正确的。
但是指定0x30100000地址将NAND中的代码拷贝到SDRAM时,出现错误,数据乱了,贴一部分大家帮看看:

NAND中数据:
45 00 00 EA 1B 00 00 EA 20 00 00 EA 2B 00 00 EA

对应SDRAM中的:
00 45 AA 80 00 1B AA 80 00 20 AA 80 00 2B AA 80


通过Jtag放在NAND中的数据和.bin文件相同,而且通过AxD可以看到用NAND启动时,开始考入SRAM缓冲的4KB也是正确的。但是当数据从NAND开始向SDRAM拷贝就出现这种看上去好像大小端不对,但本身却还有错位的错误。
而直接向SDRAM写入数据是正确的。


请大家帮忙看看!

回复评论 (4)

自己顶一下!
点赞  2008-6-4 10:51
从上面的结果看,应该是地址空间的变化和Big Endian 或者 Little Endian,看看你的代码在拷贝后的数据 前后是否是能了 内存管理MMU

另外, Nandflash的数据通过直接访问Nandflash寄存器直接读取寄存器数据到SDRAM中,其实就是你的0x30100000 地址,请注意罢了。
点赞  2008-6-4 11:22
是这样的,在从Nand flash拷贝数据到SDRAM也就是0x30100000地址后,加上了MMU使能。
是否需要在拷贝前加MMU使能?
点赞  2008-6-4 16:31
另外MMU不是虚拟地址到物理地址的映射吗?这里0x30100000应该是物理地址吧,如果不加MMU是不是也可以阿!
点赞  2008-6-4 16:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复