nand flash的块擦除代码
大家来看看这段代码 这里面的 addr是什么意思啊 <br />一直都搞不懂 addr是整个 flash的地址 ,还是行地址 <br />也就是块地址 谢谢!<br />static U32 NFEraseBlock(U32 addr)<br />{<br /> U8 stat;<br /><br /> addr &= ~0x1f;<br /> <br /> NFChipEn(); <br /> NFWrCmd(ERASECMD0); <br /> NFWrAddr(addr);<br /> NFWrAddr(addr>>8);<br /> if(NandAddr)<br /> NFWrAddr(addr>>16);<br /> NFWrCmd(ERASECMD1); <br /> stat = NFWaitBusy();<br /> NFChipDs();<br /> <br />#ifdef ER_BAD_BLK_TEST<br /> if(!((addr+0xe0)&0xff)) stat = 1; //just for test bad block<br />#endif<br /> <br /> printf("Erase block 0x%08x %s", addr, stat?"fail":"ok");<br /> <br /> return stat;<br />}
不是很清楚吗?
addr &= ~0x1f<br />每block 128k
页:
[1]