再问个启动代码的问题,关于那段检查NANDFLASH坏块的
CheckBadBlkmov 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
这是光盘附带的源码中的一小段,它附近的我看懂了 检查每一块的第一页,好的就复制,块的就检查下一个,对吧。这段是具体的检查过程, 看了好久 谁能帮我解释下啊,不胜感激 我只知道原理是查看第一、二页的第2048个字节是否是0XFF,但是对于它的地址是怎么分配的搞不懂。总共输了五次地址,第次代表什么意思啊。页内偏移量,块内页偏移量还是咋滴啊,请高手解释 关于地址代表什么意思可以查看nand flash的芯片手册,他是将块地址转化为页地址来操作的
页:
[1]