Bool S08FlashSectorErase(unsigned char sector)
{
unsigned short *addr = NULL;
if(FSTAT_FACCERR == 1) //check to see if FACCERR is set
{
FSTAT_FACCERR = 1; //write 1 to FACCERR to clear
}
addr = (unsigned short *)SECTOR_TO_SECTOR_BASE_ADDR(sector);
*addr = 0; //写数据到flash
FCMD=0x40; // set command type sector erase
FSTAT_FCBEF = 1; //put FCBEF at 1
if(FSTAT_FACCERR == 1) //check to see if FACCERR or FPVIOL are set
{
return FALSE; //if so ,Error
}
while (FSTAT_FCCF!=1); //wait for command to complete