首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

求助----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,单步运行可以都写进去,不知是什么问题呢?
返回列表