您好!
我正在尝试擦除和编程闪存、我使用的第一条指令是 Fapi_initializeFlashBanks (150)、该指令返回错误 Fapi_Error_OtpChecksumMismatch、我不知道为什么会出现此错误。
请帮帮我。
此致、
BEA
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我正在尝试擦除和编程闪存、我使用的第一条指令是 Fapi_initializeFlashBanks (150)、该指令返回错误 Fapi_Error_OtpChecksumMismatch、我不知道为什么会出现此错误。
请帮帮我。
此致、
BEA
QJ Wang、您好!
我已删除 F021 Lless F021_API_CortexR4_be_l2FMC_V3D16.lib 中包含的所有库、OTP 错误已消失、感谢您的回复。 但是、当我对闪存进行编程时、这些值是不正确的。
我的代码是:
无符号字符数据[16]={'A'、'B'、'C'、'D'、'A'、 'b'、'C'、'D'、'A'、'B'、'C'、'D'、'A'、 'b'、'C'、'D'};
擦除闪存:
fapi_disableAutoEccCalculation ();
Fapi_initializeFlashBanks (150);
Fapi_setActiveFlashBank (Fapi_FlashBank1);
Fapi_enableMainBankSectors (0xFFFF);
while (fapi_check_FSM_ready_busy =fapi_Status_FsmBusy);
while (fapi_get_FSM_status!= fapi_Status_Success);
if (fapi_check_FSM_ready_busy = fapi_Status_FsmReady)
{
Fapi_issue19 CommandWithAddress (Fapi_EraseSector、(uint32_t *) 0x00220000);
while (fapi_check_FSM_ready_busy =fapi_Status_FsmBusy);
while (fapi_get_FSM_status!= fapi_Status_Success);
}
和用于程序:
Fapi_initializeFlashBanks (150);
fapi_disableAutoEccCalculation ();
while (fapi_check_FSM_ready_busy =fapi_Status_FsmBusy);
while (fapi_get_FSM_status!= fapi_Status_Success);
Fapi_setActiveFlashBank (Fapi_FlashBank1);
Fapi_enableMainBankSectors (0xFFFF);
while (fapi_check_FSM_ready_busy =fapi_Status_FsmBusy);
while (fapi_get_FSM_status!= fapi_Status_Success);
if (fapi_check_FSM_ready_busy = fapi_Status_FsmReady)
{
return_chcek = fapi_issueProgrammingCommand (((uint32_t *) BANK1_START_ADDR、(uint8_t*) Data、16、0、0、Fapi_DataOnly);
while (fapi_check_FSM_ready_busy =fapi_Status_FsmBusy);
while (fapi_get_FSM_status!= fapi_Status_Success);
}
闪存中的结果为:
0x00220000 0x41420344 0x67424344 0x40424344 0x41424344
只有最后一个位置是正确的、您能帮我吗?
此致、
BEA
您好、再说一次、
我发现了我的错误。 我在该论坛的另一个用户提供的代码中包含了一个函数"coreCleanInvalidateDC()"、我使用函数"Fapi_enableAutoEccCalculation "启用了 ECC 计算、在用于编程的函数中、我已通过 Fapi_AutoEccGeneration 更改了 Data_only、现在它的工作了!!
感谢您的帮助!