TI中文支持网
TI专业的中文技术问题搜集分享网站

28335 串口在线更新程序时利用Flash_Program函数返回STATUS_FAIL_ZERO_BIT_ERROR

各位前辈好,最近在用串口做28335的应用程序在线更新,有时候可以刷写成功,有时候在烧写是返回STATUS_FAIL_ZERO_BIT_ERROR,而且出现该错误断电重启再次烧写还是不成功,必须要重新刷写底层boot程序才可以。目前已经将全局中断关闭,请问各位这种情况有没有遇到过,怎么解决该问题?

部分代码如下:

 DisableDog();
        InitPll(DSP28_PLLCR,DSP28_DIVSEL);
        InitPeripheralClocks();
        DINT;                               //关闭全局终端

MemCopy(&Flash28_API_LoadStart, &Flash28_API_LoadEnd, &Flash28_API_RunStart);
  MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

        Flash_CPUScaleFactor = SCALE_FACTOR;
        Flash_CallbackPtr = NULL;

  SCIA_Init();

     Example_CallFlashAPI();                   //清除烧写应用程序的扇区

  CopyData();                                             //刷写应用程序

if((checknum[0] == checknumflag[0])&&(checknum[1] == checknumflag[1]))
   {
    for(i = 0; i < (Length/2); i++)
    {
     Buffer[i] = ((Uint16)ProBuf[2*i]) | (((Uint16)ProBuf[2*i+1])<<8);
    }
    DELAY_US(10);

    status = Flash_Program(Flash_ptr, Buffer, (Length/2), &FlashStatus);                      //程序主要在这里返回错误

    if(status != STATUS_SUCCESS)                                                                 {
            SciaRegs.SCITXBUF = status & 0xff;
             SCI_SendStatus("err\n");
            return ;
    }
    else
    {
        Flash_ptr += (Length/2);
        SCI_SendStatus("ok\n");
    }
   }

user5014940:我也遇到同样的问题,我用仿真器仿真是可以正常操作的,断电重新运行就会出现这个错误,大佬怎么解决的方便指点一下吗?

赞(0)
未经允许不得转载:TI中文支持网 » 28335 串口在线更新程序时利用Flash_Program函数返回STATUS_FAIL_ZERO_BIT_ERROR
分享到: 更多 (0)