|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
大家帮个忙,关于擦除flash的 |
作者:黑驴王子 栏目:嵌入式系统 |
我在看arm上K9F1208U0M FLASH的程序,在擦除部分有个东西搞了好久也不懂,请高手指教: static U32 EraseBlock(U32 addr)//擦除,整个过程遵循流程图 { U8 stat; addr &= ~0x1f; NFChipEn(); WrNFCmd(ERASECMD0); WrNFAddr(addr); WrNFAddr(addr>>8); if(NandAddr) WrNFAddr(addr>>16);//?????? WrNFCmd(ERASECMD1); stat = WaitNFBusy(); NFChipDs(); #ifdef ER_BAD_BLK_TEST if(!((addr+0xe0)&0xff)) stat = 1; //just for TEST bad block #endif putch('.'); return stat; } 写地址的时候为什么先写addr,然后再写addr左移8位,还有后面左移16位,这样不是把前面的地址都改掉了吗? |
|
|
Copyright © 1998-2006 tgdrjb.cn 浙ICP证030469号 |