oReturnCheck = Fapi_issueProgrammingCommand((uint32 *)u32Index,
Buffer+(i>>1),
8,
0,
0,
Fapi_AutoEccGeneration);
// Wait until the Flash program operation is over
while(Fapi_checkFsmForReady() == Fapi_Status_FsmBusy);
if(oReturnCheck != Fapi_Status_Success)
{
// Check Flash API documentation for possible errors
//Example_Error(oReturnCheck);
return FLASH_STATUS_FAIL;
}
// Read FMSTAT register contents to know the status of FSM after
// program command to see if there are any program operation related errors
oFlashStatus = Fapi_getFsmStatus();
if(oFlashStatus != 0)
{
//Check FMSTAT and debug accordingly
//FMSTAT_Fail();
return FLASH_STATUS_FAIL;
}
// Verify the programmed values. Check for any ECC errors.
// The program command itself does a verify as it goes.
// Hence program verify by CPU reads (Fapi_doVerify()) is optional.
oReturnCheck = Fapi_doVerify((uint32 *)u32Index,
4, Buffer32+(i>>2),
&oFlashStatusWord);
if(oReturnCheck != Fapi_Status_Success)
{
// Check Flash API documentation for possible errors
//Example_Error(oReturnCheck);
return FLASH_STATUS_FAIL;
}
}
Fapi_getFsmStatus 返回 30状态码。这个状态码对应的是手册中如下内容:


请问引起这个问题的原因有哪些。