Hello,
I met a problem that it was failed when I write EEPROM via F021 API for RM42L432.
Source code:
void e2prom_program(void)
{
uint8_t dbuf[8] = {0, 1, 2, 3, 4, 5, 6, 7};
uint8_t eccbuf[2] = {0, 0};
Fapi_StatusType oReturnCheck = Fapi_Status_Success;
/* Enable Bank 7 (EEPROM) */
if(oReturnCheck == Fapi_Status_Success){
oReturnCheck = Fapi_setActiveFlashBank(Fapi_FlashBank7);
}
/* Enable Sect 0 in Bank 7 */
if(oReturnCheck == Fapi_Status_Success){
oReturnCheck = Fapi_enableEepromBankSectors(0x01U, 0x00U);
}
/* Waiting for FSM ready */
while(FAPI_CHECK_FSM_READY_BUSY != Fapi_Status_FsmReady){
}
/* Clear status register */
oReturnCheck = Fapi_issueAsyncCommand(Fapi_ClearStatus);
if(oReturnCheck != Fapi_Status_Success)
return;
/* Write data */
oReturnCheck = Fapi_issueProgrammingCommand((uint32_t *)0xF0200000U, dbuf, 8U, eccbuf, 2, Fapi_AutoEccGeneration);
/* Waiting for completed */
while(FAPI_CHECK_FSM_READY_BUSY == Fapi_Status_FsmBusy){
}
/* It's OK */
if(FAPI_GET_FSM_STATUS == 0){
/* LED on */
gioSetBit(gioPORTA, 2, 1);
}
}
Result:FMSTAT = 0x00001010, CSTAT = 1 (Command failed) PGV = 1 (Timeout)
Additional: After function "Fapi_issueProgrammingCommand" returned,its return value is "Fapi_Status_Success"