DEENESPTFRRUARHIKOZHNL

Diagnostic Communication Manager (DCM)

ModulDCM (Diagnostic Communication Manager)
BSW-Modul-ID53
Standard-Header#include "Dcm.h"
SWS-SpezifikationAUTOSAR_SWS_DiagnosticCommunicationManager.pdf
ClusterDiagnostic Services

모듈 가이드AI 생성

테스터로부터 진단 요청을 수신하고, 이를 검사하며, 오류 메모리 및 애플리케이션의 데이터로 응답합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: c4fbaab8dd0b 출처 열린 질문 (3)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

테스터로부터 진단 요청을 수신하고, 이를 검사하며, 오류 메모리 및 애플리케이션의 데이터로 응답합니다.

DCM은 ECU의 진단 서버입니다: PduR을 통해 UDS 및 OBD 요청을 수신하고, 이를 검사하며, DSP 또는 애플리케이션 콜아웃에 의해 실행되도록 합니다. 요청은 완전히 수신된 후에만 전달됩니다 [SWS_Dcm_00111]. 그에 앞서 DSD는 서비스, 세션, 보안 레벨 및 모드 조건을 검사합니다. 처리가 너무 오래 걸리는 경우 DCM은 NRC 0x78을 사용하여 P2 시간 제한을 준수합니다 [SWS_Dcm_00024]. ComM에 의해 활성화된 통신 모드에서만 전송이 허용됩니다.

DCM은 외부 테스터의 진단 요청을 처리합니다. DiagnosticSessionControl, ReadDataByIdentifier 및 RoutineControl과 같은 UDS 서비스 [SWS_Dcm_00250] [SWS_Dcm_00253] [SWS_Dcm_00257]뿐만 아니라 OBD 서비스 [SWS_Dcm_00243]도 구현합니다. 내부적으로 DSL은 통신과 시간을 관리하고 [SWS_Dcm_00027], DSD는 요청을 검사 및 분배하며 [SWS_Dcm_00178], DSP는 서비스를 실행합니다. DCM은 DEM, 애플리케이션 콜아웃 및 RTE 포트를 통해 데이터를 가져옵니다 [SWS_Dcm_01263] [SWS_Dcm_00793].

kontext cluster_dcm Dcm Tester Diagnosetester TP Transportschicht (z. B. CanTp) Tester->TP UDS-/OBD-Anfrage PduR PduR TP->PduR DSL DSL Sitzung, Timing, Puffer PduR->DSL Dcm_StartOfReception Dcm_CopyRxData Dcm_TpRxIndication DSL->PduR PduR_DcmTransmit DSD DSD 검사, 분배 DSL->DSD 완전한 요청 ComM ComM DSL->ComM ComM_DCM_ActiveDiagnostic DSP DSP 서비스 실행 DSD->DSP 서비스 실행 Dem Dem DSP->Dem Dem_SelectDTC, Dem_ClearDTC BswM BswM DSP->BswM CommunicationControl-Modus NvM NvM DSP->NvM DDDID speichern Csm Csm / KeyM DSP->Csm 인증서 검사 (0x29) SWC Anwendungs-SW-Cs (RTE / Callouts) DSP->SWC Xxx_ReadData, Xxx_Start, ... Modeswitch ComM->DSL Dcm_ComM_*ComModeEntered

컨텍스트 다이어그램: PduR, ComM, DEM, NvM, BswM, CSM/KeyM 및 애플리케이션 SW-C 사이의 DCM. 출처: [SWS_Dcm_00094] [SWS_Dcm_01376] SWS DCM 209쪽

Dcm_Init [SWS_Dcm_00037]에 따르면 Default Session 및 보안 레벨 DCM_SEC_LEV_LOCKED가 활성화됩니다 [SWS_Dcm_00033] [SWS_Dcm_00034]. 요청은 Dcm_StartOfReception, Dcm_CopyRxData 및 Dcm_TpRxIndication을 통해 도착합니다. 성공적으로 수신된 후에만 DSD로 전달됩니다 [SWS_Dcm_00111]. 이는 서비스 식별자, 세션, 보안 레벨 및 모드 조건을 검사합니다 [SWS_Dcm_00196] [SWS_Dcm_00211] [SWS_Dcm_00217]. 응답은 PduR_DcmTransmit 및 Dcm_CopyTxData을 통해 전송됩니다 [SWS_Dcm_00115] [SWS_Dcm_00092].

진단 요청 처리PduRDSLDSDDSP애플리케이션Use Case: EmpfangDcm_StartOfReception(id, info, TpSduLength)BUFREQ_OK, bufferSizePtrloopweitere SegmenteDcm_CopyRxData(id, info, bufferSizePtr)Dcm_TpRxIndication(id, E_OK)요청 전달 (E_OK 이후에만)SID-, Sitzungs-, Security-및 모드 검사서비스 실행Xxx-Operation (OpStatus = DCM_INITIAL)E_OK + AusgabedatenAntwortdatenUse Case: SendenSenden anfordernPduR_DcmTransmit(DcmDslProtocolTxPduRef)loopbis Antwort kopiertDcm_CopyTxData()Dcm_TpTxConfirmation(id, E_OK)확인 전달DspInternal_DcmConfirmation()Xxx_Confirmation() (falls konfiguriert)

시퀀스 다이어그램: 요청의 수신, 검사, 실행 및 전송. 출처: [SWS_Dcm_00093] [SWS_Dcm_00351] [SWS_Dcm_00741]

비동기 애플리케이션 인터페이스는 Dcm_OpStatusType을 통해 반복적으로 호출됩니다 [SWS_Dcm_00984] [SWS_Dcm_00530]. 처리가 P2ServerMax보다 오래 걸리면 DCM은 NRC 0x78을 전송합니다 [SWS_Dcm_00024]. 0x10을 통한 세션 변경은 송신 확인과 함께 비로소 유효해집니다. S3Server 타임아웃 또는 Dcm_ResetToDefaultSession는 Default Session으로 되돌아갑니다 [SWS_Dcm_00311] [SWS_Dcm_00140] [SWS_Dcm_00520]. ComM 모드는 전송 허용 여부를 제어합니다. ROE 및 주기적 전송은 Full Communication에서만 실행됩니다 [SWS_Dcm_00148] [SWS_Dcm_00123].

오류는 대부분 부정 응답으로 이어집니다. 애플리케이션이 E_NOT_OK을 반환하면 해당 ErrorCode가 NRC로 전송됩니다 [SWS_Dcm_00678]. DEM 오류는 NRC 0x22 또는 0x31에 매핑됩니다 [SWS_Dcm_00704] [SWS_Dcm_00708]. 전송 확인이 있을 때마다 DCM은 송신 버퍼를 해제합니다 [SWS_Dcm_00352].

진단 스택에서의 역할: DSL, DSD 및 DSP

DCM은 외부 테스터의 진단 요청에 응답합니다. DiagnosticSessionControl(0x10), ReadDataByIdentifier(0x22) 및 RoutineControl(0x31)과 같은 UDS 서비스 [SWS_Dcm_00250] [SWS_Dcm_00253] [SWS_Dcm_00257]뿐만 아니라 $01과 같은 OBD 서비스 [SWS_Dcm_00243]도 구현합니다. 내부적으로 이는 세 개의 서브모듈로 구성됩니다:

하위 방향으로 DCM은 PduR(트랜스포트 데이터) 및 ComM(통신 모드)을 위한 콜백을 제공합니다. 다이어그램 SWS DCM 209쪽은 이를 위해 Dcm_RxIndication과 같은 이전 이름을 여전히 사용합니다. R20-11에서 규범적인 이름은 Dcm_TpRxIndication 및 Dcm_ComM_NoComModeEntered입니다 [SWS_Dcm_00093] [SWS_Dcm_00356].

추가 연결:

  • DCM은 ClearDiagnosticInformation에서 Dem_SelectDTC을 사용하는 등 DEM API를 통해 오류 메모리에 접근합니다 [SWS_Dcm_01263].
  • 애플리케이션 데이터 및 루틴에는 Xxx_ReadData 또는 Xxx_Start [SWS_Dcm_00793] [SWS_Dcm_01203]과 같은 구성 가능한 콜아웃 및 포트를 통해 접근합니다.
  • DcmDiagnosticSessionControl 및 DcmEcuReset과 같은 진단 모드의 경우 자체적으로 모드 관리자 역할을 합니다 [SWS_Dcm_00775].
kontext cluster_dcm Dcm Tester Diagnosetester TP Transportschicht (z. B. CanTp) Tester->TP UDS-/OBD-Anfrage PduR PduR TP->PduR DSL DSL Sitzung, Timing, Puffer PduR->DSL Dcm_StartOfReception Dcm_CopyRxData Dcm_TpRxIndication DSL->PduR PduR_DcmTransmit DSD DSD 검사, 분배 DSL->DSD 완전한 요청 ComM ComM DSL->ComM ComM_DCM_ActiveDiagnostic DSP DSP 서비스 실행 DSD->DSP 서비스 실행 Dem Dem DSP->Dem Dem_SelectDTC, Dem_ClearDTC BswM BswM DSP->BswM CommunicationControl-Modus NvM NvM DSP->NvM DDDID speichern Csm Csm / KeyM DSP->Csm 인증서 검사 (0x29) SWC Anwendungs-SW-Cs (RTE / Callouts) DSP->SWC Xxx_ReadData, Xxx_Start, ... Modeswitch ComM->DSL Dcm_ComM_*ComModeEntered

컨텍스트 다이어그램: DCM은 PduR과 서비스 제공자인 DEM, NvM, BswM, CSM/KeyM 및 애플리케이션 SW-C 사이에 위치하며, ComM은 DCM의 전송 준비 상태를 제어합니다. 출처: [SWS_Dcm_00094] [SWS_Dcm_01376] [SWS_Dcm_00512] [SWS_Dcm_00868] [SWS_Dcm_01463] SWS DCM 209쪽

시작: Dcm_Init 및 주기적 틱

Dcm_Init [SWS_Dcm_00037]은 포스트 빌드 파라미터가 포함된 Dcm_ConfigType에 대한 포인터를 받습니다 [SWS_Dcm_00982]. 이를 바탕으로 모든 전역 변수를 초기화합니다 [SWS_Dcm_00334]. 그 후 다음 기본 상태가 적용됩니다:

추가 시작 작업은 구성에 따라 달라집니다:

  • Dcm_GetProgConditions은 부트로더로부터의 복귀를 감지합니다 [SWS_Dcm_00536].
  • DcmDDDIDStorage = TRUE인 경우 NvM에서 DDDID 정의가 복원됩니다 [SWS_Dcm_00867].
  • 실패 시도 카운터는 Xxx_GetSecurityAttemptCounter을 통해 판독됩니다 [SWS_Dcm_01154].
  • DcmVinRef이 구성된 경우 VIN은 Dcm_GetVin을 통해 1회 가져옵니다 [SWS_Dcm_01174].

Dcm_MainFunction [SWS_Dcm_00053]은 모든 비동기 프로세스를 구동합니다. 한 연산이 DCM_E_PENDING을 반환하면 대략 다음 MainFunction 주기에서 다시 트리거됩니다 [SWS_Dcm_00760]. pending 상태인 DEM 호출에도 동일하게 적용됩니다 [SWS_Dcm_01412]. 해석: 이 함수는 BSW 스케줄러에 의해 주기적으로 호출될 것으로 보입니다. 질문 Q-2dbd09d50c66575f (열림)

요청에서 응답까지

수신은 세 단계로 진행됩니다 (SWS DCM 55쪽):

  1. Dcm_StartOfReception은 총 길이, 첫 번째 프레임 및 메타데이터를 통지합니다 [SWS_Dcm_00094]. 요청이 너무 크면 DCM은 BUFREQ_E_OVFL을 반환합니다 [SWS_Dcm_00444]. 길이가 0인 경우 BUFREQ_E_NOT_OK을 반환합니다 [SWS_Dcm_00642].
  2. Dcm_CopyRxData은 세그먼트를 DCM 버퍼로 복사합니다 [SWS_Dcm_00443].
  3. DSL은 E_OK을 동반한 Dcm_TpRxIndication이 완료된 후에야 요청을 DSD로 전달합니다 [SWS_Dcm_00111].

DSD는 여러 단계에 걸쳐 요청을 검사합니다:

dsd start Anfrage von DSL sid SID in aktiver Service-Tabelle? start->sid ses In aktueller Sitzung erlaubt? sid->ses 예 nrc negative Antwort sid->nrc 아니요 sec 현재 보안 레벨에서 허용되는가? ses->sec 예 ses->nrc 아니요 mode 모드 조건이 충족되었는가? sec->mode 예 sec->nrc 아니요 ind Xxx_Indication (falls konfiguriert) mode->ind 예 mode->nrc 아니요 nrcErr NRC = ErrorCode ind->nrcErr E_NOT_OK keine 응답 없음 ind->keine E_REQUEST_NOT_ACCEPTED dsp DSP가 서비스 실행 ind->dsp E_OK spr suppressPosRspMsgIndicationBit gesetzt? dsp->spr send Antwort an DSL spr->send 아니요 nopos 긍정 응답 없음 spr->nopos ja, positives Ergebnis

액티비티 다이어그램: DSD는 검사를 통과한 요청만 DSP로 통과시키며, E_REQUEST_NOT_ACCEPTED은 모든 응답을 억제합니다. 해석: 순서가 단순화되었습니다. 출처: [SWS_Dcm_00197] [SWS_Dcm_00677] [SWS_Dcm_00678] [SWS_Dcm_00200] [SWS_Dcm_00827]

응답 전송은 다음과 같이 진행됩니다:

  1. DSD는 DSL에 전송을 지시합니다 [SWS_Dcm_00114].
  2. DSL은 구성된 Tx-PDU를 사용하여 PduR_DcmTransmit을 호출합니다 [SWS_Dcm_00115].
  3. PduR은 Dcm_CopyTxData을 통해 데이터를 가져옵니다 [SWS_Dcm_00092].
  4. Dcm_TpTxConfirmation은 전송을 완료합니다 [SWS_Dcm_00351].
  5. 확인은 DSP로 전달된 후 Xxx_Confirmation [SWS_Dcm_00235] [SWS_Dcm_00741]로 전달됩니다.

두 가지 특수 사례: suppressPosRspMsgIndicationBit가 설정되어 있으면 긍정 응답이 생략됩니다 [SWS_Dcm_00200]. 일반 연결의 경우 DCM은 메타데이터에서 소스 주소를 저장하고 [SWS_Dcm_00848], 전송 시 이를 TARGET_ADDRESS_16으로 설정합니다 [SWS_Dcm_00849].

진단 요청 처리PduRDSLDSDDSP애플리케이션Use Case: EmpfangDcm_StartOfReception(id, info, TpSduLength)BUFREQ_OK, bufferSizePtrloopweitere SegmenteDcm_CopyRxData(id, info, bufferSizePtr)Dcm_TpRxIndication(id, E_OK)요청 전달 (E_OK 이후에만)SID-, Sitzungs-, Security-및 모드 검사서비스 실행Xxx-Operation (OpStatus = DCM_INITIAL)E_OK + AusgabedatenAntwortdatenUse Case: SendenSenden anfordernPduR_DcmTransmit(DcmDslProtocolTxPduRef)loopbis Antwort kopiertDcm_CopyTxData()Dcm_TpTxConfirmation(id, E_OK)확인 전달DspInternal_DcmConfirmation()Xxx_Confirmation() (falls konfiguriert)

시퀀스 다이어그램: TP 콜백 및 확인을 포함한 요청의 수신, 검사, 실행 및 전송. 출처: [SWS_Dcm_00094] [SWS_Dcm_00556] [SWS_Dcm_00093] [SWS_Dcm_00092] [SWS_Dcm_00742] SWS DCM 479쪽

애플리케이션 인터페이스, OpStatus 및 Response Pending

비동기 인터페이스는 Dcm_OpStatusType을 전달합니다 [SWS_Dcm_00984]:

  • 첫 번째 호출은 DCM_INITIAL을 사용하여 수행됩니다 [SWS_Dcm_00527].
  • DCM_E_PENDING 이후에는 DCM_PENDING을 사용한 재호출이 뒤따릅니다 [SWS_Dcm_00530].
  • 취소 시 DCM_CANCEL으로 호출되며, 해당 반환값은 무시됩니다 [SWS_Dcm_01413].
  • 출력 데이터 및 ErrorCode는 마지막 호출 이후에만 유효합니다 [SWS_Dcm_01187] [SWS_Dcm_01188].

동기식 변형과 비동기식 변형 중 어느 것이 적용될지는 구성에 따라 결정됩니다 (DcmDspDataUsePort). 한 가지 예는 Xxx_ReadData [SWS_Dcm_00793] [SWS_Dcm_91006]입니다.

애플리케이션에 더 많은 시간이 필요한 경우, DCM은 시간 제한 P2ServerMax 및 P2*ServerMax를 준수하기 위해 NRC 0x78을 전송합니다 [SWS_Dcm_00024] [SWS_Dcm_00027]. 이러한 응답의 횟수는 제한되어 있으며 구성 가능합니다 [SWS_Dcm_00120] [SWS_Dcm_01567]. 애플리케이션은 스스로 NRC 0x78을 트리거할 수도 있습니다: 애플리케이션이 DCM_E_FORCE_RCRRP을 반환하면 전송 확인 후 다시 호출됩니다 [SWS_Dcm_00528] [SWS_Dcm_00529]. 메모리 콜아웃도 유사하게 동작합니다 [SWS_Dcm_00839].

비동기 동작 및 Response PendingTesterDcm애플리케이션DiagnoseanfrageXxx-Operation (OpStatus = DCM_INITIAL)DCM_E_PENDINGaltP2ServerMax abgelaufenNRC 0x78 (responsePending)애플리케이션이 DCM_E_FORCE_RCRRP 반환NRC 0x78 sofort송신 확인 후:OpStatus = DCM_FORCE_RCRRP_OKloopbis EndergebnisXxx-Operation (OpStatus = DCM_PENDING)다음 MainFunction 주기에서E_OK 또는 E_NOT_OK + ErrorCode긍정 응답 또는 NRC = ErrorCode

시퀀스 다이어그램: OpStatus를 통한 재호출 및 NRC 0x78에 도달하는 두 가지 경로. 출처: [SWS_Dcm_00530] [SWS_Dcm_00528] [SWS_Dcm_91015] SWS DCM 470쪽

송신자-수신자 포트가 있는 InputOutputControlByIdentifier [SWS_Dcm_00256]의 경우, DCM은 IOOperationRequest를 작성하고 IOOperationResponse를 평가합니다. DCM_RESPONSE_PENDING은 NRC 0x78로 이어지며, 긍정적인 값은 긍정 응답으로 이어집니다 [SWS_Dcm_01441] [SWS_Dcm_01439] (SWS DCM 186쪽).

세션, Security Access 및 통신 모드

세션 변경은 서비스 0x10을 통해 진행됩니다:

session init Dcm_Init def Default Session (0x01) init->def nondef Non-Default Session (z. B. 0x02, 0x03) def->nondef 0x10 확인됨: 세션 + P2 설정, 모드 스위치, ComM_DCM_ActiveDiagnostic nondef->def S3Server-Timeout nondef->def Dcm_ResetToDefaultSession() nondef->def 0x10 기본 세션: IO 컨트롤 및 주기적 DID 중지, ComM_DCM_InactiveDiagnostic nondef->nondef 0x10 anderer Typ

상태 다이어그램: 전환 및 수반 작업을 포함한 진단 세션 수명 주기. 출처: [SWS_Dcm_00034] [SWS_Dcm_00311] [SWS_Dcm_00140] [SWS_Dcm_00520] SWS DCM 477쪽

SecurityAccess (0x27) [SWS_Dcm_00252]은 두 단계로 진행됩니다:

  • requestSeed: 요청된 레벨이 이미 활성화되어 있는 경우 DCM은 시드 0x00을 반환합니다 [SWS_Dcm_00323]. 그렇지 않은 경우 Xxx_GetSeed을 호출합니다 [SWS_Dcm_00324].
  • sendKey: DCM은 Xxx_CompareKey을 호출합니다 [SWS_Dcm_00324]. E_OK의 경우 새 레벨을 설정하고 [SWS_Dcm_00325] DcmSecurityAccess 모드를 업데이트합니다 [SWS_Dcm_01329].

활성 레벨은 Dcm_GetSecurityLevel이 제공합니다 [SWS_Dcm_00338].

SecurityAccess (0x27)TesterDcm (DSP)Security-SW-C27 requestSeed (ungerade)alt레벨이 이미 활성 상태임positive Antwort, Seed = 0x00레벨이 비활성 상태임Xxx_GetSeed(OpStatus, Seed, ErrorCode)E_OK + Seed시드(Seed)를 포함한 긍정 응답27 sendKey (gerade)Xxx_CompareKey(Key, OpStatus, ErrorCode)altE_OKneues Security-Level setzenModeswitch DcmSecurityAccesspositive AntwortDCM_E_COMPARE_KEY_FAILED실패 시도 횟수 계수필요 시 지연 타이머 시작Xxx_SetSecurityAttemptCounter() (falls aktiviert)negative Antwort

시퀀스 다이어그램: 실패 시도 처리를 포함한 Seed/Key 절차. 출처: [SWS_Dcm_00323] [SWS_Dcm_91003] [SWS_Dcm_91004] [SWS_Dcm_00660] [SWS_Dcm_01155]

ComM 모드 변경은 DCM이 송수신할 수 있는 항목을 결정합니다:

comm full Full Communication 수신 및 송신, ROE 및 주기적 전송 활성 silent Silent Communication 송신 차단 (ROE 및 주기적 전송 포함) full->silent Dcm_ComM_SilentComModeEntered nocom No Communication 수신 및 송신 차단 full->nocom Dcm_ComM_NoComModeEntered silent->full Dcm_ComM_FullComModeEntered silent->nocom Dcm_ComM_NoComModeEntered nocom->full Dcm_ComM_FullComModeEntered nocom->silent Dcm_ComM_SilentComModeEntered

상태 다이어그램: 각 ComM 모드에 따른 DCM의 송수신 활성화. 출처: [SWS_Dcm_00356] [SWS_Dcm_00358] [SWS_Dcm_00360] SWS DCM 478쪽

Response On Event 및 부트로더로의 점프

각 ROE 이벤트에는 "cleared", "stopped" 및 "started" 상태가 있습니다 [SWS_Dcm_00871] (SWS DCM 61쪽):

이벤트는 Dcm_TriggerOnEvent 또는 Dcm_DemTriggerOnDTCStatus [SWS_Dcm_00920] [SWS_Dcm_00614]에 의해 트리거됩니다. 연결된 ServiceToRespondTo는 일반 요청처럼 실행됩니다 [SWS_Dcm_00922].

roe init Dcm_Init cleared ROE cleared init->cleared stopped ROE stopped cleared->stopped 유효한 설정 stopped->cleared clearResponseOnEvent (0x06) started ROE started stopped->started startResponseOnEvent (0x05) started->cleared clearResponseOnEvent (0x06) started->stopped stopResponseOnEvent (0x00) 또는 세션 종료

상태 다이어그램: RoeEvent의 수명 주기. 출처: [SWS_Dcm_00872] [SWS_Dcm_00873] [SWS_Dcm_00876] [SWS_Dcm_00879] SWS DCM 61쪽

서비스 0x10이 OEM 또는 공급업체 부트로더용 세션을 요청하는 경우 [SWS_Dcm_00532] [SWS_Dcm_00592], 다음 절차가 진행됩니다 (SWS DCM 489쪽):

  1. DCM은 컨텍스트(Dcm_ProgConditionsType)를 Dcm_SetProgConditions [SWS_Dcm_00543] [SWS_Dcm_00988]에 전달합니다.
  2. E_OK의 경우 DcmEcuReset 모드를 전환합니다 [SWS_Dcm_00719].
  3. 재시작 후 Dcm_GetProgConditions은 Dcm_EcuStartModeType을 통해 응답이 필요한지 여부를 보고합니다 [SWS_Dcm_00544] [SWS_Dcm_00987].
부트로더로 점프TesterDcmDcm-Callouts (Integrator)Nutzer DcmEcuReset10 02 (Bootloader-Sitzung)NRC 0x78 (구성 종속적)Dcm_SetProgConditions(OpStatus, ProgConditions)altE_OKModeswitch DcmEcuReset:JUMPTOBOOTLOADER / JUMPTOSYSSUPPLIERBOOTLOADER리셋 / 부트로더로 점프DCM_E_PENDING다음 MainFunction 주기에서 재호출E_NOT_OKkein Reset, DET-FehlerUse Case: 부트로더에서 복귀 후Dcm_Init 중 Dcm_GetProgConditions()DCM_WARM_START + ProgConditionsoptResponseRequired = TRUEpositive Antwort ($50 / $51)

시퀀스 다이어그램: 부트로더로의 점프 및 복귀 후 응답. 해석: 리셋은 DcmEcuReset 사용자가 트리거합니다. 출처: [SWS_Dcm_00720] [SWS_Dcm_01184] [SWS_Dcm_01181] [SWS_Dcm_00536] SWS DCM 489쪽

오류가 발생한 경우의 동작

오류는 대부분 부정 응답으로 변환됩니다. 특별한 코드가 지정되지 않은 경우 DCM은 NRC 0x10을 전송합니다 [SWS_Dcm_00271]. 개별 사례는 다음과 같습니다:

더 자세한 증거

프롬프트에서 제공된 R20-11용 요구사항 및 문서 위치를 기반으로 생성된 AI 가이드이며, 이후 릴리스의 다이어그램은 예시 목적으로만 사용됩니다. 사양서만이 표준적 효력을 갖습니다.

Diagnostic Communication Manager (DCM)

The DCM implements unified diagnostic services according to ISO 14229-1 (UDS) and ISO 15765-4 (OBD). It manages diagnostic sessions, security levels, and service routing.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 Dcm_Init [SWS_Dcm_00037] 📄 PDF

void Dcm_Init (const Dcm_ConfigType* ConfigPtr);

Service for basic initialization of DCM module.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: fd12917cfa80 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식이며 비재진입(non-reentrant) 함수인 Dcm_Init은 DCM 모듈의 기본 초기화에 사용됩니다[SWS_Dcm_00037]. 포스트 빌드(Post-Build) 변형의 경우 매개변수 ConfigPtr를 통해 구성 세트에 대한 포인터를 수신하며 반환값은 없습니다[SWS_Dcm_00037]. 실행되는 동안 모듈은 모든 전역 DCM 변수를 구성의 값으로 초기화합니다[SWS_Dcm_00334].

초기화 과정의 일환으로 다양한 기능 영역과 상태가 구성됩니다:

  • DDDID 관리: 구성 매개변수 DcmDDDIDStorage이 FALSE로 설정된 경우, DCM은 시작 시 모든 동적 정의 데이터 식별자(DDDID)를 존재하지 않는 것으로 초기화합니다[SWS_Dcm_00866]. 이 매개변수가 TRUE으로 설정된 경우, DDDID 정의는 NvM에서 복원됩니다[SWS_Dcm_00867].
  • Response on Event (ROE): DCM은 Dcm_Init 동안 각 이벤트의 상태를 'ROE cleared' 상태로 전환합니다[SWS_Dcm_00872].
  • 인증 상태: DcmDspAuthenticationPersistStateModeRuleRef이 구성되지 않았거나 참조된 모드 규칙이 false로 평가되는 경우, 모듈은 모든 인증 상태를 'deauthenticated' 상태로 전환합니다[SWS_Dcm_01480].
  • 통신 상태: Dcm_Init이 완료된 후 DCM은 매개변수 ActiveDiagnostic을 'DCM_COMM_ACTIVE'로 설정합니다[SWS_Dcm_01069].

실행 환경과 관련하여 Dcm_Init은 재진입이 불가능한 것으로 명시되어 있습니다[SWS_Dcm_00037]. 이 초기화 서비스에 대해서는 특정 오류 코드나 DET 또는 DEM에 대한 표준화된 오류 알림이 인터페이스 사양에 명시되어 있지 않습니다[SWS_Dcm_00037].

이 사용 지침은 AUTOSAR 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_DemTriggerOnDTCStatus [SWS_Dcm_00614] 📄 PDF

Std_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);

Triggers on changes of the UDS status byte. Allows to trigger on ROE Event for subservice On DTCStatusChanged.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 47d30a9a675c 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 인터페이스 Dcm_DemTriggerOnDTCStatus(서비스 ID 0x2B)은 헤더 Dcm_Dem.h를 통해 제공되며 UDS 상태 바이트의 변경 사항을 DCM에 보고하는 데 사용됩니다 [SWS_Dcm_00614]. 이를 통해 DCM은 진단 서비스 하위 서비스 OnDTCStatusChanged에 대한 Response-on-Event 이벤트(ROE)를 트리거할 수 있습니다 [SWS_Dcm_00614]. 호출 시 이 함수는 영향을 받는 오류 코드 DTC(uint32), 이전 상태 DTCStatusOld(Dem_UdsStatusByteType), 업데이트된 상태 DTCStatusNew(Dem_UdsStatusByteType)의 세 가지 입력 매개변수를 받습니다 [SWS_Dcm_00614]. 입출력 매개변수는 존재하지 않습니다 [SWS_Dcm_00614].

반환값 및 오류 처리

반환값으로 이 함수는 Std_ReturnType 유형을 반환하며, 사양에 따라 예외 없이 E_OK이 반환됩니다 [SWS_Dcm_00614]. 이 호출에 대해 특정 오류 코드, 폴백 값 또는 DEM이나 DET로의 별도 알림은 명시되어 있지 않습니다.

동시성 및 상호 작용

이 함수는 재진입 가능한 것으로 분류되며 동기 실행 시맨틱을 갖습니다 [SWS_Dcm_00614]. 진단 요청과의 상호작용과 관련하여 확정된 제약 조건이 적용됩니다: 현재 DCM에서 이벤트 메모리(EventMemory)를 지우는 요청이 처리 중인 경우, DCM은 콜백 Dcm_DemTriggerOnDTCStatus의 수신 호출을 무시해야 합니다 [SWS_Dcm_01410].

이 사용 지침은 AUTOSAR Classic 릴리스 R20-11의 명세를 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_BndMWriteBlockFinish [SWS_Dcm_91088] 📄 PDF

void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);

Called by BndM to indicate that a block write operation has finished.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e13cfc7b4a9c 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Dcm_BndMWriteBlockFinish은(는) 블록 쓰기 작업의 완료를 알리기 위한 BndM의 DCM에 대한 알림 인터페이스 역할을 합니다 [SWS_Dcm_91088]. 이 함수는 헤더 파일 Dcm.h에 선언되어 있으며, 서비스 ID 0x7a을(를) 갖고, 반환값을 반환하지 않으며(void), 동기식으로 실행됩니다 [SWS_Dcm_91088].

이 인터페이스에는 두 개의 전달 매개변수가 필요합니다 [SWS_Dcm_91088]:

  • BlockId(타입: BndM_BlockIdType): 쓰기 프로세스가 완료된 블록을 식별합니다.
  • result(타입: BndM_ResultType): 쓰기 작업의 결과를 DCM에 전달합니다.

기능적 상호작용 및 오류 발생 시의 동작은 이전에 DCM에 의해 트리거된 원자적 BndM 쓰기 작업과 연결되어 있습니다:

  • Dcm_BndMWriteBlockFinish이(가) 상태 result = E_OK(으)로 호출되면 DCM은 대기 중인 요청에 대해 양의 진단 응답을 전송합니다 [SWS_Dcm_01584].
  • 함수가 result = E_NOT_OK(으)로 호출되면 DCM은 오류 발생 시 음의 진단 응답 0x72(generalProgrammingFailure)(으)로 대응합니다 [SWS_Dcm_01585].

동시성과 관련하여 Dcm_BndMWriteBlockFinish은(는) 재진입 불가(Non Reentrant)(으)로 명시되어 있습니다 [SWS_Dcm_91088]. 따라서 호출자는 여러 컨텍스트에 의해 함수가 병렬로 호출되거나 인터럽트 방식으로 호출되지 않도록 보장해야 합니다.

이 사용 지침은 AI에 의해 생성되었으며 AUTOSAR 사양 R20-11을 기반으로 합니다.

함수 Dcm_SetDeauthenticatedRole [SWS_Dcm_91069] 📄 PDF

Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);

Sets a new role used in deauthenticated state for that connection. The set role is valid until the connection switches into authenticated state or the ECU is reset.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 948c170851fe 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 Dcm_SetDeauthenticatedRole은 동기식 및 재진입 가능하게 실행됩니다([SWS_Dcm_91069]). 이 함수를 통해 소프트웨어 컴포넌트는 connectionId에 의해 식별된 연결에 대해 인증되지 않은 상태를 위한 타입 Dcm_AuthenticationRoleType의 새로운 역할 deauthenticatedRole을 할당할 수 있습니다([SWS_Dcm_91069], [SWS_Dcm_01486]). 반환값으로는 예외 없이 E_OK이 반환됩니다([SWS_Dcm_91069]).

상태 조건 및 오류 처리

호출은 연결이 인증되지 않은 상태(deauthenticated state)에 있는 경우에만 DCM에 의해 처리됩니다([SWS_Dcm_01487]). 서명이 대안적인 오류 값을 제공하지 않고 항상 E_OK을 반환하므로([SWS_Dcm_91069]), 이 상태 외부에서의 호출은 아마도 오류 메시지 없이 폐기될 것으로 추정됩니다. 질문 Q-6f14770eae6ce896 (열림) 특정 DET 또는 DEM 이벤트는 사양에 정의되어 있지 않습니다.

유효 기간 및 라이프사이클

인증되지 않은 상태를 위한 역할이 성공적으로 적용되면([SWS_Dcm_01486]), 이 할당은 일시적으로 유지됩니다:

  • 설정된 역할은 연결이 인증된 상태(authenticated state)로 전환되는 즉시 폐기됩니다([SWS_Dcm_01488]).
  • 유효성은 늦어도 전자제어장치(ECU) 리셋 시 종료됩니다([SWS_Dcm_91069]).

이 사용 지침은 AUTOSAR 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_GetSecurityLevel [SWS_Dcm_00338] 📄 PDF

Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);

This function provides the active security level value.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7c05be541216 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능한 함수 Dcm_GetSecurityLevel은(는) DCM의 현재 활성 보안 레벨을 질의하고 이를 제공합니다 [SWS_Dcm_00338]. 이 함수는 헤더 Dcm.h을(를) 통해 선언되며 확인된 상태 값을 Dcm_SecLevelType* 타입의 출력 매개변수 SecLevel을(를) 통해 호출자에게 전달합니다. 사양에 따르면 반환값은 예외 없이 E_OK이(가) 반환됩니다 [SWS_Dcm_00338].

내부 보안 레벨 결정은 고정된 변환 공식 SecurityLevel = (SecurityAccessType + 1) / 2에 따라 SecurityAccess 서비스의 일부로 테스터가 전송한 매개변수 SecurityAccessType을(를) 기반으로 합니다 [SWS_Dcm_00338].

상위 진단 서비스 처리와의 상호 작용에서 무엇보다도 DSP 서브모듈이 이 값에 접근합니다: 모듈이 서브기능 타입이 “requestSeed”(홀수 값)인 구성된 요청을 수신하고 관련 액세스 레벨이 Dcm_GetSecurityLevel에 따라 이미 활성화되어 있는 경우, DSP 서브모듈은 시드 내용을 0x00(으)로 설정합니다 [SWS_Dcm_00323].

동시성 및 오류 처리와 관련하여 이 함수는 재진입 가능(reentrant)한 것으로 정의되어 있습니다 [SWS_Dcm_00338]. 특정 오류 코드나 DET 검사가 명시되어 있지 않고 항상 E_OK이(가) 반환되므로 널 포인터 검사는 수행되지 않을 것으로 보입니다. 따라서 호출자는 아마도 항상 SecLevel을(를) 위한 메모리 공간을 가리키는 유효한 포인터를 전달해야 합니다. 질문 Q-5402d82ac0151b22 (열림)

이 텍스트는 AI에 의해 생성되었습니다. 정보가 불완전할 수 있으므로 AUTOSAR 사양이 우선합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Dcm_ResetToDefaultSession [SWS_Dcm_00520] 📄 PDF

Std_ReturnType Dcm_ResetToDefaultSession (void);

The call to this function allows the application to reset the current session to Default session. Example: Automatic termination of an extended diagnostic session upon exceeding of a speed limit.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9e815ace4649 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 Dcm_ResetToDefaultSession을 통해 애플리케이션은 활성 진단 세션을 기본 세션(Default Session)으로 리셋할 수 있습니다[SWS_Dcm_00520]. 일반적인 사용 사례는 차량이 지정된 속도 임계값을 초과할 때 확장 진단 세션을 자동으로 종료하는 것입니다[SWS_Dcm_00520].

사용법 및 오류 처리

  • 인터페이스 및 매개변수: 이 함수는 Dcm.h을 통해 서비스 ID 0x2a로 제공되며, 시그니처 Std_ReturnType Dcm_ResetToDefaultSession (void)를 갖고 전달 매개변수가 필요하지 않습니다[SWS_Dcm_00520].
  • 반환값 및 오류: 반환 유형으로 Std_ReturnType이 반환되며, 예외 없이 E_OK 값이 반환됩니다[SWS_Dcm_00520]. 이 호출에 대한 요구사항에는 특정 오류 코드, DET 런타임 검사 또는 DEM 이벤트가 명시되어 있지 않습니다.

동시성 및 상호 작용

실행은 동기식으로 이루어지며 재진입 가능한 것으로 선언되어 있습니다[SWS_Dcm_00520].

실제 세션 변경 외에도 Dcm_ResetToDefaultSession은 ModeDeclarationGroupPrototype DcmDiagnosticSessionControl에 대한 모드 전환을 반드시 시작합니다[SWS_Dcm_01062]. 이때 함수는 내부적으로 SchM_Switch_<bsnp>_DcmDiagnosticSessionControl(RTE_MODE_DcmDiagnosticSessionControl_DCM_DEFAULT_SESSION)를 호출하여 기본 세션으로의 전환을 시스템 환경에 알립니다[SWS_Dcm_01062].

이 사용 지침은 AUTOSAR Classic R20-11 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Dcm_TriggerOnEvent [SWS_Dcm_00521] 📄 PDF

Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);

The call to this function allows to trigger an event linked to a ResponseOnEvent request. On the function call, the DCM will execute the associated service if the corresponding Mode of the Roe EventId is 'ROE started'.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 398801f84afa 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

헤더 Dcm.h를 통해 제공되는 동기식 함수 Dcm_TriggerOnEvent(서비스 ID 0x2D)은 ResponseOnEvent 요청(ROE)과 연결된 이벤트를 트리거하는 역할을 합니다 [SWS_Dcm_00521].

호출 및 동작 방식

호출자는 유일한 매개변수로 트리거할 이벤트를 식별하는 RoeEventId(uint8 타입의 입력 매개변수)을 전달하며, 입출력 매개변수는 존재하지 않습니다 [SWS_Dcm_00521]. 함수가 호출되면 DCM은 이벤트의 상태를 확인합니다. 전달된 RoeEvent이 활성 상태인 경우 DCM은 해당 이벤트를 트리거합니다 [SWS_Dcm_00920]. DCM은 RoeEventId의 연관 모드가 'ROE started'로 설정되어 있는 경우 해당 이벤트와 연결된 서비스를 실행합니다 [SWS_Dcm_00521].

반환값 및 유효성 검사

호출 시 동기식으로 매개변수의 유효성에 대한 정보를 제공하는 Std_ReturnType 타입의 상태가 반환됩니다 [SWS_Dcm_00521]:

동시성 및 특성

이 인터페이스는 재진입 가능하도록 명시되어 있습니다 [SWS_Dcm_00521]. 따라서 이벤트를 DCM에 동기식으로 보고하기 위해 동시에 호출될 수 있습니다 [SWS_Dcm_00521].

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Dcm_StartOfReception [SWS_Dcm_00094] 📄 PDF

BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. This function might be called in interrupt context.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ab9eb5ff232f 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능 함수인 Dcm_StartOfReception([SWS_Dcm_00094])은 N-SDU 수신이 시작될 때 전송 프로토콜 모듈에 의해 호출됩니다. 이는 단일 프레임(Single Frame, SF)과 세그먼트화된 메시지(First Frame, FF) 모두에 해당합니다. 인터럽트 컨텍스트에서 호출될 수 있습니다([SWS_Dcm_00094]). 이 호출은 수신 시작 시 S3Server 타이머를 중지하는 등의 동작을 유발합니다([SWS_Dcm_00141]).

info을 통해 페이로드 및 메타데이터가 전달되며, 제네릭 연결의 경우 이를 통해 SOURCE_ADDRESS_16이 저장되고([SWS_Dcm_00848]) TARGET_ADDRESS_16이 검사됩니다([SWS_Dcm_01347]). 페이로드나 메타데이터가 모두 없으면 NULL_PTR가 전달됩니다([SWS_Dcm_00094]). 이 함수는 Block Size(BS) 계산을 위해 bufferSizePtr을 통해 사용 가능한 버퍼를 보고합니다([SWS_Dcm_00094]). 성공적으로 수락되면 BUFREQ_OK를 반환하며, 이후 후속 데이터가 Dcm_CopyRxData을 통해 복사됩니다([SWS_Dcm_00443]).

오류 및 거부 사례는 반환값을 통해 표시됩니다:

  • BUFREQ_E_OVFL: 요청된 길이 TpSduLength이 DCM에서 사용 가능한 버퍼보다 큰 경우 반환됩니다([SWS_Dcm_00094], [SWS_Dcm_00444]). bufferSizePtr는 변경되지 않은 상태로 유지됩니다([SWS_Dcm_00094]).
  • BUFREQ_E_NOT_OK: TpSduLength이 0이거나([SWS_Dcm_00642]) 동일한 연결에서 진행 중인 요청이 차단 중인 경우 반환됩니다([SWS_Dcm_00557]). 다른 연결의 경우 매개변수 DcmDslDiagRespOnSecondDeclinedRequest에 따라 BUFREQ_E_NOT_OK로 거부할지([SWS_Dcm_00790]) 아니면 BUFREQ_OK로 수락할지([SWS_Dcm_00788]) 결정됩니다. 동시 TesterPresent 요청 역시 BUFREQ_OK로 확인 응답됩니다([SWS_Dcm_00557]).

이 텍스트는 AI에 의해 작성되었습니다. 모든 정보는 오직 AUTOSAR R20-11 사양 발췌본을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_CopyRxData [SWS_Dcm_00556] 📄 PDF

BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr. This function might be called in interrupt context.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8d38cdb7c8ea 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 함수 Dcm_CopyRxData은 수신된 I-PDU 세그먼트(N-PDU) 데이터를 DCM의 상위 계층으로 전달하기 위해 호출됩니다 [SWS_Dcm_00556]. 각 호출은 I-PDU 데이터의 다음 부분을 제공합니다 [SWS_Dcm_00556]. 매개변수 id을 통해 수신된 I-PDU가 식별됩니다 [SWS_Dcm_00556]. 포인터 info는 SduDataPtr을 통해 소스 버퍼를 제공하고 SduLength을 통해 복사할 바이트 수를 제공합니다 [SWS_Dcm_00556]. 복사 프로세스가 완료된 후 DCM의 남은 여유 버퍼 크기가 bufferSizePtr를 통해 반환됩니다 [SWS_Dcm_00556], [SWS_Dcm_00443].

Dcm_CopyRxData이 0인 SduLength과 함께 호출되면 순수한 버퍼 쿼리 역할을 합니다 [SWS_Dcm_00556]. 이 경우 SduDataPtr은 NULL_PTR일 수 있으며, 함수는 BUFREQ_OK를 반환하고 수신 버퍼의 남은 크기를 bufferSizePtr에 기록합니다 [SWS_Dcm_00556], [SWS_Dcm_00996].

상호 작용

복사하기 전에 Dcm_StartOfReception이 BUFREQ_OK로 완료되어 있어야 합니다. Dcm_CopyRxData의 후속 호출은 제공된 버퍼의 데이터를 DCM 버퍼로 복사하고 bufferSizePtr을 업데이트합니다 [SWS_Dcm_00443].

오류 처리

이 함수는 상태를 BufReq_ReturnType으로 반환합니다: BUFREQ_OK은 성공적인 복사 또는 버퍼 쿼리를 확인하는 반면, BUFREQ_E_NOT_OK는 오류로 인해 데이터가 복사되지 않았음을 나타냅니다 [SWS_Dcm_00556], [SWS_Dcm_00996].

동시성 및 제약사항

Dcm_CopyRxData은 재진입 가능한 것으로 명시되어 있으며 인터럽트 컨텍스트에서 호출될 수 있습니다 [SWS_Dcm_00556]. 이 인터페이스는 Dcm.h를 통해 제공됩니다 [SWS_Dcm_00556].

본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Dcm_TpRxIndication [SWS_Dcm_00093] 📄 PDF

void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);

Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9917213332e5 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기 함수 Dcm_TpRxIndication은 TP-API를 통해 I-PDU를 수신한 후 일반적으로 PduR 모듈에 의해 호출됩니다[SWS_Dcm_00093], [SWS_Dcm_00112]. 이 함수는 PDU 식별자(id) 및 수신 결과(result)를 전달하며 반환값을 제공하지 않습니다[SWS_Dcm_00093]. 이 함수는 재진입 가능하고 인터럽트 컨텍스트에서 호출될 수 있으므로, 호출자와 모듈 상태는 해당 동시성을 고려하여 설계되어야 합니다[SWS_Dcm_00093].

수신 오류 시 동작

Dcm_TpRxIndication이 E_OK과 다른 결과 값으로 호출되는 경우, 모듈 Dcm는 참조된 I-PDU에 할당된 버퍼를 평가해서는 안 됩니다[SWS_Dcm_00344].

서브모듈 간 상호작용

DSL 서브모듈은 매개변수 값 result = E_OK으로 호출된 경우에만 수신된 데이터를 DSD 서브모듈로 전달합니다[SWS_Dcm_00111]. 이때 진단 요청에 대해 특정 규칙이 적용됩니다:

  • 성공적으로 수신된 요청(Result = E_OK)이 suppressPosRspMsgIndicationBit가 설정된 TesterPresent 명령(SID 0x3E, 서브기능 0x80)인 경우, DSL 서브모듈은 세션 타임아웃 타이머 S3Server를 리셋합니다[SWS_Dcm_00112].
  • 이 경우 요청은 DSL 서브모듈에 의해 추가 해석을 위해 DSD 서브모듈로 전달되지 않습니다[SWS_Dcm_00113].

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_CopyTxData [SWS_Dcm_00092] 📄 PDF

BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr. This function might be called in interrupt context.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a321989ea1cd 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기 및 재진입 가능 함수 Dcm_CopyTxData은 전송을 위한 I-PDU 세그먼트(N-PDU)의 데이터를 검색하기 위해 하위 계층 모듈(예: 전송 프로토콜)에 의해 호출됩니다 [SWS_Dcm_00092]. 호출자는 매개변수 info를 통해 대상 버퍼 SduDataPtr 및 원하는 바이트 길이 SduLength를 전달합니다. SduLength에 대한 0 값은 retry을 통해 상태 변경을 알리거나 사용 가능한 데이터의 양을 쿼리하는 데 사용될 수 있으며, 이 경우 SduDataPtr은 NULL_PTR일 수 있습니다 [SWS_Dcm_00092]. DCM은 송신 버퍼에 남아 있는 바이트 수를 availableDataPtr을 통해 보고하며, 이는 TP 모듈이 후속 세그먼트 크기를 결정하는 데 사용될 수 있고 아직 전송해야 할 바이트 수를 초과할 수 없습니다 [SWS_Dcm_00092], [SWS_Dcm_00350].

버퍼 관리 및 전송 재시도

매개변수 retry을 통해 데이터의 확인응답 또는 재시도가 제어됩니다 [SWS_Dcm_00092]:

  • retry이 NULL_PTR인 경우, 데이터는 복사 프로세스 직후 버퍼에서 제거될 수 있습니다 [SWS_Dcm_00092].
  • TP_CONFPENDING의 경우, 잠재적인 오류 복구를 위해 이전에 복사된 데이터가 TP 버퍼에 남아 있어야 합니다 [SWS_Dcm_00092].
  • TP_DATACONF은 이 호출 전에 복사된 모든 데이터를 확인하여 해제하도록 합니다 [SWS_Dcm_00092].
  • TP_DATARETRY은 현재 위치를 기준으로 오프셋 TxTpDataCnt부터 데이터를 다시 복사합니다 [SWS_Dcm_00092].

반환값 및 오류 처리

데이터가 성공적으로 완전히 복사되면 함수는 BUFREQ_OK을 반환합니다 [SWS_Dcm_00092], [SWS_Dcm_00346]. 충분한 송신 데이터를 사용할 수 없는 경우 복사 프로세스가 수행되지 않고 BUFREQ_E_BUSY이 반환되며, 하위 계층은 나중에 호출을 재시도할 수 있습니다 [SWS_Dcm_00092]. 요청이 실패하면 함수는 BUFREQ_E_NOT_OK를 반환합니다 [SWS_Dcm_00092]. 이 경우 PduR_DcmTransmit()의 송신 요청은 아직 완료되지 않은 상태이며, Dcm_TpTxConfirmation의 최종 호출이 있어야 프로세스가 종료되고 새로운 전송이 가능해집니다 [SWS_Dcm_00350].

동시성

이 함수는 재진입 가능하며 인터럽트 컨텍스트에서도 호출될 수 있습니다 [SWS_Dcm_00092].

이 사용 지침은 AUTOSAR Classic 플랫폼 릴리스 R20-11의 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_TpTxConfirmation [SWS_Dcm_00351] 📄 PDF

void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result);

This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e2141a66244b 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜백 함수 Dcm_TpTxConfirmation([SWS_Dcm_00351])은 진단 I-PDU가 네트워크로 전송된 후 하위 전송 계층에 의해 동기식으로 호출됩니다. 매개변수 id를 통해 관련 I-PDU가 식별되며, result은 전송 프로세스의 성공 또는 실패를 보고합니다([SWS_Dcm_00351]). 이 함수는 반환값이 없으며, 재진입 가능하고 인터럽트 컨텍스트에서 명시적으로 실행될 수 있습니다([SWS_Dcm_00351]).

Dcm_TpTxConfirmation 호출 시 DCM 모듈은 핵심적인 정리 및 상태 전환을 수행합니다:

  • 할당된 전송 버퍼가 잠금 해제됩니다([SWS_Dcm_00352]).
  • 페이지 버퍼 타임아웃과 P2ServerMax 및 P2*ServerMax 타임아웃 등 진행 중인 오류 모니터링이 중지됩니다([SWS_Dcm_00353]).
  • 수신(Dcm_TpRxIndication) 이후 차단되었던 해당 연결의 DcmPduId이 해제되어 후속 요청을 수신할 수 있게 됩니다([SWS_Dcm_00241]).
  • 현재 프로토콜은 DSL 응답 확인에 의해 종료되지 않습니다(xxx_StopProtocol 호출 없음)([SWS_Dcm_00624]).

오류 발생 시(result이 오류를 나타내거나 실패한 Dcm_CopyTxData 후의 중단이 확인되는 경우), 전송 작업을 공식적으로 완료하고 PduR_DcmTransmit()을 통한 새 전송을 활성화하기 위해 [SWS_Dcm_00350]는 이 최종 호출을 필수적으로 요구합니다. 확인에 오류가 있는 경우 DSD 서브모듈은 진단 응답을 재전송해서는 안 됩니다([SWS_Dcm_00118]).

또한 응답 확인(NRC 0x78 제외)은 진단 요청의 정상적인 완료를 나타냅니다([SWS_Dcm_01378]). EcuReset에 대한 긍정 응답 확인 후 DCM은 리셋 처리 중에 다른 모든 요청을 무시합니다([SWS_Dcm_00834]).

이 텍스트는 AI에 의해 작성되었으며 정확성을 보장할 수 없습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_TxConfirmation [SWS_Dcm_01092] 📄 PDF

void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. This function might be called in interrupt context.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ef08d41ee8bf 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 인터페이스 Dcm_TxConfirmation(서비스 ID 0x40, Dcm.h에 선언됨)은 [SWS_Dcm_01092]에 따라 하위 통신 인터페이스 모듈에 의해 호출되어 PDU 송신을 확인하거나 전송 실패를 보고합니다. 이 함수는 반환값이 없으며 두 개의 입력 매개변수를 처리합니다:

  • TxPduId: 전송된 PDU의 식별자(PduIdType).
  • result: 전송 상태(Std_ReturnType). 유효한 값은 전송 성공 시 E_OK이며, PDU 전송이 실패한 경우 E_NOT_OK입니다.

오류 처리 및 상태 피드백

전송 결과는 매개변수 result을 통해 DCM에 직접 전달됩니다([SWS_Dcm_01092]). 제공된 사양 발췌문에는 이 함수에 대한 특정 DET 또는 DEM 오류 메시지가 정의되어 있지 않습니다.

동시성 및 호출 컨텍스트

재진입성과 관련하여 Dcm_TxConfirmation은 서로 다른 PDU-ID를 사용한 호출에 대해서는 재진입 가능하지만, 동일한 TxPduId에 대해서는 재진입할 수 없습니다([SWS_Dcm_01092]). 하위 모듈에 의한 호출은 인터럽트 컨텍스트에서 발생할 수 있음에 유의해야 합니다([SWS_Dcm_01092]).

상호 작용

주기적 전송(PeriodicTransmission)의 경우, 각 송신 결과를 전달받기 위해 [SWS_Dcm_01073]에 따라 DCM이 Dcm_TxConfirmation를 통해 호출됩니다.

이 사용 지침은 R20-11용 AUTOSAR 사양을 기반으로 자동 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Dcm_ComM_NoComModeEntered [SWS_Dcm_00356] 📄 PDF

void Dcm_ComM_NoComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 84327c759831 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능 함수 Dcm_ComM_NoComModeEntered(서비스 ID 0x21)은 통신 네트워크가 COMM_NO_COMMUNICATION 상태로 전환되었음을 DCM 모듈에 알립니다[SWS_Dcm_00356]. 이 인터페이스는 헤더 Dcm_ComM.h를 통해 제공되며, 반환값이 없고 uint8 타입의 입력 매개변수 NetworkId를 통해 해당 네트워크를 식별합니다[SWS_Dcm_00356].

이 호출을 통해 DCM은 지정된 네트워크의 모든 통신을 차단하여 메시지 수신 및 송신을 모두 완전히 비활성화합니다[SWS_Dcm_00148]. 여기에는 다음 전송 유형이 필수적으로 포함됩니다:

결과적으로 DCM 모듈은 Dcm_ComM_NoComModeEntered 실행 후 이 컨텍스트에 대해 PduR 함수 PduR_DcmTransmit()을 더 이상 호출해서는 안 됩니다[SWS_Dcm_00152].

구성 매개변수 DcmDslProtocolComMChannelRef을 통해 DCM에서 참조되는 ComM 채널과 일치하지 않는 NetworkId으로 함수가 호출되는 경우, DCM 모듈은 어떠한 작업도 수행하지 않고 즉시 반환합니다[SWS_Dcm_01324].

이 텍스트는 AI에 의해 작성되었으며 autodocs를 통해 품질이 검증되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_ComM_SilentComModeEntered [SWS_Dcm_00358] 📄 PDF

void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2f5bafafbcf2 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능 함수 Dcm_ComM_SilentComModeEntered([SWS_Dcm_00358])은 통신 네트워크가 COMM_SILENT_COMMUNICATION 상태로 전환되었음을 DCM 모듈에 알리는 역할을 합니다. 이 인터페이스는 서비스 ID 0x22을 가지며, 반환값을 제공하지 않고 입력 매개변수 NetworkId로 해당 네트워크의 식별자([SWS_Dcm_00358])를 요구합니다. 이 함수는 헤더 파일 Dcm_ComM.h을 통해 제공됩니다([SWS_Dcm_00358]).

이 호출이 발생하자마자 DCM은 해당 네트워크 채널의 모든 전송 활동을 완전히 중단해야 합니다([SWS_Dcm_00153]). 여기에는 세부적으로 다음과 같은 조치가 포함됩니다:

오류 처리 및 제약 조건과 관련하여, 전달된 NetworkId이 구성 매개변수 DcmDslProtocolComMChannelRef을 통해 DCM에서 참조되지 않는 ComM 채널에 해당하는 경우 DCM은 추가 작업 없이 반환해야 한다고 규정되어 있습니다([SWS_Dcm_01325]). 이 호출에 대해 특정 개발 오류나 오류 반환값은 명시되어 있지 않습니다.

해석: 이 호출은 무음 통신 모드로의 전환이 완료되는 즉시 일반적으로 ComM 모듈에 의해 수행될 것으로 보입니다. 질문 Q-fc9b6303ae0c0e41 (열림)

이 사용 지침은 AI 시스템에 의해 생성되었으며 AUTOSAR 사양 R20-11만을 근거로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_ComM_FullComModeEntered [SWS_Dcm_00360] 📄 PDF

void Dcm_ComM_FullComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f50471437e1e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능 함수 Dcm_ComM_FullComModeEntered은 헤더 파일 Dcm_ComM.h을 통해 제공되며, 통신 네트워크가 COMM_FULL_COMMUNICATION 상태로 전환되었음을 DCM 모듈에 알립니다[SWS_Dcm_00360]. 모드 변경의 영향을 받는 네트워크를 식별하는 NetworkId가 입력 매개변수로 사용됩니다[SWS_Dcm_00360].

이 호출을 통해 해당 네트워크에 대한 모든 통신이 활성화되어 메시지 수신 및 송신이 모두 허용됩니다[SWS_Dcm_00157]. 여기에는 다음 전송 유형이 포함됩니다:

Dcm_ComM_FullComModeEntered이 호출되면 DCM은 내부 함수 DslInternal_ResponseOnOneDataByPeriodicId() 및 DslInternal_ResponseOnOneEvent()를 제약 없이 처리합니다[SWS_Dcm_00162]. 시간 순서상 DCM은 진단 응답 전송을 시작하기 전에 이 호출을 기다려야 하며, 대기 시간은 요청 수신 시점부터 P2ServerMax를 초과해서는 안 됩니다[SWS_Dcm_01142].

오류 발생 시, 즉 전달된 NetworkId이 DCM에 구성되지 않은 ComM 채널(매개변수 DcmDslProtocolComMChannelRef)과 관련된 경우, 함수는 추가 작업 없이 즉시 반환합니다[SWS_Dcm_01326].

본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_CsmAsyncJobFinished [SWS_Dcm_91076] 📄 PDF

Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);

Can be called from Csm upon finishing an asynchronous job processing. The integrator will configure this name as callback function within the Csm ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the job that has finished by evaluating the job parameter. API availability: This API will be available only if ({ecuc(Dcm/Dcm Dsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: dde3623859f0 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기식 및 재진입 가능한 콜백 함수 Dcm_CsmAsyncJobFinished은(는) 비동기 작업 처리가 완료되는 즉시 Crypto Service Manager(CSM)에 의해 호출됩니다 [SWS_Dcm_91076]. 입력 매개변수로서 Csm_ResultType 타입의 result을(를) 통해 종료된 CSM 작업의 결과를 수신합니다 [SWS_Dcm_91076]. 반환값으로 이 함수는 항상 E_OK을(를) 반환합니다 [SWS_Dcm_91076].

구성 및 제약 조건

통합자는 CSM의 ECUC 구성에서 비동기 작업에 대한 콜백으로 이 함수의 이름을 구성해야 합니다 [SWS_Dcm_91076]. DCM의 경우 이러한 콜백이 오직 하나만 제공되며, 종료된 작업의 식별은 명세에 따라 작업 매개변수를 평가함으로써 이루어집니다 [SWS_Dcm_91076]. 그러나 C 함수 시그니처는 result만을 전달하므로, DCM은 진행 중인 인증의 트랜잭션 상태를 통해 내부적으로 연관된 작업을 식별할 것으로 추정됩니다. 질문 Q-04ad1d5fb514f467 (열림)

이 인터페이스는 구성에서 매개변수 DcmDspAuthenticationConnection이(가) 설정된 경우(null이(가) 아닌 경우)에만 사용할 수 있습니다 [SWS_Dcm_91076]. 반환값이 변경 불가능하게 E_OK이므로, 이 호출에 대해 특정 오류 처리나 DET 보고는 명세되어 있지 않습니다 [SWS_Dcm_91076].

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Dcm_KeyMAsyncCertificateVerifyFinished [SWS_Dcm_91077] 📄 PDF

Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);

Can be called from Key upon finishing an asynchronous certificate verification. The integrator will configure this name as callback function within the KeyM ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the certificate that has finished by evaluating the certId parameter. API availability: This API will be available only if ({ecuc(Dcm/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4af905fb6f66 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능한 콜백 함수 Dcm_KeyMAsyncCertificateVerifyFinished은(는) 비동기 인증서 검증이 완료된 후 KeyM 모듈에 의해 호출됩니다 [SWS_Dcm_91077]. 이 함수는 검증 프로세스의 완료 및 결과에 대해 DCM에 알리며, 반환값으로 항상 E_OK을(를) 반환합니다 [SWS_Dcm_91077].

매개변수 및 동작 방식

  • CertID: 검증이 완료된 인증서의 식별자입니다. DCM은 이 식별자를 기반으로 어떤 검증 작업이 종료되었는지 판별합니다 [SWS_Dcm_91077].
  • Result: KeyM으로부터 전달된 비동기 검증 작업의 반환값 및 상태입니다 [SWS_Dcm_91077].

구성 및 제약 조건

통합자는 KeyM의 ECUC 구성에서 비동기 작업에 대한 콜백으로 이 함수 이름을 구성해야 합니다 [SWS_Dcm_91077]. 이 알림을 위해 하나의 콜백만 제공되므로 DCM은 매개변수 CertID을(를) 통해 해당 인증서를 확인해야 합니다 [SWS_Dcm_91077].

이 인터페이스는 구성 매개변수 DcmDspAuthenticationConnection이(가) 경로 Dcm/DcmDsp/DcmDspAuthentication에서 구성된 경우(!= null)에만 독점적으로 제공됩니다 [SWS_Dcm_91077]. 이 호출에 대해 특별한 오류 코드나 DET 보고는 명세되어 있지 않습니다 [SWS_Dcm_91077].

이 사용 지침은 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_ReadMemory [SWS_Dcm_00539] 📄 PDF

Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d18b075d45c8 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

Dcm_Externals.h에 선언된 콜아웃 함수 Dcm_ReadMemory([SWS_Dcm_00539])은 시작 주소(MemoryAddress) 및 바이트 크기(MemorySize)를 기반으로 DCM이 서버 메모리 데이터를 읽어오는 데 사용됩니다. 이 함수는 UDS 서비스 ReadMemoryByAddress(0x23)([SWS_Dcm_00495]), 0xF200~0xF3FF 주소 범위의 동적 DID를 위한 ReadDataByIdentifier(0x22)([SWS_Dcm_00653]), RequestUpload 및 TransferData에 필요합니다([SWS_Dcm_00539]). 매개변수 MemoryIdentifier이 사용되지 않는 경우 0으로 설정해야 합니다([SWS_Dcm_00539]).

인터페이스는 비동기식이며 재진입이 불가능합니다([SWS_Dcm_00539]). 호출 상태는 DCM_INITIAL, DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK 값을 갖는 OpStatus을 통해 전달됩니다. 읽기 작업이 지속되는 동안 함수는 DCM_READ_PENDING을 반환합니다([SWS_Dcm_00985]). 호출이 DCM_READ_FORCE_RCRRP을 반환하면 DCM은 즉시 RCR-RP 메시지(NRC 0x78) 전송을 트리거하고 전송 확인 시까지 추가 호출을 일시 중지합니다([SWS_Dcm_00839]). RCR-RP 확인 후 DCM은 Dcm_MainFunction의 함수를 OpStatus = DCM_FORCE_RCRRP_OK과 함께 다시 호출합니다([SWS_Dcm_00840]).

성공 시 읽어온 데이터는 버퍼 MemoryData에 기록되고 DCM_READ_OK이 반환됩니다([SWS_Dcm_00539], [SWS_Dcm_00985]). 작업이 실패하면 함수는 DCM_READ_FAILED를 반환하고 ErrorCode를 설정합니다. 그러면 DCM은 해당하는 NRC 값과 함께 부정 응답을 전송합니다([SWS_Dcm_00644]).

AUTOSAR 명세서를 기반으로 자동 생성된 사용 지침입니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_WriteMemory [SWS_Dcm_00540] 📄 PDF

Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: eb9ee6486bcd 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

Dcm_Externals.h에 선언된 콜아웃 함수 Dcm_WriteMemory은 시작 주소와 바이트 크기를 기반으로 메모리 데이터를 쓰기 위해 DCM에 의해 비동기식 및 비재진입 방식으로 호출됩니다[SWS_Dcm_00540]. 이 함수는 UDS 서비스 WriteMemoryByAddress(0x3D), RequestDownload 및 TransferData를 구현하는 데 사용됩니다[SWS_Dcm_00540]. WriteMemoryByAddress 수신 시 DCM은 요청을 검증한 후에만 콜아웃을 호출합니다[SWS_Dcm_00491].

프로세스를 제어하기 위해 OpStatus이 전달됩니다(가능한 값: DCM_INITIAL, DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK)[SWS_Dcm_00540]. 매개변수 MemoryAddress 및 MemorySize은 대상 메모리 영역을 결정하며, MemoryData은 DCM의 진단 버퍼를 가리킵니다[SWS_Dcm_00540]. MemoryIdentifier 또는 MemoryAddress이 (예: 압축된 데이터의 경우) 사용되지 않는 경우 0으로 설정해야 합니다[SWS_Dcm_00540].

반환값 Dcm_ReturnWriteMemoryType[SWS_Dcm_00986]은 DCM에서의 추가 처리를 정의합니다:

  • DCM_WRITE_OK: 쓰기 작업이 성공했습니다[SWS_Dcm_00540], [SWS_Dcm_00986].
  • DCM_WRITE_PENDING: 작업이 아직 완료되지 않았으며 후속 호출이 필요합니다[SWS_Dcm_00540], [SWS_Dcm_00986].
  • DCM_WRITE_FORCE_RCRRP: DCM이 즉시 Response Pending(NRC 0x78) 전송을 시작하고 전송 확인 시까지 추가 호출을 일시 중단합니다[SWS_Dcm_00837]. 그 후 Dcm_MainFunction에서 DCM_FORCE_RCRRP_OK과 함께 다시 호출됩니다[SWS_Dcm_00838].
  • DCM_WRITE_FAILED: 오류 발생 시 DCM은 출력 매개변수 ErrorCode을 통해 전달된 NRC 값과 함께 부정 응답을 전송합니다[SWS_Dcm_00540], [SWS_Dcm_00643].

이 텍스트는 AUTOSAR Classic R20-11 명세서를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_SetProgConditions [SWS_Dcm_00543] 📄 PDF

Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);

The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request. The context parameter are defined in Dcm_ProgConditionsType.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7125f1a0f508 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 Dcm_SetProgConditions은 통합자가 부트로더로 전환하거나 ECUReset 요청에 따른 리셋 전에 관련 정보를 영구적으로 저장할 수 있도록 합니다[SWS_Dcm_00543]. 관련 컨텍스트 데이터는 구조체 Dcm_ProgConditionsType에 대한 포인터를 통해 전달되며, 이 구조체는 연결 및 테스터 소스 주소, 서비스 및 서브기능 ID, ReprogramingRequest 및 ResponseRequired와 같은 제어 플래그 등을 번들로 제공합니다[SWS_Dcm_00988]. 서브기능 0x02가 포함된 UDS 서비스 0x10 수신 시 DCM은 이 플래그들을 설정하고 인터페이스를 호출합니다[SWS_Dcm_01182].

호출은 비동기식으로 이루어지며 재진입이 불가능합니다(Non Reentrant)[SWS_Dcm_00543]. 매개변수 OpStatus를 통해 상태 DCM_INITIAL, DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK이 제어됩니다[SWS_Dcm_00543]. 실행이 지속되고 함수가 DCM_E_PENDING을 반환하는 경우, DCM은 다음 메인 기능 주기에서 설정을 완료하기 위해 인터페이스를 다시 호출합니다[SWS_Dcm_00543], [SWS_Dcm_01184]. DCM_E_FORCE_RCRRP을 통해 Response Pending 응답(NRC 0x78)의 전송을 강제할 수 있습니다[SWS_Dcm_00543]. 구성에 따라 DCM에 의한 호출은 NRC 0x78이 성공적으로 전송된 후에만 수행됩니다[SWS_Dcm_00535].

조건이 오류 없이 설정되고 콜아웃이 E_OK을 반환하면, DCM은 ModeDeclarationGroupPrototype DcmEcuReset의 EXECUTE으로의 모드 전환을 시작합니다[SWS_Dcm_00719], [SWS_Dcm_01163], [SWS_Dcm_01180]. 반면 상태를 저장할 수 없고 함수가 E_NOT_OK로 응답하는 경우 리셋 및 부트로더 점프가 생략되고, 모드 전환이 차단되며, DCM은 부정 응답 NRC 0x22(Conditions not correct)를 전송합니다[SWS_Dcm_00715], [SWS_Dcm_01181].

이 사용 지침은 AUTOSAR Classic 릴리스 R20-11 명세서를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_GetProgConditions [SWS_Dcm_00544] 📄 PDF

Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);

The Dcm_GetProgConditions callout is called upon Dcm initialization and allows to determine if a response ($50 or $51) has to be sent. The context parameters are defined in Dcm_Prog ConditionsType.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 64f9fe813c22 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

서비스 ID 0x62을 갖는 콜아웃 함수 Dcm_GetProgConditions은 서비스 $50 또는 $51에 대한 보류 중인 진단 응답을 전송해야 하는지 여부를 확인하기 위해 DCM 초기화 중에 호출됩니다[SWS_Dcm_00544]. 인터페이스의 선언은 헤더 파일 Dcm_Externals.h를 통해 제공됩니다[SWS_Dcm_00544].

사용법 및 매개변수

함수 실행은 동기식으로 이루어지며, 일반적인 입력 또는 입출력 매개변수는 전달되지 않습니다[SWS_Dcm_00544]:

  • 출력 매개변수: Dcm_ProgConditionsType* 타입의 포인터 ProgConditions을 통해 콜아웃은 부트로더로부터의 이전 점프가 요청되었던 조건을 반환합니다[SWS_Dcm_00544]. 관련 컨텍스트 매개변수는 데이터 타입 Dcm_ProgConditionsType에 저장되어 있습니다[SWS_Dcm_00544].
  • 반환값: 함수는 Dcm_EcuStartModeType 타입의 상태 값을 호출자에게 반환합니다[SWS_Dcm_00544].

동시성 및 오류 처리

이 함수는 재진입 불가능(Non Reentrant)으로 분류되므로 동시에 실행되어서는 안 됩니다[SWS_Dcm_00544]. 이 콜아웃에 대해 인터페이스 명세서에는 DET 또는 DEM에 대한 구체적인 오류 코드가 정의되어 있지 않습니다[SWS_Dcm_00544].

이 사용 지침은 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Dcm_ProcessRequestAddFile [SWS_Dcm_91078] 📄 PDF

Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x01 (AddFile).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 1834b880b12c 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 Dcm_ProcessRequestAddFile은(는) 작동 모드 0x01(AddFile)(으)로 서비스 RequestFileTransfer을(를) 시작하기 위해 DCM에 의해 호출됩니다([SWS_Dcm_91078]). 이는 Dcm_Externals.h을(를) 통해 사용 가능하고 서비스 ID 0x72을(를) 가지며, 비재진입(non-reentrant)(Non Reentrant) 및 비동기식으로 명세되어 있습니다([SWS_Dcm_91078]).

비동기 호출 순서의 제어는 매개변수 OpStatus을(를) 통해 이루어집니다:

  • DCM_INITIAL: 모든 입력 매개변수가 유효합니다. 여기에는 파일 경로 및 파일명(filePathAndNameLength을(를) 포함한 filePathAndName), 바이트 dataFormatIdentifier(압축용 상위 니블, 암호화용 하위 니블), 그리고 압축되지 않은 파일 크기 및 압축된 파일 크기(fileSizeUncompressed, fileSizeCompressed)가 포함됩니다([SWS_Dcm_91078]).
  • DCM_PENDING, DCM_CANCEL 및 DCM_FORCE_RCRRP_OK: 이 후속 호출들에서는 모든 입력 매개변수가 0x00(으)로 설정됩니다([SWS_Dcm_91078]).

반환값으로서 함수는 성공적으로 실행된 경우 E_OK을(를), 처리가 지속 중인 경우 DCM_E_PENDING을(를), 애플리케이션이 임시 응답(NRC 0x78)의 전송을 요청하는 경우 DCM_E_FORCE_RCRRP을(를) 반환합니다([SWS_Dcm_91078], [SWS_Dcm_91086]). 성공 시 maxNumberOfBlockLength은(는) SID 및 블록 카운터를 제외한 향후 TransferData 메시지의 최대 허용 블록 길이를 정의합니다([SWS_Dcm_91078]).

오류 발생 시 함수는 E_NOT_OK을(를) 반환합니다. 이 경우 매개변수 ErrorCode을(를) 통해 부정 응답 코드(NRC)를 전달해야 하며, DCM은 이를 클라이언트로 보내는 부정 진단 응답에 실어 전송합니다([SWS_Dcm_91078]). 구성 DcmRequestFileTransferUsePort이(가) 활성화된 경우 이 기능은 대안적으로 인터페이스 RequestFileTransfer의 포트 오퍼레이션 ProcessRequestAddFile(으)로 제공됩니다([SWS_Dcm_91086]).

이 사용 지침은 AUTOSAR CP R20-11 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_ProcessRequestDeleteFile [SWS_Dcm_91079] 📄 PDF

Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x02 (DeleteFile). Manager

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 236f3be8e83f 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 시맨틱

콜아웃 함수 Dcm_ProcessRequestDeleteFile은(는) 진단 서비스 RequestFileTransfer의 일환으로 서버에서 파일 삭제(modeOfOperation = 0x02)를 시작하기 위해 DCM에 의해 호출됩니다 [SWS_Dcm_91079]. 이 함수는 Dcm_Externals.h에 선언되어 있으며 비동기식 및 비재진입(non-reentrant)(Non Reentrant)으로 작동합니다 [SWS_Dcm_91079].

전달 및 평가는 매개변수 OpStatus을(를) 기반으로 수행됩니다:

  • DCM_INITIAL: 오퍼레이션의 시작을 나타냅니다. 이때 모든 입력 매개변수가 유효하며, filePathAndName은(는) 삭제할 파일의 저장 위치 및 이름을 전달하고, 그 바이트 길이는 filePathAndNameLength을(를) 통해 지정됩니다 [SWS_Dcm_91079].
  • DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK: 계속 처리 중이거나 중단된 경우 모든 입력 매개변수는 0x00(으)로 설정됩니다 [SWS_Dcm_91079].

반환값으로서 함수는 성공적으로 수행된 경우 E_OK을(를), 실행이 여전히 지속되어 추가 호출이 필요한 경우 DCM_E_PENDING을(를), 애플리케이션이 RequestFileTransfer 서비스와 유사하게 NRC 0x78(Response Pending) 중간 메시지 전송을 요청하는 경우 DCM_E_FORCE_RCRRP을(를) 반환합니다 [SWS_Dcm_91079], [SWS_Dcm_91086].

오류 처리

처리에 실패하면 함수는 E_NOT_OK을(를) 반환합니다. 이 경우 출력 매개변수 ErrorCode을(를) 통해 부정 응답 코드를 제공해야 하며, DCM은 이를 부정 응답(NRC)으로 테스터에 전달합니다 [SWS_Dcm_91079].

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_ProcessRequestReplaceFile [SWS_Dcm_91080] 📄 PDF

Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x03 (ReplaceFile).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c623f64b1110 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 Dcm_ProcessRequestReplaceFile은(는) 작동 모드 0x03(ReplaceFile)(으)로 RequestFileTransfer에 대한 진단 프로세스를 시작하기 위해 DCM에 의해 호출됩니다 [SWS_Dcm_91080]. 이 함수는 비재진입(Non Reentrant) 및 비동기식으로 정의되며 헤더 Dcm_Externals.h을(를) 통해 제공됩니다 [SWS_Dcm_91080].

비동기 처리 시퀀스의 제어는 매개변수 OpStatus을(를) 통해 이루어집니다:

  • DCM_INITIAL(으)로 초기 호출 시 DCM은 경로 및 파일명(길이 정보 filePathAndNameLength을(를) 포함한 filePathAndName), 압축 및 암호화 식별자(dataFormatIdentifier), 압축되지 않은 파일 크기 및 압축된 파일 크기(fileSizeUncompressed, fileSizeCompressed)를 포함하여 모든 입력 매개변수를 유효하게 전달합니다 [SWS_Dcm_91080].
  • 후속 호출 또는 중단 시(DCM_PENDING, DCM_CANCEL, DCM_FORCE_RCRRP_OK) 모든 In 매개변수는 0x00(으)로 설정됩니다 [SWS_Dcm_91080].
  • 성공 시 함수는 Out 매개변수 maxNumberOfBlockLength을(를) 통해 후속 TransferData 요청을 위한 최대 페이로드 길이(SID 및 블록 시퀀스 카운터 제외)를 DCM에 반환합니다 [SWS_Dcm_91080].

반환값으로는 성공적인 실행 시 E_OK, 여전히 지속 중인 처리 시 DCM_E_PENDING, Response-Pending 응답(NRC 0x78) 요청을 위한 DCM_E_FORCE_RCRRP이(가) 규정되어 있습니다 [SWS_Dcm_91080], [SWS_Dcm_91086]. 실행에 실패하면 함수는 E_NOT_OK을(를) 반환하고 매개변수 ErrorCode에 해당하는 부정 진단 응답 코드(NRC)를 할당하며, DCM은 이를 테스터에 전달합니다 [SWS_Dcm_91080].

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_ProcessRequestReadFile [SWS_Dcm_91081] 📄 PDF

Std_ReturnType Dcm_ProcessRequestReadFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x04 (ReadFile).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: da3fd9bbf78e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 Dcm_ProcessRequestReadFile은(는) 작동 모드 ReadFile(modeOfOperation 0x04)(으)로 파일 전송 프로세스(서비스 RequestFileTransfer)를 시작하기 위해 DCM에 의해 호출됩니다 [SWS_Dcm_91081]. 이 함수는 헤더 Dcm_Externals.h에 선언되어 있으며, 비동기식으로 작동하고 재진입이 불가능합니다(Non Reentrant) [SWS_Dcm_91081].

호출은 상태 매개변수 OpStatus을(를) 통해 수행됩니다: 초기 호출 DCM_INITIAL 시에는 모든 입력 매개변수가 유효한 반면, DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK을(를) 사용한 후속 호출 시에는 0x00(으)로 설정됩니다 [SWS_Dcm_91081]. 애플리케이션은 filePathAndName(길이는 filePathAndNameLength에 명시)을(를) 통해 경로 및 파일명을, dataFormatIdentifier을(를) 통해 압축 및 암호화 형식을, fileSizeUncompressed 및 fileSizeCompressed을(를) 통해 파일 크기를 전달받습니다 [SWS_Dcm_91081]. 출력 매개변수로 애플리케이션은 maxNumberOfBlockLength에 후속 TransferData 응답(SID 및 블록 시퀀스 카운터 제외)을 위한 최대 바이트 수를 설정해야 합니다 [SWS_Dcm_91081].

Std_ReturnType의 반환값으로는 성공적인 실행 시 E_OK, 여전히 지속 중인 비동기 처리 시 DCM_E_PENDING, 또는 "Response Pending" 응답(NRC 0x78) 요청을 위한 DCM_E_FORCE_RCRRP이(가) 정의되어 있습니다 [SWS_Dcm_91081]. 오퍼레이션이 실패하면 E_NOT_OK을(를) 반환하며, 이 경우 DCM은 출력 매개변수 ErrorCode에 설정된 NRC 값을 포함하는 부정 응답을 테스터에 전송합니다 [SWS_Dcm_91081]. 상호 작용은 ProcessRequestAddFile와(과) 같은 다른 파일 오퍼레이션에 대해 유사하게 구성되는 서비스 RequestFileTransfer의 일반적인 처리와 일치합니다 [SWS_Dcm_91086].

이 텍스트는 AI 시스템에 의해 생성되었으며 AUTOSAR Classic R20-11 명세에만 전적으로 의존합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_ProcessRequestReadDir [SWS_Dcm_91082] 📄 PDF

Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x05 (ReadDir).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 1f3142abbb5b 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

콜아웃 함수 Dcm_ProcessRequestReadDir은(는) 헤더 파일 Dcm_Externals.h을(를) 통해 선언되며, 작동 모드 0x05(ReadDir)(으)로 RequestFileTransfer 서비스를 비동기식으로 시작하기 위해 DCM에 의해 호출됩니다 [SWS_Dcm_91082]. 처리 진행 상태는 전달 매개변수 OpStatus을(를) 통해 제어됩니다 [SWS_Dcm_91082]. DCM_INITIAL을(를) 사용한 최초 호출 시 DCM은 filePathAndName을(를) 통해 바이트 길이 filePathAndNameLength과(와) 함께 경로 또는 이름을 전달합니다 [SWS_Dcm_91082]. 후속 호출 시 또는 중단 시(DCM_PENDING, DCM_CANCEL, DCM_FORCE_RCRRP_OK) 모든 입력 매개변수는 0x00(으)로 설정됩니다 [SWS_Dcm_91082].

출력값으로서 애플리케이션은 dirInfoLength을(를) 통해 디렉터리 데이터의 크기를, maxNumberOfBlockLength을(를) 통해 후속 전송에 허용되는 최대 블록 크기를 제공해야 합니다 [SWS_Dcm_91082]. 성공적인 실행 시의 E_OK 외에도 함수는 오퍼레이션이 여전히 진행 중인 경우 DCM_E_PENDING을(를) 반환하거나, 중간 응답(NRC 0x78)의 전송을 유발하기 위해 DCM_E_FORCE_RCRRP을(를) 반환할 수 있습니다 [SWS_Dcm_91082].

오류 처리

오류가 발생하면 함수는 E_NOT_OK을(를) 반환해야 합니다. 이 경우 DCM은 매개변수 ErrorCode을(를) 읽고 그 값을 부정 응답 코드(NRC)로서 테스터에 전달합니다 [SWS_Dcm_91082]. 인터페이스에 특정 DET 또는 DEM 보고는 규정되어 있지 않으므로 전달된 경로에 대한 오류 검사는 애플리케이션 고유의 구현에 전적으로 일임될 것으로 추정됩니다. 질문 Q-278dbc3db7b4363b (열림)

동시성 및 상호 작용

이 함수는 재진입 불가능(Non Reentrant)으로 명시되어 있으므로 여러 진단 요청에 대해 동시에 호출해서는 안 됩니다[SWS_Dcm_91082]. 이 함수는 RequestFileTransfer 서비스의 인터페이스 그룹에 속하며, 해당 연동은 구성 매개변수를 통해 영향을 받을 수 있습니다[SWS_Dcm_91086].

이 사용 참고 사항은 AUTOSAR CP R20-11 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_WriteFile [SWS_Dcm_91083] 📄 PDF

Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function when data is received using UDS service Transfer Data if there's an ongoing RequestFileTransfer process started with 0x01 (AddFile) or 0x03 (ReplaceFile).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 20f77ea9ba1a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

콜아웃 함수 Dcm_WriteFile은 UDS 서비스 TransferData(0x36)를 통해 데이터가 수신되고, 모드 0x01(AddFile) 또는 0x03(ReplaceFile)과 함께 RequestFileTransfer을(를) 통해 이전에 시작된 다운로드 프로세스가 활성 상태일 때 DCM에 의해 호출됩니다 [SWS_Dcm_01444]. 이 인터페이스는 Dcm_Externals.h을(를) 통해 사용할 수 있습니다 [SWS_Dcm_91083].

매개변수 할당은 진행 상태 OpStatus에 따라 달라집니다 [SWS_Dcm_91083]:

  • DCM_INITIAL: 모든 입력 매개변수가 유효합니다. 포인터 Data은(는) 기록할 페이로드를 가리키며, DataLength은(는) 해당 바이트 길이를 지정합니다. DataLength의 값은 이전에 Dcm_ProcessRequestFileTransfer에서 협상된 최대 블록 길이(NumberOfBlockLength)를 초과하지 않습니다.
  • DCM_PENDING, DCM_CANCEL 및 DCM_FORCE_RCRRP_OK: 모든 입력 매개변수가 0x00(으)로 설정됩니다.

비동기 의미론 및 반환값

이 함수는 비동기 및 비재진입(Non Reentrant) 방식으로 동작합니다 [SWS_Dcm_91083]. 이 함수는 다음 상태 값을 반환합니다:

  • E_OK: 쓰기 작업이 성공적으로 완료되었습니다.
  • DCM_E_PENDING: 처리가 아직 완료되지 않았으며 추가 호출이 필요합니다.
  • DCM_E_FORCE_RCRRP: 애플리케이션이 대기 응답(Response Pending, NRC 0x78) 전송을 요청합니다.
  • E_NOT_OK: 작업이 실패했습니다.

오류 처리

Dcm_WriteFile이(가) E_NOT_OK 값을 반환하면 DCM 모듈은 음의 UDS 응답을 전송하며, 이 응답의 NRC는 출력 매개변수 ErrorCode을(를) 통해 제공된 값에 해당합니다 [SWS_Dcm_91083].

이 텍스트는 AI 지원 시스템에 의해 생성되었으며 AUTOSAR 사양을 통한 검증이 필요합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_ReadFileOrDir [SWS_Dcm_91085] 📄 PDF

Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function when data shall be sent as a response to UDS service TransferData if there's an ongoing RequestFileTransfer process started with 0x04 (ReadFile) or 0x05 (ReadDir).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 57060973c3b0 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 Dcm_ReadFileOrDir은 진행 중인 파일 또는 디렉터리 업로드(이전에 ReadFile의 경우 모드 0x04 또는 ReadDir의 경우 0x05을(를) 사용하여 UDS 서비스 RequestFileTransfer을(를) 통해 시작됨)의 프레임워크 내에서 UDS 서비스 TransferData(0x36)에 대한 형식 준수 요청이 수신될 때 DCM 모듈에 의해 호출됩니다 [SWS_Dcm_01445]. 이 함수는 클라이언트에 응답으로 전송될 데이터를 제공하는 역할을 합니다 [SWS_Dcm_91085]. 인터페이스 선언은 헤더 Dcm_Externals.h을(를) 통해 제공됩니다 [SWS_Dcm_91085].

실행은 비동기식으로 이루어지며 재진입 불가(Non Reentrant)로 지정되어 있습니다 [SWS_Dcm_91085]. 상호작용 및 매개변수 할당은 전달된 작동 상태에 따라 달라집니다:

  • 작동 상태(OpStatus): DCM_INITIAL(으)로 초기 호출할 때는 모든 입력 매개변수가 유효합니다. DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK을(를) 사용한 후속 또는 취소 호출 시에는 모든 입력 매개변수가 0x00(으)로 설정됩니다 [SWS_Dcm_91085].
  • 버퍼 및 블록 길이: 매개변수 DataLength은(는) 입력 측에서 최대 허용 블록 길이(클라이언트에 보고된 값 maxNumberOfBlockLength에 해당)를 전달하고, 출력 측에서는 Data에 실제로 제공된 바이트 길이를 반환하며 이는 입력 값을 초과할 수 없습니다 [SWS_Dcm_91085]. 해석: 인터페이스에서 Data이(가) 형식적으로 In 매개변수로 선언되어 있지만, 읽어올 페이로드를 전달하는 데 사용될 것으로 보입니다. 질문 Q-53de8a0bdbc4a2b4 (열림)
  • 반환값: 이 작업은 성공적인 데이터 제공 시 E_OK을(를), 처리가 아직 완료되지 않은 경우 DCM_E_PENDING을(를), 애플리케이션이 중간 메시지(Response Pending, NRC 0x78)의 강제 전송을 원하는 경우 DCM_E_FORCE_RCRRP을(를) 반환합니다 [SWS_Dcm_91085].

애플리케이션에서 처리에 실패하면 E_NOT_OK이(가) 반환됩니다. 이러한 오류 발생 시 DCM 모듈은 클라이언트에 음의 UDS 응답(NRC)을 전송하며, 해당 오류 코드는 출력 매개변수 ErrorCode에 설정된 값에 해당합니다 [SWS_Dcm_91085].

이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 공식 AUTOSAR 사양이 기준이 됩니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Dcm_MainFunction [SWS_Dcm_00053] 📄 PDF

void Dcm_MainFunction (void);

This service is used for processing the tasks of the main loop.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c8dffd7076b9 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Dcm_MainFunction은 Diagnostic Communication Manager([SWS_Dcm_00053]) 메인 루프의 핵심 작업을 처리하는 데 사용됩니다. 이 함수는 시그니처 void Dcm_MainFunction(void)를 가지며 반환값을 제공하지 않습니다. 헤더 SchM_Dcm.h을 통해 제공되므로, 기본 소프트웨어의 스케줄러 태스크 컨텍스트에서 주기적으로 호출될 것으로 추정됩니다. 질문 Q-e083a72aae447ab5 (열림)

주요 작업은 비동기 프로세스의 제어 및 주기 간 지속 실행입니다:

  • Dcm_OpStatusType을 사용하는 작업이 반환값 DCM_E_PENDING을 반환하는 경우, DCM은 이 상태가 지속되는 한 Dcm_MainFunction가 호출될 때마다 OpStatus = DCM_PENDING을 사용하여 해당 작업을 다시 호출합니다 ([SWS_Dcm_00530]).
  • Dem_ClearDTC()이 상태 DEM_PENDING을 반환하면 다음 Dcm_MainFunction 주기에서 함수가 다시 호출되며, DCM은 필요 시 NRC 78(ResponsePending)을 전송합니다 ([SWS_Dcm_00703]).
  • 매개변수 FilterForFault-DetectionCounter이 설정된 Dem_SetDTCFilter()의 호출은 반드시 Dcm_MainFunction의 컨텍스트에서 수행되어야 합니다 ([SWS_Dcm_00519]).
  • RCR-RP 전송이 확인된 후 DCM은 Dcm_MainFunction의 Dcm_WriteMemory 또는 Dcm_ReadMemory과 같은 작업을 OpStatus = DCM_FORCE_RCRRP_OK을 사용하여 다시 호출합니다 ([SWS_Dcm_00529], [SWS_Dcm_00838], [SWS_Dcm_00840]).
  • Xxx_GetSecurityAttemptCounter에서 DCM_E_PENDING 값이 보고되면 호출이 중단되고 다음 주기에서 계속됩니다 ([SWS_Dcm_01351]). 구성된 타임아웃을 초과하면 DCM은 OpStatus = DCM_CANCEL을 사용하여 보류 중인 작업을 중단합니다 ([SWS_Dcm_01352]).

이 사용 지침은 AUTOSAR 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_GetSeed [SWS_Dcm_01151] 📄 PDF

Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous provision of seed value

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5df748b42b56 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Xxx_GetSeed(Dcm_Externals.h을 통해 제공됨)은 애플리케이션이 DCM 모듈을 위한 시드 값을 비동기적으로 제공하는 데 사용됩니다 [SWS_Dcm_01151]. 이 함수는 하위 기능 타입이 “requestSeed”인 서비스 SecurityAccess(0x27)의 UDS 요청이 수신되고 요청된 보안 레벨이 아직 활성화되지 않은 즉시 호출됩니다 [SWS_Dcm_00862], [SWS_Dcm_00324].

호출 컨텍스트 및 매개변수

이 인터페이스는 재진입 불가(Non Reentrant)로 정의되며 비동기적으로 동작합니다 [SWS_Dcm_01151]:

  • SecurityAccessDataRecord: 시드 계산을 위한 추가 입력 데이터에 대한 포인터이며, DcmDspSecurityADRSize에 따른 최소 크기는 1바이트입니다 [SWS_Dcm_01151].
  • OpStatus: 비동기 작업의 현재 상태를 나타냅니다 [SWS_Dcm_01151].
  • Seed: 애플리케이션이 계산된 시드를 제공하는 출력 포인터입니다 [SWS_Dcm_01151].
  • ErrorCode: 부정 오류 코드(NRC)를 반환하기 위한 출력 매개변수입니다 [SWS_Dcm_01151].

반환값 및 오류 처리

  • E_OK: 시드가 성공적으로 결정되어 제공되었습니다 [SWS_Dcm_01151].
  • DCM_E_PENDING: 계산이 아직 완료되지 않았으며, 완료를 위해 후속 계산 또는 호출이 필요합니다 [SWS_Dcm_01151].
  • E_NOT_OK: 요청이 실패했습니다. 이 경우 DCM 모듈은 매개변수 ErrorCode로 전달된 NRC 값을 포함하는 UDS 부정 응답을 전송합니다 [SWS_Dcm_01151], [SWS_Dcm_00659].

통합 지침

DcmDspSecurityUsePort의 구성에 따라 USE_ASYNCH_FNC(DcmDspSecurityGetSeedFnc를 통해 참조됨)의 경우 C 함수로 연결되거나 [SWS_Dcm_00862], USE_ASYNCH_CLIENT_SERVER의 경우 Rte 작업으로 연결됩니다 [SWS_Dcm_00324]. 추가 접근 데이터를 전달할 필요가 없는 경우 매개변수 SecurityAccessDataRecord이 없는 대체 함수 시그니처가 사용됩니다 [SWS_Dcm_91003].

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_GetSeed [SWS_Dcm_91003] 📄 PDF

Std_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous provision of seed value

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 664a58989509 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Xxx_GetSeed은(는) UDS 서비스 SecurityAccess(0x27)의 범위 내에서 "requestSeed" 유형의 요청 시 시드 값을 제공하기 위해 DCM 모듈에서 애플리케이션으로 연결되는 비동기 인터페이스 역할을 합니다[SWS_Dcm_91003], [SWS_Dcm_00862]. 호출은 보안 레벨이 아직 활성화되지 않았고 구성에서 USE_ASYNCH_CLIENT_SERVER 또는 USE_ASYNCH_FNC을(를) 지정한 경우 DCM DSP 서브모듈에 의해 수행됩니다[SWS_Dcm_00324], [SWS_Dcm_00862].

인터페이스는 비동기 및 비재진입(non reentrant)(Non Reentrant)으로 구현되어 있습니다[SWS_Dcm_91003]. 처리 진행 상태 제어는 입력 매개변수 OpStatus(타입 Dcm_OpStatusType)을(를) 통해 이루어집니다[SWS_Dcm_91003]. 반환값으로는 성공적으로 제공된 경우의 E_OK, 오류 발생 시의 E_NOT_OK, 시드 생성이 아직 진행 중이며 추가 호출이 필요한 경우의 DCM_E_PENDING이(가) 정의되어 있습니다[SWS_Dcm_91003]. 생성된 값은 포인터 Seed(Inout/Out 버퍼)를 통해 전달됩니다[SWS_Dcm_91003].

연산이 실패하고 Xxx_GetSeed이(가) E_NOT_OK을(를) 반환하면, DCM 모듈은 출력 매개변수 ErrorCode(Dcm_NegativeResponseCodeType)을(를) 통해 설정된 오류 코드로 부정 응답(NRC)을 전송해야 합니다[SWS_Dcm_91003], [SWS_Dcm_00659]. 이 서비스는 헤더 Dcm_Externals.h을(를) 통해 선언됩니다[SWS_Dcm_91003].

이 텍스트는 AUTOSAR 표준 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_CompareKey [SWS_Dcm_91004] 📄 PDF

Std_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e106fb6bb967 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Xxx_CompareKey은 UDS 서비스 SecurityAccess(0x27, 하위 기능 sendKey)의 프레임워크 내에서 수신된 키를 애플리케이션의 내부 로직과 비교하기 위해 Diagnostic Communication Manager([SWS_Dcm_91004])에 의해 비동기 및 재진입 불가로 호출됩니다([SWS_Dcm_00863]). 이 함수는 접근 상태가 아직 활성화되지 않고, Seed 요청이 성공했으며, 구성 매개변수 DcmDspSecurityUsePort이 USE_ASYNCH_CLIENT_SERVER로 설정되어 있거나([SWS_Dcm_00324]), [SWS_Dcm_00863]에 따라 함수 인터페이스가 USE_ASYNCH_FNC/DcmDspSecurityCompareKeyFnc을 통해 구성된 경우에 사용됩니다. 이 인터페이스는 Dcm_Externals.h에 선언되어 있습니다([SWS_Dcm_91004]).

전달 항목에는 검사할 키 포인터 Key, 현재 작업 상태 OpStatus(타입 Dcm_OpStatusType), 그리고 오류 시 출력할 부정 응답 코드용 포인터 ErrorCode이 포함됩니다([SWS_Dcm_91004]). 반환값으로는 다음이 명시되어 있습니다:

  • E_OK: 키 검사 성공([SWS_Dcm_91004]).
  • DCM_E_PENDING: 검사가 아직 완료되지 않음; 완료를 위해 DCM 모듈의 추가 호출이 필요함([SWS_Dcm_91004]).
  • E_NOT_OK: 처리 실패. 그 후 DCM은 내부 보안 레벨을 변경하거나 실패 시도 카운터(AttemptCounter)를 증가시키지 않고 ErrorCode에 설정된 NRC가 포함된 부정 UDS 응답을 전송합니다([SWS_Dcm_01150]).
  • DCM_E_COMPARE_KEY_FAILED: 키가 일치하지 않음([SWS_Dcm_91004]).

키 비교가 실패하고(DCM_E_COMPARE_KEY_FAILED) DcmDspSecurityNumAttDelay이 구성된 경우, AttemptCounter가 증가합니다([SWS_Dcm_01397]). 카운터가 임계값 미만인 경우 DCM은 NRC 0x35(InvalidKey)를 전송합니다([SWS_Dcm_00660]). 실패 시도 횟수가 구성된 제한값 DcmDspSecurityNumAttDelay에 도달하거나 초과하면, DCM은 지속 시간 DcmDspSecurityDelayTime을 갖는 SecurityDelayTimer을 시작하고 NRC 0x36(exceededNumberOfAttempts)을 전송합니다([SWS_Dcm_01349]). 두 경우 모두 보안 레벨은 변경되지 않은 상태로 유지됩니다.

이 사용 지침은 자동으로 생성되었으며 AUTOSAR Classic R20-11 DCM 모듈 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I3)

함수 Xxx_GetSecurityAttemptCounter [SWS_Dcm_01152] 📄 PDF

Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);

Read the attempt counter for a specific security level from the application

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: bf7f9ceecc6b 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

비동기 및 재진입 불가 함수인 [SWS_Dcm_01152]은 DCM 초기화 시 애플리케이션에서 구성된 보안 레벨의 현재 실패 시도 횟수 카운터를 읽어옵니다. 이 호출은 구성 매개변수 DcmDspSecurityAttemptCounterEnabled가 TRUE으로 설정된 DcmDspSecurityRow의 각 항목에 대해 수행됩니다 [SWS_Dcm_01154].

흐름 제어는 DCM_INITIAL, DCM_PENDING 또는 DCM_CANCEL 값을 갖는 매개변수 OpStatus을 통해 관리됩니다 [SWS_Dcm_01152]. 함수가 DCM_E_PENDING를 반환하면 DCM은 호출 체인을 중단하고 Dcm_MainFunction()의 다음 주기에서 이를 재개합니다 [SWS_Dcm_01351]. 첫 번째 주기 이후 구성된 타임아웃 모니터링 DcmDspSecurityMaxAttemptCounterReadoutTime을 초과하면 DCM은 DCM_CANCEL을 사용하여 대기 중인 작업을 중단합니다 [SWS_Dcm_01352].

성공 시 인터페이스는 E_OK을 반환하고 출력 매개변수 AttemptCounter을 통해 카운터 값을 전달합니다 [SWS_Dcm_01152]. 호출이 E_NOT_OK을 반환하면 DCM은 카운터를 해당 보안 레벨에 대해 구성된 값 DcmDspSecurityNumAttDelay로 자동 설정합니다 [SWS_Dcm_01156].

모든 카운터 값이 최종적으로 결정되거나 취소되지 않는 한, DCM은 시드를 요청하는 SecurityAccess(0x27)에 대한 모든 요청을 부정 응답 코드 conditionsNotCorrect(0x22)과 함께 거부합니다 [SWS_Dcm_01354]. 쿼리 체인이 완료된 후 DCM은 카운터 값을 확인합니다. 하나 이상의 카운터가 임계값 DcmDspSecurityNumAttDelay에 도달하거나 초과하면 DCM은 DcmDspSecurityDelayTimeOnBoot와 DcmDspSecurityDelayTime 중 더 높은 값으로 SecurityDelayTimer를 시작합니다 [SWS_Dcm_01355].

이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_SetSecurityAttemptCounter [SWS_Dcm_01153] 📄 PDF

Std_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);

Set the attempt counter for a specific security level in the application

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 47588581abb8 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Xxx_SetSecurityAttemptCounter은 애플리케이션에서 특정 보안 레벨에 대한 시도 횟수 카운터를 설정하는 데 사용됩니다([SWS_Dcm_01153]). 이 함수는 헤더 Dcm_Externals.h를 통해 제공됩니다.

호출 및 시맨틱

실행은 비동기식으로 이루어지며, 재진입 불가(Non Reentrant)로 명시되어 있습니다([SWS_Dcm_01153]). 호출은 DCM_INITIAL, DCM_PENDING 또는 DCM_CANCEL 값을 갖는 OpStatus 매개변수를 통해 흐름을 제어합니다. 새로운 카운터 값은 입력 매개변수 AttemptCounter(uint8)을 통해 전달됩니다.

반환값 및 오류 처리

반환 타입으로는 Std_ReturnType이 사용됩니다([SWS_Dcm_01153]):

  • E_OK: 요청이 성공적으로 완료되었습니다.
  • E_NOT_OK: 실행이 성공하지 못했습니다.
  • DCM_E_PENDING: 처리가 아직 완료되지 않았으며, 완료를 위한 추가 호출이 필요합니다.

진행 중인 비동기 작업이 중단되면 DCM은 DCM_CANCEL 상태를 전달합니다([SWS_Dcm_01153]).

상호작용 및 경계 조건

DCM 모듈은 시도 카운터를 변경하자마자 애플리케이션에 업데이트를 알리기 위해 Xxx_SetSecurityAttemptCounter을 호출합니다([SWS_Dcm_01155]). 이를 위해서는 해당 DcmDspSecurityRow에 대한 구성 매개변수 DcmDspSecurityAttemptCounterEnabled가 TRUE로 구성되어 있어야 합니다([SWS_Dcm_01155]). 인터페이스가 재진입 불가능하므로 애플리케이션은 동일한 인스턴스에 대한 동시 실행을 배제해야 합니다([SWS_Dcm_01153]).

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ReadData [SWS_Dcm_00793] 📄 PDF

Std_ReturnType Xxx_ReadData (uint8* Data);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 3c55bb861b02 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 Xxx_ReadData은(는) 구성 매개변수 DcmDspDataUsePort이(가) USE_DATA_SYNCH_CLIENT_SERVER(으)로 설정되어 있을 때 애플리케이션에 DID 또는 PID의 현재 데이터 값을 요청합니다 [SWS_Dcm_00793]. 인터페이스는 헤더 Dcm_Externals.h을(를) 통해 제공되며 서비스 ID 0x34을(를) 가집니다 [SWS_Dcm_00793]. 호출된 애플리케이션은 요청된 페이로드를 전달받은 버퍼 Data에 직접 복사합니다 [SWS_Dcm_00793].

반환값과 관련하여, 호출은 예외 없이 E_OK을(를) 반환하도록 규정되어 있습니다 [SWS_Dcm_00793]. 이 서명에 대해 특정 오류 코드, 부정 응답 또는 DET/DEM 알림은 명시되어 있지 않습니다. 해석: 비동기 변형 [SWS_Dcm_91005]과(와) 달리 부정 응답 코드(NRC)를 위한 매개변수 ErrorCode도, E_NOT_OK 또는 DCM_E_PENDING와(과) 같은 반환값도 존재하지 않으므로, 이 인터페이스 레벨에서는 데이터 제공 실패가 아마도 상정되어 있지 않은 것으로 보입니다. 질문 Q-adcf0171ecfd37c4 (열림)

동시성 및 경계 조건과 관련하여, 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있으며 완전히 동기식으로 동작합니다 [SWS_Dcm_00793]. 진단 요청과의 상호 작용은 여러 시나리오에서 수행됩니다:

  • 가용성 PID가 아닌 PID를 포함한 OBD 서비스 $01 요청을 수신할 때, DCM은 응답 값을 수집하기 위해 PID의 모든 데이터에 대해 각각 구성된 Xxx_ReadData 함수를 호출합니다 [SWS_Dcm_00408].
  • 가용성 식별자가 아닌 식별자를 포함한 서비스 0x22(ReadDataByIdentifier)의 UDS 요청 시, DCM은 OBDDataIdentifier [SWS_Dcm_01380] 및 OBDInfoTypeDataIdentifier [SWS_Dcm_01389]의 모든 데이터에 대해 함수들을 호출합니다.
  • 반면에 비동기 동작이 필요한 경우에는 [SWS_Dcm_91006] 또는 [SWS_Dcm_91005]에 따른 OpStatus이(가) 포함된 별도의 서명이 적용됩니다.

이 텍스트는 AI에 의해 생성되었으며 R20-11 릴리스의 사양만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ReadData [SWS_Dcm_91006] 📄 PDF

Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7c21ae7ad0af 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Xxx_ReadData은(는) 매개변수 DcmDspDataUsePort이(가) USE_DATA_ASYNCH_CLIENT_SERVER(으)로 구성된 경우([SWS_Dcm_91006]), 애플리케이션으로부터 DID 또는 PID의 데이터 값을 비동기식으로 조회하는 역할을 합니다. 이는 헤더 파일 Dcm_Externals.h을(를) 통해 선언됩니다([SWS_Dcm_91006]).

호출 시 매개변수 OpStatus(타입 Dcm_OpStatusType)은(는) 진행 중인 작업의 진행 상태를 제어하며, 포인터 Data(타입 uint8*)을(를) 통해서는 요청된 데이터를 복사할 출력 버퍼가 전달됩니다([SWS_Dcm_91006]). 반환값으로는 성공적으로 완료된 경우 E_OK, 처리가 계속 진행 중이며 완료를 위해 추가 호출이 필요한 경우 DCM_E_PENDING이(가) 정의되어 있습니다([SWS_Dcm_91006]).

DCM 모듈은 이 함수를 다음 진단 시퀀스에 통합합니다:

  • OBD Service $01을 수신할 때 DCM은 구성된 Xxx_ReadData 함수들을 통해 현재 PID 값(가용성 PID 제외)을 읽어옵니다([SWS_Dcm_00408]).
  • UDS Service 0x22(ReadDataByIdentifier)의 경우 DCM은 OBDDataIdentifier([SWS_Dcm_01380]) 및 OBDInfoTypeDataIdentifier([SWS_Dcm_01389])에 대해 함수를 호출합니다.

실행과 관련하여 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있습니다([SWS_Dcm_91006]). 동기식 인터페이스([SWS_Dcm_00793]) 또는 추가 ErrorCode 매개변수가 있는 비동기 변형([SWS_Dcm_91005])과 달리, 이 함수 형태는 부정 응답 코드의 직접적인 반환을 규정하지 않습니다.

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I3)

함수 Xxx_ReadData [SWS_Dcm_91005] 📄 PDF

Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 85898fb6f53f 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Xxx_ReadData은(는) 구성 매개변수 DcmDspDataUsePort이(가) USE_DATA_ASYNCH_CLIENT_SERVER(으)로 설정된 경우 애플리케이션으로부터 DID 또는 PID의 데이터 값을 비동기식으로 요청합니다[SWS_Dcm_91005]. 함수 선언은 인터페이스 파일 Dcm_Externals.h을(를) 통해 제공됩니다[SWS_Dcm_91005].

이 인터페이스는 다음과 같은 호출 및 실행 특성을 갖습니다:

  • 시맨틱 및 매개변수: 입력 매개변수 OpStatus은(는) 진행 중인 연산의 진행 상태를 제어합니다[SWS_Dcm_91005]. 성공적으로 완료되면 요청된 페이로드가 출력 버퍼 Data(으)로 복사되고 E_OK이(가) 반환됩니다[SWS_Dcm_91005]. 애플리케이션에 추가 처리 시간이 필요한 경우 DCM_E_PENDING을(를) 시그널링하며, 이후 후속 조치가 필요합니다[SWS_Dcm_91005].
  • 오류 처리: 연산이 실패하고 E_NOT_OK을(를) 반환하면, DCM 모듈은 출력 매개변수 ErrorCode을(를) 평가하여 해당 NRC 코드와 함께 부정 진단 응답을 전송합니다[SWS_Dcm_91005].
  • 동시성: 이 함수는 비재진입(non reentrant)(Non Reentrant)으로 정의됩니다[SWS_Dcm_91005]. 해석: 처리가 보류 중일 때의 반복적인 호출은 DCM 메인 처리의 주기 내에서 순차적으로 수행될 것으로 보입니다. 질문 Q-541226d5f242f7c2 (열림)
  • 상호작용: DCM 모듈은 비가용성 PID에 대한 OBD Service $01 요청 시 [SWS_Dcm_00408]뿐만 아니라 OBDDataIdentifier [SWS_Dcm_01380] 및 OBDInfoTypeDataIdentifier [SWS_Dcm_01389]에 대한 UDS Service ReadDataByIdentifier(0x22)에서도 이 함수를 호출합니다. 동기 변형 [SWS_Dcm_00793] 또는 NRC 매개변수가 없는 비동기 인터페이스 [SWS_Dcm_91006]과(와) 비교하여 이 시그니처는 구체적인 부정 오류 전송을 가능하게 합니다.

이 텍스트는 AI에 의해 작성되었으며 전적으로 AUTOSAR 릴리스 R20-11의 명세 요구사항을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I3)

함수 Xxx_WriteData [SWS_Dcm_00794] 📄 PDF

Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a454be11e891 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

Xxx_WriteData 함수는 애플리케이션에 DID(Data Identifier) 데이터 값 쓰기를 요청하기 위해 Diagnostic Communication Manager(DCM)에 의해 호출됩니다([SWS_Dcm_00794]). 선언은 헤더 Dcm_Externals.h를 통해 제공됩니다. 호출은 서비스 ID 0x51 아래에서 동기식으로 수행됩니다([SWS_Dcm_00794]).

매개변수 및 반환값:

  • Data (in): 기록할 페이로드가 포함된 버퍼에 대한 포인터([SWS_Dcm_00794]).
  • ErrorCode (out): 실패 시 부정 진단 코드(NRC)를 입력해야 하는 변수에 대한 포인터([SWS_Dcm_00794]).
  • 반환값(Std_ReturnType): E_OK은 쓰기 성공을, E_NOT_OK는 작업 실패를 나타냅니다([SWS_Dcm_00794]).

오류 처리

함수가 E_NOT_OK을 반환하면 DCM 모듈은 매개변수 ErrorCode을 읽어 이 NRC 코드와 함께 부정 진단 응답을 전송합니다([SWS_Dcm_00794]).

동시성 및 제약사항

이 함수는 재진입 불가능(Non Reentrant)으로 명시되어 있으며([SWS_Dcm_00794]) 동시에 실행되어서는 안 됩니다.

상호 작용

길이 매개변수가 존재하지 않으므로, 이 변형은 고정 데이터 길이를 갖는 DID를 위한 것으로 추정됩니다. 질문 Q-ebc074ac1cb66aaa (열림) 가변 길이를 갖는 DID의 경우 AUTOSAR는 매개변수 DataLength을 갖는 동기 서명을 제공합니다([SWS_Dcm_91007]). 또한 장시간 실행되는 프로세스의 경우 고정 데이터 길이([SWS_Dcm_91008]) 및 가변 길이 매개변수([SWS_Dcm_91009]) 모두에서 OpStatus 및 가능한 DCM_E_PENDING 반환을 갖는 비동기 변형이 존재합니다.

이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_WriteData [SWS_Dcm_91007] 📄 PDF

Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 33408eaf87e7 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜백 함수 Xxx_WriteData은(는) 데이터 식별자(DID)의 데이터 값을 쓰도록 애플리케이션에 요청하는 역할을 합니다 [SWS_Dcm_91007]. 이 인터페이스는 헤더 Dcm_Externals.h을(를) 통해 선언되며 서비스 ID 0x52을(를) 가집니다 [SWS_Dcm_91007]. 호출은 동기식으로 수행되며 재진입 불가(Non Reentrant)로 명시되어 있으므로, 동일한 함수에 대한 동시 호출이 발생해서는 안 됩니다 [SWS_Dcm_91007].

매개변수로 함수는 기록할 유효 데이터가 포함된 버퍼 Data 및 바이트 단위의 길이 정보가 포함된 DataLength을(를) 수신합니다 [SWS_Dcm_91007]. 반환값으로는 성공적인 실행 시 E_OK, 오류 발생 시 E_NOT_OK을(를) 갖는 Std_ReturnType 타입을 제공합니다 [SWS_Dcm_91007]. 작업이 실패하고 E_NOT_OK을(를) 반환하는 경우, DCM 모듈은 진단 테스터에 부정 응답을 전송해야 합니다. 이때 부정 응답 코드(NRC)는 포인터 매개변수 ErrorCode을(를) 통해 전달된 값과 일치합니다 [SWS_Dcm_91007].

전체 시스템에서 [SWS_Dcm_91007]은(는) 명시적인 길이 정보를 갖는 DID를 위한 동기식 변형을 나타냅니다. 이에 더해 [SWS_Dcm_00794](서비스 ID 0x51)을(를) 통해 매개변수 DataLength이(가) 없는 동기식 변형이 존재합니다. 더 긴 쓰기 프로세스의 경우 표준은 비동기 인터페이스를 규정합니다: 길이 정보가 없는 [SWS_Dcm_91008](서비스 ID 0x35) 및 DataLength이(가) 포함된 [SWS_Dcm_91009](서비스 ID 0x3e). 두 비동기 함수 모두 OpStatus을(를) 통해 제어되며 E_OK 및 E_NOT_OK 외에도 DCM_E_PENDING을(를) 반환할 수 있습니다 [SWS_Dcm_91008] [SWS_Dcm_91009].

이 사용 지침은 AUTOSAR Classic Release R20-11 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_WriteData [SWS_Dcm_91008] 📄 PDF

Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 073fd835e70e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

함수 Xxx_WriteData은(는) Data Identifier(DID)의 데이터 값을 쓰도록 애플리케이션에 요청합니다 [SWS_Dcm_91008]. 헤더 파일 Dcm_Externals.h에 선언되어 있으며 서비스 ID 0x35을(를) 갖는 비동기 실행 시맨틱을 가집니다 [SWS_Dcm_91008].

매개변수와 반환값은 다음과 같이 구성됩니다 [SWS_Dcm_91008]:

  • Data (IN): 기록할 데이터가 포함된 버퍼를 가리키는 포인터.
  • OpStatus (IN): 비동기 호출 시퀀스를 제어하기 위한 현재 작업의 상태.
  • ErrorCode (OUT): 오류 발생 시 설정되는 오류 코드(NRC)를 가리키는 포인터.
  • 반환값 (Std_ReturnType): E_OK은(는) 성공적인 쓰기 작업을 확인하고, E_NOT_OK은(는) 실패를 알리며, DCM_E_PENDING은(는) 작업이 아직 진행 중이고 완료를 위해 추가 호출이 필요함을 나타냅니다.

오류 처리 및 동시성

호출이 E_NOT_OK 값을 반환하면, DCM 모듈은 출력 매개변수 ErrorCode에 전달된 NRC 값과 함께 부정 응답을 전송해야 합니다 [SWS_Dcm_91008]. 이 함수는 재진입 불가로 명시되어 있으므로 [SWS_Dcm_91008], 동일한 인스턴스에 대한 동시 또는 중첩 호출은 허용되지 않습니다.

상호작용 및 변형

[SWS_Dcm_91008]에 따른 이 인터페이스는 별도의 길이 매개변수가 없는 비동기 쓰기 액세스를 다룹니다. AUTOSAR는 이와 관련하여 DCM 내의 관련 변형들을 정의합니다: 길이 정보가 없는 동기식 서명 [SWS_Dcm_00794] 및 동기식 [SWS_Dcm_91007] 및 비동기식 시퀀스 [SWS_Dcm_91009]를 위한 추가 매개변수 DataLength이(가) 있는 서명.

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 AI 시스템을 통해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_WriteData [SWS_Dcm_91009] 📄 PDF

Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9f5cd6e5b7ea 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

함수 Xxx_WriteData은(는) Data Identifier(DID)의 데이터 값을 쓰도록 애플리케이션에 요청합니다 [SWS_Dcm_91009]. 이는 헤더 파일 Dcm_Externals.h을(를) 통해 선언되며 서비스 ID 0x3e을(를) 가집니다 [SWS_Dcm_91009]. 실행은 비동기식(Asynchronous)으로 수행되며, 이를 위해 다음 매개변수들이 전달됩니다:

  • Data (in): 기록할 유효 데이터가 포함된 버퍼를 가리키는 포인터 [SWS_Dcm_91009].
  • DataLength (in): 기록할 데이터의 길이(바이트 단위) [SWS_Dcm_91009].
  • OpStatus (in): 비동기 처리 진행을 제어하기 위한 작업 상태(Dcm_OpStatusType) [SWS_Dcm_91009].
  • ErrorCode (out): 오류 발생 시 부정 응답 코드(NRC)를 수신하기 위한 포인터 [SWS_Dcm_91009].

Std_ReturnType 타입의 반환값으로는 E_OK(쓰기 요청 성공적으로 완료됨), E_NOT_OK(요청 실패) 및 DCM_E_PENDING이(가) 정의되어 있습니다 [SWS_Dcm_91009]. DCM_E_PENDING 상태는 프로세스가 아직 완료되지 않았으며 완료를 위해 후속 호출이 추가로 필요함을 나타냅니다 [SWS_Dcm_91009]. 해석: DCM은 DCM_E_PENDING 반환 시 최종 결과가 나올 때까지 계속 진행 중인 OpStatus과(와) 함께 함수를 주기적으로 다시 호출할 것으로 보입니다. 질문 Q-fdbd734dab052f5c (열림)

오류 처리 및 동시성

함수가 E_NOT_OK 값을 반환하면 매개변수 ErrorCode을(를) 통해 해당 오류 코드가 제공되어야 하며, DCM 모듈은 이에 따라 이 NRC 값과 함께 부정 응답을 전송합니다 [SWS_Dcm_91009]. 이 인터페이스의 페이로드에는 특정 DET 또는 DEM 알림이 정의되어 있지 않습니다. 동시성과 관련하여 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있습니다 [SWS_Dcm_91009].

상호 작용 및 인터페이스 변형

서명 [SWS_Dcm_91009]은(는) 명시적인 길이 정보를 포함하는 비동기 쓰기 액세스를 다룹니다. DCM에는 Xxx_WriteData의 추가 변형이 존재합니다:

  • 길이 정보가 없는 동기식 실행: [SWS_Dcm_00794] (서비스 ID 0x51).
  • 길이 정보가 있는 동기식 실행: [SWS_Dcm_91007] (서비스 ID 0x52).
  • 길이 정보가 없는 비동기식 실행: [SWS_Dcm_91008] (서비스 ID 0x35).

참고: 이 사용 지침은 Release R20-11용 AUTOSAR Classic 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ReadDataLength [SWS_Dcm_00796] 📄 PDF

Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);

This function requests the application to return the data length in byte of a Data.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 06fc1b2bd018 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

DCM 모듈은 함수 Xxx_ReadDataLength을 사용하여 애플리케이션이 데이터의 바이트 단위 데이터 길이를 확인하여 반환하도록 요청합니다 [SWS_Dcm_00796]. 이 인터페이스는 헤더 Dcm_Externals.h에 선언되어 있으며 서비스 ID 0x36을 갖습니다 [SWS_Dcm_00796]. 쿼리는 동기적으로 실행됩니다 [SWS_Dcm_00796]. uint16* 유형의 출력 매개변수 DataLength을 통해 애플리케이션은 읽을 데이터의 바이트 길이를 DCM에 전달합니다 [SWS_Dcm_00796]. 입력 또는 입출력 매개변수는 정의되어 있지 않습니다 [SWS_Dcm_00796]. 반환값으로 함수는 항상 Std_ReturnType 유형의 E_OK을 반환합니다 [SWS_Dcm_00796].

동시성 및 제약사항

이 인터페이스는 재진입 불가능(Non Reentrant)한 것으로 명시되어 있습니다 [SWS_Dcm_00796]. 이 함수는 동기적으로 작동하고 사양에 따라 항상 E_OK를 보고하므로, 이 호출에 대해 특정 오류 코드나 다른 상태 반환값은 제공되지 않습니다 [SWS_Dcm_00796].

상호 작용

동기 함수 외에도 동일한 이름을 가진 서비스 ID 0x4c의 비동기 변형이 존재하며, 이 역시 Dcm_Externals.h을 통해 제공됩니다 [SWS_Dcm_91010]. 동기 버전 [SWS_Dcm_00796]은 작업 상태 없이 작동하지만, 비동기 대응 항목은 Dcm_OpStatusType 유형의 입력 매개변수 OpStatus를 요구합니다 [SWS_Dcm_91010]. 또한 비동기 인터페이스는 요청이 아직 완료되지 않아 완료를 위해 추가 호출이 필요한 경우 E_OK 외에 반환값 DCM_E_PENDING을 반환할 수 있습니다 [SWS_Dcm_91010].

이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 각 AUTOSAR 사양의 요구사항이 구속력을 갖습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Xxx_ReadDataLength [SWS_Dcm_91010] 📄 PDF

Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);

This function requests the application to return the data length in byte of a Data.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 33edca28ea35 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 [SWS_Dcm_91010](서비스 ID 0x4c)은 데이터 요소의 데이터 길이를 바이트 단위로 확인하도록 애플리케이션에 요청합니다. 이 함수는 헤더 Dcm_Externals.h에 선언되어 있으며, Diagnostic Communication Manager(DCM)가 진단 데이터를 유연하게 길이 조회하는 데 사용됩니다.

사용법 및 의미론

호출 시 DCM 모듈은 타입 Dcm_OpStatusType의 입력 매개변수 OpStatus을 통해 현재 진행 상태를 전달합니다([SWS_Dcm_91010]). 애플리케이션은 조회 결과를 출력 매개변수 DataLength(타입 uint16*)에 기록합니다. 데이터 길이를 즉시 사용할 수 없는 경우, 함수는 반환값 DCM_E_PENDING를 통해 처리가 진행 중이며 추가 호출이 필요함을 알립니다([SWS_Dcm_91010]). 결과가 준비되는 즉시 애플리케이션은 E_OK로 완료를 다시 보고합니다.

동시성 및 제약사항

사양에 따르면 이 함수는 재진입 불가([SWS_Dcm_91010])로 분류되므로, DCM에 의한 동시 호출은 배제되어야 합니다. 사양에서 DCM_E_PENDING 이외의 특정 오류 값을 규정하지 않으므로, DCM은 E_OK 반환 시 항상 유효하게 설정된 바이트 크기를 가정한 것으로 추정됩니다. 질문 Q-e7ecd3a518e2cbcb (열림)

상호 작용

비동기 인터페이스 [SWS_Dcm_91010]은 관련된 동기 변형 [SWS_Dcm_00796](서비스 ID 0x36)과 구별됩니다. 후자는 매개변수 OpStatus을 갖지 않으며 동기식으로 실행되고 항상 즉시 E_OK로 길이를 반환합니다. 반면 [SWS_Dcm_91010]는 애플리케이션이 시간이 많이 걸리는 계산을 여러 호출 주기에 걸쳐 비동기식으로 분산할 수 있도록 합니다.

이 텍스트는 AUTOSAR 명세를 바탕으로 AI에 의해 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ConditionCheckRead [SWS_Dcm_00797] 📄 PDF

Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application if the conditions to read the Data are correct.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: de67913a1de3 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 콜아웃 함수 Xxx_ConditionCheckRead은 헤더 파일 Dcm_Externals.h을 통해 제공되며, 진단 데이터를 판독하기 위한 조건이 충족되었는지 애플리케이션에 질의하는 역할을 합니다[SWS_Dcm_00797].

이 인터페이스는 입력 매개변수가 없으며 Std_ReturnType 타입의 반환값을 통해 검사 상태를 알립니다[SWS_Dcm_00797]:

  • E_OK: 검사가 성공했으며 데이터를 읽기 위한 조건이 충족되었습니다[SWS_Dcm_00797].
  • E_NOT_OK: 검사에 실패했으며 판독이 허용되지 않습니다[SWS_Dcm_00797].

함수가 E_NOT_OK을 반환하면 DCM 모듈은 애플리케이션이 출력 매개변수 ErrorCode(타입 Dcm_NegativeResponseCodeType*)을 통해 전달한 오류 코드를 포함하는 부정 응답(Negative Response)을 전송합니다[SWS_Dcm_00797].

동시성과 관련하여 이 함수는 재진입이 불가능한 것(Non Reentrant)으로 명시되어 있으며 서비스 ID 0x49로 동기식으로 실행됩니다[SWS_Dcm_00797]. 따라서 동기식 DCM 호출자의 지연을 방지하기 위해 애플리케이션 측 검사는 블로킹 대기 시간 없이 즉시 평가될 것으로 보입니다. 질문 Q-ada29c78c29d961e (열림)

이러한 동기 작업과 구별하여 [SWS_Dcm_91011]은 서비스 ID 0x37 아래에 비동기 변형을 정의합니다. 이는 추가로 입력 매개변수 OpStatus(타입 Dcm_OpStatusType)를 사용하며, 검사를 완료하기 위해 후속 단계가 필요한 경우 E_OK 및 E_NOT_OK 외에도 DCM_E_PENDING을 반환할 수 있습니다[SWS_Dcm_91011].

이 사용 지침은 AUTOSAR 사양 R20-11을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Xxx_ConditionCheckRead [SWS_Dcm_91011] 📄 PDF

Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application if the conditions to read the Data are correct.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: fc286a7e5706 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

함수 Xxx_ConditionCheckRead은 헤더 파일 Dcm_Externals.h을 통해 제공되며, 진단 데이터를 읽기 위한 조건이 충족되었는지 애플리케이션 소프트웨어에 조회하는 데 사용됩니다[SWS_Dcm_91011]. 실행은 서비스 ID 0x37 하에서 비동기식으로 이루어집니다[SWS_Dcm_91011]. 입력 매개변수 OpStatus(타입 Dcm_OpStatusType)를 통해 진행 중인 작업의 현재 상태가 전달됩니다[SWS_Dcm_91011].

반환값 및 오류 처리

함수는 반환값으로 Std_ReturnType 타입의 상태를 반환합니다 [SWS_Dcm_91011]:

  • E_OK: 요청이 성공적이었으며 읽기 조건이 충족되었습니다[SWS_Dcm_91011].
  • E_NOT_OK: 검사에 실패했습니다[SWS_Dcm_91011]. 이 경우 애플리케이션은 출력 매개변수 ErrorCode를 통해 타입 Dcm_NegativeResponseCodeType의 부정 응답 코드(NRC)를 설정해야 합니다. 그러면 DCM 모듈은 이 NRC를 포함한 부정 응답을 전송합니다[SWS_Dcm_91011].
  • DCM_E_PENDING: 검사가 아직 완료되지 않아 완료를 위해 추가 호출이 필요합니다[SWS_Dcm_91011].

동시성 및 구별

이 인터페이스는 재진입 불가(Non Reentrant)로 명시되어 있습니다[SWS_Dcm_91011]. 이 비동기 변형과 달리 [SWS_Dcm_00797]는 서비스 ID 0x49 하에서 OpStatus 매개변수가 없고 오직 E_OK 또는 E_NOT_OK만을 반환하는 동기 서명을 정의합니다[SWS_Dcm_00797].

이 사용 지침은 AUTOSAR R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_GetScalingInformation [SWS_Dcm_91012] 📄 PDF

Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application for the scaling information of a Data.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9208fcf4cae3 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

비동기 인터페이스 Xxx_GetScalingInformation은 헤더 Dcm_Externals.h을 통해 제공되며, 애플리케이션으로부터 데이터 요소의 스케일링 정보를 요청하는 데 사용됩니다[SWS_Dcm_91012]. DCM 모듈은 UDS 서비스 ReadScalingByIdentifier에 대한 진단 요청이 수신되는 즉시, 요청된 DID에 대해 구성된 각 데이터에 대해 이 함수를 호출합니다[SWS_Dcm_00394].

매개변수 및 반환값

이 함수는 다음 매개변수와 시맨틱을 정의합니다[SWS_Dcm_91012]:

  • OpStatus(in): 진행 중인 작업의 현재 상태를 전달합니다.
  • ScalingInfo(out): 스케일링 정보를 수신하기 위한 버퍼(scalingByte 및 scalingByteExtension).
  • ErrorCode(out): 작업이 실패할 경우 부정 응답 코드를 수신합니다.

반환값으로는 성공적인 완료 시 E_OK, 오류 시 E_NOT_OK, 그리고 처리가 아직 완료되지 않아 완료를 위해 추가 호출이 필요한 경우 DCM_E_PENDING가 명시되어 있습니다[SWS_Dcm_91012].

오류 처리 및 동시성

호출이 E_NOT_OK을 반환하면 DCM 모듈은 출력 매개변수 ErrorCode을 통해 제공된 값에 해당하는 NRC로 부정 응답을 전송해야 합니다[SWS_Dcm_91012]. 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있습니다[SWS_Dcm_91012]. 해석: OpStatus를 포함한 이 비동기 함수가 호출되는지, 아니면 대안으로 명시된 OpStatus 없는 동기 변형[SWS_Dcm_00798]이 호출되는지는 해당 DID의 구성에 따라 달라질 것으로 추정됩니다. 질문 Q-c4054a798f17a52c (열림)

이 텍스트는 AI에 의해 작성되었으며, 정보의 정확성과 완전성은 보장되지 않습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ReturnControlToECU [SWS_Dcm_01285] 📄 PDF

Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to return control to ECU of an IOControl.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e19d5f1a8714 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

Xxx_ReturnControlToECU 함수는 헤더 Dcm_Externals.h을 통해 제공되며, 입출력 제어(IOControl)에 대한 제어권을 제어기(ECU)로 반환하도록 애플리케이션에 요청합니다 [SWS_Dcm_01285]. 호출은 동기식으로 이루어지며 재진입 불가로 명시되어 있습니다 [SWS_Dcm_01285].

매개변수 및 변형

함수 시그니처는 외부 제어 마스크의 구성에 따라 달라집니다 [SWS_Dcm_01285]:

  • DcmDspDidControlMask이 DCM_CONTROLMASK_EXTERNAL로 설정되고 마스크 크기가 최대 4바이트(DcmDspDidControlMaskSize <= 0x04)인 경우, Dcm_ControlMask_{DID}Type 타입의 입력 매개변수 controlMask이 전달됩니다 [SWS_Dcm_01285].
  • 마스크 크기가 5바이트 이상(DcmDspDidControlMaskSize >= 0x05)인 경우, 대신 uint8* 타입의 포인터 controlMask2이 사용됩니다 [SWS_Dcm_01285].
  • 오류 발생 시 함수는 출력 매개변수 ErrorCode(타입 Dcm_NegativeResponseCodeType*)을 통해 특정 부정 응답 코드(NRC)를 DCM에 전달합니다 [SWS_Dcm_01285].

반환값 및 오류 처리

이 함수는 Std_ReturnType 상태를 반환합니다. 제어권 반환이 성공하면 애플리케이션은 E_OK을 보고합니다 [SWS_Dcm_01285]. 작업이 실패하면 함수는 E_NOT_OK을 반환해야 하며, 이 경우 DCM 모듈은 ErrorCode에 저장된 NRC를 포함하는 부정 응답을 진단 테스터에 전송합니다 [SWS_Dcm_01285].

상호작용 및 호출 컨텍스트

DCM은 DcmDspDataUsePort이 USE_DATA_SYNCH_FNC, USE_DATA_ASYNCH_FNC 또는 USE_DATA_ASYNCH_FNC_ERROR로 구성된 경우 구성된 함수 인터페이스(매개변수 DcmDspDataReturnControlToEcuFnc)를 호출합니다 [SWS_Dcm_01435]. 일반적인 진단 동작 외에도 DCM은 활성 IO 제어 시퀀스를 중단해야 할 때 특히 Xxx_ReturnControlToECU을 호출합니다 [SWS_Dcm_01435].

이 사용 지침은 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Xxx_ResetToDefault [SWS_Dcm_01286] 📄 PDF

Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to reset an IOControl to default value.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9813f0093a24 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 인터페이스 Xxx_ResetToDefault은 헤더 Dcm_Externals.h을 통해 제공되며, I/O 제어(IOControl)를 기본값으로 리셋하도록 애플리케이션에 요청하는 데 사용됩니다[SWS_Dcm_01286].

호출 컨텍스트 및 매개변수

이 함수는 서비스 ID 0x4d을 가지며, 동기식으로 동작하고 재진입 불가로 명시되어 있습니다[SWS_Dcm_01286]. 구성된 외부 제어 마스크의 크기에 따라 두 가지 대안적 입력 매개변수 중 하나가 전달됩니다:

  • controlMask(타입 Dcm_ControlMask_{DID}Type)은 DcmDspDataUsePort가 USE_DATA_SYNCH_FNC으로 구성되고, DcmDspDidControlMask가 DCM_CONTROLMASK_EXTERNAL로 설정되며, DcmDspDidControlMaskSize이 최대 0x04인 경우에 사용됩니다[SWS_Dcm_01286].
  • controlMask2(타입 uint8*)은 동일한 전제 조건 하에서 DcmDspDidControlMaskSize가 0x05 이상으로 구성된 경우에 사용됩니다[SWS_Dcm_01286].

반환값 및 오류 처리

리셋을 성공적으로 수행할 수 있었던 경우 함수는 E_OK을 반환합니다[SWS_Dcm_01286]. 작업이 실패하면 E_NOT_OK를 반환해야 합니다. 이 경우 애플리케이션은 출력 매개변수 ErrorCode(타입 Dcm_NegativeResponseCodeType*)에 해당 부정 응답 코드(NRC)를 할당하고, DCM 모듈은 이를 테스터에 부정 응답으로 전송합니다[SWS_Dcm_01286].

상호작용 및 구분

시스템이 USE_DATA_ASYNCH_FNC 또는 USE_DATA_ASYNCH_FNC_ERROR을 통한 비동기 인터페이스 처리를 위해 설계된 경우, 이 동기 함수 대신 추가 매개변수 OpStatus 및 서비스 ID 0x3c을 갖는 비동기 변형이 사용됩니다[SWS_Dcm_01314].

이 텍스트는 AI에 의해 생성되었으며 AUTOSAR Classic R20-11 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Xxx_ResetToDefault [SWS_Dcm_01314] 📄 PDF

Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to reset an IOControl to default value.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: bb8786261cbc 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

비동기 함수 [SWS_Dcm_01314]은 입출력 제어(IOControl)를 기본값으로 리셋하도록 애플리케이션에 요청합니다. 이 함수는 Dcm_Externals.h에 선언되어 있으며 서비스 ID 0x3c를 갖습니다. 매개변수 OpStatus을 통해 작업의 진행 상태가 제어됩니다. 처리가 아직 완료되지 않은 경우 함수는 DCM_E_PENDING를 반환하며, 성공적인 완료는 E_OK로 확인됩니다.

구성 및 마스크 크기(DcmDspDidControlMaskSize~4바이트 또는 5바이트 이상)에 따라 외부 마스킹 시 controlMask 또는 controlMask2가 추가로 전달됩니다[SWS_Dcm_01314]. 리셋에 실패하면 함수는 E_NOT_OK를 반환합니다. 이 경우 출력 매개변수 ErrorCode를 통해 부정 응답 코드(NRC)를 전달해야 하며, DCM 모듈은 이를 부정 응답으로 테스터에 전송합니다[SWS_Dcm_01314].

이 함수는 재진입 불가(Non Reentrant)로 명시되어 있습니다[SWS_Dcm_01314]. 이는 DcmDspDataUsePort이 USE_DATA_ASYNCH_FNC 또는 USE_DATA_ASYNCH_FNC_ERROR으로 설정된 경우에 사용됩니다. 동기식 인터페이스 구성(USE_DATA_SYNCH_FNC)의 경우 대안으로 OpStatus가 없는 동기식 변형이 존재합니다[SWS_Dcm_01286].

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR R20-11 사양 버전을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_FreezeCurrentStateManager [SWS_Dcm_01290] 📄 PDF

Std_ReturnType Xxx_FreezeCurrentState ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to freeze the current state of an IOControl.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 80356e7cc659 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 함수 Xxx_FreezeCurrentState(요소 카탈로그에는 Xxx_FreezeCurrentStateManager로 등재됨)은 애플리케이션에 입출력 제어(IOControl)의 현재 상태를 고정하도록 요청하는 역할을 합니다 [SWS_Dcm_01290]. 이 함수는 헤더 파일 Dcm_Externals.h을 통해 사용할 수 있으며 서비스 ID 0x4a를 갖습니다 AUTOSAR_SWS_DiagnosticCommunicationManager 279쪽. (해석: 접두사 Xxx은 해당 애플리케이션 모듈의 플레이스홀더를 나타내는 것으로 보입니다.) 질문 Q-f8c864cda732acc2 (열림)

인터페이스 매개변수는 외부 제어 마스크의 구성(DCM_CONTROLMASK_EXTERNAL의 DcmDspDidControlMask)에 따라 결정됩니다 [SWS_Dcm_01290]:

  • controlMask (입력, 타입 Dcm_ControlMask_{DID}Type): 마스크 크기 DcmDspDidControlMaskSize가 4바이트 이하(<= 0x04)로 구성된 경우 전달됩니다.
  • controlMask2 (입력, 타입 uint8*): 마스크 크기가 5바이트 이상(=> 0x05)인 경우 대신 사용됩니다.
  • ErrorCode (출력, 타입 Dcm_NegativeResponseCodeType*): 오류 발생 시 부정 응답 코드를 수신하기 위한 포인터입니다.

오류 처리 및 반환값

이 함수는 Std_ReturnType으로 성공적인 실행 시 E_OK을, 요청이 실패한 경우 E_NOT_OK를 반환합니다 [SWS_Dcm_01290]. 오류가 발생하여 E_NOT_OK이 반환되면 애플리케이션은 매개변수 ErrorCode에 특정 부정 응답 코드(NRC)를 입력해야 합니다. 그러면 DCM 모듈은 이 NRC 코드가 포함된 부정 진단 응답을 전송합니다 AUTOSAR_SWS_DiagnosticCommunicationManager 279쪽.

동시성 및 제약사항

이 작업은 재진입 불가(Non Reentrant)로 명시되어 있습니다 [SWS_Dcm_01290]. 호출자는 동일한 인스턴스에 대한 호출이 동시 중첩 없이 동기식으로 처리되도록 보장해야 합니다.

이 텍스트는 AI에 의해 작성되었으며 참고용으로 제공됩니다. AUTOSAR 사양이 구속력을 갖습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Xxx_FreezeCurrentStateManager [SWS_Dcm_01315] 📄 PDF

Std_ReturnType Xxx_FreezeCurrentState (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to freeze the current state of an IOControl.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 18f0c2b6db95 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

비동기 함수 Xxx_FreezeCurrentState은 응용 소프트웨어에 입출력 제어(IOControl)의 현재 상태 고정을 요청하기 위해 DCM 모듈에 의해 호출됩니다 [SWS_Dcm_01315]. 선언은 헤더 Dcm_Externals.h를 통해 제공됩니다 [SWS_Dcm_01315].

매개변수 및 제어 마스크

호출은 다음 매개변수와 함께 수행됩니다[SWS_Dcm_01315]:

  • OpStatus: 비동기 작업의 현재 상태를 전달합니다(Dcm_OpStatusType).
  • controlMask 및 controlMask2: 제어 마스크가 외부로 구성되고(DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL) 비동기 함수 인터페이스가 사용되는 경우, DCM은 DcmDspDidControlMaskSize에 따라 최대 4바이트까지는 controlMask 매개변수(Dcm_ControlMask_{DID}Type 타입)를 전달하고 5바이트부터는 포인터 controlMask2(uint8*)을 전달합니다.
  • ErrorCode: 오류 코드 반환을 위한 Dcm_NegativeResponseCodeType 포인터입니다.

반환값 및 오류 처리

이 함수는 Std_ReturnType 타입의 상태를 반환합니다[SWS_Dcm_01315]:

  • E_OK: 상태 고정이 성공적으로 완료되었습니다.
  • DCM_E_PENDING: 요청이 아직 처리 중이며 후속 공급이 필요합니다.
  • E_NOT_OK: 작업이 실패했습니다. 이 경우 DCM은 ErrorCode을 통해 설정된 NRC 값을 포함하는 부정 진단 응답을 전송합니다.

동시성

이 인터페이스는 재진입 불가(Non Reentrant)로 정의되어 있으므로 제어 인스턴스당 동기화된 처리가 필요합니다 [SWS_Dcm_01315].

이 텍스트는 AI에 의해 작성되었으며 편집 지침에 따라 큐레이팅되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ShortTermAdjustment [SWS_Dcm_00802] 📄 PDF

Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to adjust the IO signal.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 897170f9942c 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 Xxx_ShortTermAdjustment은 특정 I/O 신호를 일시적으로 조정하도록 애플리케이션에 요청합니다 [SWS_Dcm_00802]. 이는 헤더 Dcm_Externals.h를 통해 제공되며 서비스 ID 0x50을 갖습니다 [SWS_Dcm_00802].

포인터 ControlStateInfo을 통해 함수는 진단 요청의 매개변수 ControlOptionRecord로부터 제어 상태 정보를 수신합니다 InputOutputControlByIdentifier [SWS_Dcm_00802]. 외부 제어 마스크가 구성된 경우(DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL), DcmDspDidControlMaskSize에 따라 추가로 Dcm_ControlMask_{DID}Type 유형의 controlMask(최대 4바이트) 또는 uint8*로서 controlMask2(5바이트 이상)이 전달됩니다 [SWS_Dcm_00802].

작업은 반환값으로 Std_ReturnType을 제공합니다 [SWS_Dcm_00802]:

  • E_OK: I/O 신호의 조정이 성공적으로 실행되었습니다 [SWS_Dcm_00802].
  • E_NOT_OK: 조정에 실패했습니다 [SWS_Dcm_00802]. 이 경우 애플리케이션은 출력 매개변수 ErrorCode를 통해 특정 부정 응답 코드(Dcm_NegativeResponseCodeType)를 설정해야 하며, DCM 모듈은 이를 테스터에 대한 부정 진단 응답으로 다시 전송합니다 [SWS_Dcm_00802].

이 함수는 재진입 불가능(Non Reentrant)하며 동기적으로 호출됩니다 [SWS_Dcm_00802]. 이 동기 변형은 데이터 요소가 동기 함수 호출(DcmDspDataUsePort == USE_DATA_SYNCH_FNC)용으로 구성된 경우에 사용됩니다 [SWS_Dcm_00802]. 반면 비동기 구성 포트(USE_DATA_ASYNCH_FNC 또는 USE_DATA_ASYNCH_FNC_ERROR)의 경우 서비스 ID 0x55과 OpStatus 및 DataLength을 포함하는 확장된 매개변수 세트를 갖춘 비동기 변형이 존재합니다 [SWS_Dcm_01316].

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR R20-11을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ShortTermAdjustment [SWS_Dcm_01316] 📄 PDF

Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to adjust the IO signal.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: bd9ccbb93144 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 [SWS_Dcm_01316]은 Diagnostic Communication Manager(DCM)에 의해 호출되며 Dcm_Externals.h을 통해 제공됩니다. 이 함수는 진단 서비스 InputOutputControlByIdentifier의 프레임워크 내에서 IO 신호를 조정하도록 애플리케이션에 비동기식으로 요청합니다. 제어 데이터는 바이트 길이 DataLength가 추가된 포인터 ControlStateInfo(매개변수 ControlOptionRecord에서 유래)을 통해 전달됩니다. 동작 순서는 OpStatus을 통해 제어됩니다: 조정이 지속되는 동안 애플리케이션은 DCM_E_PENDING을 반환하며, 성공적으로 완료된 후에는 E_OK을 보고합니다.

변형 및 마스크 매개변수

제어 마스크가 외부에 구성된 경우(DCM_CONTROLMASK_EXTERNAL) 추가 매개변수가 전달됩니다[SWS_Dcm_01316]:

  • 마스크 크기가 4바이트 이하인 경우, 타입 Dcm_ControlMask_{DID}Type의 controlMask이 전달됩니다.
  • 마스크 크기가 5바이트 이상인 경우, 대신 controlMask2이 uint8에 대한 포인터로 전달됩니다.

오류 처리 및 동시성

신호 제어에 실패하면 함수는 E_NOT_OK을 반환하고 포인터 ErrorCode을 통해 부정 응답 코드(NRC)를 설정하며, DCM은 이를 부정 응답으로 전송합니다[SWS_Dcm_01316]. 이 함수는 재진입 불가로 명시되어 있습니다.

상호작용 및 구분

이 인터페이스는 DID 데이터 포트가 USE_DATA_ASYNCH_FNC 또는 USE_DATA_ASYNCH_FNC_ERROR로 구성되고 데이터 타입이 UINT8_DYN로 구성된 경우에 사용됩니다[SWS_Dcm_01316]. 이는 OpStatus와 DataLength을 모두 사용하지 않으며 정적 데이터 타입의 동기 포트용으로 지정된 동기 변형 [SWS_Dcm_00802]와 구별됩니다.

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI 큐레이션 어시스턴트에 의해 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_IsDidAvailable [SWS_Dcm_00803] 📄 PDF

Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);

This function requests if a specific DID is available within the range or not.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 71db369fb246 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Xxx_IsDidAvailable은 요청된 Diagnostic Identifier(DID)가 정의된 DID 범위 내에서 사용 가능한지 여부를 비동기적으로 확인하는 데 사용됩니다 [SWS_Dcm_00803]. 이는 헤더 Dcm_Externals.h를 통해 제공되며 서비스 ID 0x53을 갖습니다 [SWS_Dcm_00803].

사용법 및 매개변수

호출은 다음 매개변수와 함께 수행됩니다[SWS_Dcm_00803]:

  • DID (In): 쿼리할 DID의 식별자 값 [SWS_Dcm_00803].
  • OpStatus (In): 비동기 프로세스를 제어하기 위한 작업의 현재 상태 [SWS_Dcm_00803].
  • supported (Out): 해당 DID가 범위 내에서 사용 가능한지 여부를 나타내며, DCM_DID_SUPPORTED은 지원을 의미하고 DCM_DID_NOT_SUPPORTED는 미지원을 나타냅니다 [SWS_Dcm_00803].

비동기 의미론 및 반환값

이 함수는 비동기적으로 실행되므로 확인을 완료하는 데 여러 호출 단계가 필요할 수 있습니다 [SWS_Dcm_00803]. 반환값 DCM_E_PENDING은 요청이 아직 완료되지 않았으며 완료를 위해 추가 호출이 필요함을 나타냅니다 [SWS_Dcm_00803]. 검사가 완료되면 반환값 E_OK이 보고됩니다 [SWS_Dcm_00803] (해석: 아마도 E_OK가 쿼리를 완료하며, 그 후 매개변수 supported에 유효한 결과가 포함될 것으로 추정됩니다). 질문 Q-22c62d306a7ac4f1 (열림)

동시성 및 제약사항

이 인터페이스는 재진입 불가능(Non Reentrant)한 것으로 명시되어 있습니다 [SWS_Dcm_00803]. 따라서 동일한 인스턴스 내에서 동일하거나 다른 DID에 대한 병렬 호출은 허용되지 않습니다.

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR Classic R20-11의 사양 데이터만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ReadDidData [SWS_Dcm_00804] 📄 PDF

Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

This function requests to the application a data value of a DID

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8a35ced9ade2 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 매개변수 인터페이스

함수 Xxx_ReadDidData(서비스 ID 0x40)은 Dcm_Externals.h를 통해 사용할 수 있으며, 애플리케이션에 진단 식별자(DID)의 데이터 값을 요청합니다 [SWS_Dcm_00804]. 전달 및 피드백은 다음 매개변수를 통해 이루어집니다:

  • DID: 요청된 Data Identifier의 식별자 [SWS_Dcm_00804].
  • Data: 읽어온 유효 데이터를 복사해야 하는 버퍼에 대한 포인터 [SWS_Dcm_00804].
  • OpStatus: 현재 요청의 진행 상태 또는 작업 상태 [SWS_Dcm_00804].
  • DataLength: 읽을 데이터의 길이 [SWS_Dcm_00804].
  • ErrorCode: 부정 응답 코드(NRC)를 수신하기 위한 출력 매개변수 [SWS_Dcm_00804].

비동기 의미론 및 반환값

이 함수는 비동기(Asynchronous)로 정의되어 있으며 Std_ReturnType 타입의 상태를 반환합니다 [SWS_Dcm_00804]:

  • E_OK: 데이터 읽기에 성공했습니다 [SWS_Dcm_00804].
  • DCM_E_PENDING: 요청이 아직 완료되지 않았으며, 완료를 위해 추가 호출이 필요합니다 [SWS_Dcm_00804].
  • E_NOT_OK: 작업이 실패했습니다 [SWS_Dcm_00804].

오류 처리 및 동시성

애플리케이션이 Xxx_ReadDidData에 대해 반환값 E_NOT_OK을 반환하면, DCM 모듈은 매개변수 ErrorCode를 통해 설정된 NRC 코드를 포함하는 부정 응답을 진단 테스터로 전송합니다 [SWS_Dcm_00804]. 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있습니다 [SWS_Dcm_00804]. 해석: DCM_E_PENDING을 통한 비동기 처리로 인해 호출은 일반적으로 DCM의 주기적 태스크 컨텍스트에서 수행될 것으로 추정됩니다. 질문 Q-5e41e9fb7dc261b9 (열림)

이 사용 지침은 SWS_Dcm_00804의 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_WriteDidData [SWS_Dcm_00805] 📄 PDF

Std_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

This function requests the application to write a data value of a DID.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: da9c861c9607 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Xxx_WriteDidData은 애플리케이션에 DID의 데이터 값을 쓰도록 요청하기 위해 DCM 모듈에 의해 호출됩니다 [SWS_Dcm_00805]. 선언은 헤더 Dcm_Externals.h를 통해 제공됩니다 [SWS_Dcm_00805].

호출 및 시맨틱

호출은 비동기적으로 수행되며 재진입 불가(Non Reentrant)로 정의됩니다 [SWS_Dcm_00805]. 호출 시 다음 매개변수가 전달됩니다 [SWS_Dcm_00805]:

  • DID: 기록할 데이터 식별자의 ID.
  • Data: 쓸 데이터가 포함된 버퍼를 가리키는 포인터입니다.
  • OpStatus: 현재 작업의 상태.
  • DataLength: 기록할 데이터의 바이트 단위 길이.
  • ErrorCode: 부정 응답 코드(NRC)를 위한 출력 매개변수.

반환값 및 오류 처리

반환값으로 함수는 다음과 같은 의미를 가진 Std_ReturnType을 반환합니다 [SWS_Dcm_00805]:

  • E_OK: 쓰기 요청이 성공적으로 실행되었습니다.
  • DCM_E_PENDING: 작업이 아직 완료되지 않았으며 완료를 위해 추가 호출이 필요합니다.
  • E_NOT_OK: 작업이 실패했습니다. 이 경우 DCM 모듈은 출력 매개변수 ErrorCode로 전달된 NRC 값을 포함하는 부정 응답을 전송합니다.

이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ReadDidRangeDataLength [SWS_Dcm_01271] 📄 PDF

Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);

This function requests the application to return the data length of a DID Range.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c6168b2bb633 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

Xxx_ReadDidRangeDataLength 함수는 응용 소프트웨어에 DID 범위(DID Range)의 데이터 길이를 반환하도록 요청하는 역할을 합니다 [SWS_Dcm_01271]. 이 함수는 AUTOSAR 모듈 Dcm의 일부이며, 서비스 ID 0x5e을 갖고 헤더 파일 Dcm_Externals.h를 통해 제공됩니다 [SWS_Dcm_01271].

호출은 다음 인터페이스 매개변수를 통해 비동기 시맨틱(Asynchronous)으로 수행됩니다 [SWS_Dcm_01271]:

  • DID (IN, uint16): 요청된 DID 범위의 구체적인 데이터 식별자(Data ID value)를 나타냅니다 [SWS_Dcm_01271].
  • OpStatus (IN, Dcm_OpStatusType): 진행 중인 작업의 현재 처리 상태를 나타냅니다 [SWS_Dcm_01271].
  • DataLength (OUT, uint16*): 읽거나 쓸 데이터의 길이에 대한 포인터입니다 [SWS_Dcm_01271].

Std_ReturnType 타입의 반환값은 길이 조회의 결과를 알립니다 [SWS_Dcm_01271]:

  • E_OK: 요청이 성공적이었으며 확인된 길이를 사용할 수 있습니다 [SWS_Dcm_01271].
  • E_NOT_OK: 요청이 실패했습니다 [SWS_Dcm_01271].
  • DCM_E_PENDING: 실행이 아직 완료되지 않았으며 완료를 위한 추가 후속 호출이 필요합니다 [SWS_Dcm_01271].

동시성과 관련하여 인터페이스는 재진입 불가(Non Reentrant)로 정의되어 있습니다 [SWS_Dcm_01271].

AUTOSAR Classic R20-11의 DCM 사양을 기반으로 생성된 사용 지침입니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_GetInfotypeValueData [SWS_Dcm_91014] 📄 PDF

Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);

The function provides the data related to the requested Infotype.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e6074adc9b96 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

비동기 인터페이스 Xxx_GetInfotypeValueData은 OBD Service $09에 대한 진단 요청이 수신되고 요청된 InfoType이 가용성 InfoType(\"availability InfoType\")이 아닐 때 DCM 모듈에 의해 호출됩니다 [SWS_Dcm_00423]. 데이터를 제공하기 위해 DCM은 이 InfoType에 대해 구성된 모든 함수를 호출하고 그 값들을 Service $09에 대한 응답으로 결합합니다 [SWS_Dcm_00423]. 선언은 Dcm_Externals.h을 통해 제공됩니다 [SWS_Dcm_91014].

데이터의 전달 및 피드백은 정의된 버퍼 및 상태 매개변수 [SWS_Dcm_91014]을 통해 이루어집니다:

  • OpStatus (in): 진행 중인 작업의 현재 진행 상태를 나타냅니다.
  • DataValueBuffer (out): 특정 InfoType 페이로드 데이터를 수신하기 위한 버퍼입니다.
  • DataValueBufferSize (inout): 호출 시 쓸 수 있는 최대 버퍼 크기(바이트)를 포함하며, 호출된 함수에 의해 실제로 기록된 데이터 바이트 수로 채워집니다.

비동기 함수로서 성공적인 완료 시에는 E_OK을, 오류 시에는 E_NOT_OK을, 작업이 아직 완료되지 않아 완료를 위해 추가 호출이 필요한 경우에는 DCM_E_PENDING를 반환합니다 [SWS_Dcm_91014]. 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있으므로 동일한 함수에 대한 동시 호출이 발생해서는 안 됩니다 [SWS_Dcm_91014].

이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 공식 AUTOSAR 명세서가 기준이 됩니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_Start [SWS_Dcm_01203] 📄 PDF

Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️

This function requests to the application to start the execution of a routine.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 402aa4484a21 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

Xxx_Start 함수는 헤더 파일 Dcm_Externals.h을 통해 선언되며, 애플리케이션 소프트웨어에 진단 루틴의 실행을 시작하도록 요청합니다[SWS_Dcm_01203]. DCM 모듈은 하위 기능 startRoutine이 포함된 RoutineControl(0x31)용 UDS 서비스 요청이 수신되어 성공적으로 검증되었을 때[SWS_Dcm_00400], 또는 가용성 식별자가 아닌 OBDTestId가 포함된 RoutineControl 요청이 수신될 때[SWS_Dcm_01392] 이 함수를 호출합니다.

이 인터페이스는 고정 및 가변 데이터 형식을 지원하며 비동기식으로 동작합니다[SWS_Dcm_01203]:

  • 입력 매개변수: 고정 입력 신호 dataIn_1~dataIn_n 또는 바이트 필드 dataInVar를 통한 가변 데이터, 그리고 작업 상태 OpStatus[SWS_Dcm_01203].
  • 출력 매개변수: 고정 출력 신호 dataOut_1~dataOut_n 또는 가변 출력 데이터 dataOutVar, 그리고 부정 응답 메시지용 오류 코드 ErrorCode[SWS_Dcm_01203].
  • 길이 매개변수: 입출력 매개변수 currentDataLength은 가변 데이터 길이인 경우 dataInVar 또는 dataOutVar의 페이로드 바이트 수를 전달합니다[SWS_Dcm_01203].
  • 반환값: E_OK은 성공적인 시작을 확인하고, E_NOT_OK은 실패를 보고하며, DCM_E_PENDING는 아직 처리 단계가 진행 중임을 알리고, DCM_E_FORCE_RCRRP은 대기 응답(NRC 0x78)의 조기 전송을 요청합니다[SWS_Dcm_01203].

동시성과 관련하여 Xxx_Start은 재진입 불가(Non Reentrant)로 정의됩니다[SWS_Dcm_01203]. 반환값 DCM_E_PENDING을 갖는 비동기 시퀀스의 경우, DCM 모듈은 작업이 완료될 때까지 지속되는 OpStatus과 함께 이 함수를 주기적으로 다시 호출합니다[SWS_Dcm_01203].

작업이 E_OK으로 성공적으로 종료되면, DCM 모듈은 dataOut을 통해 제공된 데이터를 routineStatusRecord로 포함하여 긍정 UDS 응답을 반환합니다[SWS_Dcm_00401]. 실행이 E_NOT_OK으로 실패하면, DCM은 매개변수 ErrorCode에 지정된 NRC가 포함된 부정 응답을 전송합니다[SWS_Dcm_01203]. OBD 루틴의 맥락에서 E_OK 이외의 반환값은 NRC 0x22 전송을 초래합니다[SWS_Dcm_01394].

이 텍스트는 AI에 의해 생성되었으며 참고용입니다. 오직 AUTOSAR 규격만이 효력을 갖습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_StartConfirmation [SWS_Dcm_91016] 📄 PDF

Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function indicates the transmission of a response to a StartRoutine request

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7f9172ca4312 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

함수 Xxx_StartConfirmation은 [SWS_Dcm_91016]에 따라 이전 StartRoutine 요청에 대한 응답 전송을 확정적으로 나타냅니다. 이 인터페이스는 헤더 파일 Dcm_Externals.h에 선언되어 있으며 동기 실행 시맨틱([SWS_Dcm_91016])을 갖습니다. 유일한 입력 매개변수로 루틴 전송의 확인 상태를 설명하는 타입 Dcm_ConfirmationStatusType의 ConfirmationStatus가 전달됩니다. 사양에 따르면 추가적인 입력 및 출력 매개변수는 존재하지 않습니다([SWS_Dcm_91016]).

오류 처리 및 반환값

반환값으로 함수는 타입 Std_ReturnType의 상태 값을 반환합니다([SWS_Dcm_91016]). 여기서 값 E_OK는 요청의 성공적인 수행을 확인하는 반면, E_NOT_OK은 성공적이지 않은 처리를 알립니다. 특정 오류 코드나 Development Error Tracer(DET) 또는 Diagnostic Event Manager(DEM)로의 명시적 보고는 이 함수의 페이로드에 정의되어 있지 않습니다.

동시성 및 제약사항

동시성과 관련하여 Xxx_StartConfirmation은 재진입 불가(Non Reentrant)로 분류됩니다([SWS_Dcm_91016]). 이는 호출자가 경쟁적 또는 중복 실행을 엄격히 방지해야 함을 요구합니다. 해석: 이 함수는 전송 프로세스의 완료를 애플리케이션 측 루틴 구현에 알리기 위해 DCM에 의해 호출되는 것으로 추정됩니다. 질문 Q-be2dafd63bf2a9a5 (열림)

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR 표준 릴리스 R20-11을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_Stop [SWS_Dcm_01204] 📄 PDF

Std_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to stop the execution of a routine

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 250ef3c4dcf3 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

[SWS_Dcm_01204] 함수는 애플리케이션에서 실행 중인 진단 루틴의 실행을 종료하기 위해 DCM에 의해 호출됩니다. 호출은 필요한 사전 검사가 성공적으로 완료되는 즉시 stopRoutine 서브기능을 사용하는 UDS 서비스 RoutineControl (0x31)의 일부로 수행됩니다 [SWS_Dcm_00402]. 이 인터페이스는 서비스 ID 0x5c를 가지며 헤더 파일 Dcm_Externals.h을 통해 선언됩니다 [SWS_Dcm_01204].

매개변수 및 반환값

루틴의 구성에 따라 DCM은 고정 또는 가변 입력 데이터(dataIn_1~dataIn_n 또는 dataInVar) 및 출력 데이터를 위한 버퍼 참조(dataOut_1~dataOut_n 또는 dataOutVar)를 전달합니다 [SWS_Dcm_01204], [SWS_Dcm_00402]. 데이터 길이가 가변적인 경우 currentDataLength에 입력 또는 출력 데이터의 바이트 수가 포함됩니다 [SWS_Dcm_01204]. Std_ReturnType의 반환값으로는 다음이 정의되어 있습니다:

  • E_OK: 루틴이 성공적으로 종료됨; DCM은 생성된 출력 데이터를 routineStatusRecord로 포함하여 긍정 UDS 응답을 전송합니다 [SWS_Dcm_01204], [SWS_Dcm_00403].
  • E_NOT_OK: 루틴 중단 실패; DCM은 ErrorCode에 저장된 NRC를 포함하여 부정 UDS 응답을 전송합니다 [SWS_Dcm_01204].
  • DCM_E_PENDING: 작업이 아직 처리 중임; DCM은 완료를 위해 함수를 다시 호출합니다 [SWS_Dcm_01204].
  • DCM_E_FORCE_RCRRP: 애플리케이션이 DCM에 보류 응답(NRC 0x78)의 전송을 요청합니다 [SWS_Dcm_01204].

동시성 및 제약사항

이 작업은 비동기 및 재진입 불가(Non Reentrant)로 명시되어 있습니다 [SWS_Dcm_01204]. 실행 중 오류가 발생하면 애플리케이션은 매개변수 ErrorCode에 적절한 Dcm_NegativeResponseCodeType을 기록하고 E_NOT_OK을 반환해야 합니다 [SWS_Dcm_01204].

이 사용 지침은 AUTOSAR Classic R20-11 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Xxx_StopConfirmation [SWS_Dcm_91017] 📄 PDF

Std_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function indicates the transmission of a response to a StopRoutine request

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2f01639593ff 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 Xxx_StopConfirmation은 이전 StopRoutine 요청에 대한 응답 전송을 나타내는 데 사용됩니다[SWS_Dcm_91017]. 호출 시 시스템은 타입 Dcm_ConfirmationStatusType의 입력 매개변수 ConfirmationStatus을 통해 루틴 종료의 구체적인 확인 상태를 전달합니다[SWS_Dcm_91017]. 인터페이스는 반환값으로 타입 Std_ReturnType의 값을 반환합니다: 여기서 E_OK은 요청이 성공적으로 처리되었음을 나타내는 반면, E_NOT_OK은 성공적이지 않은 요청을 알립니다[SWS_Dcm_91017].

동시성 및 호출 조건과 관련하여 인터페이스는 재진입 불가(Non Reentrant)로 명시되어 있으며 서비스 ID 0x69을 갖습니다[SWS_Dcm_91017]. 선언은 헤더 파일 Dcm_Externals.h을 통해 제공됩니다[SWS_Dcm_91017]. 해석: Dcm_Externals.h를 통한 제공 및 사용자 정의 가능한 접두사 Xxx_으로 인해, 이 함수는 DCM 모듈에 의해 호출되고 애플리케이션별 소프트웨어 컴포넌트 또는 담당 루틴 핸들러에 의해 구현되는 것으로 추정됩니다. 질문 Q-743e69ff8cf92321 (열림)

개발 오류 관리(DET) 또는 Diagnostic Event Manager(DEM)에 대한 특정 오류 코드나 알림은 요구사항에 명시되어 있지 않습니다. 오류 발생 시의 동작은 처리가 성공적으로 완료되지 못한 경우 오류 값 E_NOT_OK을 반환하는 것으로 이 인터페이스 레벨에서 형식적으로 제한됩니다[SWS_Dcm_91017].

이 사용 지침은 AUTOSAR Classic R20-11 명세를 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_RequestResults [SWS_Dcm_91013] 📄 PDF

Std_ReturnType Xxx_RequestResults (Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType* dataIn_1, ... DcmDspRoutineSignalType* dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType* dataOut_1, ... DcmDspRoutineSignalType* dataOut_n ], [ uint8* dataOutVar ], [ uint16* variableDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application the result of a routine execution

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 684a0371b6d5 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

[SWS_Dcm_91013] 함수는 애플리케이션으로부터 루틴 실행 결과를 조회하기 위해 DCM 모듈에 의해 호출됩니다. 이는 모든 입력 측 검사가 성공적으로 완료되는 즉시 requestRoutineResults 서브기능을 사용하는 UDS 서비스 RoutineControl (0x31)의 일부로 수행됩니다 [SWS_Dcm_00404]. 이 인터페이스는 Dcm_Externals.h를 통해 사용할 수 있으며, 비동기식으로 작동하고 재진입 불가로 명시되어 있습니다 [SWS_Dcm_91013].

DCM 모듈은 OpStatus 매개변수를 통해 작업의 진행을 제어합니다. 이 함수는 고정 입력 데이터(dataIn_1~dataIn_n) 또는 routineControlOptionRecord로부터 파생되는 가변 데이터(dataInVar)를 수신합니다 [SWS_Dcm_00404]. 애플리케이션은 고정 출력 매개변수(dataOut_1~dataOut_n) 또는 가변 출력 버퍼(dataOutVar 및 variableDataLength)를 통해 결과 데이터를 DCM에 전달합니다 [SWS_Dcm_91013].

조회가 E_OK으로 성공적으로 완료되면 DCM 모듈은 구성 매개변수 DcmDspRequestRoutineResultsOut을 기반으로 출력 데이터를 routineStatusRecord로 결합하고 긍정 응답을 전송합니다 [SWS_Dcm_00405]. 작업이 아직 진행 중인 경우 애플리케이션은 후속 호출을 위해 DCM_E_PENDING를 반환하거나 임시 응답(NRC 0x78)을 전송하기 위해 DCM_E_FORCE_RCRRP를 반환할 수 있습니다 [SWS_Dcm_91013].

오류 발생 시 함수는 E_NOT_OK을 반환하고 ErrorCode을 해당 NRC 값으로 설정하며, 이에 따라 DCM 모듈은 해당 부정 응답을 전달합니다 [SWS_Dcm_91013]. 이 함수는 재진입이 불가능하므로 동일한 루틴에 대해 병렬로 호출할 수 없습니다 [SWS_Dcm_91013].

AUTOSAR R20-11을 기반으로 자동 생성된 사용 지침입니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_RequestResultsConfirmation [SWS_Dcm_91018] 📄 PDF

Std_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function indicates the transmission of a response to a RequestRoutineResults request

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 64d7d5ec22d3 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

함수 Xxx_RequestResultsConfirmation은 전송된 RequestRoutineResults 요청에 대한 진단 응답을 확인하는 데 사용됩니다[SWS_Dcm_91018]. 이 함수는 헤더 파일 Dcm_Externals.h에 선언되어 있으며 서비스 ID 0x70을 갖습니다[SWS_Dcm_91018]. 타입 Dcm_ConfirmationStatusType의 입력 매개변수 ConfirmationStatus를 통해 구현체는 루틴 결과 전송이 완료된 상태에 관한 정보를 수신합니다[SWS_Dcm_91018]. 호출은 동기식으로 실행되며 Std_ReturnType을 반환하는데, 여기서 E_OK는 성공적인 처리를 나타내고 E_NOT_OK은 실패를 알립니다[SWS_Dcm_91018].

동시성 및 제약사항

사양에 따르면 이 함수는 재진입 불가(Non Reentrant)로 분류됩니다[SWS_Dcm_91018]. 따라서 동일한 인스턴스에 대한 동시 호출은 발생하지 않아야 합니다. 해석: DCM 모듈에 의한 호출은 응답 확인의 맥락에서 순차적으로 이루어지므로, 이 함수는 차단 작업 없이 실행되어야 합니다. 질문 Q-935a06744e7b9af7 (열림)

오류 처리 및 상호 작용

이 호출에 대해 별도의 개발 오류(DET) 또는 프로덕션 오류(DEM)가 명시되어 있지 않으므로, 오류 처리는 반환값 E_NOT_OK으로 제한됩니다[SWS_Dcm_91018]. 해석: 이 함수는 루틴 결과 전송 후 사용자 레벨에서 진단 작업의 완료를 동기화하기 위한 DCM의 애플리케이션별 확인 엔드포인트(콜백) 역할을 합니다. 질문 Q-d3dd0142a30e1363 (열림)

이 텍스트는 AI에 의해 작성되었습니다. 명시된 내용은 AUTOSAR CP R20-11을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_RequestControl [SWS_Dcm_01338] 📄 PDF

Std_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);

Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output. This is typically used to implement OBD Service $08

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 751e2cd17257 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

Xxx_RequestControl 함수는 TID 특정 제어 기능을 실행하는 데 사용되며 일반적으로 OBD Service $08 구현에 적용됩니다([SWS_Dcm_01338]). DCM 모듈은 테스트 ID(TID)가 가용성 TID(\"availability TID\")가 아닌 OBD Service $08 요청이 수신되는 즉시 구성된 함수를 동기식으로 호출합니다([SWS_Dcm_00419]). 인터페이스의 선언은 헤더 파일 Dcm_Externals.h을 통해 제공됩니다([SWS_Dcm_01338]).

매개변수 및 버퍼 처리

  • InBuffer: 수신된 OBD 요청의 페이로드 데이터에 대한 포인터입니다. 이 입력 데이터의 바이트 수는 DCM 모듈에 구성된 크기와 정확히 일치해야 합니다([SWS_Dcm_00419], [SWS_Dcm_01338]).
  • OutBuffer: 호출된 제어 기능이 결과를 저장하는 출력 버퍼에 대한 포인터입니다. 버퍼 크기는 고정되어 있으며 DCM 모듈의 구성에서 가져옵니다([SWS_Dcm_00419], [SWS_Dcm_01338]).

반환값 및 오류 처리

이 함수는 상태 값으로 Std_ReturnType을 반환합니다. E_OK 값은 성공적인 처리를 나타내며, E_NOT_OK는 오류 상태를 나타냅니다([SWS_Dcm_01338]). Xxx_RequestControl이 E_OK 이외의 결과를 반환하면 DCM 모듈은 진단 테스터에 부정 응답 코드 NRC 0x22 (Conditions Not Correct)로 응답합니다([SWS_Dcm_01192]).

동시성 및 제약사항

이 함수는 재진입 불가(Non Reentrant)로 명시되어 있으며 서비스 ID 0x63을 갖습니다([SWS_Dcm_01338]).

AI 참고 사항: 이 텍스트는 AUTOSAR Classic R20-11 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Xxx_StartProtocol [SWS_Dcm_01339] 📄 PDF

Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9d0e79263799 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜백 함수 Xxx_StartProtocol은 헤더 Dcm_Externals.h을 통해 제공되며, 진단 프로토콜의 첫 번째 요청 시 애플리케이션이 현재 환경 조건을 검사하고 추가 프로토콜 처리를 승인하거나 거부할 수 있도록 합니다[SWS_Dcm_01339].

호출 컨텍스트 및 매개변수

호출은 구성된 모든 [SWS_Dcm_00036], [SWS_Dcm_01339] 함수에 대해 DCM의 DSL 서브모듈에 의해 동기식 및 재진입 불가로 수행됩니다. 함수에는 다음 입력 매개변수가 전달됩니다[SWS_Dcm_01339]:

  • ProtocolType: 시작할 진단 프로토콜의 타입,
  • TesterSourceAddress: 요청 테스터의 소스 주소,
  • ConnectionId: 연결의 고유 식별자.

반환값 및 오류 처리

반환값으로 함수는 성공적으로 승인된 경우 E_OK을 갖는 Std_ReturnType을 반환하고, 검사가 성공하지 못한 경우 E_NOT_OK를 반환하거나, 프로토콜이 허용되지 않는 경우 E_PROTOCOL_NOT_ALLOWED을 반환합니다[SWS_Dcm_01339]. 구성된 Xxx_StartProtocol 함수 중 하나 이상이 E_OK을 반환하지 않으면, DCM은 프로토콜 시작을 중단하고 NRC 0x22로 응답합니다[SWS_Dcm_00674].

성공적인 승인 후 초기화

구성된 모든 Xxx_StartProtocol 콜백이 E_OK을 반환한 후에만 DCM은 후속 초기화 단계를 실행합니다:

  • Default Session 구성 [SWS_Dcm_00144]으로부터 기본 타이밍 매개변수 로드,
  • 서비스 테이블 [SWS_Dcm_00145] 활성화,
  • 보안 상태(Security State) [SWS_Dcm_00146] 리셋,
  • 세션 상태를 기본 진단 세션으로 리셋하고 SchM_Switch_<bsnp>_DcmDiagnosticSessionControl을 통한 RTE_MODE_DcmDiagnosticSessionControl_DEFAULT_SESSION으로의 모드 전환 실행[SWS_Dcm_00147].

이 사용 지침은 AUTOSAR R20-11의 사양 요구사항을 기반으로 자동 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_StopProtocol [SWS_Dcm_01340] 📄 PDF

Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

This function informs the application of the protocol stop.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b7698a26c02a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 콜백 함수 Xxx_StopProtocol은 애플리케이션에 진단 프로토콜([SWS_Dcm_01340])의 종료를 알립니다. 이 함수는 헤더 파일 Dcm_Externals.h를 통해 선언되며 재진입 불가(Non Reentrant)로 명시되어 있습니다([SWS_Dcm_01340]).

구성된 모든 Xxx_StopProtocol 함수(매개변수 DcmDslCallbackDCMRequestService을 통해 구성됨)의 호출은 다음 선점(Preemption) 시나리오에서 DSL 서브모듈에 의해 트리거됩니다:

  • 진행 중인 진단 요청이 다른 프로토콜의 더 높은 우선순위 요청에 의해 선점되는 경우([SWS_Dcm_00459]).
  • 더 높은 우선순위의 프로토콜이 Default Session에 있고 실행 단계에 있는 활성 요청이 없는 경우, 더 낮거나 동일한 우선순위를 가진 요청이 해당 프로토콜을 선점하는 경우([SWS_Dcm_00625]).

호출 시 프로토콜 타입(ProtocolType), 테스터 소스 주소(TesterSourceAddress) 및 연결 식별자(ConnectionId)가 전달됩니다([SWS_Dcm_01340]). 반환값으로 함수는 성공적으로 수행된 경우 E_OK를 반환하거나 E_NOT_OK를 반환합니다([SWS_Dcm_01340]). 함수가 E_OK을 반환하지 않으면, DCM은 부정 응답 코드 NRC 0x22로 응답합니다([SWS_Dcm_01190]).

이 텍스트는 자동으로 생성되었으며 전적으로 AUTOSAR Classic R20-11 사양 가이드라인을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Xxx_Indication [SWS_Dcm_01341] 📄 PDF

Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);

This function indicates to the application that a service is about to be executed and allows the application to reject the execution of the service request

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9ac147c3e642 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 비재진입 함수 Xxx_Indication은 헤더 Dcm_Externals.h을 통해 선언됩니다[SWS_Dcm_01341]. 이 함수는 애플리케이션에 진단 서비스의 실행 임박을 알리고 서비스 요청 실행을 거부할 수 있도록 합니다[SWS_Dcm_01341]. 구성 컨테이너 DcmDsdServiceRequestManufacturerNotification [SWS_Dcm_00218] 또는 DcmDsdServiceRequestSupplierNotification [SWS_Dcm_00516]이 존재하는 경우 DSD 서브모듈에 의해 구성된 모든 ServiceRequestIndication 포트에서 동기식으로 호출됩니다.

입력 매개변수로는 서비스 ID(SID), SID를 제외한 요청 데이터(RequestData, DataSize), 어드레싱 유형(ReqType), 연결 ID(ConnectionId), 프로토콜 유형(ProtocolType) 및 테스터의 소스 주소(TesterSourceAddress)가 전달됩니다[SWS_Dcm_01341].

애플리케이션은 Std_ReturnType 타입의 반환값을 통해 DSD 서브모듈의 반응을 제어합니다[SWS_Dcm_01341]:

  • E_OK: 요청이 성공적이었으며 정상적으로 추가 처리됩니다[SWS_Dcm_01341].
  • E_REQUEST_NOT_ACCEPTED: 요청이 수락되지 않습니다. 호출된 인디케이션 함수 중 하나 이상이 E_REQUEST_NOT_ACCEPTED을 반환하면 DSD 서브모듈은 테스터에 대한 모든 응답을 억제합니다[SWS_Dcm_00462], [SWS_Dcm_00517].
  • E_NOT_OK: 요청이 성공하지 못했습니다. 이 경우 애플리케이션은 출력 매개변수 ErrorCode에 부정 응답 코드를 작성합니다[SWS_Dcm_01341]. E_REQUEST_NOT_ACCEPTED을(를) 반환하는 호출이 없는 한, DSD 서브모듈은 이 NRC와 함께 부정 응답을 전송합니다[SWS_Dcm_00463], [SWS_Dcm_00518].

구성된 알림이 여러 개일 때 여러 함수가 E_NOT_OK을(를) 반환하고 어떤 함수도 E_REQUEST_NOT_ACCEPTED을(를) 반환하지 않는 경우, DSD 서브모듈은 부정 응답을 위해 E_NOT_OK(으)로 응답하는 첫 번째 함수의 ErrorCode을(를) 구속력 있게 사용합니다[SWS_Dcm_01321], [SWS_Dcm_01322].

이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_Confirmation [SWS_Dcm_01342] 📄 PDF

Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);

This function confirms to the application the successful transmission or a transmission error of a diagnostic service.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 16843610ecad 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜백 함수 Xxx_Confirmation은(는) 진단 전송의 완료(성공적인 송신 또는 전송 오류)를 애플리케이션에 동기식으로 전달하는 역할을 합니다([SWS_Dcm_01342]). 선언은 헤더 Dcm_Externals.h을(를) 통해 제공됩니다([SWS_Dcm_01342]).

DCM 서브모듈 DSD(Diagnostic Service Dispatcher)에 의해 호출될 때 진단 요청의 주요 컨텍스트 데이터가 전달됩니다([SWS_Dcm_01342], [SWS_Dcm_00741]):

  • SID: 진단 서비스의 식별자([SWS_Dcm_01342]).
  • ReqType: 어드레싱 모드(물리적의 경우 0, 기능적의 경우 1)([SWS_Dcm_01342]).
  • ConnectionId, ProtocolType 및 TesterSourceAddress: 고유한 연결 및 프로토콜 속성과 테스터의 소스 주소([SWS_Dcm_01342]).
  • ConfirmationStatus: 전송의 성공 또는 오류에 대한 상태 정보([SWS_Dcm_01342]).

반환값으로 연산 Std_ReturnType을(를) 반환합니다(확인 처리가 성공한 경우 E_OK, 그렇지 않은 경우 E_NOT_OK)([SWS_Dcm_01342]). DSD는 인터페이스 ServiceRequestNotification을(를) 사용하는 모든 포트(DcmDsdServiceRequestManufacturerNotification 또는 DcmDsdServiceRequestSupplierNotification을(를) 통해 구성됨)에서 이 함수를 호출합니다([SWS_Dcm_00741]).

호출 순서와 관련하여 Xxx_Confirmation은(는) 통상적으로 DspInternal_DcmConfirmation() 직후에 실행됩니다([SWS_Dcm_00742]). 그러나 [SWS_Dcm_01172]에 따른 특수한 경우가 존재하면 DSD는 Xxx_Confirmation만을 호출하며 내부 호출은 생략됩니다.

Xxx_Confirmation이(가) 비재진입(non reentrant)(Non Reentrant) 및 동기식으로 명세되어 있으므로([SWS_Dcm_01342]), 애플리케이션 측 구현에는 블로킹 시퀀스가 포함되지 않아야 하며 DCM으로의 재진입 콜백을 트리거하지 않아야 합니다(해석). 질문 Q-58ce3e44dc61540b (열림)

이 텍스트는 AI에 의해 작성되었습니다. 모든 내용은 전적으로 R20-11 릴리스의 AUTOSAR 명세 범위를 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ClearDTCCheckFnc [SWS_Dcm_01270] 📄 PDF

Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 65665431c065 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 콜아웃 함수 Xxx_ClearDTCCheckFnc은 헤더 파일 Dcm_Externals.h을 통해 애플리케이션에 제공됩니다 [SWS_Dcm_01270]. 이 함수는 요청된 진단 오류 코드 그룹(Group of DTC)을 삭제하기 전에 제조업체 및 공급업체별 조건을 검사하는 역할을 합니다. 입력 매개변수로는 삭제할 오류 코드 그룹을 지정하는 uint32 타입의 식별자 GoDTC이 전달됩니다 [SWS_Dcm_01270].

오류 처리 및 반환값

삭제 요청의 승인은 출력 매개변수 ErrorCode과 함께 Std_ReturnType 타입의 반환값을 통해 이루어집니다 [SWS_Dcm_01270]:

  • E_OK: 애플리케이션이 요청된 오류 코드 그룹의 삭제를 허용합니다 GoDTC [SWS_Dcm_01270].
  • E_NOT_OK: 애플리케이션이 그룹 삭제를 불허합니다. 이 오류의 경우 Dcm_NegativeResponseCodeType* 타입의 출력 매개변수 ErrorCode을 통해 부정 응답 코드를 설정해야 합니다. 그러면 DCM 모듈은 ErrorCode에 지정된 NRC 값을 포함하는 부정 응답을 전송합니다 [SWS_Dcm_01270].

동시성 및 제약사항

이 함수는 서비스 ID 0x5f을 가지며, 동기식으로 작동하고 재진입 불가(Non Reentrant)로 정의되어 있습니다 [SWS_Dcm_01270]. 따라서 호출 컨텍스트는 호출이 동시 중첩 없이 순차적으로 발생하도록 보장해야 합니다.

이 사용 지침은 AUTOSAR R20-11의 SWS_Dcm_01270 사양을 기반으로 AI에 의해 생성되었습니다.

함수 Xxx_ProcessRequestDownload [SWS_Dcm_00754] 📄 PDF

Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to start a download process. This service is needed for the implementation of UDS service RequestDownload.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 786a986ad65c 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 Xxx_ProcessRequestDownload([SWS_Dcm_00754])은 UDS 서비스 RequestDownload 처리 시 다운로드 프로세스를 시작하기 위해 Dcm 모듈에 의해 호출됩니다. 비동기식 및 비재진입으로 정의되며 헤더 Dcm_Externals.h을 통해 제공됩니다([SWS_Dcm_00754]).

사용법 및 매개변수

호출은 DCM_INITIAL, DCM_PENDING 또는 DCM_CANCEL 값을 갖는 매개변수 OpStatus을 통해 단계별로 수행됩니다([SWS_Dcm_00754]). 입력 매개변수로 압축 및 암호화 방식(DataFormatIdentifier), 메모리 블록(MemoryIdentifier), 시작 주소(MemoryAddress) 및 압축되지 않은 메모리 크기(바이트 단위)(MemorySize)가 전달됩니다([SWS_Dcm_00754]). 호출 전에 Dcm은 입출력 매개변수 BlockLength에 가능한 최대 버퍼 크기를 기록합니다([SWS_Dcm_01417]). 함수는 이 값을 후속 쓰기 작업에 허용되는 최대 블록 길이로 조정합니다([SWS_Dcm_00754]).

반환값 및 상호작용

이 함수는 실행 성공 시 E_OK을, 처리가 아직 진행 중인 경우 DCM_E_PENDING을, 오류 발생 시 E_NOT_OK를 반환합니다([SWS_Dcm_00754]):

  • 호출이 E_OK을 반환하고 협상된 값 BlockLength이 현재 프로토콜 연결의 지원 버퍼 길이보다 작거나 같은 경우, Dcm는 이 값을 maxNumberOfBlockLength으로 하여 긍정 응답을 전송합니다([SWS_Dcm_01419]).
  • 반환된 버퍼 길이가 프로토콜 연결의 지원 버퍼 크기를 초과하면 Dcm은 DET 오류 DCM_E_INTERFACE_BUFFER_OVERFLOW을 보고합니다([SWS_Dcm_01418]).
  • E_NOT_OK이 반환되면 Dcm은 출력 매개변수 ErrorCode에 설정된 값을 포함하는 UDS 부정 응답(NRC)을 전송합니다([SWS_Dcm_00754], [SWS_Dcm_00757]).

이 사용 지침은 자동으로 작성되었으며 AUTOSAR 사양에 대한 지원 역할을 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ProcessRequestTransferExit [SWS_Dcm_00755] 📄 PDF

Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to terminate a download or upload process. This callout is needed for the implementation of UDS service RequestTransferExit.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: bb284e10287c 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 Xxx_ProcessRequestTransferExit은 UDS 서비스 RequestTransferExit의 프레임워크 내에서 진행 중인 다운로드 또는 업로드 프로세스를 종료하기 위해 DCM 모듈에 의해 호출됩니다 [SWS_Dcm_00755]. 인터페이스 선언은 헤더 Dcm_Externals.h를 통해 제공됩니다 [SWS_Dcm_00755].

사용법 및 의미론

이 함수는 비동기식으로 작동하며 재진입 불가능으로 정의되어 있습니다 [SWS_Dcm_00755]. 호출은 현재 실행 상태 OpStatus(가능한 값: DCM_INITIAL, DCM_PENDING 또는 DCM_CANCEL)을 전달하여 수행됩니다 [SWS_Dcm_00755]. Std_ReturnType 타입의 반환값으로 다음이 명시되어 있습니다:

  • E_OK: 전송이 성공적으로 종료되었습니다 [SWS_Dcm_00755].
  • DCM_E_PENDING: 전송 종료가 아직 완료되지 않았으며 후속 호출이 필요합니다 [SWS_Dcm_00755].
  • E_NOT_OK: 종료에 실패했거나 응답 버퍼가 너무 작습니다 [SWS_Dcm_00755].

오류 처리 및 상호 작용

작업 Xxx_ProcessRequestTransferExit이 오류 값 E_NOT_OK을 반환하는 경우 출력 매개변수 ErrorCode를 통해 부정 응답 코드를 전달해야 합니다. 그러면 DCM 모듈은 정확히 이 오류 코드가 포함된 UDS 부정 응답(NRC)을 진단 테스터로 전송합니다 [SWS_Dcm_00759]. 중단 호출 시 DCM 모듈은 함수에 상태 DCM_CANCEL를 전달합니다 [SWS_Dcm_00755].

이 텍스트는 자동으로 생성되었습니다. 모든 내용은 오직 AUTOSAR 사양에 기반합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ProcessRequestUpload [SWS_Dcm_00756] 📄 PDF

Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to start an upload process. This service is needed for the implementation of UDS service RequestUpload.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 592221ab777a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 Xxx_ProcessRequestUpload은 UDS 서비스 RequestUpload를 시작하기 위해 DCM 모듈에 의해 호출됩니다([SWS_Dcm_00756]). 이 함수는 Dcm_Externals.h를 통해 제공되며 재진입 불가능 및 비동기식으로 명시되어 있습니다([SWS_Dcm_00756]). DCM은 매개변수 OpStatus(상태 DCM_INITIAL, DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK 가짐)를 통해 작업 진행을 제어합니다([SWS_Dcm_00756]).

호출 시 DCM은 무엇보다도 압축 및 암호화 방식(DataFormatIdentifier), 메모리 블록(MemoryIdentifier), 시작 주소(MemoryAddress), 바이트 단위의 비압축 메모리 크기(MemorySize)를 전달합니다([SWS_Dcm_00756]). 입출력(In/Out) 매개변수 BlockLength는 후속 Dcm_ReadMemory 호출을 위한 최대 바이트 수를 정의합니다. 호출 전에 DCM은 가능한 최대 버퍼 크기를 이 매개변수에 기록합니다([SWS_Dcm_00756], [SWS_Dcm_01420]).

Xxx_ProcessRequestUpload의 반환값으로는 요청 성공 시 E_OK, 오류 시 E_NOT_OK, 처리가 아직 완료되지 않은 경우 DCM_E_PENDING이 정의되어 있습니다([SWS_Dcm_00756]):

  • 함수가 E_NOT_OK을 반환하면 DCM 모듈은 출력 매개변수 ErrorCode에 설정된 NRC 값을 포함하는 UDS 부정 응답을 전송합니다([SWS_Dcm_00756], [SWS_Dcm_00758]).
  • 함수가 BlockLength에 현재 프로토콜 연결의 지원되는 버퍼 길이 이하인 요청 버퍼 길이를 반환하는 경우, DCM은 이 값을 긍정 응답의 maxNumberOfBlockLength으로 사용합니다([SWS_Dcm_01422]).
  • 반면 반환된 버퍼 길이가 프로토콜 연결에서 지원하는 버퍼 길이보다 큰 경우, DCM은 DET 오류 DCM_E_INTERFACE_BUFFER_OVERFLOW을 보고합니다([SWS_Dcm_01421]).

이 텍스트는 AI에 의해 작성되었습니다. 전달된 AUTOSAR 페이로드의 사양만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ProcessTransferDataRead [SWS_Dcm_91070] 📄 PDF

Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6b3306b715f6 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜아웃 함수 Xxx_ProcessTransferDataRead은(는) [SWS_Dcm_91070]에 따라 시작 주소(MemoryAddress) 및 길이(MemorySize)를 기반으로 ECU에서 메모리 데이터를 비동기식으로 판독하는 역할을 합니다. 헤더 Dcm_Externals.h을(를) 통해 제공되며 UDS 서비스 ReadMemoryByAddress, RequestUpload, TransferData 및 메모리 주소를 통해 동적으로 정의된 DID에 대한 ReadDataByIdentifier를 지원합니다[SWS_Dcm_91070].

호출은 비재진입(Non Reentrant)으로 수행되며 매개변수 OpStatus을(를) 통해 제어됩니다([SWS_Dcm_91070]):

  • DCM_INITIAL: 읽기 연산을 시작합니다.
  • DCM_PENDING: 아직 완료되지 않은 읽기 프로세스를 계속합니다.
  • DCM_CANCEL: 진행 중인 연산을 중단합니다.
  • DCM_FORCE_RCRRP_OK: 보류 중인 응답의 전송을 확인합니다.

어드레싱을 위해 MemoryIdentifier을(를) 통해 메모리 블록 또는 영역을 선택할 수 있으며, 이 매개변수를 사용하지 않는 경우 반드시 0으로 설정해야 합니다[SWS_Dcm_91070]. 판독된 데이터는 DCM의 진단 버퍼를 직접 가리키는 출력 매개변수 MemoryData을(를) 통해 반환됩니다[SWS_Dcm_91070].

반환값으로는 성공 시 DCM_READ_OK, 판독이 아직 진행 중인 경우 DCM_READ_PENDING, 프로세스가 보류 중이며 Response-Pending 메시지를 즉시 전송해야 하는 경우 DCM_READ_FORCE_RCRRP이(가) 정의되어 있습니다[SWS_Dcm_91070]. 읽기에 실패하면 함수는 DCM_READ_FAILED을(를) 반환합니다. 이 경우 포인터 ErrorCode을(를) 통해 부정 응답 코드(NRC)를 전달해야 하며, DCM은 이를 부정 응답으로 전송합니다[SWS_Dcm_91070]. (해석: ErrorCode에 대한 명세 노트에 Dcm_ReadMemory이(가) 언급되어 있으나, 여기서는 맥락상 이 콜아웃의 실패를 지칭하는 것으로 보입니다.) 질문 Q-fe76e2599624baf7 (열림)

이 사용 지침은 AUTOSAR CP R20-11 명세를 기반으로 하며 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Xxx_ProcessTransferDataWrite [SWS_Dcm_91071] 📄 PDF

Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The ProcessTransferDataWrite callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f0b899d6fddb 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

비동기 콜아웃 Xxx_ProcessTransferDataWrite(서비스 ID 0x27)은(는) Dcm_Externals.h을(를) 통해 사용할 수 있으며, UDS 서비스 WriteMemoryByAddress, RequestDownload 및 TransferData를 위한 메모리 데이터를 쓰기 위해 DCM 모듈에 의해 호출됩니다[SWS_Dcm_91071]. 쓰기 프로세스의 흐름은 DCM_INITIAL, DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK 값을 갖는 매개변수 OpStatus을(를) 통해 제어됩니다[SWS_Dcm_91071].

매개변수 및 반환값

이 함수는 다음 매개변수 [SWS_Dcm_91071]을(를) 처리합니다:

  • MemoryIdentifier: 메모리 블록 식별자. 이 매개변수를 사용하지 않는 경우 0으로 설정해야 합니다[SWS_Dcm_91071].
  • MemoryAddress: 데이터가 복사될 서버 메모리의 시작 주소. 사용하지 않는 경우(예: 압축된 데이터의 경우) 값 0을 전달해야 합니다[SWS_Dcm_91071].
  • MemorySize: MemoryData에 기록할 바이트 수[SWS_Dcm_91071].
  • MemoryData: DCM 진단 버퍼 내 기록할 데이터에 대한 포인터[SWS_Dcm_91071].
  • ErrorCode: 오류 발생 시 부정 응답 코드(NRC)를 위한 출력 매개변수[SWS_Dcm_91071].

Dcm_ReturnWriteMemoryType 타입의 반환값은 작업 결과를 나타냅니다 [SWS_Dcm_91071]:

  • DCM_WRITE_OK: 쓰기 연산이 성공적으로 완료되었습니다[SWS_Dcm_91071].
  • DCM_WRITE_PENDING: 쓰기 프로세스가 아직 완료되지 않았습니다[SWS_Dcm_91071].
  • DCM_WRITE_FORCE_RCRRP: 쓰기 프로세스가 아직 보류 중이며 보류 중인 응답(Response Pending) 전송이 즉시 시작됩니다[SWS_Dcm_91071].
  • DCM_WRITE_FAILED: 쓰기 연산이 실패했습니다[SWS_Dcm_91071].

오류 처리 및 동시성

콜아웃이 DCM_WRITE_FAILED 값을 반환하면, DCM 모듈은 매개변수 ErrorCode에 전달된 NRC 값으로 부정 응답을 전송합니다[SWS_Dcm_91071]. 이 콜아웃은 비재진입(Non Reentrant)으로 명세되어 있으므로 동시 실행되어서는 안 됩니다[SWS_Dcm_91071].

이 사용 지침은 AUTOSAR 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

타입 Dcm_StatusType [SWS_Dcm_00976] 📄 PDF

Base item type to transport status information.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 87dab698e982 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

Dcm_StatusType 타입은 모듈 Dcm 내에서 상태 정보를 전송하기 위한 기본 상태 및 반환 타입 역할을 하며, 헤더 파일 Dcm.h를 통해 제공됩니다 [SWS_Dcm_00976]. 이 타입은 표준 타입 uint8을 기반으로 하며 특정 DCM 인터페이스의 응답에 대한 표준화된 상태 값을 정의합니다 [SWS_Dcm_00976].

정의된 상태 값 및 오류 처리

사양에는 Dcm_StatusType에 대해 다음과 같은 상태 및 오류 코드가 정의되어 있습니다 [SWS_Dcm_00976]:

  • DCM_E_OK (0x00): 요청된 작업이 성공적으로 실행되었거나 수락되었음을 나타냅니다 [SWS_Dcm_00976].
  • DCM_E_ROE_NOT_ACCEPTED (0x06): 이전 ResponseOnOneEvent 프로세스가 아직 완료되지 않는 등의 이유로 ResponseOnOneEvent 요청이 DCM에 의해 거부되었음을 나타내며, 이 값은 인터페이스 Dcm_ResponseOnOneEvent()에서 사용됩니다 [SWS_Dcm_00976].
  • DCM_E_PERIODICID_NOT_ACCEPTED (0x07): 진행 중인 주기적 전송이 아직 완료되지 않는 등의 이유로 주기적 전송 요청이 DCM에 의해 수락되지 않았음을 알리며, 이 상태는 인터페이스 Dcm_ResponseOnOneDataByPeriodicId()에서 사용됩니다 [SWS_Dcm_00976].

제약 사항 및 호출 조건

언급된 인터페이스의 호출자는 Dcm_StatusType 타입의 반환값을 평가하여 새로운 요청을 즉시 수락할 수 있는지 또는 아직 진행 중인 전송으로 인해 폐기되었는지 확인해야 합니다 [SWS_Dcm_00976]. 반복 요청은 이전 이벤트 또는 전송 작업이 완전히 완료된 후에야 성공할 가능성이 있을 것으로 보입니다 [SWS_Dcm_00976]. 질문 Q-901ec7e3aac8901c (열림)

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 Dcm_CommunicationModeType [SWS_Dcm_00981] 📄 PDF

– Manager

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: aae16d4e9953 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 Dcm_CommunicationModeType은 Dcm.h에 선언된 uint8 기반의 열거형 타입입니다([SWS_Dcm_00981]). 이는 송신(Tx) 및 수신(Rx) 경로를 선택적으로 제어하기 위한 통신 모드를 정의합니다. 값 범위에는 일반 응용 데이터(NORM), 네트워크 관리(NM), 그리고 두 통신 분기를 결합한 경우(NORM_NM)를 위한 0x00부터 0x0B까지의 값이 포함됩니다([SWS_Dcm_00981]).

이 타입은 BSW 인터페이스 BswM_Dcm_CommunicationMode_CurrentState을 호출할 때 매개변수로 사용됩니다. DCM은 UDS 서비스 요청 CommunicationControl(서비스 0x28)의 전송 확인(Sent Confirmation) 후 이를 통해 BSW Mode Manager로 현재 모드를 전달합니다([SWS_Dcm_00512], [SWS_Dcm_00785]). 이때 구체적인 모드 값은 수신된 진단 요청의 매개변수 communicationType 및 controlType에 해당합니다([SWS_Dcm_00512]).

상호 작용 및 영향을 받는 네트워크는 UDS 요청의 서브넷 매개변수에 따라 결정됩니다:

  • 서브넷 0x00의 경우, DcmDspComControlAllChannel에 구성된 모든 네트워크 채널에 대해 업데이트가 수행됩니다([SWS_Dcm_00512]).
  • 서브넷 0x0F의 경우, 현재 진단 수신 채널의 통신 모드가 보고됩니다([SWS_Dcm_00785]).
  • 0x01부터 0x0E까지의 서브넷의 경우 지원 여부가 확인되며, 지원되지 않는 서브넷은 부정 응답 코드 0x31과 함께 거부됩니다([SWS_Dcm_00786]).
  • 확장 주소 지정 기능이 있는 서브기능(예: enableRxAndDisableTxWithEnhancedAddressInformation 또는 enableRxAndTxWithEnhancedAddressInformation)의 경우, 서브 노드 ID를 통해 참조되는 채널에 대해 호출이 수행됩니다([SWS_Dcm_01077], [SWS_Dcm_01079]).

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

타입 Dcm_ConfigType [SWS_Dcm_00982] 📄 PDF

This type defines a data structure for the post build parameters of the DCM . At initialization the DCM gets a pointer to a structure of this type to get access to its configuration data, which is necessary for initialization.

타입 Dcm_EcuStartModeType [SWS_Dcm_00987] 📄 PDF

Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d520a70420dc 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 유형 Dcm_EcuStartModeType은 uint8에서 파생되었으며 헤더 Dcm.h를 통해 제공됩니다 [SWS_Dcm_00987]. 이는 Diagnostic Communication Manager(DCM)가 시작 모드를 결정하고 부트로더에서 전환된 후 진단 응답을 전송해야 하는지 여부를 알리는 데 사용됩니다 [SWS_Dcm_00987].

값 범위는 두 가지 정의된 상태를 포함합니다 [SWS_Dcm_00987]:

  • DCM_COLD_START (0x00): 전자 제어 장치(ECU)가 정상 작동 상태로 정규 시작됩니다 [SWS_Dcm_00987].
  • DCM_WARM_START (0x01): 전자 제어 장치(ECU)가 부트로더로부터의 점프 결과로 시작됩니다 [SWS_Dcm_00987].

인터페이스 간의 상호작용에서 Dcm_EcuStartModeType은 Dcm_Externals.h를 통해 제공되는 콜아웃 Dcm_GetProgConditions의 동기 반환값 역할을 합니다 [SWS_Dcm_00544]. 이 함수는 긍정 응답($50 또는 $51)을 전송해야 하는지 여부를 확인하기 위해 DCM 초기화 중에 호출됩니다 [SWS_Dcm_00544]. 부트로더 점프의 상세한 세부 조건은 출력 매개변수 ProgConditions를 통해 DCM에 전달됩니다 [SWS_Dcm_00544].

실행 및 오류 처리와 관련하여, 호출 콜아웃은 동기식 및 재진입 불가능으로 정의되어 있습니다 [SWS_Dcm_00544]. 이 데이터 유형에 대해 특정 오류 코드나 DET 또는 DEM으로의 직접 알림은 정의되어 있지 않습니다.

이 사용 지침은 AUTOSAR Classic R20-11 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 Dcm_ProgConditionsType [SWS_Dcm_00988] 📄 PDF

Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 23558f0992c8 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

구조체 Dcm_ProgConditionsType은 프로그래밍 시퀀스 또는 제어기 리셋 시 애플리케이션과 부트로더 간에 상태 및 컨텍스트 데이터를 교환하는 데 사용됩니다[SWS_Dcm_00988]. 이 구조체는 ConnectionId 및 TesterAddress과 같은 연결 정보, Sid 및 SubFncId와 같은 진단 식별자, 그리고 ReprogramingRequest, ApplUpdated 및 ResponseRequired과 같은 제어 플래그를 묶습니다[SWS_Dcm_00988].

사용은 두 가지 핵심 인터페이스를 통해 이루어집니다:

  • 부트로더로 점프하기 전이나 리셋 시 DCM은 이 구조체를 비동기 비재진입 함수 Dcm_SetProgConditions()에 전달합니다[SWS_Dcm_00543]. 가능한 반환값은 E_OK, E_NOT_OK, DCM_E_PENDING 및 응답 보류(Response-Pending) 메시지(NRC 0x78) 요청 시 DCM_E_FORCE_RCRRP입니다[SWS_Dcm_00543].
  • 재부팅 후 DCM은 초기화 중에 동기 비재진입 콜아웃 Dcm_GetProgConditions()을 호출하여 저장된 조건을 읽고 Dcm_EcuStartModeType을 확인합니다[SWS_Dcm_00544]. 통합자에 의한 이러한 데이터 저장은 일반적으로 리셋 비휘발성 RAM 또는 비휘발성 메모리를 통해 이루어질 것으로 보입니다(해석). 질문 Q-026bc7bc93f5502c (열림)

추가적인 시스템 상호작용에서 DCM은 구조체를 평가합니다. ComM이 완전한 통신 기능을 보고하는 즉시 DCM은 Sid에 저장된 서비스 식별자에 대한 대기 중인 진단 응답을 전송합니다[SWS_Dcm_00767]. 부트로더 점프 후 ApplUpdated == True가 플래시 다운로드를 통한 업데이트 완료를 알리면, DCM은 BswM_Dcm_ApplicationUpdated()을 통해 BswM에 통지합니다[SWS_Dcm_00768].

이 사용 지침은 자동으로 생성되었으며 AUTOSAR 버전 R20-11의 사양만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 Dcm_MsgType [SWS_Dcm_00990] 📄 PDF

Base type for diagnostic message (request, positive or negative response)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6001ef038188 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 타입 정의

데이터 유형 Dcm_MsgType은 Diagnostic Communication Manager에서 진단 메시지를 위한 핵심 포인터 유형이며 헤더 Dcm.h을 통해 제공됩니다 [SWS_Dcm_00990]. 이는 Dcm_MsgItemType*에 대한 포인터로 선언되며 요청뿐만 아니라 긍정 및 부정 응답 메시지를 참조하기 위한 공통 기반 역할을 합니다 [SWS_Dcm_00990]. 해석: 기본 유형 Dcm_MsgItemType가 사양에 자세히 명시되어 있지 않으므로, 선형 메시지 버퍼에 순차적으로 접근하는 데 사용되는 단일 데이터 바이트(예: uint8)를 나타낼 것으로 추정됩니다. 질문 Q-2b6f46b51d3cb8e0 (열림)

상호작용 및 구조적 컨텍스트

Dcm_MsgType의 주된 용도는 컨텍스트 구조 Dcm_MsgContextType 내에서 발생합니다 [SWS_Dcm_00994]. 거기서 이 유형은 두 개의 분리된 데이터 영역을 참조합니다:

  • reqData: 서비스 식별자(SID) 바로 뒤부터 시작하는 진단 요청의 페이로드를 가리키며, SID 자체는 이 데이터의 일부가 아닙니다 [SWS_Dcm_00994].
  • resData: 긍정 응답의 데이터를 가리키며 역시 서비스 식별자 바로 뒤부터 시작합니다 [SWS_Dcm_00994].

버퍼 경계 및 제한 사항

Dcm_MsgType을 통해 주소 지정되는 응답 버퍼를 처리하고 채울 때 사용자는 관련 버퍼 제한을 엄격히 준수해야 합니다 [SWS_Dcm_00994]. 최대 응답 크기는 할당된 버퍼의 할당에 의해 엄격하게 제한되므로, 실제 응답 길이 resDataLen는 resMaxDataLen에 의해 정의된 버퍼 용량을 절대로 초과해서는 안 됩니다 [SWS_Dcm_00994].

이 텍스트는 AUTOSAR Classic 릴리스 R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

타입 Dcm_MsgLenType [SWS_Dcm_00991] 📄 PDF

Length of diagnostic message (request, positive or negative response). The maximum length is dependent of the underlying transport protocol/media.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d28165df74e2 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 Dcm_MsgLenType은 헤더 Dcm.h을 통해 사용할 수 있으며 기본 타입 uint32에서 파생됩니다 [SWS_Dcm_00991]. Diagnostic Communication Manager(DCM)에서 진단 메시지의 길이를 설명하는 데 사용됩니다. 여기에는 진단 요청(Request)뿐만 아니라 긍정 및 부정 응답 메시지(Response)가 모두 포함됩니다 [SWS_Dcm_00991].

값 범위 제한과 관련하여, 사양에는 진단 메시지의 최대 전송 가능 길이가 각각의 기본 전송 프로토콜 또는 전송 매체에 따라 달라진다고 명시되어 있습니다 [SWS_Dcm_00991]. 해석: 기본 데이터 타입 uint32은 소프트웨어 측면에서 최대 4 GiB의 메시지 길이를 나타낼 수 있지만, 실제 최대 길이는 통신 매체 및 버퍼 크기에 의해 항상 제한될 것으로 추정됩니다. 질문 Q-ac43639ecb32605d (열림)

Dcm_MsgLenType은 진단 작업의 컨텍스트를 캡슐화하는 구조체 Dcm_MsgContextType에서 핵심적인 역할을 합니다 [SWS_Dcm_00994]. 이 구조체 내에서 다음과 같은 여러 기본 길이 정보를 타입화합니다:

  • reqDataLen: 요청 데이터(Request Data)의 길이를 나타냅니다. 카운팅은 서비스 식별자 바로 다음부터 시작되므로 서비스 식별자는 길이 지정에 포함되지 않습니다 [SWS_Dcm_00994].
  • resDataLen: 긍정 응답 데이터의 길이를 나타내며, 마찬가지로 서비스 식별자는 제외됩니다 [SWS_Dcm_00994].
  • resMaxDataLen: 할당된 버퍼의 크기에 의해 제한되는 응답의 최대 가능 길이를 지정합니다 [SWS_Dcm_00994].

따라서 서비스 핸들러를 구현할 때 reqDataLen 및 resDataLen에 대한 길이 계산은 항상 서비스 식별자 없이 수행되어야 하며, 응답 데이터가 resMaxDataLen에 의해 지정된 버퍼 제한을 초과하지 않도록 엄격히 주의해야 합니다 [SWS_Dcm_00994].

본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.

타입 Dcm_MsgAddInfoType [SWS_Dcm_00992] 📄 PDF

Additional information on message request. Datastructure: Bitfield

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7c8af2ec6aed 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 Dcm_MsgAddInfoType은 [SWS_Dcm_00992]에 따라 비트 필드 구조체로 정의되며 진단 메시지에 대한 추가 상태 및 제어 정보를 제공하는 역할을 합니다. 이 타입은 클래식 AUTOSAR에서 헤더 파일 Dcm.h를 통해 제공되며 상위 컨텍스트 구조체 Dcm_MsgContextType([SWS_Dcm_00994]) 내의 요소 msgAddInfo으로 사용되어 서비스 요청 및 관련 응답에 대한 추가 정보를 일관되게 묶습니다.

비트 필드 구조체는 [SWS_Dcm_00992]에 따라 정확히 정의된 비트 위치를 가진 개별 제어 플래그를 명시합니다:

  • reqType (위치 LSB+0): 진단 요청의 주소 지정 모드를 나타냅니다. 0 값은 물리적 요청(physical request)을 나타내며, 1 값은 기능적 요청(functional request)을 나타냅니다.
  • suppressPosResponse (위치 LSB+1): 긍정 응답과 관련된 동작을 결정합니다. 0인 경우 긍정 응답이 억제되지 않지만(do not suppress), 1 값은 긍정 응답을 전송해서는 안 됨을 지정합니다(no positive response will be sent).

Dcm_MsgAddInfoType은 매개변수 및 컨텍스트 전달을 위한 순수 데이터 구조체이므로, 이 타입 자체에는 동기 또는 비동기 호출 시맨틱, 반환값, 재진입 규칙 또는 DET나 DEM에 대한 자체 오류 메시지가 존재하지 않습니다. 후속 프로세스에서 설정된 비트의 구체적인 평가 및 고려는 Diagnostic Communication Manager의 내부 처리 루틴이 [SWS_Dcm_00994]의 메시지 컨텍스트에 액세스할 때 수행할 것으로 추정됩니다. 질문 Q-b27248cc452ba1b1 (열림)

이 텍스트는 AI에 의해 생성되었으며 AUTOSAR 환경에서의 오리엔테이션 가이드 역할을 합니다.

타입 Dcm_IdContextType [SWS_Dcm_00993] 📄 PDF

This message context identifier can be used to determine the relation between request and response confirmation.

타입 Dcm_MsgContextType [SWS_Dcm_00994] 📄 PDF

This data structure contains all information which is necessary to process a diagnostic message from request to response and response confirmation.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: efeed9fbd2ce 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 구조체 Dcm_MsgContextType은 처리부터 응답 및 확인에 이르기까지 진단 요청을 제어하는 데 필요한 모든 정보를 제공합니다[SWS_Dcm_00994]. 이는 입출력 매개변수 pMsgContext로 비동기 및 재진입 가능 서비스 루틴에 전달됩니다[SWS_Dcm_00763], [SWS_Dcm_00764]. 이때 페이로드 포인터 reqData 및 resData은 항상 서비스 식별자(SID) 바로 뒤를 가리키며, 길이 사양 reqDataLen 및 resDataLen은 SID를 포함하지 않습니다[SWS_Dcm_00994]. DSD 하위 모듈은 전송 버퍼로 복사할 때 첫 번째 위치에 응답 SID를 다시 삽입합니다[SWS_Dcm_00223], [SWS_Dcm_00224].

사용 시 다음 사항에 유의해야 합니다:

  • 응답 길이 및 오류 발생: 생성된 응답 길이가 프로토콜 종속 필드 resMaxDataLen을 통해 정의된 버퍼 한계를 초과하고 DcmPagedBufferEnabled == FALSE인 경우, DCM은 부정 응답 코드 0x14(DCM_E_RESPONSETOOLONG)로 응답합니다[SWS_Dcm_01059]. 서비스 핸들러에서의 처리가 실패하면 애플리케이션은 오류 코드와 함께 E_NOT_OK를 다시 보고합니다[SWS_Dcm_00763].
  • 추가 정보 및 응답 억제: msgAddInfo을 통해 특히 suppressPosRspMsgIndicationBit이 전달되며, 이것이 설정된 경우 DSD는 긍정 응답을 억제합니다[SWS_Dcm_00202], [SWS_Dcm_00231].
  • 수명 주기 및 컨텍스트 매핑: 확인에 도달하면 구조체는 유효성을 잃고 모든 메시지 데이터가 손실됩니다[SWS_Dcm_00994]. 애플리케이션은 나중에 원래 요청에 대한 확인을 매핑하기 위해 요청 시작 시 이미 식별자 idContext을 저장해야 합니다[SWS_Dcm_00994].
  • 프로토콜 관련성: 필드 dcmRxPduId은 수신 PDU를 식별하며, 예를 들어 OBD와 확장 진단 사이와 같이 진단 프로토콜에 따른 차별화된 처리를 가능하게 합니다[SWS_Dcm_00994].

해석: 확인을 위한 컨텍스트가 유효하지 않게 되므로, 기본 메모리 버퍼는 응답이 전송된 후 후속 통신을 위해 DSL에 의해 즉시 해제되거나 덮어쓰여질 것으로 추정됩니다. 질문 Q-88e3cf2f3d8f6076 (열림)

이 텍스트는 AUTOSAR Classic R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

타입 Dcm_ExtendedOpStatusType [SWS_Dcm_91015] 📄 PDF

–

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c9fa76367e8a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

타입 Dcm_ExtendedOpStatusType은 uint8을 기반으로 하며 헤더 파일 Dcm.h를 통해 제공됩니다[SWS_Dcm_91015]. 이는 입력 매개변수 OpStatus로서 <Module>_<DiagnosticService>[SWS_Dcm_00763] 및 <Module>_<DiagnosticService>_<SubService>[SWS_Dcm_00764]과 같은 비동기 진단 및 하위 서비스 함수에서의 실행 단계와 확인을 제어합니다.

정의된 상태 값은 작업 진행 상태와 DCM의 피드백을 알립니다[SWS_Dcm_91015]:

  • DCM_INITIAL(0x00): 작업의 최초 호출.
  • DCM_PENDING(0x01): 이전 호출에서 중간 상태(Pending)가 보고된 후의 후속 호출.
  • DCM_CANCEL(0x02): 진행 중인 작업을 중단하라는 DCM의 요청.
  • DCM_FORCE_RCRRP_OK(0x03): 대기 응답(Response Pending) 전송 확인.
  • DCM_POS_RESPONSE_SENT(0x04) 및 DCM_POS_RESPONSE_FAILED(0x05): 긍정 응답 전송의 성공 또는 실패에 대한 확인.
  • DCM_NEG_RESPONSE_SENT(0x06) 및 DCM_NEG_RESPONSE_FAILED(0x07): 부정 응답 전송의 성공 또는 실패에 대한 확인.

동시성과 관련하여 호출된 진단 인터페이스는 재진입 가능 및 비동기로 명시되어 있습니다[SWS_Dcm_00763][SWS_Dcm_00764]. 오류 시 서비스 함수는 반환값 E_NOT_OK를 전달하고 출력 매개변수 ErrorCode에 부정 응답 코드(NRC)를 할당하며, 그 후 DCM 모듈은 이 코드를 포함한 부정 응답을 전송합니다[SWS_Dcm_00763][SWS_Dcm_00764].

이 텍스트는 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

타입 Dcm_OpStatusType [SWS_Dcm_00984] 📄 PDF

–

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f40dbedff87d 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

유형 Dcm_OpStatusType은 uint8을 기반으로 하며 헤더 파일 Rte_Dcm_Type.h를 통해 제공됩니다 [SWS_Dcm_00984]. 이는 Dcm_ReadMemory [SWS_Dcm_00539], Dcm_WriteMemory [SWS_Dcm_00540] 또는 Dcm_SetProgConditions [SWS_Dcm_00543]와 같은 Diagnostic Communication Manager(DCM)의 비동기 진단 작업의 실행 및 수명 주기 상태를 제어합니다.

작업 흐름을 제어하기 위해 4가지 상태 값이 정의되어 있습니다 [SWS_Dcm_00984]:

  • DCM_INITIAL (0x00): DCM에 의한 작업의 첫 번째 호출을 나타냅니다 [SWS_Dcm_00527].
  • DCM_PENDING (0x01): 이전 보류(pending) 상태 반환 후의 후속 호출을 나타냅니다 [SWS_Dcm_00984]. 작업이 오류 값 DCM_E_PENDING를 반환하면, DCM은 처리가 완료될 때까지 Dcm_MainFunction의 모든 후속 주기에서 OpStatus = DCM_PENDING를 사용하여 이 작업을 다시 호출합니다 [SWS_Dcm_00530].
  • DCM_CANCEL (0x02): 아직 보류 중인 비동기 작업을 중단하도록 호출된 대상에 명시적으로 요청합니다 [SWS_Dcm_00984].
  • DCM_FORCE_RCRRP_OK (0x03): Response-Pending 메시지(NRC 0x78)의 전송이 완료되었음을 확인합니다 [SWS_Dcm_00984]. 작업이 DCM_E_FORCE_RCRRP로 응답하면 DCM은 RCR-RP 전송을 시작하고 전송이 완료될 때까지 해당 작업의 추가 호출을 중단합니다 [SWS_Dcm_00528].

동시성 및 제약 조건과 관련하여, Dcm_OpStatusType을 전달 매개변수로 받는 작업들은 비동기식으로 설계되었으며 재진입 불가능한 것으로 명시되어 있습니다 [SWS_Dcm_00539] [SWS_Dcm_00754].

이 텍스트는 AI에 의해 생성되었으며 사양에 대한 참고 가이드 역할을 합니다.

구현자 가이드 준비 중 (복잡도 I2)

타입 Dcm_ConfirmationStatusType [SWS_Dcm_00983] 📄 PDF

–

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 63d2c6367edd 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 값 범위

데이터 타입 Dcm_ConfirmationStatusType은 uint8에서 파생된 열거형 타입으로, 헤더 파일 Rte_Dcm_Type.h를 통해 제공됩니다 [SWS_Dcm_00983]. 성공적인 송신 및 전송 오류 발생 시 모두 진단 응답의 전송 상태를 애플리케이션 또는 내부 서비스 핸들러에 보고하는 데 사용됩니다 [SWS_Dcm_01342]. 값 범위는 네 가지 개별 상태로 구성됩니다 [SWS_Dcm_00983]:

  • DCM_RES_POS_OK (0x00): 해석: 긍정 진단 응답이 성공적으로 전송되었습니다. 질문 (열림)
  • DCM_RES_POS_NOT_OK (0x01): 해석: 긍정 진단 응답 전송 중 오류가 발생했습니다. 질문 (열림)
  • DCM_RES_NEG_OK (0x02): 해석: 부정 진단 응답(NRC)이 성공적으로 전송되었습니다. 질문 (열림)
  • DCM_RES_NEG_NOT_OK (0x03): 해석: 부정 진단 응답 전송 중 오류가 발생했습니다. 질문 (열림)

상호 작용 및 인터페이스

확인 상태는 동기식 콜백 함수에서 입력 매개변수(IN)로 전달됩니다. 일반 확인 인터페이스 Xxx_Confirmation에서는 이 매개변수가 서비스 식별자(SID), 주소 지정 모드(ReqType), 연결 ID(ConnectionId), 프로토콜 타입 및 테스터 소스 주소와 함께 전달됩니다 [SWS_Dcm_01342]. 마찬가지로 인터페이스 ServiceRequestNotification도 작업 Confirmation을 통해 이 상태를 통합합니다 [SWS_Dcm_00694].

루틴 서비스 실행 시, 개별 루틴 작업 완료 후 전송 상태를 보고하기 위해 이 타입이 구체적으로 사용됩니다. 이를 위해 Dcm_Externals.h에 선언된 콜백인 Xxx_StartConfirmation [SWS_Dcm_91016], Xxx_StopConfirmation [SWS_Dcm_91017] 및 Xxx_RequestResultsConfirmation [SWS_Dcm_91018]이 사용됩니다.

동시성 및 실행

확인 함수는 Std_ReturnType을 반환합니다(예: E_OK 또는 E_NOT_OK) [SWS_Dcm_01342], [SWS_Dcm_91016]. 언급된 모든 인터페이스 호출은 동기식으로 실행되며 재진입 불가(Non Reentrant)로 선언되어 있습니다 [SWS_Dcm_01342], [SWS_Dcm_91016], [SWS_Dcm_91017], [SWS_Dcm_91018].

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

타입 Dcm_SesCtrlType [SWS_Dcm_00978] 📄 PDF

Session type definition. 0, 127 and all values above 127 are reserved by ISO.

타입 Dcm_AuthenticationRoleType [SWS_Dcm_91068] 📄 PDF

–

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 45efe05a1895 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 Dcm_AuthenticationRoleType은(는) 바이트 배열(uint8)(으)로 명세되며, 그 크기는 구성 매개변수 DcmDspAuthenticationRoleSize에 의해 결정됩니다 [SWS_Dcm_91068]. 이는 헤더 파일 Rte_Dcm_Type.h을(를) 통해 제공되며 DCM 모듈에서 인증 역할을 정형적으로 표현하는 데 사용됩니다 [SWS_Dcm_91068].

실제 적용에서 이 타입은 인증되지 않은 진단 연결에 대한 역할을 설정하기 위한 입력 매개변수로 사용됩니다:

  • 사용 및 시맨틱: 이 타입은 C 함수 Dcm_SetDeauthenticatedRole(Dcm.h을(를) 통해 사용 가능) [SWS_Dcm_91069] 및 서비스 인터페이스 Authentication의 오퍼레이션 SetDeauthenticatedRole [SWS_Dcm_91072]에서 입력 매개변수 deauthenticatedRole(으)로 전달됩니다. 이를 통해 connectionId을(를) 통해 식별되는 연결에 비인증 역할이 동기식으로 할당됩니다 [SWS_Dcm_91069].
  • 동시성 및 유효성: C API Dcm_SetDeauthenticatedRole은(는) 재진입 가능(reentrant)하도록 명세되어 있습니다 [SWS_Dcm_91069]. 할당된 역할은 해당 연결이 인증된 상태로 전환되거나 제어기가 리셋될 때까지 해당 연결에 대해 유효하게 유지됩니다 [SWS_Dcm_91069], [SWS_Dcm_91072].
  • 오류 처리: 해당 타입 및 관련 오퍼레이션에 대해 특정 오류 코드는 존재하지 않으며, 함수는 기본적으로 항상 E_OK을(를) 반환합니다 [SWS_Dcm_91069], [SWS_Dcm_91072].

이 텍스트는 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 DiagnosticSessionControlModeSwitchInterface [SWS_Dcm_91033] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7abebbf3ff04 출처 열린 질문 (3)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

인터페이스 요소 DiagnosticSessionControlModeSwitchInterface은(는) [SWS_Dcm_91033]에 따라 DCM 모듈의 제공된 포트(PPortPrototype 또는 ProvidedPort)(으)로 선언되어 있으며, 인터페이스 Dcm_DiagnosticSessionControlModeSwitchInterface을(를) 사용합니다. [SWS_Dcm_91033]의 명세에 따라 이 포트는 활성 진단 세션(Diagnostic Session)의 전환 및 현재 상태에 대해 소프트웨어 컴포넌트(SW-C)에 통지하는 역할을 합니다.

해석: 여기서 DCM 모듈은 진단 세션의 상태 변경 사항을 RTE를 통해 관심 있는 소프트웨어 컴포넌트로 전달하는 송신자 역할을 수행하는 것으로 추정됩니다. 질문 Q-6af0e97b6910087d (열림) 연결된 SW-C는 구성된 Mode-Switch 이벤트를 통해 이러한 모드 변경을 수신 및 처리하여 내부 시퀀스, 활성화 조건 또는 기능적 동작을 각각의 활성 진단 세션에 맞게 조정할 것으로 보입니다.

오류 처리 및 제약 조건

이 포트에 대해서는 [SWS_Dcm_91033]에 특정 오류 코드, 반환값 또는 DET나 DEM으로의 알림이 정의되어 있지 않습니다. 해석: 따라서 전송 시 발생 가능한 오류 상태는 AUTOSAR RTE 및 DCM 기본 모듈의 일반적인 메커니즘을 통해 완전히 모니터링되고 처리될 것으로 추정됩니다. 질문 Q-a8055458432174f6 (열림) 재진입성 또는 호출 컨텍스트와 관련된 특별한 제한 사항은 명세 데이터에 포함되어 있지 않으므로 추가로 고려하지 않습니다.

이 텍스트는 AUTOSAR R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 EcuResetModeSwitchInterface [SWS_Dcm_91034] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b2ef4373fbcc 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

포트 요소 EcuResetModeSwitchInterface은(는) [SWS_Dcm_91034]에 따라 DCM 모듈의 제공된 포트(ProvidedPort 또는 PPortPrototype)(으)로 명세되어 있습니다. 이는 인터페이스 Dcm_EcuResetModeSwitchInterface을(를) 사용하며, 예정된 제어기 리셋 및 정확한 리셋 유형에 대해 소프트웨어 컴포넌트(SW-C)에 알리는 역할을 합니다 [SWS_Dcm_91034].

시스템 내 사용 및 상호 작용과 관련하여 다음 사항이 적용됩니다:

  • 통신 역할: DCM은 모드 변경의 송신자 역할을 합니다. 관심 있는 SW-C는 해당 수신 포트(R-Port)를 통해 바인딩되어 알림에 대응합니다 [SWS_Dcm_91034].
  • 모드 변경 시맨틱: ModeSwitchInterface(으)로서 여기서는 클라이언트-서버 반환값이나 데이터 매개변수가 전송되지 않으며, RTE를 통해 상태 변경이 신호화됩니다 [SWS_Dcm_91034]. 따라서 알림은 인터페이스의 Mode 선언을 통해 이루어집니다.
  • 컴포넌트의 반응: 통지된 리셋 유형을 통해 SW-C는 예정된 재기동 유형에 대한 정보를 얻습니다 [SWS_Dcm_91034]. 이를 통해 애플리케이션은 휘발성 런타임 데이터를 비휘발성 메모리에 정돈된 방식으로 저장하거나 재기동 전에 주변 하드웨어를 안전한 상태로 전환할 수 있을 것으로 추정됩니다(해석). 질문 Q-4dcf9314d84b53a0 (열림)
  • 오류 처리: 인터페이스 정의 자체에는 SW-C의 오류 상태에 대한 오류 메시지나 반환 채널이 포함되어 있지 않습니다 [SWS_Dcm_91034].

이 텍스트는 AI에 의해 생성되었으며 AUTOSAR 릴리스 R20-11을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 ModeRapidPowerShutDownModeSwitchInterface [SWS_Dcm_91035] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e5557daff70f 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

인터페이스 ModeRapidPowerShutDownModeSwitchInterface은(는) [SWS_Dcm_91035]에 따라 모듈 Dcm 내에서 인터페이스 Dcm_ModeRapidPowerShutDownModeSwitchInterface에 대한 PPortPrototype(ProvidedPort)(으)로 명세되어 있습니다. 이는 소프트웨어 컴포넌트(SW-C)에 빠른 셧다운 모드(Rapid Power Shut Down Mode)에 대해 통지하는 역할을 합니다.

사용, 동작 및 상호 작용과 관련하여 다음 사항이 관련됩니다:

  • 사용 및 시맨틱: DCM은 ModeSwitchInterface을(를) 통해 연결된 SW-C에 모드 변경을 신호화합니다. 호출 컨텍스트는 모드 변경을 유발하는 DCM 모듈 내에 있으며, 수신자로의 전송은 RTE를 통해 비동기식으로 이루어집니다 [SWS_Dcm_91035].
  • 오류 처리: 포트 정의에는 특정 오류 코드, 반환값 또는 DET/DEM 이벤트가 포함되어 있지 않습니다. 따라서 모드 전송 시의 오류는 Mode-Switch 포트에 대한 AUTOSAR RTE의 표준 메커니즘을 통해 완전히 처리될 것으로 추정됩니다. 질문 Q-16537a6a4e19e40b (열림)
  • 동시성 및 제한 사항: 알림은 DCM의 실행 컨텍스트에서 수행됩니다. 수신 측 SW-C는 모드 트리거 방식의 Runnable을 통해 활성화되는 것으로 추정되며, 빠른 셧다운을 위한 동작을 차단성 지연 없이 실행하도록 설계되어야 합니다. 질문 Q-20f196c7af208288 (열림)

이 텍스트는 AUTOSAR 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0b1a5bf3d04f 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

용도 및 목적

요소 ControlDTCSettingModeSwitchInterface은(는) [SWS_Dcm_91037]에 따라 진단 통신 관리자(DCM)의 Provided 포트(PPortPrototype)(으)로 제공되는 ModeSwitchInterface입니다. 이것의 주된 역할은 연결된 소프트웨어 컴포넌트(SW-C)에 DTC 설정 모드(DTC Setting mode)의 현재 상태를 통지하는 것입니다.

포트 인터페이스로는 여기서 Dcm_ControlDTCSettingModeSwitchInterface이(가) 사용됩니다 [SWS_Dcm_91037]. DCM이 이 포트를 Provided 포트로 선언하므로 진단 모듈이 모드 관리자 또는 송신자 역할을 맡습니다. 애플리케이션 컴포넌트는 해당 Required 포트를 통해 연결되어 상태 변경을 수신하고 내부 동작을 조정할 수 있습니다.

상호작용 및 시스템 통합

시스템 연계에서의 상호 작용은 진단 명령과 애플리케이션 로직의 분리에 중점을 둡니다:

  • 모드 전파: 제공된 포트를 통해 DCM은 진단 고장 코드의 저장 및 업데이트가 활성 상태인지 비활성(잠금) 상태인지를 SW-C에 전달합니다 [SWS_Dcm_91037]. SW-C에 대한 알림은 AUTOSAR 런타임 환경에서 RTE의 표준 Mode-Switch 이벤트를 통해 이루어질 것으로 추정됩니다. 질문 Q-8c0918099f2aa797 (열림)
  • 진단적 기원: DTC 설정 모드의 전환은 외부 테스터가 고장 로깅을 일시적으로 억제할 수 있는 ControlDTCSetting(서비스 0x85)과 같은 UDS 진단 서비스의 직접적인 맥락에 있는 것으로 추정됩니다. 질문 Q-f2555e0641476955 (열림)

오류 처리 및 제약 조건

[SWS_Dcm_91037]의 명세에 특정 오류 코드나 DET 메시지 또는 반환값이 정의되어 있지 않으므로 모드 전송은 RTE의 메커니즘을 통해 순수하게 선언적으로 수행됩니다. 포트 선언 자체에 대해 특별한 호출 컨텍스트나 재진입성 규정은 명시되어 있지 않습니다.

이 텍스트는 AUTOSAR Classic R20-11 명세서를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 SecurityAccessModeSwitchInterface [SWS_Dcm_91039] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 11f23c0e37d5 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

포트 요소 SecurityAccessModeSwitchInterface은(는) DCM 모듈에서 인터페이스 Dcm_SecurityAccessModeSwitchInterface을(를) 기반으로 하는 Provided 포트(PPortPrototype)를 제공합니다 [SWS_Dcm_91039]. 이 인터페이스의 목적은 소프트웨어 컴포넌트(SW-C)에 현재 활성화된 보안 수준(Security Level)을 통지하는 것입니다 [SWS_Dcm_91039].

사용법 및 상호작용

알림은 DCM의 포트를 통해 연결된 컴포넌트로 전달됩니다 [SWS_Dcm_91039]. 이 제공 방식은 AUTOSAR RTE를 통한 Mode-Switch 통신으로 구현되어 연결된 SW-C가 Mode-Switch 이벤트를 통해 Security Level의 상태 변경에 대응할 수 있을 것으로 추정됩니다(해석). 질문 Q-d86dacdb91979b87 (열림) 매개변수, 반환값 또는 특정 동기 함수 호출은 포트 설명에 정의되어 있지 않으며 [SWS_Dcm_91039], 전송은 모드 관리자의 비동기 브로드캐스트 시맨틱에 해당할 것으로 추정됩니다(해석). 질문 Q-9d750df4f73b1634 (열림)

오류 처리 및 제한 사항

순수한 모드 전환에 해당하므로 명세에는 특정 오류 코드, 매개변수 검사 또는 DET나 DEM으로의 보고가 언급되어 있지 않습니다 [SWS_Dcm_91039]. 알림 시 직접적인 오류 처리는 인터페이스 자체에서 제공되지 않을 것으로 추정됩니다(해석). 질문 (열림) 재진입성이나 다른 변형에 관한 제한 사항은 해당 포트 요소에 대해 명세되어 있지 않습니다 [SWS_Dcm_91039].

이 사용 지침은 자동으로 생성되었으며 AUTOSAR 릴리스 R20-11의 규정을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 DcmDiagnosticSessionControl [SWS_Dcm_91019] 📄 PDF

ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}

타입 DcmModeRapidPowerShutDown [SWS_Dcm_91023] 📄 PDF

ModeDeclarationGroup representing the enable/disable state of rapid power shutdown

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d451f77bd84c 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

ModeDeclarationGroup DcmModeRapidPowerShutDown은 제어기(ECU)에서 빠른 종료(Rapid Power Shutdown)의 활성화 상태를 표현하는 데 사용됩니다 [SWS_Dcm_91023]. 이 요소는 EXPLICIT_ORDER 카테고리에 할당되며 두 가지 구체적인 모드를 정의합니다: 숫자 값 0를 갖는 초기 모드 DCM_ENABLE_RAPIDPOWERSHUTDOWN 및 값 1을 갖는 DCM_DISABLE_RAPIDPOWERSHUTDOWN [SWS_Dcm_91023]. 모드 전환에 대해서는 전환 값 255 (On transition value)가 명시되어 있습니다 [SWS_Dcm_91023].

상호작용 및 모드 관리

전체 시스템에서 DCM 모듈은 일련의 진단 모드에 대한 모드 관리자(Mode Manager) 역할을 하며, 여기에는 진단 서비스 0x11 (ECU Reset) 컨텍스트의 DcmModeRapidPowerShutDown도 포함됩니다 [SWS_Dcm_00775]. 베이직 소프트웨어 내에서 DCM은 이 ModeDeclarationGroup [SWS_Dcm_00807]을 기반으로 자체 BSW 모듈 인스턴스에서 ModeDeclarationGroupPrototype DcmModeRapidPowerShutDown을 provided-ModeGroup로 정의합니다.

빠른 종료의 현재 활성화 상태에 대한 정보를 받아야 하는 응용 컴포넌트(SW-C)는 표준화된 서비스 인터페이스 Dcm_ModeRapidPowerShutDownModeSwitchInterface을 바인딩합니다 [SWS_Dcm_91024]. 이들은 해당 모드 그룹 modeRapidPowerShutDown를 통해 런타임에 DCM의 해당 모드 전환을 수신합니다 [SWS_Dcm_91024].

이 사용 지침은 AUTOSAR R20-11의 사양 요구사항을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 DcmCommunicationControl [SWS_Dcm_91025] 📄 PDF

ModeDeclarationGroup representing the different communication control states

타입 DcmControlDTCSetting [SWS_Dcm_91027] 📄 PDF

ModeDeclarationGroup representing the enable/disable state for DTC storage

타입 DcmResponseOnEvent [SWS_Dcm_91029] 📄 PDF

ModeDeclarationGroup representing the state of a Response On Event

타입 DcmSecurityAccess [SWS_Dcm_91031] 📄 PDF

ModeDeclarationGroup representing the different diagnostic security levels Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp Security/DcmDspSecurityRow.SHORT-NAME)}

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 776ea5647fe7 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

EXPLICIT_ORDER 카테고리의 ModeDeclarationGroup DcmSecurityAccess은 UDS 서비스 0x27 (SecurityAccess)에 대한 제어기(ECU)의 다양한 진단 보안 수준을 나타냅니다 [SWS_Dcm_91031], [SWS_Dcm_00775]. 초기 모드로는 기본적으로 고정값 0을 갖는 DCM_SEC_LEV_LOCKED이 지정됩니다 [SWS_Dcm_91031], [SWS_Dcm_01327]. DCM_SEC_LEV_1부터 DCM_SEC_LEV_63까지의 추가 보안 수준은 DcmDspSecurityRow 아래의 보안 행 구성을 통해 프로젝트 및 애플리케이션별로 보완됩니다 [SWS_Dcm_91031], [SWS_Dcm_01327].

DCM 모듈은 이 진단 모드 [SWS_Dcm_00775]에 대한 모드 관리자로서 중심 역할을 수행합니다. 보안 수준이 변경될 때마다 DCM은 새로 획득한 보안 상태로 모드 그룹 DcmSecurityAccess을 업데이트합니다 [SWS_Dcm_01329]. 개별 모드 간의 상태 전환이 진행되는 동안 시스템은 정의된 전환 값 255(On transition value)를 알립니다 [SWS_Dcm_91031].

소프트웨어 컴포넌트로의 현재 보안 상태 전달은 서비스 인터페이스 Dcm_SecurityAccessModeSwitchInterface을 통해 이루어집니다 [SWS_Dcm_91032]:

  • 이를 위해 DCM은 인터페이스를 통해 ModeDeclarationGroupPrototype DcmSecurityAccess을 제공된 모드 그룹(provided-ModeGroup)으로 제공합니다 [SWS_Dcm_01327], [SWS_Dcm_91032].
  • 현재 Security Level에 대한 정보를 받아야 하는 각 소프트웨어 컴포넌트(SW-C)는 ModeSwitch 인터페이스 Dcm_SecurityAccessModeSwitchInterface에 대한 의존성을 선언하고 이를 Required-Port로 바인딩합니다 [SWS_Dcm_91032].
  • 인터페이스 내 개별 모드의 가용성은 기반이 되는 보안 행 [SWS_Dcm_91032]과 동일한 구성 변형의 적용을 받습니다.

이 텍스트는 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Dcm
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Dcm@rel:R20-11#9ef89b81
Content hash
9ef89b81
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DiagnosticCommunicationManager.pdf#nameddest=SWS_Dcm_00037

주제 맵

초기화 및 상태

2

상세 보기

개요에서 항목을 선택하세요.

초기화 및 상태

Returns the version information of this module

void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);
Dcm_Init 함수

Service for basic initialization of DCM module.

void Dcm_Init (const Dcm_ConfigType* ConfigPtr);

서비스 · Get…

This function returns the active UDS protocol details

Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);

The Dcm_GetProgConditions callout is called upon Dcm initialization and allows to determine if a response ($50 or $51) has to be sent. The context parameters are defined in Dcm_Prog ConditionsType.

Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);

This function provides the active security level value.

Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);

This function provides the active session control type value.

Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);
Dcm_GetVin 함수

Function to get the VIN (as defined in SAE J1979-DA)

Std_ReturnType Dcm_GetVin (uint8* Data);

The function provides the data related to the requested Infotype.

Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);

This function requests to the application for the scaling information of a Data.

Std_ReturnType Xxx_GetScalingInformation (uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application for the scaling information of a Data.

Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);

Read the attempt counter for a specific security level from the application

Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);

Request to application for asynchronous provision of seed value

Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous provision of seed value

Std_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);

서비스 · Process…

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x01 (AddFile).

Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x02 (DeleteFile). Manager

Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x05 (ReadDir).

Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x04 (ReadFile).

Std_ReturnType Dcm_ProcessRequestReadFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x03 (ReplaceFile).

Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to start a download process. This service is needed for the implementation of UDS service RequestDownload.

Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to terminate a download or upload process. This callout is needed for the implementation of UDS service RequestTransferExit.

Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to start an upload process. This service is needed for the implementation of UDS service RequestUpload.

Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData

Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The ProcessTransferDataWrite callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData

Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

서비스 · Read…

Callout function. DCM shall call this function when data shall be sent as a response to UDS service TransferData if there's an ongoing RequestFileTransfer process started with 0x04 (ReadFile) or 0x05 (ReadDir).

Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData

Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.

Std_ReturnType Xxx_ReadData (uint8* Data);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.

Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.

Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to return the data length in byte of a Data.

Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);

This function requests the application to return the data length in byte of a Data.

Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);

This function requests to the application a data value of a DID

Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

This function requests the application to return the data length of a DID Range.

Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);

서비스 · Write…

Callout function. DCM shall call this function when data is received using UDS service Transfer Data if there's an ongoing RequestFileTransfer process started with 0x01 (AddFile) or 0x03 (ReplaceFile).

Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData

Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

서비스 · Set…

Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.

Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);

Sets a new role used in deauthenticated state for that connection. The set role is valid until the connection switches into authenticated state or the ECU is reset.

Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);

The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request. The context parameter are defined in Dcm_ProgConditionsType.

Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);

Set the attempt counter for a specific security level in the application

Std_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);

서비스 · Com…

This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.

void Dcm_ComM_FullComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.

void Dcm_ComM_NoComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.

void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);

서비스 · Request…

Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output. This is typically used to implement OBD Service $08

Std_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);

This function requests to the application the result of a routine execution

Std_ReturnType Xxx_RequestResults (Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType* dataIn_1, ... DcmDspRoutineSignalType* dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType* dataOut_1, ... DcmDspRoutineSignalType* dataOut_n ], [ uint8* dataOutVar ], [ uint16* variableDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);

This function indicates the transmission of a response to a RequestRoutineResults request

Std_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

서비스 · Reset…

The call to this function allows the application to reset the current session to Default session. Example: Automatic termination of an extended diagnostic session upon exceeding of a speed limit.

Std_ReturnType Dcm_ResetToDefaultSession (void);

This function requests to the application to reset an IOControl to default value.

Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to reset an IOControl to default value.

Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

서비스 · Start…

Xxx_Start 함수

This function requests to the application to start the execution of a routine.

Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️

This function indicates the transmission of a response to a StartRoutine request

Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.

Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

서비스 · Stop…

Xxx_Stop 함수

This function requests to the application to stop the execution of a routine

Std_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);

This function indicates the transmission of a response to a StopRoutine request

Std_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function informs the application of the protocol stop.

Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

서비스 · 기타

Called by BndM to indicate that a block write operation has finished.

void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);

Can be called from Csm upon finishing an asynchronous job processing. The integrator will configure this name as callback function within the Csm ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the job that has finished by evaluating the job parameter. API availability: This API will be available only if ({ecuc(Dcm/Dcm Dsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).

Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);

Triggers on changes of the UDS status byte. Allows to trigger on ROE Event for subservice On DTCStatusChanged.

Std_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);

Can be called from Key upon finishing an asynchronous certificate verification. The integrator will configure this name as callback function within the KeyM ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the certificate that has finished by evaluating the certId parameter. API availability: This API will be available only if ({ecuc(Dcm/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).

Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);

The call to this function allows to trigger an event linked to a ResponseOnEvent request. On the function call, the DCM will execute the associated service if the corresponding Mode of the Roe EventId is 'ROE started'.

Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);

Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.

Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)

Std_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application if the conditions to read the Data are correct.

Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application if the conditions to read the Data are correct.

Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function confirms to the application the successful transmission or a transmission error of a diagnostic service.

Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);

This function requests to the application to freeze the current state of an IOControl.

Std_ReturnType Xxx_FreezeCurrentState ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to freeze the current state of an IOControl.

Std_ReturnType Xxx_FreezeCurrentState (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function indicates to the application that a service is about to be executed and allows the application to reject the execution of the service request

Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);

This function requests if a specific DID is available within the range or not.

Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);

This function requests to the application to return control to ECU of an IOControl.

Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to adjust the IO signal.

Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to adjust the IO signal.

Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

콜백

This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr. This function might be called in interrupt context.

BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr. This function might be called in interrupt context.

BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. This function might be called in interrupt context.

BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);

This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. This function might be called in interrupt context.

void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

주기적

This service is used for processing the tasks of the main loop.

void Dcm_MainFunction (void);

타입

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode

– Manager

This type defines a data structure for the post build parameters of the DCM . At initialization the DCM gets a pointer to a structure of this type to get access to its configuration data, which is necessary for initialization.

Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader

This message context identifier can be used to determine the relation between request and response confirmation.

–

Additional information on message request. Datastructure: Bitfield

This data structure contains all information which is necessary to process a diagnostic message from request to response and response confirmation.

Base type for diagnostic message item

Length of diagnostic message (request, positive or negative response). The maximum length is dependent of the underlying transport protocol/media.

Base type for diagnostic message (request, positive or negative response)

Type Dcm_NegativeResponseCodeType.

Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request.

Type Dcm_ProtocolType.

Return values of Callout Dcm_ReadMemory

Return type of callout Dcm_WriteMemory

Security Level type definition

Session type definition. 0, 127 and all values above 127 are reserved by ISO.

Base item type to transport status information.

ModeDeclarationGroup representing the different communication control states

ModeDeclarationGroup representing the enable/disable state for DTC storage

ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}

ModeDeclarationGroup representing the different ECU reset types

ModeDeclarationGroup representing the enable/disable state of rapid power shutdown

ModeDeclarationGroup representing the state of a Response On Event

ModeDeclarationGroup representing the different diagnostic security levels Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp Security/DcmDspSecurityRow.SHORT-NAME)}

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level