这个需要你自己系统地看一下数据手册。
1、这个字节最好占用一个扇区,这个扇区不能写保护。
2、如果这个扇区必须放其它程序代码,则最好保证这个字节所在的PAGE没有放其它东西。
由于这个字节要被擦除,不能有写保护,如果和代码放一起,容易导致代码误擦。
当没有写保护,FLASH容易因为干扰被误写。
其它的就是数据手册里的写入顺序了:
void write1(uint adr,uchar dat)
{
uchar i=0;
do
{
EA=0;
FMCON=0x00;
FMADRH=adr/0x100;
FMADRL=adr;
FMDATA=dat;
FMCON=0x68;
i=i+1;
}while((FMCON&0x0f)!=0 && i<2);
EA=1;
}
|