阅读:960回复:0
NAND FLASHG高级编程请教
我在对NAND FLASH写入时写不进去,一次性写入528个字节,也就是一个page,下面是我的原代码,不知道那里有问题,请各位帮帮忙.
int _WrPage(unsigned int block,unsigned int page,U8 *pPage) { unsigned int blockPage=(block<<5)+page; int i; FC_CMD; rKM29UXDATA=0x80; FC_ADDR; rKM29UXDATA=0; rKM29UXDATA=blockPage&0xff; rKM29UXDATA=(blockPage>>8)&0xff; FC_DATA; for(i=0;i<528;i++){rKM29UXDATA=*pPage++;} FC_CMD; rKM29UXDATA=0x10; for(i=0;i<10;i++); rKM29UXDATA=0x70; WAITRB; //wait max 500us; FC_DATA; for(i=0;i<3;i++); //twhr=60ns if((rKM29UXDATA&0x1)) { FC_INACTIVE; rSYSCFG=SYSCFG_8KB; _PutString("broken"); return 0; } else { FC_INACTIVE; rSYSCFG=SYSCFG_8KB; #if (WRITEVERIFY==1) return _VerifyPage(block,page,pPage); #else return 1; #endif } } |
|