主题 : 求助,碰到2013.10版UBoot移植NandFlash启动功能怪异问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 5567
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
贡献值: 0 点
综合积分: 10 分
注册时间: 2009-04-28
最后登录: 2016-09-18
楼主  发表于: 2013-12-03 10:08

 求助,碰到2013.10版UBoot移植NandFlash启动功能怪异问题

1、生成的Uboot.bin直接下载到内存0x33F80000处运行正常。
2、复制NandFlash中的Uboot到0x33F80000处,Start.S中的校验前4K数据正常通过。但后面执行第二阶段跳转到C函数时,死机了,不响应。
3、如果在“复制NandFlash中的Uboot到0x33F80000处,Start.S中的校验前4K数据正常通过”后加一上动作,加一个调用在Nand_read.c中实现的函数,将0x33F80000开始的数据向前移动64字节,后面到执行第二阶段时就正常了。
郁闷的是这64字节是什么回事。校验4K数据都OK了,为什么到后面跳第二阶段不行,内存向前移动64字节就可以了。

是我错了,在NandFlash复制里的ldr r1, _TEXT_BASE 写成 ldr r1, =_TEXT_BASE, 正确的是要ldr r1,=0x33F80000,而_TEXT_BASE是 0x33f80040  ,刚好64字节

.text          0x33f80000      0x540 arch/arm/cpu/arm920t/start.o
                0x33f80000                _start
                0x33f80040                _TEXT_BASE
[ 此帖被czf288在2013-12-04 16:12重新编辑 ]