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;