最近在调试三星flash芯片K9F1208U0B的读写差除等程序 遇到一些问题,望知道的同行,前辈给小弟指点下,跪谢 问题是这样的“ 假如我想差除第一块,执行差除函数(NF_Erase:调试的差除程序) 如果想成功差除,则在执行差除第一块的函数之前,再执行一次差除函数(差除任一块) 感觉两次执行差除函数是没什么关联的,一直想不通为什么,感觉是FLASH设置的问题 ,试了试也不行,指点下 写数据也出现同类的问题,很困惑,迷茫
下面是差除程序,望高手指点... unsigned char NF_Erase(unsigned int block_addr) { unsigned char *p; unsigned char a; unsigned char addr[4]; Baddrto4byteaddr(block_addr,addr); PORTD&=~(1<<flash_CE);//将CE信号清“0”,置为有效状态,片选使能
NF_cmd(BK_ERASE_setsetup_CMD);
NF_addr_single(addr[1]);//第二地址循坏A9~A16 NF_addr_single(addr[2]);//第三地址循坏A17~A24 NF_addr_single(addr[3]);//第三地址循坏A25
NF_cmd(BK_ERASE_CMD); //擦命令 STATUS_RB(); p=FLASHRE; a=*p; PORTD|=(1<<flash_CE); a&=0x01;
return(a); }
|