大家好、
关于 ROM 重写处理后的验证处理,如果 Fapi_doVerify ()的一些参数是局部变量,则返回 NG。
原因。 在手册中它是一个本地声明。
我在下面附上了源代码、请检查是否正确。
************************************************μ A
unsigned int program_data_uh[256];←如果您在此处声明它、它将无法正常工作(验证 NG)
void write_state (REP_CTRL* CTRL_rep)
{
unsigned long int* program_data32_uw;
// unsigned int program_data_uh[256];←如果您在此处声明它,它将无法正常工作(验证 NG)
unsigned int data_len_uh = 0;
unsigned int flg_error_UB = 0;
无符号长整型 int Index_UW = 0;
无符号 int i = 0;
无符号 int j = 0;
unsigned int flg_error_ub;
Fapi_StatusType oReturnCheck;
Fapi_FlashStatusType oFlashStatus;
Fapi_FlashStatusWordType oFlashStatusWord;
program_data32_uw =(unsigned long int*) program_data_uh;
FLG_ERROR_UB = 0;
data_len_uh = 128;
用于(I=0;I<(256);I++){
program_data_uh[i]= 0x0000;
}
用于(i=0;i<data_len_uh;i++){
program_data_uh[i]= i;
}
oReturnCheck = Fapi_initializeAPI (F021_CPU0_BASE_ADDRESS、120);
if (oReturnCheck!= Fapi_Status_Success){
FLG_ERROR_UB =开启;
}
oReturnCheck = Fapi_setActiveFlashBank (Fapi_FlashBank0);
if (oReturnCheck!= Fapi_Status_Success){
FLG_ERROR_UB =开启;
}
index_uW = 0x86000;
while (((Index_uW < f_start_address_data_uW + data_len_uH)&&
oReturnCheck == Fapi_Status_Success){
oReturnCheck = Fapi_issueProgrammingCommand ((unsigned long int*) Index_uW、(unsigned int*) program_data32_uW、8、0、0、 Fapi_AutoEccGeneration);
while (Fapi_checkFsmForReady ()== Fapi_Status_FsmBusy);
如果(oReturnCheck!= Fapi_Status_Success){
FLG_ERROR_UB =开启;
}
oFlashStatus = Fapi_getFsmStatus ();
如果(oFlashStatus!= Fapi_Status_Success){
FLG_ERROR_UB =开启;
}
oReturnCheck = Fapi_doVerify ((unsigned long int*) Index_uW、4、program_data32_uW、&oFlashStatusWord);
if (oReturnCheck!= Fapi_Status_Success){
FLG_ERROR_UB =开启;
}
index_uw += 8;
program_data32_uW += 4;
}
}
************************************************μ A
此致、
SAI