您好!
函数 sl_SelfTest_PBIST ()具有以下代码、该代码声明 PBIST 错误会激活 nERROR 并因此进行检查
/*如果 nERROR 处于活动状态,则不要继续执行触发 nERROR 的测试*/
if ((布尔值)(true)=sl_ESM_nError_Active ()){
SL_Log_Error (FUNC_ID_ST_PBIST、ERR_TYPEK_INTURE_CON、2U);
return (RetVal);
我找不到 ESM 的任何来源、也找不到 TRM 中的 PBIST 段落中提到了这种情况的发生方式。 我还生成了一个导致 PBIST 故障且错误引脚未被激活的代码
---- 代码----
//对给定的 ROM 存储器使用不合适的算法(RAM)
vClearAndWait_nError();
RetVal = sl_SelfTest_PBIST (PBIST_EXECUTE、PBIST_RAMGROUP_01_PBIST_ROM | PBIST_RAMGROUP_02_STC_ROM、PBISTALGO_MARCH13N_RED_1Port);
如果(!RetVal)
{
initSTFailCount++;
for (;;)
{
}/*等待*/
}
while (true!= sl_SelfTest_WaitCompletion_PBIST ());
RetVal = sl_SelfTest_Status_PBIST (&failInfoPBIST);
if ((RetVal)&&(failInfoPBIST.stResult = ST_FAIL)){
initSTPassCount++;
}否则{
(void) sl_SelfTest_PBIST_StopExec ();//如果状态返回 false,则 PBIST 不会停止,则在此处停止,以防万一
initSTFailCount++;
for (;;)
{
}/*等待*/
}
}
---- 代码结束---
如果 PBIST 未激活 nERROR、为什么该函数会在条目中检查 nERROR 是否未激活-看起来无用且令人厌烦的检查、实际上是一个错误?