在线时间0 小时
UID230617
注册时间2010-10-15
NXP金币0
该用户从未签到
新手上路

- 积分
- 7
- 最后登录
- 1970-1-1
|
unsigned char Page_Erase(void)
{
static unsigned char * paddr;
if (FSTAT&0x10)//Check to see if FACCERR is set
{
FSTAT = FSTAT | 0x10; //write a 1 to FACCERR to clear
}
paddr=(unsigned char *)faddr;
*paddr=0xff;
FCMD=0x40;
FSTAT = FSTAT | 0x80; //Put FCBEF at 1.
_asm NOP; //Wait 4 cycles
_asm NOP;
_asm NOP;
_asm NOP;
if (FSTAT&0x30)//check to see if FACCERR or FVIOL are set
{
return 0x00; //if so, error.
}
while ((FSTAT&0x40)==0){ } //else wait for command to complete
return 0xff;
}
unsigned char Program_Byte(void)
{
static unsigned char * paddr;
if (FSTAT&0x10) //Check to see if FACCERR is set
{
FSTAT = FSTAT | 0x10; //write a 1 to FACCERR to clear
}
paddr=(unsigned char *)faddr;
*paddr=pdata;
FCMD=0x20;
FSTAT = FSTAT | 0x80; //Put FCBEF at 1.
_asm NOP; //Wait 4 cycles
_asm NOP;
_asm NOP;
_asm NOP;
if (FSTAT&0x30) //check to see if FACCERR or FVIOL are set
{
return 0x00; //if so, error.
}
while ((FSTAT&0x40)==0){ } //else wait for command to comple
return 0xff;
}
函数如上,有看到Flash模拟EEPROM的程序,确实也能用,但有点不明白,DZ60数据手册上不是有一块是EEPROM的空间么?用Flash模拟是什么意思?
还有就是如果想对Flash进行擦写,数据手册上的流程图就是以上程序,除以上程序外还要加什么吗?不太理解??
求解~~~~
|
|