主题 : mini2440 u-boot-2009.8 移植nand flash 启动问题?? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 56784
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
贡献值: 0 点
综合积分: 6 分
注册时间: 2011-10-13
最后登录: 2012-06-23
楼主  发表于: 2011-10-13 13:20

 mini2440 u-boot-2009.8 移植nand flash 启动问题??

我在mini2440上移植好了nor flash移植成功后,移植nand flash,按照tekkamanninja的方法移植的时候,u-boot.bin 生成成功,通过vivi选择a下载到开发板上, 然后从nand flash上重新启动出现了错误。无法启动。终端没有任何输出。然后我通过led测试,发现程序运行到了一个死循环,就是搬运u-boot后检查搬运是否成功处的一个死循环。
我已经纠结了2天,我检查了自己的代码,感觉没错。就是运行不成功。上网查了资料,也有人遇到这种情况,但是没有给出解决办法。
希望有高手可也指点。小弟不胜感激。
我是arm新手。
级别: 新手上路
UID: 43793
精华: 0
发帖: 31
金钱: 155 两
威望: 31 点
贡献值: 0 点
综合积分: 62 分
注册时间: 2011-04-19
最后登录: 2017-09-13
1楼  发表于: 2011-10-30 19:10
解决了吗现在?
级别: 侠客
UID: 7944
精华: 0
发帖: 76
金钱: 400 两
威望: 99 点
贡献值: 0 点
综合积分: 152 分
注册时间: 2009-08-03
最后登录: 2018-02-08
2楼  发表于: 2011-12-02 15:08
同感我的也是这个问题
级别: 新手上路
UID: 60442
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2011-12-10
最后登录: 2012-03-24
3楼  发表于: 2011-12-13 22:38
发现同样问题。死循环在代码搬运之后!不知道什么回事?????如果解决希望了解下。多谢!!!!!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
4楼  发表于: 2011-12-13 22:43

 回 3楼(k___w) 的帖子

与其在这里猜谜语还不如把你的东西发出来看看
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 60442
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2011-12-10
最后登录: 2012-03-24
5楼  发表于: 2011-12-13 22:52
....



/******/

#ifdef CONFIG_S3C2440_NAND_BOOT
    mov r1, #NAND_CTL_BASE   //Nand Flash
    ldr r2, =( (7<<12)|(7<<8)|(7<<4)|(0<<0) )
    str r2, [r1, #oNFCONF]   //
    ldr r2, [r1, #oNFCONF]

    ldr r2, =( (1<<4)|(0<<1)|(1<<0) )
    str r2, [r1, #oNFCONT]   //
    ldr r2, [r1, #oNFCONT]

    ldr r2, =(0x6)           //RnB Clear
    str r2, [r1, #oNFSTAT]
    ldr r2, [r1, #oNFSTAT]
    mov r2, #0xff            //reset command
    strb r2, [r1, #oNFCMD]

    mov r3, #0               //wait
nand1:
    add r3, r3, #0x1
    cmp r3, #0xa
    blt nand1

nand2:
    ldr r2, [r1, #oNFSTAT]   //
    tst r2, #0x4
    beq nand2

    ldr r2, [r1, #oNFCONT]
    orr r2, r2, #0x2         //
    str r2, [r1, #oNFCONT]

    //get read to call C functions (for nand_read())
    ldr sp, DW_STACK_START  
    mov fp, #0              

    //copy U-Boot to RAM
    ldr r0, =TEXT_BASE
    mov r1, #0x0      
    mov r2, #0x60000  
    bl nand_read_ll  
    tst r0, #0x0
    beq ok_nand_read

bad_nand_read:
    loop2: b loop2    //infinite loop

ok_nand_read:
    //check data
    mov r0, #0
    ldr r1, =TEXT_BASE
    mov r2, #0x400           //4 bytes * 1024 = 4K-bytes
go_next:
    ldr r3, [r0], #4
    ldr r4, [r1], #4
    teq r3, r4
    bne notmatch   --->    在这里发生跳转,经过三百多字节左右比较后,(0x130),发现不匹配
    subs r2, r2, #4
    beq stack_setup
    bne go_next

notmatch:
    loop3: b loop3           //infinite loop

#endif //CONFIG_S3C2440_NAND_BOOT

......