TMS320F28379D: FLASH写入问题

Part Number: TMS320F28379D

对Flash写入操作时,根据数据长度进行循环写入。仿真发现每次调用该函数,只有进入循环的第一次可以写完128位块,后续数据写入失败。

        EALLOW;

        HWREG(FLASH0ECC_BASE + FLASH_O_ECC_ENABLE) = 0x0;

        for(i = 0; i < u16Len; i += 8,u32Index += 8){

            Fapi_issueAsyncCommand(Fapi_ClearStatus);
            while (Fapi_checkFsmForReady() != Fapi_Status_FsmReady);

            oReturnCheck = Fapi_issueProgrammingCommand((uint32 *)u32Index,g_nModbusRegister+4+i,
                                                        8,  0,   0,
                                                        Fapi_AutoEccGeneration);
            while(Fapi_checkFsmForReady() == Fapi_Status_FsmBusy){}

            if(oReturnCheck != Fapi_Status_Success){
                u16UpgradeResult = 2;
            }

            oFlashStatus = Fapi_getFsmStatus();

            oReturnCheck = Fapi_doVerify((uint32 *)u32Index,
                                         4, Buffer32+(i/2),
                                         &oFlashStatusWord);

            if(oReturnCheck != Fapi_Status_Success){
                u16UpgradeResult = 2;
            }

        }
        EDIS;