求助----S12XDP512FLASH读写遇到的问题

- UID
- 806844
|

求助----S12XDP512FLASH读写遇到的问题
最近写了一段程序,是往FLASH里写数据。但是出现了一些问题,请各路大侠帮忙看下。
请看程序:
void FLASHInit(void)
{
unsigned char i;
FCLKDIV=0xcb;
FCNFG_CBEIE=0; /*disable CBEIE interrupt*/
FCNFG_CCIE=0; /*disable CCIE interrupt*/
FCNFG_KEYACC=0; /*write data into flash*/
for(i=0;i<2;i++)
{
FCNFG_BKSEL=i; /*select flash block*/
FSTAT_PVIOL=1; /*clear the PVIOL flag bit*/
FSTAT_ACCERR=1; /*clear the ACCERR flag bit*/
FPROT_FPOPEN=1; /*sectors not protected and are enabled for program or erase*/
FPROT_FPHDIS=1; /*higher protection disable*/
FPROT_FPLDIS=1; /*lower protection disable*/
}
}
void FLASHWrite(unsigned int addr,unsigned int data)
{
unsigned int *paddr;
{
FCNFG_BKSEL=0;
paddr=(unsigned int *)addr;
while(!FSTAT_CBEIF){} //if there are still some commands in the buffer, wait
*paddr=data; //write the data into the address
FCMD=0x20;
FSTAT_CBEIF=1; //clear the interrupt flag.
}
}
void main(void) {
EnableInterrupts;
FLASHInit();
/*write a word into unbanked flash*/
FCNFG_BKSEL=0; /*select flash block*/
FLASHWrite(0x4004,0x2938);
FLASHWrite(0x4006,0x1111);
for(;;) {} /* wait forever */
}
问题出现在这里,程序烧进板子全速运行,只能把0x2938写进flash,单步运行可以都写进去,不知是什么问题呢? |
|
|
|
|
|