apollo96 发表于 2010-6-26 21:59:24

再问个启动代码的问题,关于那段检查NANDFLASH坏块的

CheckBadBlk
        mov                r7, lr
        mov                r5, #NFCONF
       
        bic      r0,r0,#0x3f        ;addr &= ~0x3f;
        ldr      r1,                ;NFChipEn()
        bic      r1,r1,#2
        str      r1,

        mov      r1,#0x00               
        strb   r1,                        ;WrNFCmd(READCMD)
        mov      r1, #0                        ;2048&0xff
        strb   r1,        ;WrNFAddr(2048&0xff);
        mov      r1, #8                        ;(2048>>8)&0xf
        strb   r1,
       
        strb   r0,        ;WrNFAddr(addr)
        mov      r1,r0,lsr #8        ;WrNFAddr(addr>>8)
        strb   r1,
        cmp      r6,#0                        ;if(NandAddr)
        movne    r1,r0,lsr #16        ;WrNFAddr(addr>>16)
        strb   r1,
       
        mov      r1,#0x30                        ;WrNFCmd(0x30)
        strb   r1,
               

        mov        r0, #100
1
        subs        r0, r0, #1
        bne        %B1
2
        ldr        r0,
        tst        r0, #1
        beq        %B2       

        ldrb        r0,         ;RdNFDat()
        sub                r0, r0, #0xff
       
       
        ldr      r1,                ;NFChipDs()
        orr      r1,r1,#2
        str      r1,
       
        mov                pc, r7
这是光盘附带的源码中的一小段,它附近的我看懂了 检查每一块的第一页,好的就复制,块的就检查下一个,对吧。这段是具体的检查过程, 看了好久 谁能帮我解释下啊,不胜感激

apollo96 发表于 2010-6-27 17:07:13

我只知道原理是查看第一、二页的第2048个字节是否是0XFF,但是对于它的地址是怎么分配的搞不懂。总共输了五次地址,第次代表什么意思啊。页内偏移量,块内页偏移量还是咋滴啊,请高手解释

飞凌-seventeen 发表于 2010-6-28 08:13:06

关于地址代表什么意思可以查看nand flash的芯片手册,他是将块地址转化为页地址来操作的
页: [1]
查看完整版本: 再问个启动代码的问题,关于那段检查NANDFLASH坏块的