프로젝트

일반

사용자정보

Actions

Documentation #353

진행중
안일 안일

[BUG][Dcm][R40] Did Dynamically Definied가 list 중간에 있는 경우, P3 Server Timeout이 발생 할 때, ReturnControlToECU가 정상적으로 호출 안되는 문제

Documentation #353: [BUG][Dcm][R40] Did Dynamically Definied가 list 중간에 있는 경우, P3 Server Timeout이 발생 할 때, ReturnControlToECU가 정상적으로 호출 안되는 문제

안일환(SDC)이(가) 7달 전에 추가함.

상태:
Open
우선순위:
P0
담당자:
시작일:
2025/04/30
완료일:
진척도:

0%

추정시간:

설명

Did Info에 Did Dynamically Defined가 true인 항목을 확인

Did에서 아래와 같이 Did Dynamically Defined가 true인 항목을 끝으로 이동해 주어야 됩니다.

FUNC(void, DCM_CODE) Dcm_DspReturnControlToEcu(void)
{
  P2CONST(Dcm_DIDParaConfig, AUTOMATIC, DCM_APPL_CONST) cfgDID;
  P2CONST(Dcm_DcmDspSignalconfig, AUTOMATIC, DCM_APPL_CONST) cfgSignal;
  P2CONST(Dcm_DcmDspDataconfig, AUTOMATIC, DCM_APPL_CONST) cfgData;
  P2CONST(Dcm_DIDInfoType, AUTOMATIC, DCM_APPL_CONST) cfgDidInfo;

  Dcm_NegativeResponseCodeType LddErrorCode;
  uint16 idx;

  for(idx = DCM_ZERO; idx < Dcm_Total_Num_Of_Static_DID; idx++)
  {
    /*Initialize pointer to get the parameters of requested DID */
    cfgDID = &Dcm_GaaDIDParaConfig[idx];
    
    /*Get the position of the data defined by DcmDspDidDataRef*/
    cfgSignal = cfgDID->pDcmDspSignal;
    cfgData = cfgSignal->pDcmDspData;

    /*Get the configuration of Data's*/
    cfgDidInfo = cfgDID->pDidInfo;
    if(cfgDidInfo->pDidControl != NULL_PTR)
    {            
      (void)Dcm_DspInternal_IOControlReturnControlToECU(DCM_INITIAL, cfgData, &LddErrorCode);
    }
  }
}

Dcm_Total_Num_Of_Static_DID는 Dynalically가 false인 항목의 개수이고,

Dcm_GaaDIDParaConfig는 모든 DID항목에 대한 배열이며,

정의된 항목의 개수는 아래와 같다.

문제는 Did에 정의된 순서에 따라 Dcm_GaaDIDParaConfig 배열이 정의되는데, Dcm_Total_Num_Of_Static_DID만큼만 반복하여 처리하기 때문에, 중간에 Dynamically 항목이 있으면, 항목이 밀려서, 끝에 위치한 Non Dynamically 항목에 대한 DspReturnControlToEcu를 호출하지 못하는 문제가 발생한다.

해결방법

Did에 Dynamically 항목을 목록의 끝으로 이동


파일

표시할 데이터가 없습니다.

Actions

내보내기 PDF Atom