xddzccn 发表于 2007-12-17 09:11

nand flash的块擦除代码

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

gouki_s 发表于 2007-12-17 13:40

不是很清楚吗?

addr&nbsp;&=&nbsp;~0x1f<br />每block&nbsp;128k
页: [1]
查看完整版本: nand flash的块擦除代码