DEENESPTFRRUARHIKOZHNL

Diagnostic Log and Trace (DLT)

ModulDlt (Diagnostic Log and Trace)
BSW-Modul-ID55
Standard-Header#include "Dlt.h"
SWS-SpezifikationAUTOSAR_SWS_DiagnosticLogAndTrace.pdf
ClusterDiagnostic Services

모듈 가이드AI 생성

SW-C 및 BSW로부터 로그 및 트레이스 메시지를 수집, 필터링 및 버퍼링하여 외부 도구로 전송합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: dfa88865c54d 출처 열린 질문 (1)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

SW-C 및 BSW로부터 로그 및 트레이스 메시지를 수집, 필터링 및 버퍼링하여 외부 도구로 전송합니다.

Dlt 모듈은 SW-C, BSW 모듈, DET 및 RTE VFB 훅으로부터 로그 및 트레이스 메시지를 수집합니다. 이를 로그 레벨 및 트레이스 상태에 따라 필터링하고, LogChannel에 할당하며 버퍼링합니다. 전송은 주기적인 Dlt_TxFunction 및 PduR [SWS_Dlt_00241]을 통해 디커플링되어 수행됩니다. 외부 클라이언트는 런타임에 필터 및 채널 할당을 변경할 수 있으며, 등록된 SW-C에는 이에 대한 알림이 전달됩니다. 가장 중요한 제약 조건: Dlt_Init 이전 및 선택적인 시작 지연 시간이 만료될 때까지 메시지는 버퍼링만 됩니다 [SWS_Dlt_00005].

Dlt 모듈은 ECU 상의 로그 및 트레이스 메시지를 위한 중앙 수집 지점입니다. SW-C(RTE 포트 경유) 및 BSW 모듈은 Dlt_SendLogMessage 및 Dlt_SendTraceMessage을 통해 메시지를 전달합니다 [SWS_Dlt_00241] [SWS_Dlt_00243]. DET 오류는 Dlt_DetForwardErrorTrace를 통해 추가되며 [SWS_Dlt_00430], SW-C 통신은 RTE의 생성된 VFB 트레이스 훅을 통해 전달됩니다 [SWS_Dlt_00027]. 유일한 싱크는 PduR_DltTransmit을 갖춘 PduR입니다 [SWS_Dlt_00762]. 각 메시지는 각각 4바이트 크기의 ApplicationId와 ContextId 튜플을 통해 식별되며, 0x00000000은 와일드카드로 사용됩니다 [SWS_Dlt_00226] [SWS_Dlt_00227].

kontext swc SW-C rte RTE (Ports, VFB-Hooks) swc->rte Dlt_SendLogMessage Dlt_RegisterContext dlt Dlt rte->dlt Port-Aufrufe VFB-Trace-Hooks bsw BSW-Module bsw->dlt Dlt_SendLogMessage Dlt_SendTraceMessage det DET (Fan-out) det->dlt Dlt_DetForwardErrorTrace ecum EcuM ecum->dlt Dlt_Init schm SchM schm->dlt Dlt_TxFunction dlt->rte LogLevelChangedNotification Dlt_InjectCall_<SESSION> nvm NvM dlt->nvm NvM_ReadBlock NvM_WriteBlock zeit Gpt / StbM (Zeitstempel) dlt->zeit Gpt_GetTimeElapsed StbM_GetCurrentTime pdur PduR dlt->pdur PduR_DltTransmit pdur->dlt Dlt_RxIndication Dlt_TxConfirmation client Externer Dlt-Client pdur->client Dlt-Nachrichten client->pdur Steuernachrichten

컨텍스트 다이어그램: Dlt 주변의 소스, 보조 서비스(NvM, Gpt/StbM, SchM) 및 싱크로서의 PduR. 소스: [SWS_Dlt_00762], [SWS_Dlt_00763], [SWS_Dlt_91005].

Dlt는 초기화 전부터 이미 수신 메시지를 버퍼링합니다 [SWS_Dlt_00003]. 이는 Dlt_Init이 실행되고 선택적인 시작 지연 타이머가 만료된 후에만 처리됩니다 [SWS_Dlt_00005]. NvRAM 지원이 있는 경우 Dlt_Init은 NvM_ReadBlock를 통해 런타임 구성을 복원합니다 [SWS_Dlt_00453]. 저장은 Dlt_StoreConfiguration을 통한 명시적인 요청이 있을 때만 수행됩니다 [SWS_Dlt_00078].

호출 컨텍스트에서 Dlt는 필터링, 채널 선택, 길이 검사 및 버퍼 저장을 수행합니다. 전송은 부정 확인 응답 후의 재시도를 포함하여 주기적인 Dlt_TxFunction에서 디커플링되어 수행됩니다 SWS DLT 92쪽 [SWS_Dlt_91005].

LogChannel을 통한 Dlt 메시지 전송Dlt-Nutzer (SW-C/RTE/Det)DltGptSchMPduRUse Case: 호출 컨텍스트에서 수락 (동기)Dlt_SendLogMessage / Dlt_SendTraceMessage /Dlt_DetForwardErrorTraceNachrichtenfilterung,LogChannel-Schwelle anwenden대상 LogChannels 선택,길이 검사Zeitstempel holen (Gpt_GetTimeElapsed)verstrichene Zeitin LogChannel-Puffer ablegenStd_ReturnTypeUse Case: Entkoppelter VersandDlt_TxFunction()loop트래픽 셰이핑에 따름Dlt-Header zusammensetzen,전송 카운터 증가PduR_DltTransmit(DltTxPduId, ...)Dlt_TxConfirmation(TxPduId, result)altE_OK 또는 재시도 횟수 소진버퍼에서 메시지 제거E_NOT_OK, 재시도 허용됨재전송을 위해 메시지 유지

시퀀스 다이어그램: 동기식 전송 호출은 버퍼 저장으로 종료됩니다. Dlt_TxFunction이 전송, 확인 응답 및 재시도를 처리합니다. 출처: SWS DLT S. 92, [SWS_Dlt_91005], [SWS_Dlt_00273].

외부 클라이언트는 Dlt_RxIndication을 통해 수신되는 제어 메시지를 통해 로그 레벨, 트레이스 상태 및 LogChannel 임계값을 제어합니다 [SWS_Dlt_00272]. 동일한 제어 변수가 Dlt_SetLogLevel와 같은 API로도 제공됩니다 [SWS_Dlt_00252]. Dlt가 LogLevelChangedNotification를 통해 등록된 SW-C에 알릴 수 있도록, SW-C는 사전에 Dlt_RegisterContext를 사용하여 해당 컨텍스트를 등록합니다 [SWS_Dlt_00245] [SWS_Dlt_00496].

오류 발생 시 전송 호출은 DLT_E_MSG_TOO_LARGE, DLT_E_NO_BUFFER 또는 DLT_E_UNKNOWN_SESSION_ID를 보고합니다 [SWS_Dlt_00495]. 버퍼 오버플로 시 메시지는 폐기되고, 오버플로 플래그가 설정되며, 구성에 따라 BufferOverflowNotification이 전송됩니다 SWS DLT 32쪽.

역할 및 시스템 경계: 로그 및 트레이스 데이터를 위한 중앙 수집 지점

Diagnostic Log and Trace (Dlt) 모듈은 소프트웨어 컴포넌트(SW-C) 및 기본 소프트웨어(BSW)로부터 로그 및 트레이스 메시지를 수신합니다. 이를 필터링 및 버퍼링하고 Dlt 메시지 형태로 외부 도구에 전달합니다. 두 전송 인터페이스인 Dlt_SendLogMessage 및 Dlt_SendTraceMessage은 BSW 모듈과 SW-C 모두를 위해 명시적으로 제공됩니다 [SWS_Dlt_00241] [SWS_Dlt_00243]. 데이터 경로의 소스는 SW-C 또는 BSW 모듈이며, 싱크는 PDU Router입니다 SWS DLT 26쪽. 이를 위해 Dlt는 PduR_DltTransmit를 필수적으로 필요로 합니다 [SWS_Dlt_00762]. 외부 클라이언트에 대한 메시지 형식, 명령 및 프로토콜은 SWS가 아니라 프로토콜 사양에서 정의합니다 SWS DLT 9쪽.

명시적인 호출 외에도 고정된 공급처가 존재합니다:

  • DET: 오류 메시지는 팬아웃 함수 Dlt_DetForwardErrorTrace을 통해 Dlt로 유입됩니다 [SWS_Dlt_00430] [SWS_Dlt_00432]. 이들은 ApplicationID “DET” 및 ContextId “STD”를 가집니다 [SWS_Dlt_00376].
  • DEM: DEM 이벤트에 대한 로그 메시지는 “DEM”, “STD0” 및 MessageID 0x00000001을 사용합니다 [SWS_Dlt_00377].
  • RTE: SW-C 통신을 VFB 트레이스로서 암시적으로 전달합니다 [SWS_Dlt_00276] [SWS_Dlt_00284].

Dlt는 Gpt 또는 StbM으로부터 타임스탬프를 가져오며, 지속성은 NvM이 담당합니다 [SWS_Dlt_00763]. Dlt_DetForwardErrorTrace은 R20-11에서는 API에 속했으나, R25-11에서 제거되었습니다 SWS DLT 1쪽.

kontext swc SW-C rte RTE (Ports, VFB-Hooks) swc->rte Dlt_SendLogMessage Dlt_RegisterContext dlt Dlt rte->dlt Port-Aufrufe VFB-Trace-Hooks bsw BSW-Module bsw->dlt Dlt_SendLogMessage Dlt_SendTraceMessage det DET (Fan-out) det->dlt Dlt_DetForwardErrorTrace ecum EcuM ecum->dlt Dlt_Init schm SchM schm->dlt Dlt_TxFunction dlt->rte LogLevelChangedNotification Dlt_InjectCall_<SESSION> nvm NvM dlt->nvm NvM_ReadBlock NvM_WriteBlock zeit Gpt / StbM (Zeitstempel) dlt->zeit Gpt_GetTimeElapsed StbM_GetCurrentTime pdur PduR dlt->pdur PduR_DltTransmit pdur->dlt Dlt_RxIndication Dlt_TxConfirmation client Externer Dlt-Client pdur->client Dlt-Nachrichten client->pdur Steuernachrichten

컨텍스트 다이어그램: Dlt는 메시지 소스(RTE 경유 SW-C, BSW, DET)와 유일한 싱크인 PduR 사이에 위치합니다. NvM, Gpt/StbM 및 SchM은 보조 서비스입니다. 출처: [SWS_Dlt_00762], [SWS_Dlt_00763], [SWS_Dlt_00430], [SWS_Dlt_91005], SWS DLT S. 26.

기동에서 작동까지: 초기화 전 버퍼링, Dlt_Init 및 지속성

SW-C 및 BSW 모듈은 Dlt가 초기화되기 전에도 이미 로깅을 수행할 수 있습니다. 따라서 Dlt는 초기화 전부터 이미 Dlt_SendLogMessage 및 Dlt_SendTraceMessage의 데이터를 버퍼링해야 합니다 [SWS_Dlt_00003]. 버퍼링된 데이터는 두 가지 조건이 충족된 후에야 비로소 정상적으로 처리됩니다: Dlt_Init이 실행되었고, 선택적인 타이머 DltGeneralStartUpDelayTimer가 만료된 경우입니다 [SWS_Dlt_00005]. 이 타이머는 구성되어 있는 경우 Dlt_Init 호출 시 시작됩니다 SWS DLT 25쪽.

lebenszyklus start uninit 초기화되지 않음 전송 호출이 버퍼링됨 start->uninit uninit->uninit Dlt_SendLogMessage / Dlt_SendTraceMessage verzoegerung 초기화됨 시작 지연 실행 중 (버퍼링 지속) uninit->verzoegerung Dlt_Init [DltGeneralStartUpDelayTimer konfiguriert] betrieb 작동 버퍼 내용 및 새 메시지 처리됨 uninit->betrieb Dlt_Init [시작 지연 타이머 없음] verzoegerung->betrieb Timer abgelaufen

상태 다이어그램: 초기화 전까지 및 경우에 따라 시작 지연이 종료될 때까지 메시지는 버퍼링만 되며, 그 이후에 비로소 처리됩니다. 출처: [SWS_Dlt_00003], [SWS_Dlt_00005], SWS DLT S. 25.

Dlt_Init은 동기식이며 재진입이 불가능합니다. 이 함수는 구현에 따라 내용이 결정되는 Dlt_ConfigType에 대한 포인터를 기대합니다 [SWS_Dlt_00239] [SWS_Dlt_00437]. Dlt는 NvM을 사용하므로, 초기화는 기동 후반부 및 NvM 이후에 수행되어야 합니다 [SWS_Dlt_00239]. DltGeneralNvRAMSupport = TRUE인 경우 Dlt는 다음과 같이 동작합니다:

NvRAM 지원이 없는 경우 정적 구성이 적용됩니다 SWS DLT 25쪽. 다이어그램에 따른 호출자는 EcuM입니다 SWS DLT 159쪽.

Dlt 모듈 초기화EcuMDltNvMGptDlt_Init(config)altDltGeneralNvRAMSupport == TRUENvM_ReadBlock(BlockId, NvM_DstPtr)NV 블록의 유효성 검사,gespeicherte Werte als StartwerteDltGeneralNvRAMSupport == FALSEstatische Konfiguration ladenoptDltGeneralStartUpDelayTimer konfiguriertGpt_StartTimer(Channel, Value)복귀 (동기식)초기화 및 시작 지연 시간 경과 후:gepufferte Nachrichten verarbeiten

시퀀스 다이어그램: EcuM이 Dlt_Init을 동기식으로 호출합니다. Dlt는 DltGeneralNvRAMSupport에 따라 NvM 또는 정적으로부터 구성을 로드하고 선택적으로 시작 지연 타이머를 시작합니다. 출처: [SWS_Dlt_00239], [SWS_Dlt_00453], [SWS_Dlt_00005], SWS DLT S. 159, CP SWS DLT S. 90.

메시지 모델: 식별자, 로그 레벨 및 트레이스 유형

각 로그 메시지는 5개의 필드를 가진 구조체 Dlt_MessageLogInfoType을 포함합니다: argCount, logLevel, options, contextId 및 appId [SWS_Dlt_00236]. 트레이스 메시지는 로그 레벨 대신 traceInfo 필드를 포함하는 Dlt_MessageTraceInfoType을 사용합니다 [SWS_Dlt_00237]. ApplicationId 및 ContextId는 4바이트 배열이며, 0x00000000은 와일드카드로 사용됩니다 [SWS_Dlt_00226] [SWS_Dlt_00227]. Application ID는 SW-C의 ShortName입니다. Context ID는 해당 메시지들을 기능별로 그룹화합니다 EXP LSA 159쪽. 비트 필드 Dlt_MessageOptionsType은 비트 0에서 Verbose 모드를, 비트 1–3에서 메시지 유형을 인코딩합니다 [SWS_Dlt_00229].

유형가치근거
Dlt_MessageTypeDLT_TYPE_LOG, DLT_TYPE_APP_TRACE, DLT_TYPE_NW_TRACE, DLT_TYPE_CONTROL[SWS_Dlt_00224]
Dlt_MessageLogLevelTypeDLT_LOG_OFF (0x00)부터 DLT_LOG_VERBOSE (0x06)까지[SWS_Dlt_00230]
Dlt_MessageTraceTypeDLT_TRACE_VARIABLE, DLT_TRACE_FUNCTION_IN, DLT_TRACE_FUNCTION_OUT, DLT_TRACE_STATE, DLT_TRACE_VFB[SWS_Dlt_00231]
Dlt_MessageNetworkTraceInfoTypeDLT_NW_TRACE_IPC부터 DLT_NW_TRACE_SOMEIP까지[SWS_Dlt_00233]

Non-Verbose 모드에서는 고유한 Message ID가 메시지의 정적 부분을 식별합니다 [SWS_Dlt_00228]. ID 0x00000001 (DEM), 0x00000002 (DET) 및 0x00000003 (Trace)은 예약되어 있으며 SW-C에서 사용할 수 없습니다 [SWS_Dlt_00031]. 회선 상에서 Message ID는 헤더 바로 뒤에 위치하며, 그 뒤에 비정적 데이터가 이어집니다 PRS DLT 23쪽. 헤더 필드 MTIN은 메시지 유형 MSTP에 따라 로그 레벨 또는 트레이스 유형으로부터 구성됩니다 PRS DLT 24쪽.

전송 경로: 필터, LogChannel 선택, 버퍼링 및 Dlt_TxFunction

전송 호출은 동기식이며 재진입이 가능합니다. 이들은 sessionId, 정보 구조체 및 길이를 포함한 페이로드를 수신합니다 [SWS_Dlt_00241] [SWS_Dlt_00243]. R20-11 다이어그램은 호출 컨텍스트에서의 순서를 보여줍니다:

  1. 메시지 필터링
  2. LogChannel 임계값 적용
  3. 대상 LogChannel 선택
  4. 길이 검사
  5. LogChannel 버퍼에 메시지 저장

실제 전송은 나중에 Dlt_TxFunction이 담당합니다 SWS DLT 92쪽. 다음 개별 단계들은 R23-11 버전의 문서 위치에 명시되어 있으며 이 다이어그램과 일치합니다. Dlt는 구성된 경우에만 타임스탬프를 가져옵니다: Gpt_GetTimeElapsed를 통해 또는 StbM_GetCurrentTime을 통해 [SWS_Dlt_00654] [SWS_Dlt_00655].

LogChannel은 3단계로 결정됩니다 SWS DLT 32쪽:

  1. 할당이 ApplicationId/ContextId 튜플과 정확히 일치하는 채널.
  2. 일치하는 ApplicationId 및 와일드카드 ContextId를 가진 채널.
  3. 목록이 비어 있는 경우, 기본 LogChannel.

할당은 런타임에 Dlt_SetLogChannelAssignment을 사용하여 변경할 수 있습니다 [SWS_Dlt_00751]. 메시지는 할당된 모든 채널에 대해 DltLogChannelMaxMessageLength를 초과하는 경우에만 폐기됩니다 SWS DLT 31쪽. 그렇지 않으면 메시지가 수용될 만큼 짧은 모든 채널의 버퍼로 복사됩니다 SWS DLT 32쪽.

kanalwahl start filter Filter bestanden? (Log-Level/Trace-Status, LogChannel-Schwelle) start->filter verworfen 추가 처리되지 않음 filter->verworfen 아니요 exakt 정확히 일치하는 ApplicationId/ContextId 튜플을 가진 채널 수집 filter->exakt 예 wildcard 일치하는 ApplicationId와 와일드카드 ContextId를 가진 채널 추가 exakt->wildcard leer Liste leer? wildcard->leer default Default-LogChannel (DltDefaultLogChannelRef) leer->default 예 laenge 최소 하나의 채널에 대해 길이 <= DltLogChannelMaxMessageLength인가? leer->laenge 아니요 default->laenge zulang verwerfen, DLT_E_MSG_TOO_LARGE laenge->zulang 아니요 kopie 길이가 일치하는 모든 채널의 버퍼로 복사 laenge->kopie 예 platz Platz in keinem zugeordneten Puffer? kopie->platz keinpuffer 폐기, DLT_E_NO_BUFFER, 오버플로 플래그 설정 platz->keinpuffer 예 ok gepuffert, Versand durch Dlt_TxFunction platz->ok 아니요

액티비티 다이어그램: 메시지는 필터, 3단계 채널 선택, 길이 검사 및 버퍼 저장을 거칩니다. 각 분기는 고유한 반환 값과 함께 폐기로 이어질 수 있습니다. 출처: SWS DLT S. 31, SWS DLT S. 32, [SWS_Dlt_00495], [SWS_Dlt_00751].

PduR을 통한 전송은 전송 호출로부터 디커플링되며 Dlt_TxFunction의 컨텍스트에서 실행됩니다 [SWS_Dlt_91005]. 헤더는 PduR_DltTransmit 이전에 조립되며, 메시지당 전송 카운터가 함께 카운트됩니다 SWS DLT 35쪽. 버퍼에서 메시지가 제거되는 경우는 세 가지입니다 SWS DLT 38쪽:

  • PduR_DltTransmit이(가) E_NOT_OK를 반환합니다.
  • 긍정 전송 확인 응답이 도착한 경우.
  • 부정 확인 응답이 도착하고 DltLogChannelMaxNumOfRetries이 초과된 경우.

하위 계층은 다음 콜백을 통해 응답을 전달합니다:

LogChannel을 통한 Dlt 메시지 전송Dlt-Nutzer (SW-C/RTE/Det)DltGptSchMPduRUse Case: 호출 컨텍스트에서 수락 (동기)Dlt_SendLogMessage / Dlt_SendTraceMessage /Dlt_DetForwardErrorTraceNachrichtenfilterung,LogChannel-Schwelle anwenden대상 LogChannels 선택,길이 검사Zeitstempel holen (Gpt_GetTimeElapsed)verstrichene Zeitin LogChannel-Puffer ablegenStd_ReturnTypeUse Case: Entkoppelter VersandDlt_TxFunction()loop트래픽 셰이핑에 따름Dlt-Header zusammensetzen,전송 카운터 증가PduR_DltTransmit(DltTxPduId, ...)Dlt_TxConfirmation(TxPduId, result)altE_OK 또는 재시도 횟수 소진버퍼에서 메시지 제거E_NOT_OK, 재시도 허용됨재전송을 위해 메시지 유지

시퀀스 다이어그램: 동기식 전송 호출은 버퍼 저장으로 종료됩니다. 실제 전송, 확인 응답 및 재시도는 주기적인 Dlt_TxFunction이 처리합니다. 출처: SWS DLT S. 92, [SWS_Dlt_91005], [SWS_Dlt_00273], SWS DLT S. 35, SWS DLT S. 38.

생성된 RTE 훅 함수를 통한 VFB 트레이스

VFB 트레이스는 다음을 의미합니다: SW-C 자체가 직접 호출하지 않고도, RTE가 SW-C 통신을 암시적으로 Dlt에 전달합니다 SWS DLT 23쪽. 이를 위해 Dlt는 ShortName “Rte_Dlt…”를 갖는 BswModuleEntry가 기술하는 구성된 각 이벤트에 대한 훅 함수를 구현합니다 [SWS_Dlt_00027]. 프로토타입은 RTE 기술(description)에서 제공합니다 [SWS_Dlt_00335]. Dlt_SendTraceMessage은 SW-C 인터페이스입니다. 따라서 훅은 동등한 내부 함수를 호출하며 [SWS_Dlt_00285], Non-Verbose 모드에서 [SWS_Dlt_00277] 모든 인수를 페이로드로 사용하여 호출합니다 [SWS_Dlt_00278].

훅에는 다음과 같은 추가 규칙이 적용됩니다:

  • 각 훅 함수는 고유한 ContextId를 부여받습니다. 신호 수가 매우 많은 경우 이벤트를 묶을 수 있습니다 [SWS_Dlt_00279].
  • 전송 전에 각 훅은 해당 ContextId의 트레이스 상태를 확인합니다 [SWS_Dlt_00281].
  • 메시지는 DLT_TRACE_VFB [SWS_Dlt_00484]와 함께 DLT_TYPE_APP_TRACE을 전달하며 ApplicationID “VFBT”를 갖습니다 SWS DLT 23쪽.
  • 훅의 트레이스 상태는 LogTraceSessionControl과 조화를 이루는 별도의 함수를 통해 변경됩니다 [SWS_Dlt_00283].

해석: 내부 함수가 Dlt_SendTraceMessage과 일치하기 때문에, VFB 메시지는 명시적인 트레이스 메시지와 동일한 버퍼링된 전송 경로를 거칠 것으로 추정됩니다 [SWS_Dlt_00285]. 질문 Q-cb77a5e7bde21b01 (열림)

RTE 훅 함수를 통한 VFB 추적SW-CRTEDltSchMPduRVFB를 통한 통신Rte_Dlt...-Hookfunktion(Argumente)optContextId의 추적 상태 활성internes Dlt_SendTraceMessage (non-verbose),DLT_TYPE_APP_TRACE / DLT_TRACE_VFBvermutlich: Filter, Kanalwahl, Pufferung복귀Dlt_TxFunction()PduR_DltTransmit(...)Interpretation: gleicher gepufferter Sendepfad명시적 추적 메시지와 동일

시퀀스 다이어그램: RTE 훅은 트레이스 상태가 활성인 경우에만 DLT_TRACE_VFB을 포함하는 Non-Verbose 트레이스 메시지를 전송합니다. 공통 전송 경로를 사용한다는 것은 해석에 해당합니다. 출처: [SWS_Dlt_00027], [SWS_Dlt_00281], [SWS_Dlt_00285], [SWS_Dlt_00484], SWS DLT S. 33.

세션, 등록 및 외부 클라이언트에 의한 런타임 제어

SW-C는 구성 항목당 다음 포트를 통해 바인딩됩니다:

포트 정의 인수 값은 SessionId로 사용됩니다 [SWS_Dlt_00022]. 이는 0x1000에서 시작하며, BSW 모듈은 자체 모듈 ID를 사용합니다 [SWS_Dlt_00023]. 포트별로 고유하며 누락 없이 연속적입니다 [SWS_Dlt_00332]. 해당 유형은 Dlt_SessionIDType (uint32)입니다 [SWS_Dlt_00225]. SW-C가 여러 번 인스턴스화되는 경우 각 인스턴스는 별도의 세션을 부여받습니다 EXP LSA 159쪽.

Dlt_RegisterContext을(를) 통해 모듈은 자신의 ApplicationId/ContextId 튜플과 설명을 [SWS_Dlt_00245]에 등록합니다. Dlt는 어떤 포트를 통해 튜플이 등록되었는지 기억합니다 [SWS_Dlt_00021]. 중지 시 모듈은 Dlt_UnregisterContext을(를) 호출합니다 [SWS_Dlt_00769]. 이 등록은 한 가지 목적을 수행합니다. 이를 통해 Dlt는 로그 레벨이나 트레이스 상태가 변경되었을 때 어떤 SW-C에 알려야 하는지 알 수 있습니다 SWS DLT 20쪽. 여기에 LogLevelChangedNotification 및 TraceStatusChangedNotification이(가) 사용됩니다 [SWS_Dlt_00496].

외부 클라이언트의 제어 메시지는 PduR을 통해 Dlt에 도달합니다. 단일 PDU의 경우 Dlt_RxIndication을(를) 통해 들어옵니다 [SWS_Dlt_00272]. TP를 통해서는 Dlt_StartOfReception, Dlt_CopyRxData 및 Dlt_TpRxIndication을(를) 통해 들어옵니다 [SWS_Dlt_91006] [SWS_Dlt_91008] [SWS_Dlt_91007]. 그런 다음 Dlt는 필터를 업데이트하고, 선택적으로 등록된 SW-C에 알리며, PduR_DltTransmit을(를) 통해 응답을 전송합니다 SWS DLT 93쪽.

등록 및 외부 SetLogLevel 명령SW-CDltPduRExterner Dlt-ClientUse Case: Registrierungloopje SW-C-KontextDlt_RegisterContext(sessionId, appId, contextId, ...)튜플 및 포트 기억E_OKUse Case: Steuerkommando SetLogLevelDlt-SteuernachrichtDlt_RxIndication(RxPduId, PduInfoPtr)Log-Level-Filter aktualisierenoptLogLevelChange-Benachrichtigungregistrierte SW-C nachschlagenLogLevelChangedNotification(appId, contextId, logLevel)PduR_DltTransmit (Antwort)제어 메시지에 대한 응답

시퀀스 다이어그램: SW-C들이 자신의 컨텍스트를 등록합니다. 외부 SetLogLevel 명령이 필터를 업데이트하고, 선택적으로 알림을 트리거하며, PduR을 통해 응답됩니다. 출처: SWS DLT p. 93, [SWS_Dlt_00245], [SWS_Dlt_00272], [SWS_Dlt_00496].

동일한 제어 변수들이 API로 제공됩니다:

이후 릴리스와 비교하여 차이점이 존재합니다:

  • R20-11에서 Dlt_GetDefaultTraceStatus은(는) 매개변수 logChannelName을(를) 가집니다. R25-11에서는 이것이 제거되었습니다 SWS DLT 56쪽.
  • Dlt_AssignmentOperation은(는) R20-11에서 DLT_ASSIGN_ADD = 0x01 및 DLT_ASSIGN_REMOVE = 0x02로 인코딩합니다 [SWS_Dlt_00730]. R25-11은 REMOVE에 대해 값 0x00을 사용합니다 SWS DLT 87쪽. R20-11의 경우 해당 요구사항이 적용됩니다.

영속성: Dlt_StoreConfiguration은(는) NvM_WriteBlock을(를) 통해 현재 구성을 복사합니다 [SWS_Dlt_00736]. 이는 DltGeneralNvRAMSupport이(가) 활성화되어 있고 저장이 명시적으로 요청된 경우에만 발생합니다 [SWS_Dlt_00078] [SWS_Dlt_00451]. Dlt_ResetToFactoryDefault은(는) 로그 레벨 및 트레이스 상태를 저장된 기본값으로 재설정합니다. NvRAM 지원이 있는 경우 이 함수는 저장된 값도 삭제합니다 [SWS_Dlt_00739]. Dlt_InjectCall_<SESSION>을(를) 통해 Dlt는 SW-C에 애플리케이션별 호출을 비동기식으로 주입할 수 있습니다 [SWS_Dlt_00259] [SWS_Dlt_00498].

오류가 발생한 경우의 동작

SW-C 인터페이스의 오류 코드는 인터페이스 DltSwcMessageService에 정의되어 있습니다 [SWS_Dlt_00495]. 아울러 문서 해당 부분들은 전송 경로에서의 동작을 설명합니다.

  • 너무 긴 메시지: 메시지가 할당된 모든 LogChannel에 대해 너무 긴 경우 DLT_E_MSG_TOO_LARGE을(를) 반환 [SWS_Dlt_00495] SWS DLT 31쪽.
  • 버퍼 오버플로: DLT_E_NO_BUFFER을(를) 반환. 메시지는 폐기되고, 오버플로 플래그가 설정되며, 구성에 따라 BufferOverflowNotification이 전송됩니다. Dlt_TxFunction이(가) 플래그와 디바운스 시간을 확인합니다 SWS DLT 32쪽 SWS DLT 95쪽.
  • 알 수 없는 세션 또는 등록 오류: DLT_E_UNKNOWN_SESSION_ID, DLT_E_CONTEXT_ALREADY_REG 및 DLT_E_CONTEXT_NOT_YET_REG [SWS_Dlt_00495] [SWS_Dlt_00769].
  • 타임스탬프를 사용할 수 없음: 타임스탬프가 0x00000000(으)로 설정됩니다 SWS DLT 30쪽.
  • 전송 오류: 음수 Dlt_TxConfirmation은(는) DltLogChannelMaxNumOfRetries에 도달할 때까지 재시도를 트리거합니다. PduR_DltTransmit이(가) E_NOT_OK를 반환하면 메시지가 제거됩니다 [SWS_Dlt_00273] SWS DLT 38쪽.
  • 제어 명령: SetLogLevel에서 알 수 없는 튜플에는 DLT_E_ERROR(으)로 응답합니다 SWS DLT 39쪽. 구성 API들은 E_NOT_OK를 보고합니다 [SWS_Dlt_00252].
  • 영속성: Dlt_StoreConfiguration은(는) R20-11에서 반환값 E_OK, E_NOT_OK 및 DLT_E_NOT_SUPPORTED을(를) 가집니다 [SWS_Dlt_00736]. DLT_E_ERROR은(는) R24-11에서 비로소 추가되었습니다 SWS DLT 1쪽.
  • 개발 및 런타임 오류:
    • 개발 오류: DLT_E_PARAM, DLT_E_PARAM_POINTER, DLT_E_INIT_FAILED, DLT_E_REGISTRATION [SWS_Dlt_00727]
    • 런타임 오류: DLT_E_SKIPPED_TRANSMISSION, DLT_E_DEPRECATED_PARAMETER, DLT_E_MULTIPLE_REQUESTS [SWS_Dlt_00728]

더 자세한 증거

R20-11 요구사항 및 관련 문서 부분을 기반으로 AI가 생성한 모듈 가이드이며, 개별 세부 절차는 이후 릴리스의 문서 부분에서 가져온 것으로 해당 내용이 표시되어 있습니다. 링크된 요구사항이 구속력을 갖습니다.

Diagnostic Log and Trace (DLT)

The DLT module collects log messages and trace points and formats them into standardized DLT frames for external tooling.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 Dlt_Init [SWS_Dlt_00239] 📄 PDF

void Dlt_Init (const Dlt_ConfigType* config);

Dlt is using the NVRam Manager and is to be initialized very late in the ECU startup phase. The Dlt_ Init() function should be called after the NVRam Manager is initialized.

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

동기식 및 비재진입 함수 Dlt_Init(서비스 ID 0x01, 헤더 파일 Dlt.h을(를) 통해 사용 가능)은 Classic 플랫폼에서 Diagnostic Log and Trace(DLT) 모듈을 초기화합니다[SWS_Dlt_00239]. 이 함수는 매개변수 config을(를) 통해 Dlt_ConfigType 타입의 모듈별 구성 구조체에 대한 포인터를 수신하며 반환값을 반환하지 않습니다[SWS_Dlt_00239].

호출 컨텍스트 및 다른 BSW 모듈과의 시간적 상호작용에는 특정 제약 조건이 적용됩니다:

  • 초기화 순서: DLT 모듈은 NVRam Manager를 사용하며 ECU 시작 단계에서 매우 늦게 초기화되어야 합니다[SWS_Dlt_00239]. 함수 Dlt_Init의 호출은 반드시 NVRam Manager가 완전히 초기화된 후에만 이루어져야 합니다[SWS_Dlt_00239].
  • 영속 데이터: 구성 매개변수 DltGeneralNvRAMSupport이(가) TRUE(으)로 설정된 경우, DLT 모듈은 필수 변수의 영속적인 값을 복원하기 위해 Dlt_Init에서 NVRAM 매니저의 인터페이스 NvM_ReadBlock을(를) 사용합니다[SWS_Dlt_00453].
  • 버퍼 처리: 모듈이 Dlt_Init에 의해 초기화되고 선택적 타이머 DltGeneralStartUpDelayTimer이(가) 만료되는 즉시, 그동안 버퍼링된 모든 로그 및 추적 데이터가 처리되어 명세에 따라 전송됩니다[SWS_Dlt_00005].

이 함수는 비재진입으로 명세되어 있으므로, 호출 컨텍스트는 실행 중에 Dlt_Init에 병렬로 또는 인터럽트 방식으로 재진입하지 않도록 보장해야 합니다[SWS_Dlt_00239].

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

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

함수 Dlt_SendTraceMessage [SWS_Dlt_00243] 📄 PDF

Std_ReturnType Dlt_SendTraceMessage (Dlt_SessionIDType sessionId, const Dlt_MessageTraceInfoType* traceInfo, const uint8* traceData, uint16 traceDataLength);

The service represents the interface to be used by basic software modules or by software components to trace parameters.

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

동기식 및 재진입 가능 함수 Dlt_SendTraceMessage은(는) 기본 소프트웨어 모듈(BSW) 및 소프트웨어 컴포넌트(SW-C)가 추적 매개변수를 Dlt 모듈로 전송하는 데 사용됩니다[SWS_Dlt_00243].

매개변수 및 호출 컨텍스트

호출 시 모듈 또는 포트 식별자는 sessionId을(를) 통해, 메시지 필터링용 메타데이터는 traceInfo을(를) 통해, 페이로드 버퍼는 길이 정보 traceDataLength과(와) 함께 traceData을(를) 통해 전달됩니다[SWS_Dlt_00243]. 모듈은 Dlt가 아직 초기화되지 않았더라도 추적 메시지를 미리 버퍼링할 수 있습니다[SWS_Dlt_00003].

반환값 및 오류 처리

이 서비스는 특정 반환값을 통해 상태를 알립니다[SWS_Dlt_00243]:

  • E_OK: 작업이 성공적으로 실행되었습니다.
  • DLT_E_MSG_TOO_LARGE: 메시지가 할당된 모든 로그 채널의 허용 크기를 초과합니다.
  • DLT_E_NO_BUFFER: 버퍼 메모리가 부족하여 하나 이상의 로그 채널에 메시지를 버퍼링할 수 없습니다.
  • DLT_E_UNKNOWN_SESSION_ID: 전달된 sessionId이(가) 모듈에 알려지지 않았습니다.

후크 함수와의 상호작용

Dlt_SendTraceMessage이(가) SW-C용 인터페이스로 지정되어 있으므로, Non-Verbose 모드로 추적 메시지를 전송하는 동등한 내부 구현 [SWS_Dlt_00285]이(가) 생성된 후크 함수용으로 존재합니다[SWS_Dlt_00277].

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

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

함수 Dlt_SendLogMessage [SWS_Dlt_00241] 📄 PDF

Std_ReturnType Dlt_SendLogMessage (Dlt_SessionIDType sessionId, const Dlt_MessageLogInfoType* logInfo, const uint8* logData, uint16 logDataLength);

The service represents the interface to be used by basic software modules or by software component to send Log Messages.

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

동기식 및 재진입 가능 함수 Dlt_SendLogMessage(서비스 ID 0x03)은 기본 소프트웨어 모듈(BSW) 및 소프트웨어 컴포넌트(SW-C)가 로그 메시지를 전송하기 위한 표준화된 인터페이스 역할을 합니다[SWS_Dlt_00241]. 호출은 헤더 파일 Dlt.h을(를) 통해 이루어지며, 재진입 특성으로 인해 이 함수는 동시 실행에 적합하도록 설계되었습니다[SWS_Dlt_00241].

함수 호출 시 4개의 입력 매개변수가 필요하며, 출력 매개변수는 사용되지 않습니다[SWS_Dlt_00241]:

  • sessionId: 세션 식별자를 나타냅니다. SW-C의 경우 이 매개변수는 포트 정의 인수 값으로 숨겨져 있는 반면, BSW 모듈은 자신의 모듈 번호를 직접 전달합니다.
  • logInfo: 로그 메시지 필터링과 관련된 메타데이터를 포함하는 상수 구조체에 대한 포인터입니다.
  • logData: 로깅할 데이터가 포함된 바이트 배열에 대한 포인터로, 메시지의 실제 페이로드를 형성합니다.
  • logDataLength: 데이터 버퍼 logData의 수치 길이입니다.

오류 처리는 작업의 성공 또는 특정 오류 상태를 나타내는 Std_ReturnType 유형의 반환값을 통해 직접 수행됩니다[SWS_Dlt_00241]:

  • DLT_OK: 로그 메시지가 성공적으로 수락되어 처리되었습니다.
  • DLT_E_MSG_TOO_LARGE: 메시지가 할당된 모든 로그 채널에 대해 허용된 최대 버퍼 크기를 초과합니다.
  • DLT_E_NO_BUFFER: 할당된 어떤 로그 채널에도 메시지를 버퍼링할 수 없습니다.
  • DLT_E_UNKNOWN_SESSION_ID: 전달된 세션 ID가 유효하지 않거나 모듈에 알려지지 않았습니다.

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

함수 Dlt_UnregisterContext [SWS_Dlt_00769] 📄 PDF

Std_ReturnType Dlt_UnregisterContext (Dlt_SessionIDType sessionId, Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId);

The service has to be called when a software module is going to be stopped. Available vi a Dlt.h

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

사용

동기 함수 Dlt_UnregisterContext(서비스 ID 0x16)은(는) 헤더 파일 Dlt.h을(를) 통해 제공되며 소프트웨어 모듈이 중지될 때 호출되어야 합니다 [SWS_Dlt_00769]. 이 함수는 이전에 등록된 애플리케이션의 컨텍스트를 등록 해제하는 데 사용됩니다.

이 함수는 세 개의 입력 매개변수를 필요로 합니다 [SWS_Dlt_00769]:

  • sessionId: 모듈 번호; BSW 내의 모듈 ID 또는 소프트웨어 컴포넌트(SW-C) 내의 포트별로 정의된 인수 값에 해당합니다 [SWS_Dlt_00769].
  • appId: 상위 애플리케이션의 식별자(Application ID)입니다 [SWS_Dlt_00769].
  • contextId: 등록 해제할 컨텍스트의 식별자(Context ID)입니다 [SWS_Dlt_00769].

반환값 및 오류 처리

유형 Std_ReturnType의 반환값은 실행 결과에 대한 정보를 제공합니다 [SWS_Dlt_00769]:

  • E_OK: 요청된 작업이 성공적으로 완료되었습니다 [SWS_Dlt_00769].
  • DLT_E_CONTEXT_NOT_YET_REG: 소프트웨어 모듈의 컨텍스트가 사전에 등록되지 않았습니다 [SWS_Dlt_00769].
  • DLT_E_UNKNOWN_SESSION_ID: 전달된 세션 ID를 알 수 없습니다 [SWS_Dlt_00769].

동시성 및 제약사항

이 함수는 재진입 가능으로 명시되어 있으며 동기식으로 동작합니다 [SWS_Dlt_00769]. 호출하는 모듈은 등록 해제 시 오류를 방지하기 위해 전달된 세션 ID가 유효하고 종료 전에 컨텍스트가 실제로 등록되어 있는지 확인해야 합니다 [SWS_Dlt_00769].

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

함수 Dlt_DetForwardErrorTrace [SWS_Dlt_00432] 📄 PDF

void Dlt_DetForwardErrorTrace (uint16 moduleId, uint8 instanceId, uint8 apiId, uint8 errorId);

Service to fo rward error reports from Det to Dlt.

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

사용법 및 호출 컨텍스트

서비스 ID 0x07을(를) 갖는 동기 인터페이스 Dlt_DetForwardErrorTrace은(는) Default Error Tracer(DET)로부터 보고된 개발 오류를 Dlt 모듈로 전달하는 데 사용됩니다 [SWS_Dlt_00432]. Dlt 모듈은 오류 보고에 대해 요구되는 DET의 팬아웃 기능을 보장하기 위해 이 서비스를 제공합니다 [SWS_Dlt_00430]. 이 C 함수의 선언은 헤더 파일 Dlt_Det.h을(를) 통해 포함됩니다 [SWS_Dlt_00432].

매개변수 및 인터페이스 사양

이 함수는 4개의 필수 입력 매개변수를 받으며 반환값이나 출력 매개변수를 정의하지 않습니다 [SWS_Dlt_00432]:

  • moduleId: 오류가 발생한 호출 소프트웨어 모듈의 모듈 ID.
  • instanceId: 인덱스 기반 모듈 인스턴스의 식별자(0부터 카운트 시작, 단일 인스턴스 모듈은 0 전달).
  • apiId: 영향을 받는 API 서비스의 식별자(호출 모듈의 사양에 정의됨).
  • errorId: 감지된 개발 오류의 식별자(호출 모듈의 사양에 정의됨).

동시성 및 오류 처리

실행은 오류를 감지한 호출 측과 동기적으로 이루어집니다. 비재진입(non-reentrant) 함수(Non Reentrant)로서 인터페이스는 호출자 측에서 경쟁적 실행을 반드시 방지하도록 요구합니다 [SWS_Dlt_00432]. 사양에는 이 서비스에 대한 특정 오류 코드, 오류 피드백 또는 별도의 DET나 DEM 보고가 정의되어 있지 않습니다 [SWS_Dlt_00432].

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

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

함수 Dlt_SetLogLevel [SWS_Dlt_00252] 📄 PDF

Std_ReturnType Dlt_SetLogLevel (Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, Dlt_MessageLogLevelType newLogLevel);

This service is used to change the Log Level for the given tuple of Application ID/ Context ID.

함수 Dlt_SetTraceStatus [SWS_Dlt_00254] 📄 PDF

Std_ReturnType Dlt_SetTraceStatus (Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, boolean newTraceStatus);

The service Dlt_ Set Trace Status sets the trace status for a specific tuple of Application ID and Context ID.

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

동기식 함수 Dlt_SetTraceStatus은(는) Application-ID와 Context-ID의 특정 튜플에 대한 추적 상태를 설정하는 데 사용됩니다[SWS_Dlt_00254]. 이 함수는 헤더 파일 Dlt.h을(를) 통해 정의되며 서비스 ID 0x09을(를) 갖습니다[SWS_Dlt_00254].

사용

호출을 위해 세 개의 입력 매개변수가 필요합니다[SWS_Dlt_00254]:

  • appId: 소프트웨어 컴포넌트의 ID(타입 Dlt_ApplicationIDType).
  • contextId: 컨텍스트의 ID(타입 Dlt_ContextIDType).
  • newTraceStatus: 불리언 값으로 새로 설정할 추적 상태(타입 boolean).

오류 처리 및 반환값

이 함수는 동기식으로 Std_ReturnType 타입의 상태를 반환합니다[SWS_Dlt_00254]:

  • E_OK: 오류가 발생하지 않았으며 상태가 성공적으로 적용되었습니다.
  • E_NOT_OK: 추적 상태를 변경할 수 없습니다. 함수 명세에는 구체적인 DET 오류 메시지가 언급되어 있지 않습니다(해석: 유효하지 않은 식별자 또는 잘못된 모듈 상태의 경우 오류가 발생할 것으로 추정됩니다). 질문 Q-77e190707462c8f1 (열림)

동시성 및 제약사항

이 인터페이스는 비재진입(Non Reentrant)으로 명세되어 있습니다[SWS_Dlt_00254]. 따라서 호출자의 적절한 동기화 없이는 동시 또는 인터럽트 방식으로 실행되어서는 안 됩니다.

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

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

함수 Dlt_GetDefaultLogLevel [SWS_Dlt_00733] 📄 PDF

Std_ReturnType Dlt_GetDefaultLogLevel (Dlt_MessageLogLevelType* defaultLogLevel);

Returns the Default Log Level currently used by the Dlt module. The returned Log Level might differ from the one which is stored no n volatile.

함수 Dlt_StoreConfiguration [SWS_Dlt_00736] 📄 PDF

Std_ReturnType Dlt_StoreConfiguration (void);

Copies the current Dlt configuration to Nv RAM by calling Nv M_ Write Block().

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

사용

함수 Dlt_StoreConfiguration([SWS_Dlt_00736])은 현재 Dlt 구성을 비휘발성 메모리(NvRAM)에 저장하는 역할을 합니다. 저장은 내부적으로 NVRAM Manager의 인터페이스 NvM_WriteBlock()에 대한 동기식 호출을 통해 수행됩니다([SWS_Dlt_00736]). 이 API는 서비스 ID 0x1a와 함께 헤더 Dlt.h을(를) 통해 제공됩니다.

이 함수는 시그니처 Std_ReturnType Dlt_StoreConfiguration(void)을(를) 가지며 입력, 출력 또는 입출력 매개변수를 처리하지 않습니다([SWS_Dlt_00736]).

오류 처리 및 반환값

동기식 서비스로서 이 함수는 호출자에게 Std_ReturnType 타입의 상태 코드를 즉시 반환합니다([SWS_Dlt_00736]):

  • E_OK: 구성이 NvRAM에 오류 없이 전달되었습니다([SWS_Dlt_00736]).
  • E_NOT_OK: Dlt 구성을 저장하는 동안 오류가 발생했습니다([SWS_Dlt_00736]).
  • DLT_E_NOT_SUPPORTED: 구성 저장 서비스가 모듈에서 지원되지 않습니다([SWS_Dlt_00736]).

동시성 및 제약사항

[SWS_Dlt_00736]에 따라 Dlt_StoreConfiguration은(는) 비재진입(Non Reentrant)으로 명세되어 있습니다. 따라서 이 함수는 서로 다른 태스크나 컨텍스트에서 동시에 실행되어서는 안 되며, 호출자 측에서 순차적인 흐름이 보장되어야 합니다.

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

함수 Dlt_ResetToFactoryDefault [SWS_Dlt_00739] 📄 PDF

Std_ReturnType Dlt_ResetToFactoryDefault (void);

The service Dlt_ Reset To Factory Default sets the Log Level and Trace Status back to the pers istently stored default values. If the feature Nv MRAM support is enabled, all stored Dlt values in the Nv M are deleted.

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

사용

동기식 함수 Dlt_ResetToFactoryDefault은(는) 헤더 Dlt.h을(를) 통해 제공되며 전달 매개변수를 받지 않습니다[SWS_Dlt_00739]. 주된 목적은 Dlt 런타임 구성을 재설정하는 것입니다: 로그 레벨 및 추적 상태를 영속적으로 저장된 기본값으로 재설정합니다[SWS_Dlt_00739]. 추가로 Dlt 모듈에서 NvRAM 지원이 활성화된 경우, 이 호출은 NvM에 저장된 모든 Dlt 값을 완전히 삭제하도록 합니다[SWS_Dlt_00739].

반환값 및 오류 처리

작업 결과는 Std_ReturnType 타입의 반환값을 통해 동기식으로 전달됩니다[SWS_Dlt_00739]:

  • E_OK: 구성이 기본값으로 성공적으로 재설정되었습니다[SWS_Dlt_00739].
  • E_NOT_OK: 구성 재설정에 실패했습니다[SWS_Dlt_00739].

본 명세 범위에서는 이 서비스에 대한 구체적인 DET 또는 DEM 오류 메시지가 정의되어 있지 않습니다.

동시성 및 제약사항

이 함수는 비재진입(Non Reentrant)으로 명세되어 있습니다(서비스 ID 0x06)[SWS_Dlt_00739]. 따라서 서로 다른 태스크나 컨텍스트에서의 동시 또는 인터럽트 호출은 허용되지 않으며 호출자에 의해 방지되어야 합니다.

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

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

함수 Dlt_SetDefaultLogLevel [SWS_Dlt_00740] 📄 PDF

Std_ReturnType Dlt_SetDefaultLogLevel (Dlt_MessageLogLevelType newLogLevel);

Called to modify the pass through range for Log Messages for all not explicit set Context Ids.

함수 Dlt_GetTraceStatus [SWS_Dlt_00750] 📄 PDF

Std_ReturnType Dlt_GetTraceStatus (Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, boolean* traceStatus);

Returns the current Trace Status for a given tuple Application Id/ Context Id.

함수 Dlt_RxIndication [SWS_Dlt_00272] 📄 PDF

void Dlt_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Indication of a received PDU from a lower layer communication interface module.

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

함수 Dlt_RxIndication은(는) 하위 통신 인터페이스 모듈로부터 DLT 모듈로 수신된 PDU를 지시(indication)하는 역할을 합니다 [SWS_Dlt_00272]. 헤더 Dlt.h을(를) 통해 사용할 수 있으며 서비스 ID 0x42을(를) 가집니다 [SWS_Dlt_00272].

호출은 동기식 시맨틱으로 수행되며 반환값을 제공하지 않습니다(void) [SWS_Dlt_00272]. 함수에는 두 개의 입력 매개변수가 전달됩니다:

  • RxPduId: 수신된 PDU의 식별자(PduIdType 타입) [SWS_Dlt_00272].
  • PduInfoPtr: PduInfoType 타입 구조체에 대한 포인터. 여기에는 수신된 PDU의 길이(SduLength), PDU 페이로드가 포함된 버퍼에 대한 포인터(SduDataPtr) 및 PDU의 관련 메타데이터가 포함됩니다 [SWS_Dlt_00272].

동시성 및 실행 컨텍스트와 관련하여 이 함수는 서로 다른 PDU-ID에 대해서는 재진입 가능하지만, 동일한 PDU-ID에 대해서는 재진입이 불가능합니다 [SWS_Dlt_00272]. 따라서 호출하는 하위 모듈은 동일한 RxPduId을(를) 동시에 동시적으로(concurrently) 처리하도록 해서는 안 되며, 서로 다른 PDU-ID를 사용한 병렬 호출은 허용됩니다 [SWS_Dlt_00272].

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

함수 Dlt_TriggerTransmit [SWS_Dlt_00754] 📄 PDF

Std_ReturnType Dlt_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

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

동기 함수 Dlt_TriggerTransmit은(는) [SWS_Dlt_00754]에 따라 하위 계층의 요청 시 SDU 데이터를 제공된 버퍼로 복사하는 데 사용됩니다. 이 함수는 Dlt.h에 선언되어 있으며 서비스 ID 0x41을(를) 갖습니다.

호출 시 다음 파라미터가 전달됩니다:

  • TxPduId: 전송이 요청되는 SDU의 식별자입니다.
  • PduInfoPtr: PduInfoType 유형의 구조체에 대한 포인터입니다. 호출자는 SduDataPtr을(를) 통해 대상 버퍼를, SduLength을(를) 통해 사용 가능한 최대 버퍼 크기를 전달합니다.

함수 내부에서 모듈은 [SWS_Dlt_00754]에 따라 사용 가능한 데이터가 전달된 버퍼 크기에 맞는지 확인합니다:

  • 데이터가 들어맞는 경우, 함수는 유효 데이터를 SduDataPtr(으)로 복사하고, SduLength을(를) 실제로 복사된 바이트 수로 업데이트하며 E_OK을(를) 반환합니다.
  • 버퍼가 충분하지 않은 경우, 함수는 PduInfoPtr을(를) 수정하지 않고 E_NOT_OK을(를) 반환합니다.

E_NOT_OK이(가) 반환되면 SDU 데이터가 복사되지 않은 것입니다. 이 경우 유효하지 않은 데이터를 가리키거나 NULL 포인터일 수 있으므로 호출자는 PduInfoPtr을(를) 계속 사용해서는 안 됩니다 [SWS_Dlt_00754].

동시성과 관련하여 Dlt_TriggerTransmit은(는) 서로 다른 PDU ID에 대해서는 재진입 가능(reentrant)하지만, 동일한 TxPduId에 대해서는 재진입할 수 없습니다 [SWS_Dlt_00754].

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

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

함수 Dlt_TxConfirmation [SWS_Dlt_00273] 📄 PDF

void Dlt_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.

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

사용법 및 호출 컨텍스트

함수 Dlt_TxConfirmation은(는) Diagnostic Log and Trace(DLT) 모듈에 대한 하위 통신 계층 인터페이스 모듈(lower layer communication interface module)의 확인 인터페이스 역할을 합니다[SWS_Dlt_00273]. 이 함수는 이전에 요청된 PDU가 성공적으로 전송될 수 있었는지 또는 전송이 실패했는지를 DLT 모듈에 동기식으로 알립니다[SWS_Dlt_00273]. 이 함수는 서비스 ID 0x40을(를) 가지며 헤더 파일 Dlt.h을(를) 통해 제공됩니다[SWS_Dlt_00273].

이 인터페이스는 반환값(void)이 없으며 두 개의 전달 매개변수를 필요로 합니다[SWS_Dlt_00273]:

  • TxPduId: 전송된 PDU의 식별자(타입 PduIdType).
  • result: 전송 상태(타입 Std_ReturnType); 여기서 E_OK은(는) 성공적인 전송을 나타내고 E_NOT_OK은(는) PDU 전송 실패를 나타냅니다.

오류 처리 및 동시성

오류 반환값이나 특정 DET 또는 DEM 메시지를 사용하는 명시적인 오류 처리는 이 호출에 대해 명세되어 있지 않으며, 전송 프로세스의 실패는 매개변수 값 result = E_NOT_OK을(를) 통해서만 DLT 모듈에 전달됩니다[SWS_Dlt_00273].

실행에 대해 차별화된 재진입 조건이 적용됩니다: Dlt_TxConfirmation은(는) 서로 다른 PDU-ID에 대해서는 재진입 가능하지만, 동일한 PDU-ID에 대해서는 비재진입입니다[SWS_Dlt_00273]. 따라서 호출하는 드라이버 또는 인터페이스는 서로 다른 PDU에 대한 확인이 동시에 도착할 수 있는 반면, 동일한 TxPduId을(를) 사용한 동시 호출은 배제되도록 보장해야 합니다.

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

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

함수 Dlt_TpTxConfirmation [SWS_Dlt_00756] 📄 PDF

void Dlt_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 succe ssful or not.

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

함수 Dlt_TpTxConfirmation은(는) 전송 I-PDU를 전송한 후 Dlt 모듈의 동기식 확인(confirmation) 함수 역할을 합니다 [SWS_Dlt_00756]. 이 함수는 헤더 파일 Dlt.h을(를) 통해 서비스 ID 0x48(으)로 제공됩니다 [SWS_Dlt_00756].

사용법 및 의미론

호출은 해당 네트워크에서 I-PDU가 전송된 후에 수행됩니다 [SWS_Dlt_00756]. 이 함수는 void Dlt_TpTxConfirmation (PduIdType id, Std_ReturnType result) 시그니처를 가지며 반환값을 반환하지 않습니다 [SWS_Dlt_00756]:

  • id(입력 매개변수, 유형 PduIdType): 전송된 I-PDU의 고유 식별자입니다 [SWS_Dlt_00756].
  • result(입력 매개변수, 유형 Std_ReturnType): 전송 상태를 나타내며 I-PDU의 전송이 성공했는지 실패했는지를 보여줍니다 [SWS_Dlt_00756].

동시성 및 오류 처리

사양에서는 Dlt_TpTxConfirmation을(를) 동기식 및 재진입 가능(Reentrant)으로 명시합니다 [SWS_Dlt_00756]. 이 서비스에 대해 특정 DET 또는 DEM 오류 코드는 정의되어 있지 않으며, 전송 과정과 관련된 오류 처리는 매개변수 result의 평가에 의존합니다 [SWS_Dlt_00756]. 시스템 컨텍스트에서 이 호출은 일반적으로 PDU 전송 완료 후 하위 전송 계층에 의해 시작될 것으로 추정됩니다. 질문 Q-0e5ab7c285316701 (열림)

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

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

함수 Dlt_CopyTxData [SWS_Dlt_00516] 📄 PDF

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

Service Dlt_CopyTxData.

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

사용법 및 의미론

동기식 및 재진입 가능(reentrant) 함수인 Dlt_CopyTxData은(는) Dlt 모듈로부터 I-PDU 세그먼트(N-PDU)의 송신 데이터를 가져오는 역할을 합니다 [SWS_Dlt_00516]. id을(를) 통해 전송할 I-PDU가 지정되며, info은(는) 대상 버퍼(SduDataPtr) 및 요청 바이트 길이(SduLength)를 제공합니다 [SWS_Dlt_00516]. SduLength = 0을(를) 전달하면(여기서 SduDataPtr은(는) NULL_PTR(으)로 전달될 수 있음) retry을(를) 통해 순수 상태 변경을 전송하거나 송신 버퍼의 잔여 데이터양을 쿼리할 수 있습니다 [SWS_Dlt_00516]. 출력 매개변수 availableDataPtr을(를) 통해 함수는 Tx 버퍼에서 아직 사용 가능한 데이터양을 반환하며, 이는 예를 들어 동적 페이로드 길이를 갖는 TP 모듈(예: FrIsoTp)이 후속 세그먼트의 크기를 결정할 수 있도록 합니다 [SWS_Dlt_00516].

확인 및 오류 복구

포인터 retry을(를) 통해 확인(acknowledgement) 또는 재전송이 제어됩니다 [SWS_Dlt_00516]:

  • retry이(가) NULL_PTR인 경우, 복사된 데이터는 복사 프로세스 직후 버퍼에서 폐기될 수 있습니다 [SWS_Dlt_00516].
  • TpDataState이(가) TP_CONFPENDING 값을 나타내는 경우, 이전에 복사된 데이터는 잠재적인 오류 복구를 위해 버퍼에 유지되어야 합니다 [SWS_Dlt_00516].
  • TP_DATACONF의 경우, 호출 전에 전송된 모든 데이터는 확인된 것으로 간주되어 해제될 수 있습니다 [SWS_Dlt_00516].
  • TP_DATARETRY의 경우, 모듈은 TxTpDataCnt에 전달된 바이트 오프셋부터 복사를 다시 시작합니다 [SWS_Dlt_00516].

반환값 및 제약 조건

요청 결과는 BufReq_ReturnType(으)로 보고됩니다 [SWS_Dlt_00516]:

  • BUFREQ_OK: 요구된 대로 데이터가 대상 버퍼에 완전히 복사되었습니다 [SWS_Dlt_00516].
  • BUFREQ_E_BUSY: 요청된 데이터양을 사용할 수 없습니다. 복사된 데이터가 없으며 추후 재시도가 허용됩니다 [SWS_Dlt_00516].
  • BUFREQ_E_NOT_OK: 요청 실패. 복사된 데이터가 없습니다 [SWS_Dlt_00516].

인터페이스는 Dlt.h을(를) 통해 사용 가능하며 재진입 가능(reentrant)하도록 설계되었습니다 [SWS_Dlt_00516]. 호출 컨텍스트는 일반적으로 세그먼트화된 전송 중에 하위 전송 프로토콜 모듈에 있을 것으로 보입니다. 질문 Q-a81c439e73e0acc0 (열림)

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

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

함수 Dlt_StartReception [SWS_Dlt_91006] 📄 PDF

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

This function is called at the start of receiving an N -

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

동기식 및 재진입 가능 함수인 Dlt_StartReception은(는) 단일 프레임(SF)으로 수신되거나 여러 N-PDU에 걸쳐 분할 수신될 수 있는 N-SDU의 수신 시작 시 호출됩니다 [SWS_Dlt_91006]. 이 함수는 Dlt 모듈에서 전송 연결을 시작하고 사용 가능한 수신 버퍼를 제공하는 데 사용됩니다 [SWS_Dlt_91006].

매개변수 id을(를) 통해 수신된 I-PDU가 식별되는 반면, info은(는) 첫 번째 프레임의 유효 데이터 및 메타데이터를 전송하거나 데이터와 메타데이터가 모두 없는 경우 NULL_PTR(으)로 설정됩니다 [SWS_Dlt_91006]. TpSduLength을(를) 통해 N-SDU의 총 길이가 전달되며, 길이가 0인 상태로 함수가 호출되면 bufferSizePtr을(를) 통해 현재 사용 가능한 최대 버퍼 크기를 반환합니다 [SWS_Dlt_91006]. 전송 프로토콜은 Block Size(BS) 계산을 위해 bufferSizePtr의 값을 사용합니다 [SWS_Dlt_91006].

연결이 수락되면 함수는 BUFREQ_OK을(를) 반환합니다. 요청된 크기에 대한 충분한 버퍼가 준비되어 있지 않은 경우, 수신을 계속하기 위해 bufferSizePtr이(가) 버퍼 크기 0을 알립니다 [SWS_Dlt_91006]. 연결 거부 시 BUFREQ_E_NOT_OK이(가) 수신을 중단하며, 총 메모리가 부족한 경우 BUFREQ_E_OVFL이(가) 보고됩니다. 두 오류 사례 모두 bufferSizePtr은(는) 변경되지 않은 상태로 유지됩니다 [SWS_Dlt_91006].

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

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

함수 Dlt_TpRxIndication [SWS_Dlt_91007] 📄 PDF

void Dlt_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.

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

함수 Dlt_TpRxIndication은(는) TP-API를 통해 I-PDU를 수신한 후 동기식 수신 표시(indication) 역할을 합니다 [SWS_Dlt_91007]. 이 함수는 헤더 파일 Dlt.h에 선언되어 있으며 서비스 ID 0x45을(를) 갖습니다 [SWS_Dlt_91007].

사용법 및 매개변수

DLT 모듈로의 전달은 두 개의 입력 매개변수를 통해 수행되며, 함수는 반환값을 반환하지 않습니다 [SWS_Dlt_91007]:

  • id(유형 PduIdType): 수신된 I-PDU의 식별을 나타냅니다 [SWS_Dlt_91007].
  • result(유형 Std_ReturnType): 수신 결과를 나타내며 전송이 성공했는지 여부를 보여줍니다 [SWS_Dlt_91007].

동시성 및 제약사항

이 인터페이스는 동기식 및 재진입 가능으로 정의됩니다 [SWS_Dlt_91007]. 입출력 매개변수나 순수 출력 매개변수는 존재하지 않습니다 [SWS_Dlt_91007].

오류 처리 및 상호 작용

전송 결과는 인수 result을(를) 통해서만 DLT 모듈에 신호로 전달되며, 특정 오류 코드, DET 또는 DEM 메시지는 명시되어 있지 않습니다 [SWS_Dlt_91007].

해석: DLT 메시지가 완전히 수신되거나 전송이 중단되는 즉시 하위 전송 프로토콜 컴포넌트에 의해 호출이 이루어질 것으로 추정됩니다 [SWS_Dlt_91007]. 질문 Q-7d9c8564a2404acf (열림)

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

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

함수 Dlt_CopyRxData [SWS_Dlt_91008] 📄 PDF

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

Service Dlt_CopyRxData.

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

사용법 및 의미론

동기 함수 Dlt_CopyRxData은(는) I-PDU 세그먼트(N-PDU)의 수신된 데이터를 상위 계층으로 전달하기 위해 호출됩니다 [SWS_Dlt_91008]. 각 호출은 I-PDU 데이터의 다음 부분을 각각 제공하며, 남은 버퍼 크기는 bufferSizePtr에 의해 참조되는 메모리 위치에 기록됩니다 [SWS_Dlt_91008]. 선언은 헤더 Dlt.h을(를) 통해 확인할 수 있습니다 [SWS_Dlt_91008].

매개변수 및 버퍼 쿼리

입력 매개변수 id을(를) 통해 수신된 I-PDU가 식별됩니다 [SWS_Dlt_91008]. 포인터 info은(는) SduDataPtr을(를) 통해 소스 버퍼를 제공하고 SduLength을(를) 통해 복사할 바이트 수를 제공합니다 [SWS_Dlt_91008]. SduLength이(가) 값 0으로 전달되는 경우 호출은 상위 모듈에서 현재 사용 가능한 버퍼에 대한 순수한 조회 역할을 하며, 이 경우 SduDataPtr은(는) NULL_PTR일 수 있습니다 [SWS_Dlt_91008]. 출력 매개변수 bufferSizePtr은(는) 복사 작업 후 여전히 여유 있는 수신 버퍼 크기를 반환합니다 [SWS_Dlt_91008].

동시성 및 반환값

이 함수는 재진입 가능하도록 설계되었으며 서비스 ID 0x44을(를) 갖습니다 [SWS_Dlt_91008]. 유형 BufReq_ReturnType의 반환값은 복사 작업의 결과를 나타냅니다. 성공적인 데이터 수락 시 서비스는 BUFREQ_OK을(를) 반환하는 반면, 오류 발생 시에는 BUFREQ_E_NOT_OK이(가) 보고됩니다 [SWS_Dlt_91008].

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

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

함수 Dlt_TxFunction [SWS_Dlt_91005] 📄 PDF

void Dlt_TxFunction (void);

-

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

사용법 및 호출 컨텍스트

함수 Dlt_TxFunction은(는) 사양 [SWS_Dlt_91005]에 따라 서비스 ID 0x80을(를) 갖는 서비스로 정의되며 헤더 SchM_Dlt.h을(를) 통해 제공됩니다. 해당 인터페이스 시그니처는 void Dlt_TxFunction (void)입니다 [SWS_Dlt_91005]. SchM_Dlt.h의 선언은 해석상 이 호출이 주기적 태스크의 컨텍스트에서 BSW 스케줄러에 의해 수행되며 애플리케이션 Software-Component에 의해 직접 호출되어서는 안 됨을 시사합니다.

매개변수 및 반환값

[SWS_Dlt_91005]에 따르면 이 함수는 전달 매개변수를 받지 않으며 반환값을 반환하지 않습니다(void). 이름으로 미루어 볼 때 이 함수는 대기 중인 Dlt 전송 메시지의 주기적 처리 및 전송을 담당할 것으로 보입니다. 질문 (열림) 반환값이 지정되어 있지 않으므로 오류 처리는 모듈 또는 상태 내부에서만 순수하게 수행되는 것으로 추정됩니다.

제한

페이로드에 재진입성이나 특수 개발 오류에 대한 명시가 포함되어 있지 않으므로, 호출 간격과 태스크 할당은 Schedule Manager 구성을 통해 조정되어야 합니다. 추가적인 오류 코드나 DET 항목은 [SWS_Dlt_91005]에 명시되어 있지 않습니다.

이 텍스트는 AI에 의해 생성되었으며, 공식 AUTOSAR 사양에 대한 학습을 대체하지 않습니다.

타입 Dlt_ConfigType [SWS_Dlt_00437] 📄 PDF

This is the type of the data structure containing the initialization data for Dlt.

타입 Dlt_MessageIDType [SWS_Dlt_00228] 📄 PDF

Contains the unique Message Id for a message. This is only relevant in non - verbose mode.

타입 Dlt_MessageNetworkTraceInfoType [SWS_Dlt_00233] 📄 PDF

This type describes transported type of a Dlt BUSMESSAGE.

타입 Dlt_ApplicationIDType [SWS_Dlt_00226] 📄 PDF

This type describes the Application Id. 0x00000000 means the so - called wildcard.

타입 Dlt_ContextIDType [SWS_Dlt_00227] 📄 PDF

This type describes the Context Id. 0x00000000 means the so - called wildcard.

타입 Dlt_MessageArgumentCount [SWS_Dlt_00235] 📄 PDF

This type describes the count of arguments provided to a message.

타입 Dlt_AssignmentOperation [SWS_Dlt_00730] 📄 PDF

Adding or removing a Log Channel assignment for the given tuple of Application Id/ Context Id.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Dlt
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Dlt@rel:R20-11#d55bcb1e
Content hash
d55bcb1e
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DiagnosticLogAndTrace.pdf#nameddest=SWS_Dlt_00239

초기화 및 상태

Returns the version information of this module.

void Dlt_GetVersionInfo (Std_VersionInfoType* versioninfo);
Dlt_Init 함수

Dlt is using the NVRam Manager and is to be initialized very late in the ECU startup phase. The Dlt_ Init() function should be called after the NVRam Manager is initialized.

void Dlt_Init (const Dlt_ConfigType* config);

서비스

Service to fo rward error reports from Det to Dlt.

void Dlt_DetForwardErrorTrace (uint16 moduleId, uint8 instanceId, uint8 apiId, uint8 errorId);

Returns the Default Log Level currently used by the Dlt module. The returned Log Level might differ from the one which is stored no n volatile.

Std_ReturnType Dlt_GetDefaultLogLevel (Dlt_MessageLogLevelType* defaultLogLevel);

Called to request information about registered Application Ids, their Context Ids and the corresponding log level.

Std_ReturnType Dlt_GetLogInfo (uint8 options, Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, uint8* status, Dlt_LogInfoType* logInfo);

Returns the current Trace Status for a given tuple Application Id/ Context Id.

Std_ReturnType Dlt_GetTraceStatus (Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, boolean* traceStatus);

The service Dlt_ Reset To Factory Default sets the Log Level and Trace Status back to the pers istently stored default values. If the feature Nv MRAM support is enabled, all stored Dlt values in the Nv M are deleted.

Std_ReturnType Dlt_ResetToFactoryDefault (void);

The service represents the interface to be used by basic software modules or by software component to send Log Messages.

Std_ReturnType Dlt_SendLogMessage (Dlt_SessionIDType sessionId, const Dlt_MessageLogInfoType* logInfo, const uint8* logData, uint16 logDataLength);

The service represents the interface to be used by basic software modules or by software components to trace parameters.

Std_ReturnType Dlt_SendTraceMessage (Dlt_SessionIDType sessionId, const Dlt_MessageTraceInfoType* traceInfo, const uint8* traceData, uint16 traceDataLength);

Called to modify the pass through range for Log Messages for all not explicit set Context Ids.

Std_ReturnType Dlt_SetDefaultLogLevel (Dlt_MessageLogLevelType newLogLevel);

This service is used to change the Log Level for the given tuple of Application ID/ Context ID.

Std_ReturnType Dlt_SetLogLevel (Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, Dlt_MessageLogLevelType newLogLevel);

Switches on/ off the mes sage filtering functionality of the Dlt module.

Std_ReturnType Dlt_SetMessageFiltering (boolean status);

The service Dlt_ Set Trace Status sets the trace status for a specific tuple of Application ID and Context ID.

Std_ReturnType Dlt_SetTraceStatus (Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId, boolean newTraceStatus);

Copies the current Dlt configuration to Nv RAM by calling Nv M_ Write Block().

Std_ReturnType Dlt_StoreConfiguration (void);

-

void Dlt_TxFunction (void);

The service has to be called when a software module is going to be stopped. Available vi a Dlt.h

Std_ReturnType Dlt_UnregisterContext (Dlt_SessionIDType sessionId, Dlt_ApplicationIDType appId, Dlt_ContextIDType contextId);

콜백

Service Dlt_CopyRxData.

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

Service Dlt_CopyTxData.

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

Indication of a received PDU from a lower layer communication interface module.

void Dlt_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

This function is called at the start of receiving an N -

BufReq_ReturnType Dlt_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.

void Dlt_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 succe ssful or not.

void Dlt_TpTxConfirmation (PduIdType id, Std_ReturnType result);

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

Std_ReturnType Dlt_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

void Dlt_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

타입

Information about Applications

This type describes the Application Id. 0x00000000 means the so - called wildcard.

Adding or removing a Log Channel assignment for the given tuple of Application Id/ Context Id.

This is the type of the data structure containing the initialization data for Dlt.

Context Information

This type describes the Context Id. 0x00000000 means the so - called wildcard.

This type describes the count of arguments provided to a message.

Contains the unique Message Id for a message. This is only relevant in non - verbose mode.

This type describes the log lev el for each log message.

This type describes transported type of a Dlt BUSMESSAGE.

Bitfield

This type describes labels for trace messages.

This type describes the type of the message.

This type identifies the session.

Type 타입

This type describes the Log Channel name.