nand写:随机写、按页写
void NF_Erase(unsigned long addr)
{
int ret;
select_chip();
clear_RnB();
send_cmd(0x60);
send_addr(addr&0xff);
send_addr((addr>>8)&0xff);
send_addr((addr>>16)&0xff);
send_cmd(0xD0);
wait_RnB();
send_cmd(0x70);
ret = NFDATA;
deselect_chip();
return ret;
}
int NF_WritePage(unsigned long addr, unsigned char* buff) //页地址
{
int ret;
int i;
select_chip();
clear_RnB();
send_cmd(0x80);
send_addr(0x00);
send_addr(0x00);
send_addr(addr&0xff);
send_addr((addr>>8)&0xff);
send_addr((addr>>16)&0xff);
for(i=0;i<2048;i++)
{
NFDATA = buff[i];
}
send_cmd(0x10);
wait_RnB();
send_cmd(0x70);
ret = NFDATA;
deselect_chip();
return ret;
}
int gboot_main()
{
unsigned char buf[2048];
NF_Erase(64*5+1); //写入第321页
buf[0] = 100;
NF_WritePage(64*5+1,buf);
buf[0] = 10;
NF_PageRead(64*5+1,buf);
if(buf[0]==100)
led_on();
while(1);
return 0;
}