DEENESPTFRRUARHIKOZHNL

Default Error Tracer (DET)

ModulDET (Default Error Tracer)
BSW-Modul-ID15
Standard-Header#include "Det.h"
SWS-SpezifikationAUTOSAR_SWS_DefaultErrorTracer.pdf
ClusterDiagnostic Services

모듈 가이드AI 생성

기본 소프트웨어 및 SW-C의 오류 메시지를 중앙에서 수신하여 통합자 훅으로 전달합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 44a890525e71 출처 열린 질문 (3)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

기본 소프트웨어 및 SW-C의 오류 메시지를 중앙에서 수신하여 통합자 훅으로 전달합니다.

Default Error Tracer는 BSW 모듈 및 SW-C로부터 오류 메시지를 중앙에서 수신합니다. 이를 위해 개발 오류용 Det_ReportError, 런타임 오류용 Det_ReportRuntimeError, 일시적 오류용 Det_ReportTransientFault가 제공되며, 각각 모듈, 인스턴스, API 및 오류 식별자를 포함합니다. DET는 수신된 각 메시지를 구성된 모든 통합자 훅 또는 콜아웃으로 전달합니다 [SWS_Det_00501]. EcuM의 Det_Init 및 Det_Start가 작동을 시작합니다. 가장 중요한 제약 조건: R20-11에서 Det_ReportError은 호출자에게 반환되지 않고 어설션처럼 프로그램 흐름을 중단합니다 [SWS_Det_00009].

Default Error Tracer는 기본 소프트웨어 및 소프트웨어 컴포넌트의 오류 메시지를 위한 중앙 수집 지점입니다. 파라미터 ModuleId, InstanceId, ApiId 및 ErrorId 또는 FaultId를 갖는 동일한 구조의 보고 서비스 세 개를 제공합니다. 개발 오류용 Det_ReportError, 런타임 오류용 Det_ReportRuntimeError, 일시적 오류용 Det_ReportTransientFault입니다([SWS_Det_00009], [SWS_Det_01001], [SWS_Det_01003]). EcuM은 Det_Init을 실행한 다음 Det_Start를 실행하여 DET를 가동합니다([SWS_Det_00008], SWS DET 그림 1 34쪽).

det_kontext ecum EcuM det Det ecum->det Det_Init, Det_Start bsw BSW-Module (z. B. CanIf, Dio, Adc) bsw->det Det_ReportError Det_ReportRuntimeError Det_ReportTransientFault swc SW-C rte RTE swc->rte Service-Port DETService rte->det ModuleId/InstanceId를 사용한 호출 (포트 정의 인수 값) hooks Integrator-Code (Error-Hooks / Callouts) det->hooks 구성된 모든 후크/콜아웃 dlt Dlt (optional) det->dlt Dlt_DetForwardErrorTrace dem Dem / 결함 메모리 hooks->dem 예: Dem 호출, 저장

컨텍스트 다이어그램: DET는 BSW 모듈 및 SW-C로부터 메시지를 수신하여 통합자 훅으로 전달하고, 선택적으로 Dlt로 전달합니다. 출처: SWS DET 그림 2 28쪽, [SWS_Det_00202]

DET는 메시지를 직접 평가하지 않습니다. 각 보고 서비스는 자신에게 구성된 모든 훅 또는 콜아웃을 호출하며(DetErrorHook, DetReportRuntimeErrorCallout, DetReportTransientFaultCallout), 메시지와 동일한 파라미터로 호출합니다 [SWS_Det_00501]. DET는 이 통합자 코드를 통해 DEM 또는 오류 메모리에도 접근합니다. 이때 콜아웃은 짧고 적절한 작업으로 제한되어야 합니다 ErrorDescription 10쪽.

SW-C는 클라이언트-서버 인터페이스 DETService을 통해 보고합니다. RTE는 DET 구성의 ModuleId과 InstanceId를 “port defined argument values”로 추가하며, SW-C는 항상 E_OK을 반환받습니다([SWS_Det_00203], [SWS_Det_00204]).

오류 사례의 경우 세 서비스가 어떻게 반환되는지가 결정적입니다. Det_ReportError은 R20-11에서 반환되지 않습니다: 훅 이후에 어설션과 같이 제어 흐름이 중단됩니다([SWS_Det_00009], RS BSWGeneral 33쪽). 반면 런타임 메시지는 E_OK으로 반환됩니다. 일시적 메시지는 콜아웃 값을 전달하며, 콜아웃이 없으면 E_OK를 전달합니다 SWS DET 그림 6 36쪽. 일시적 오류는 R24-11에서 제거되었으며, Dlt 호출은 R25-11에서 제거되었습니다 SWS DET 1쪽.

Det_ReportError를 통한 개발 오류 보고호출자BSW-Modul (Det User)DetIntegrator-Code잘못된 매개변수를 사용한 API 호출Entwicklungsfehler erkanntDet_ReportError(ModuleId,InstanceId, ApiId, ErrorId)altDetErrorHook konfiguriertloop구성된 각 후크에 대해<User_Error_Hooks>(ModuleId,InstanceId, ApiId, ErrorId)E_OKkein Hook konfiguriert후크 호출 없음HALT: 제어 흐름이계속되지 않음보고자로 복귀하지 않음("never returns" in R20-11)

시퀀스 다이어그램: 개발 오류 발생 시 DET는 구성된 모든 훅을 호출한 후 보고자에게 반환되지 않고 중단됩니다. 출처: SWS DET 그림 9.2 34쪽, [SWS_Det_00009]

시스템 경계에서 Default Error Tracer의 역할

Default Error Tracer(DET)는 기본 소프트웨어 모듈과 소프트웨어 컴포넌트가 감지된 오류를 보고하는 중앙 수집 지점입니다. R20-11에서는 이를 위해 동일한 구조를 가진 세 가지 보고 서비스를 제공합니다: 개발 오류용 Det_ReportError [SWS_Det_00009], 런타임 오류용 Det_ReportRuntimeError [SWS_Det_01001] 및 일시적 오류용 Det_ReportTransientFault [SWS_Det_01003]. 여기에 관리 서비스 Det_Init, Det_Start 및 Det_GetVersionInfo이 추가됩니다([SWS_Det_00008], [SWS_Det_00010], [SWS_Det_00011]). DET는 메시지의 내용을 직접 평가하지 않습니다. 수신된 각 메시지와 함께 구성된 오류 훅에 알립니다 SWS DET 16쪽.

외부에 대해 DET는 좁게 연결되어 있습니다. 사양에서 언급하는 유일한 예상 인터페이스는 Dlt_Det.h의 Dlt_DetForwardErrorTrace을 통한 Dlt로의 선택적 전달입니다([SWS_Det_00211], SWS DET 그림 2 28쪽). DEM 및 RTE에 DET는 콜아웃의 통합자 고유 코드를 통해서만 도달합니다 ErrorDescription 10쪽.

det_kontext ecum EcuM det Det ecum->det Det_Init, Det_Start bsw BSW-Module (z. B. CanIf, Dio, Adc) bsw->det Det_ReportError Det_ReportRuntimeError Det_ReportTransientFault swc SW-C rte RTE swc->rte Service-Port DETService rte->det ModuleId/InstanceId를 사용한 호출 (포트 정의 인수 값) hooks Integrator-Code (Error-Hooks / Callouts) det->hooks 구성된 모든 후크/콜아웃 dlt Dlt (optional) det->dlt Dlt_DetForwardErrorTrace dem Dem / 결함 메모리 hooks->dem 예: Dem 호출, 저장

컨텍스트 다이어그램: DET는 BSW 모듈 및 RTE를 통해 SW-C로부터 메시지를 수신합니다. EcuM에 의해 기동되며 메시지를 구성된 통합자 코드와 선택적으로 Dlt로만 전달합니다. 출처: SWS DET 그림 2 28쪽, [SWS_Det_00202], [SWS_Det_00211], ErrorDescription 10쪽

스타트업: EcuM에 의한 초기화 및 시작

ECU State Manager는 Det_Init(서비스 ID 0x00)으로 DET를 초기화합니다. 이때 내용이 구현별로 상이한 Det_ConfigType 유형의 선택된 구성 세트에 대한 포인터를 전달합니다([SWS_Det_00008], [SWS_Det_00210]). 이어서 Det_Start(서비스 ID 0x02)가 추적기를 시작합니다 [SWS_Det_00010]. 두 서비스 모두 동기식이며 비재진입(non-reentrant)입니다. R20-11 다이어그램은 EcuM에서 두 호출이 순차적으로 실행되는 것을 보여줍니다 SWS DET 그림 1 34쪽. EcuM은 이에 따라 Det_Init 및 Det_ReportError을 선택적 인터페이스로 나열합니다 SWS EcuM 142쪽.

초기화와 시작이 분리된 이유는 사양에 명시되어 있지 않습니다. 해석: 이러한 2단계 구분은 스타트업 초기에 DET를 초기화하고, 이후 단계에서 비로소 정규 작동을 활성화할 수 있도록 하기 위한 것으로 보입니다 [SWS_Det_00010]. 질문 Q-fee4462bdf189dcf (열림)

EcuM에 의한 Det 시작EcuMDetDet_Init(ConfigPtr)선택된 것으로 초기화Konfigurationssatz (Det_ConfigType)복귀 (동기식)Det_Start()복귀 (동기식)두 서비스 모두 동기식이며 재진입 불가

시퀀스 다이어그램: EcuM은 먼저 구성 포인터와 함께 Det_Init을 동기식으로 호출한 다음 Det_Start을 호출합니다. 출처: SWS DET 그림 1 34쪽, [SWS_Det_00008], [SWS_Det_00010]

세 가지 보고 경로와 식별자

세 가지 보고 서비스는 모두 동일한 파라미터 구조를 갖습니다:

  • ModuleId(uint16);
  • InstanceId(uint8), 단일 인스턴스 모듈의 경우 값 0;
  • ApiId(uint8);
  • ErrorId 또는 FaultId(uint8).

API 및 오류 식별자는 보고하는 모듈의 SWS가 각각 정의합니다([SWS_Det_00009], [SWS_Det_01001], [SWS_Det_01003]). 모듈 ID는 기본 소프트웨어 모듈 목록에서 가져옵니다. 기본 소프트웨어는 이 중 0..255 범위만 사용합니다 EXP LSA 157쪽.

어느 경로가 올바른지는 오류 분류에 따릅니다. 위반된 기본 전제 조건은 개발 오류이며 어설션처럼 처리됩니다; 소프트웨어 결함, 잘못된 통합 또는 유효하지 않은 구성이 그 예입니다. 나머지 오류는 런타임 또는 프로덕션 오류입니다 EXP LSA 154쪽. 개발 오류 감지가 구성된 경우, BSW 모듈은 할당된 모듈 ID를 사용하여 Det_ReportError을 통해 개발 오류를 보고합니다 SWS BSWGeneral 57쪽. SPI_DEV_ERROR_DETECT과 같은 전처리기 스위치는 호출을 활성화하거나 비활성화합니다 EXP LSA 113쪽.

fehlerklassifikation start Fehler erkannt q1 Grundlegende Vorbedingung verletzt? start->q1 q2 (서비스/EOL) 진단에 관련됨? q1->q2 아니요 dev Entwicklungsfehler: Det_ReportError (Programmfluss endet) q1->dev 예 prod 생산 오류 (Det를 통하지 않음) q2->prod 예 rt Laufzeitfehler: Det_ReportRuntimeError q2->rt 아니요

활동 다이어그램: 기본 전제 조건이 위반되면 Det_ReportError을 통해 개발 오류가 보고됩니다. 그렇지 않으면 진단 관련성에 따라 프로덕션 오류와 런타임 오류가 결정됩니다(Det_ReportRuntimeError). 출처: EXP LSA 154쪽, [SWS_Det_00009], [SWS_Det_01001]

런타임 오류는 예를 들어 ADC 드라이버가 ADC_E_BUSY으로 보고하거나 Dds가 폐기된 메시지에 대해 보고하며, 각각 Det_ReportRuntimeError을 통해 보고합니다(SWS Adc 95쪽, SWS Dds 53쪽). BSW 모듈은 ServiceNeeds 유형 ErrorTracerNeeds로 요구사항을 기술합니다. 이는 Det_ReportError, Det_ReportRuntimeError 및 Det_ReportTransientFault 역할을 알고 있습니다 TPS BSWMDT 266쪽.

통합자 코드로의 가교 역할을 하는 훅 및 콜아웃

Det_ReportError에 대한 각 호출은 DetErrorHook에 구성된 모든 함수를 호출합니다. 마찬가지로 Det_ReportRuntimeError 및 Det_ReportTransientFault은 각각 DetReportRuntimeErrorCallout 또는 DetReportTransientFaultCallout의 모든 콜아웃을 호출합니다 [SWS_Det_00501]. 훅과 콜아웃은 트리거하는 서비스의 시그니처를 가지며 동일한 파라미터를 받습니다([SWS_Det_00181], [SWS_Det_00184], [SWS_Det_00187], SWS DET 16쪽). 훅 인터페이스 <User_Error_Hooks>은 서비스 ID 0x10을 가집니다. 이는 동기식이고 재진입이 가능하며 항상 E_OK를 반환합니다 SWS DET 25쪽.

콜아웃이 무엇을 수행할지는 통합자가 결정합니다. 런타임 및 일시적 오류의 경우 콜아웃은 몇 가지 작업으로 제한되어야 합니다: 이벤트를 저장하거나, DEM을 호출하거나, 기타 짧고 적절한 조치를 수행하는 것입니다 ErrorDescription 10쪽. Det_ReportRuntimeError 호출 후 DET는 콜아웃 구성 여부와 관계없이 항상 E_OK로 반환됩니다(SWS DET 그림 4 35쪽, SWS DET 그림 5 35쪽).

콜아웃이 있는 경우 및 없는 경우의 Det_ReportRuntimeErrorDet UserDetIntegrator-CodeDet_ReportRuntimeError(ModuleId,InstanceId, ApiId, ErrorId)altDetReportRuntimeErrorCallout konfiguriertloop구성된 각 콜아웃에 대해<DetReportRuntimeErrorCallout>(ModuleId,InstanceId, ApiId, ErrorId)E_OKkein Callout konfiguriert전달되지 않음E_OK보고자의 프로그램 흐름이 계속됨

시퀀스 다이어그램: Det_ReportRuntimeError은 구성된 모든 콜아웃을 호출하고 어떤 경우에도 E_OK과 함께 보고자에게 반환됩니다. 출처: SWS DET 그림 4 35쪽, SWS DET 그림 5 35쪽, [SWS_Det_00501]

반면 Det_ReportTransientFault의 경우 DET는 콜아웃의 반환값을 보고자에게 그대로 전달합니다. 콜아웃이 없으면 E_OK을 반환합니다(SWS DET 그림 6 36쪽, SWS DET 그림 7 36쪽). 여러 콜아웃이 있는 경우 이후 버전에서는 반환값의 논리적 OR 결합을 설명합니다: 모든 콜아웃이 E_OK를 반환하는 경우에만 E_OK가 반환됩니다. 이 규칙은 R20-11에도 이미 적용되는 것으로 추정됩니다 SWS DET 24쪽. 질문 (열림)

콜아웃이 있는 경우 및 없는 경우의 Det_ReportTransientFaultDet UserDetIntegrator-CodeDet_ReportTransientFault(ModuleId,InstanceId, ApiId, FaultId)altDetReportTransientFaultCallout konfiguriertloop구성된 각 콜아웃에 대해<DetReportTransientFaultCallout>(ModuleId,InstanceId, ApiId, FaultId)반환값 X반환값 논리 OR 연산(R20-11에 대한 가정)Callout-Ergebniskein Callout konfiguriertE_OK

시퀀스 다이어그램: Det_ReportTransientFault은 콜아웃의 반환값을 보고자에게 전달하며, 콜아웃이 없으면 E_OK을 반환합니다. 다중 콜아웃에서의 OR 결합은 가정으로 표시되어 있습니다. 출처: SWS DET 그림 6 36쪽, SWS DET 그림 7 36쪽, SWS DET 24쪽

서비스 포트를 통한 소프트웨어 컴포넌트 연결

SW-C는 클라이언트-서버 인터페이스 DETService을 통해 DET에 접근합니다. 이 인터페이스의 연산은 포트의 모듈 ID를 사용하여 Det_ReportError 또는 런타임 보고를 호출합니다 [SWS_Det_00202]. ModuleId과 InstanceId는 SW-C 자체가 전달하지 않습니다. RTE가 DET 구성의 DetModuleId 및 DetInstanceId에서 가져온 값을 “port defined argument values”로 추가합니다([SWS_Det_00204], [SWS_Det_00205], [SWS_Det_00206]). SW-C의 경우 ApiId 및 ErrorId은 표준화되어 있지 않으며 0x00..0xFF 범위에서 자유롭게 할당할 수 있습니다. 반환값은 항상 E_OK입니다 [SWS_Det_00203]. 포트 인터페이스는 AUTOSAR 데이터 유형 uint8 및 uint16을 사용합니다 [SWS_Det_00200].

서비스 포트를 통한 SW-C의 오류 보고SW-CRTEDetReportRuntimeError(ApiId, ErrorId)R-Port(DETService)를 통해추가된 ModuleId, InstanceId와 함께 호출(port defined argument values)DetModuleId / DetInstanceId의 값DetInstanceId 값Det_ReportRuntimeError(ModuleId,InstanceId, ApiId, ErrorId)E_OKE_OK

시퀀스 다이어그램: SW-C는 ApiId과 ErrorId만 전달합니다. RTE는 구성에서 ModuleId와 InstanceId을 추가하며, 반환값은 E_OK입니다. 출처: [SWS_Det_00202], [SWS_Det_00203], [SWS_Det_00204], SWS DET 그림 3 33쪽

알림 구성

알림 함수는 선택적 컨테이너 DetNotification(다중도 0..1)에 있습니다. 여기에는 목록 DetErrorHook과 DetReportRuntimeErrorCallout(각각 0..*)가 포함됩니다. DetErrorHook은 사전 컴파일(pre-compile) 시점에 구성되며 함수 유형 Std_ReturnType (*f)(uint16, uint8, uint8, uint8)를 요구합니다 SWS DET 37쪽. R20-11에서는 DetReportTransientFaultCallout이 추가됩니다 [SWS_Det_00501]. 파라미터 다이어그램은 또한 DetVersionInfoApi 및 DetForwardToDlt을 포함하는 필수 컨테이너 DetGeneral을 보여줍니다 SWS DET (alt) 그림 6 43쪽. 구성은 DetConfigSet/DetModule 및 DetModuleInstance으로부터 모듈 및 인스턴스 식별자를 포함하는 포트 Det_{Name}를 형성합니다 [SWS_Det_00205].

오류가 발생한 경우의 동작

개발 오류는 assertion처럼 처리됩니다. 구성된 훅을 호출한 후에는 정상적인 제어 흐름이 계속되지 않으며, DET는 무한 루프나 정지 명령 등을 통해 실행을 중지합니다 RS BSWGeneral 33쪽. 이는 R20-11의 Sync/Async 항목에 있는 Det_ReportError에 대한 항목인 “Not Applicable: The function never returns”와 일치합니다 [SWS_Det_00009]. 다이어그램은 구성된 훅이 있는 경우와 없는 경우의 이러한 HALT를 보여줍니다 (SWS DET 그림 9.2 34쪽, SWS DET 그림 9.3 35쪽).

Det_ReportError를 통한 개발 오류 보고호출자BSW-Modul (Det User)DetIntegrator-Code잘못된 매개변수를 사용한 API 호출Entwicklungsfehler erkanntDet_ReportError(ModuleId,InstanceId, ApiId, ErrorId)altDetErrorHook konfiguriertloop구성된 각 후크에 대해<User_Error_Hooks>(ModuleId,InstanceId, ApiId, ErrorId)E_OKkein Hook konfiguriert후크 호출 없음HALT: 제어 흐름이계속되지 않음보고자로 복귀하지 않음("never returns" in R20-11)

시퀀스 다이어그램: BSW 모듈이 개발 오류를 감지하고 Det_ReportError을(를) 호출합니다. DET는 구성된 모든 훅을 호출한 후 보고자에게 반환하지 않고 정지합니다. 출처: SWS DET 그림 9.2 34쪽, SWS DET 그림 9.3 35쪽, [SWS_Det_00009], [SWS_Det_00501]

일부 다이어그램은 이와 다릅니다. 한 시퀀스 다이어그램에서는 동기식 또는 비동기식 동작이 구현에 따라 달라진다고 명시하며 호출자에게 반환되는 것으로 그립니다 SWS DET 그림 5 36쪽. Dio 다이어그램 역시 Det_ReportError 이후 반환을 보여줍니다 SWS Dio 그림 5 41쪽. R20-11의 규범적 기준은 [SWS_Det_00009]입니다. Sync/Async 명세에 대한 명확한 설명은 R21-11에 이르러서야 추가되었습니다 SWS DET 1쪽.

런타임 및 일시적 오류는 프로그램 흐름을 중단하지 않습니다. DET는 반환값과 함께 보고자에게 반환됩니다 ([SWS_Det_01001], [SWS_Det_01003]). DET 자체는 단 하나의 고유한 개발 오류만 알고 있습니다. DET_E_PARAM_POINTER (0x01)은 Det_GetVersionInfo이(가) 널 포인터로 호출될 때 발생합니다 [SWS_Det_00301]. 이후 버전에서는 이 오류가 구성된 모든 콜아웃에 보고되도록 규정하고 있습니다. 이는 아마도 R20-11에서도 동일하게 의도된 것으로 보입니다 SWS DET 18쪽. 질문 Q-3a7f5865d61186d4 (열림)

더 자세한 증거

이후 릴리스에서는 기능 범위가 변경됩니다. R23-11/R24-11의 한 버전에서는 Det_ReportTransientFault을(를) OBSOLETE로 표시합니다 SWS DET 24쪽. 변경 이력에 따르면 일시적 오류는 R24-11에서, Dlt 호출은 R25-11에서 제거됩니다 SWS DET 1쪽. R20-11에서는 두 기능 모두 여전히 사양의 일부입니다 ([SWS_Det_01003], [SWS_Det_00211]).

페이로드에 제공된 사양 발췌본을 기반으로 AI가 생성한 모듈 가이드입니다. R20-11에 대해 규범적인 것은 링크된 요구사항뿐이며, 다른 릴리스의 진술은 해당 릴리스로 표시되어 있습니다.

Default Error Tracer (DET)

The DET handles development errors, runtime errors, and transient faults across all BSW modules and SW-Cs.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 Det_Init [SWS_Det_00008] 📄 PDF

void Det_Init (const Det_ConfigType* ConfigPtr);

Service to initialize the Default Error Tracer.

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

동기 함수 Det_Init은 Default Error Tracer([SWS_Det_00008])를 초기화하기 위한 중앙 서비스 역할을 합니다. 이 함수는 헤더 파일 Det.h를 통해 제공되며 void Det_Init (const Det_ConfigType* ConfigPtr) 시그니처를 갖습니다. 함수는 정식 입력 매개변수 ConfigPtr를 통해 모듈의 선택된 구성 레코드를 가리키는 포인터를 전달받습니다. 이 서비스에는 반환값이 정의되어 있지 않습니다([SWS_Det_00008]).

런타임 동작과 관련하여 Det_Init은 구속력 있게 재진입 불가능(Non Reentrant)으로 지정되어 있습니다([SWS_Det_00008]). 이러한 이유로 정상 작동 중에 다른 실행 컨텍스트에서 병렬로 또는 인터럽트 방식으로 이 함수를 호출해서는 안 됩니다. 이 모듈은 다른 BSW 모듈이나 컴포넌트가 DET에 오류를 전송하기 전에 베이직 소프트웨어 초기화 단계 동안 중앙에서 호출될 것으로 추정됩니다(해석). 질문 Q-143a3c098d03d7f8 (열림)

이 함수는 서비스 ID 0x00으로 정의되어 있습니다([SWS_Det_00008]). 본 사양 발췌문에는 이 초기화 호출을 위한 자체 오류 코드, 특정 오류 처리 메커니즘 또는 DET나 DEM을 통한 별도의 오류 메시지가 명시되어 있지 않습니다.

요구사항 추적의 일환으로 이 인터페이스는 [SRS_BSW_00310]에 따른 통일된 API 명명 규칙에 대한 일반 AUTOSAR 요구사항을 충족합니다(SWS DefaultErrorTracer §6 “Requirements Tracing”).

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

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

함수 Det_ReportError [SWS_Det_00009] 📄 PDF

Std_ReturnType Det_ReportError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

Service to report development errors.

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

함수 Det_ReportError은(는) AUTOSAR Classic BSW 모듈에서 오류 감지가 활성화되었을 때 개발 오류를 보고하는 데 사용됩니다([SWS_BSW_00045], [SWS_Det_00009]). 이 인터페이스는 재진입 가능(reentrant)으로 선언되어 있습니다([SWS_Det_00009]). 실행 동작은 호출자에게 반환되지 않으며("never returns"), 반환 타입 Std_ReturnType은(는) 서비스 및 훅과의 호환성을 위해서만 존재합니다([SWS_Det_00009]).

전달 매개변수는 오류 컨텍스트를 고유하게 식별합니다([SWS_Det_00009]):

개발 오류는 초기화되지 않은 모듈의 호출([SWS_BSW_00243]) 또는 유효하지 않은 매개변수([SWS_CANIF_00538])와 같이 소프트웨어 오류, 잘못된 구성 또는 통합 문제(EXP_LayeredSoftwareArchitecture §3 “Error Classification”, [SRS_BSW_00337] 문구 아직 가져오지 않음)로 인한 근본적인 전제조건 위반을 나타냅니다. 이는 어설션처럼 처리됩니다. DetErrorHook에 구성된 모든 콜백([SWS_Det_00501])을 호출한 후 정상적인 제어 흐름이 계속되어서는 안 되며, DET는 예를 들어 무한 루프, halt 명령 또는 리셋([SRS_BSW_00337] 문구 아직 가져오지 않음, EXP_LayeredSoftwareArchitecture §3 “Error Classification”)을 통해 실행을 중단합니다.

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

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

함수 Det_Start [SWS_Det_00010] 📄 PDF

void Det_Start (void);

Service to start the Default Error Tracer.

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

동기식 API 함수 Det_Start은(는) Default Error Tracer(DET)를 시작하는 역할을 합니다([SWS_Det_00010]). 이 서비스는 헤더 파일 Det.h에서 서비스 ID 0x02 아래에 선언되어 있습니다(SWS_DefaultErrorTracer §8.1.3.3 “Det_Start”). 구문 void Det_Start(void)에 따르면 이 함수는 입력 매개변수나 출력 매개변수를 받지 않으며 호출자에게 반환값을 제공하지 않습니다([SWS_Det_00010]).

통합 및 실행을 위해 다음과 같은 특정 조건이 적용됩니다:

  • 재진입성 및 동시성: 이 함수는 비재진입(Non Reentrant)으로 정의되어 있습니다([SWS_Det_00010]). 여러 태스크 또는 인터럽트 컨텍스트에서의 병렬 호출은 허용되지 않습니다.
  • 호출 컨텍스트: 해석: ECU에서 오류 추적을 활성화하기 위해 기본 초기화 후 시스템 기동 중에 일반적으로 중앙에서 호출이 수행될 것으로 추정됩니다. 질문 Q-b28f205b1cc7acfa (열림)
  • 오류 처리: 인터페이스는 오류 상태를 반환하지 않습니다. 명세서 발췌문에는 이 호출에 대해 정의된 오류 코드나 DET 또는 DEM 이벤트가 없습니다([SWS_Det_00010]).

전체 시스템에서 Det_Start은(는) [SRS_BSW_00310] 문구 아직 가져오지 않음(SWS_DefaultErrorTracer §6 “Requirements Tracing”)에 따른 AUTOSAR 베이스 소프트웨어의 표준화된 명명 규칙을 충족합니다.

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

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

함수 Det_ReportRuntimeError [SWS_Det_01001] 📄 PDF

Std_ReturnType Det_ReportRuntimeError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, faultErrorTracer uint8 ErrorId);

Service to report runtime errors. If a callout has been configured then this callout shall be called.

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

함수 [SWS_Det_01001]은(는) 런타임 오류(Runtime Error)를 수신하기 위한 Det.h 내의 중앙 BSW 서비스 역할을 합니다. 동기식으로 동작하며 재진입 가능(reentrant)하도록 설계되었습니다 [SWS_Det_01001].

사용법 및 매개변수

호출하는 BSW 모듈은 오류 보고 시 [SWS_Det_01001]에 4개의 필수 매개변수를 전달합니다:

  • ModuleId: 보고하는 BSW 모듈의 모듈 식별자.
  • InstanceId: 인덱스 기반 인스턴스 번호(인스턴스가 하나뿐인 모듈의 경우 0 값).
  • ApiId: 오류가 발생한 API 함수의 식별자.
  • ErrorId: 감지된 런타임 오류의 모듈별 식별자.

이 서비스는 호출 모듈에 항상 반환값 E_OK을(를) 반환합니다 [SWS_Det_01001].

상호 작용 및 오류 처리

AUTOSAR 아키텍처에 따르면 런타임 오류는 개발 오류(기본적인 전제 조건을 위반함) 및 프로덕션 오류(정비소 진단과 관련됨)와 구별됩니다 EXP_LayeredSoftwareArchitecture §Integration and Runtime Aspects. 이 서비스는 예를 들어 ADC 드라이버 [SWS_Adc_00530] 또는 DDS [CP_SWS_Dds_00832] 문구 아직 가져오지 않음에 의해 필수 인터페이스로 통합됩니다.

CanIf에서는 예를 들어 오프라인 채널을 통한 전송 시도로 인해 CANIF_E_STOPPED이(가) 보고되는 반면 [SWS_CANIF_00382], 트렁케이션 없는 길이 초과는 CANIF_E_TXPDU_LENGTH_EXCEEDED(으)로 보고됩니다 [SWS_CANIF_00900].

[SWS_Det_01001] 호출 시 구성 매개변수 DetReportRuntimeErrorCallout에 등록된 모든 콜아웃 함수가 실행됩니다 [SWS_Det_00503]. 오류 후크가 구성되지 않은 경우 추가적인 함수 호출은 생략되지만, DLT가 구성되어 있다면 DLT로의 전달은 활성 상태로 유지됩니다 [SWS_Det_00503].

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

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

함수 Det_ReportTransientFault [SWS_Det_01003] 📄 PDF

Std_ReturnType Det_ReportTransientFault (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);

Service to report transient faults. If a callout has been configured than this callout shall be called and the returned value of the callout shall be returned. Otherwise it returns immediately with E_ OK.

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

동기식 및 재진입 가능한 함수 Det_ReportTransientFault(서비스 ID 0x05)은 BSW 모듈이 감지된 트랜지언트 오류를 Default Error Tracer([SWS_BSW_00225], [SWS_Det_01003])에 표준화된 방식으로 보고하는 데 사용됩니다. 이 서비스는 헤더 Det.h을(를) 통해 선언되지만, 릴리스 R20-11에서는 사용 중단(OBSOLETE)으로 표시되어 있습니다(SWS_DefaultErrorTracer §8.1.3.5 “Det_ReportTransientFault”).

호출 시 입력 매개변수만 전달됩니다: 호출 모듈의 식별자(ModuleId), 인스턴스 인덱스(InstanceId, 단일 인스턴스 모듈은 0을(를) 전달함), 오류를 감지한 API의 서비스 ID(ApiId), 그리고 SWS_BSWGeneral §7.2.4.4 “Reporting”에 따라 uint8 타입이어야 하는 오류 번호(FaultId)입니다([SWS_Det_01003]).

이 호출은 오류를 구성된 콜아웃 함수로 전달하고 그 피드백을 평가합니다:

  • 호출 시 DetReportTransientFaultCallout 아래에 구성된 모든 콜백이 실행됩니다([SWS_Det_00502]).
  • 구성된 콜아웃이 없으면 함수는 즉시 종료되고 값 E_OK을(를) 반환합니다([SWS_Det_01003]).
  • 정확히 하나의 콜아웃이 설정되어 있으면 Det_ReportTransientFault은(는) 해당 콜아웃의 Std_ReturnType 타입 반환값을 반환합니다([SWS_Det_01003]).
  • 여러 콜아웃이 존재하는 경우 모든 콜아웃 반환값의 논리적 OR 결합(합)이 생성됩니다. E_OK = 0이(가) 정의되어 있으므로 함수는 모든 콜아웃이 오류 없이 E_OK(으)로 응답하는 경우에만 E_OK을(를) 반환합니다([SWS_Det_01003]).

동시성 및 실행 환경 측면에서 이 함수는 재진입 가능하도록 설계되었으므로, 서로 다른 모듈 컨텍스트에서 동시에 호출될 수 있습니다([SWS_Det_01003]).

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

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

함수 <User_Error_Hooks> [SWS_Det_00181] 📄 PDF

Std_ReturnType <User_Error_Hooks> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

-

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

구성 가능한 인터페이스 <User_Error_Hooks>은(는) 개발 오류 감지 시 사용자 정의 콜아웃 함수의 호출을 정의합니다[SWS_Det_00181]. 함수 Det_ReportError이(가) 호출되는 즉시, 이를 위해 시스템에 구성된 모든 콜아웃이 동기식으로 실행되어야 합니다[SWS_Det_00180]. 이 인터페이스의 선언은 헤더 Det_Externals.h을(를) 통해 제공됩니다SWS DefaultErrorTracer §8.1.5 “Callout Functions / Configurable Interfaces”.

이 함수는 서비스 ID 0x10을(를) 가지며 오류 분석을 위해 4개의 진단 매개변수를 전달합니다[SWS_Det_00181]:

  • ModuleId: 호출하는 BSW 모듈의 고유 모듈 ID.
  • InstanceId: 0부터 시작하는 모듈 인스턴스의 식별자(인스턴스가 하나뿐인 모듈의 경우 0이(가) 전달됨).
  • ApiId: 해당 모듈의 명세에 따른 관련 API 함수의 식별자.
  • ErrorId: 특정 개발 오류의 식별자.

명세에 따라 이 인터페이스는 이러한 서비스에 요구되는 바와 같이 항상 반환값 E_OK을(를) 반환합니다[SWS_Det_00181]. 자체 오류 코드나 대체 상태 값은 인터페이스를 통해 호출자에게 다시 보고될 수 없습니다.

실행 측면에서 <User_Error_Hooks>은(는) 동기식 및 재진입 가능하도록 설계되었습니다[SWS_Det_00181]. 동일한 서비스에 대해 여러 콜아웃이 정의된 경우, 이들은 동일한 시그니처와 서비스 ID를 가져야 합니다[SWS_Det_00180]. 해석: 처리가 Det_ReportError의 호출 컨텍스트 내에서 직접 수행되므로, 시스템 실행을 지연시키지 않기 위해 사용자 후크가 블로킹 메커니즘을 사용해서는 안 될 것으로 보입니다. 질문 Q-acd1afcd9336992f (열림)

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

함수 <DetReportRuntimeErrorCallout> [SWS_Det_00184] 📄 PDF

Std_ReturnType <DetReportRuntimeErrorCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

-

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

구성 가능한 콜아웃 인터페이스 <DetReportRuntimeErrorCallout>은 Default Error Tracer(SWS_DefaultErrorTracer §8.1.5 “Callout Functions / Configurable Interfaces”)에서 런타임 오류를 사용자 정의 방식으로 수집하고 추가 처리하는 데 사용됩니다. 함수 Det_ReportRuntimeError가 호출되는 즉시 DET는 이를 위해 구성된 모든 콜아웃 함수를 동기식으로 실행합니다([SWS_Det_00180], [SWS_Det_00503]). 구성된 콜아웃 함수는 헤더 파일 Det_Externals.h를 통해 제공되며 서비스 ID 0x11을 갖습니다([SWS_Det_00184]).

매개변수 및 반환값

  • ModuleId (uint16): 런타임 오류를 보고하는 BSW 모듈의 숫자 식별자입니다([SWS_Det_00184]).
  • InstanceId (uint8): 0부터 시작하는 모듈 인스턴스 인덱스이며, 단일 인스턴스의 경우 항상 0이 전달됩니다([SWS_Det_00184]).
  • ApiId (uint8): 런타임 오류가 발생한 API 서비스의 식별자([SWS_Det_00184]).
  • ErrorId (uint8): 감지된 런타임 오류의 모듈별 식별자([SWS_Det_00184]).
  • 반환값: Std_ReturnType 타입은 서비스 사양에 따라 항상 E_OK을(를) 반환합니다([SWS_Det_00184]).

동시성 및 동작

콜아웃 함수는 재진입 가능(reentrant)하도록 명시되어 있으며 호출자의 실행 컨텍스트에서 동기적으로 처리됩니다([SWS_Det_00184]). 동일한 서비스에 대해 구성된 모든 콜아웃은 동일한 시그니처와 서비스 ID를 가져야 합니다([SWS_Det_00180]). 반환값이 E_OK(으)로 고정되어 있으므로, 콜아웃을 통해 DET로 오류 상태가 피드백되지 않습니다.

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

함수 <DetReportTransientFaultCallout> [SWS_Det_00187] 📄 PDF

Std_ReturnType <DetReportTransientFaultCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);

-

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

콜아웃 후크 [SWS_Det_00187]은(는) Default Error Tracer(DET)에서 일시적 오류를 애플리케이션에 맞게 처리하는 데 사용됩니다. 이 함수는 동기적으로 실행되며 서비스 ID 0x12(으)로 정의됩니다 [SWS_Det_00187]. 이 함수는 4개의 입력 매개변수를 받습니다:

  • ModuleId: 호출하는 소프트웨어 모듈의 모듈 식별자 [SWS_Det_00187].
  • InstanceId: 0부터 시작하는 모듈의 인덱스 기반 인스턴스 ID이며, 단일 인스턴스 모듈은 0 값을 전달해야 합니다 [SWS_Det_00187].
  • ApiId: 일시적 오류가 발생한 API 서비스의 식별자 [SWS_Det_00187].
  • FaultId: 호출 모듈의 SWS에 따라 감지된 일시적 오류의 식별자 [SWS_Det_00187].

반환값으로 인터페이스는 Std_ReturnType 타입의 값을 반환하며, 이는 Det_ReportTransientFault의 호출자에게 즉시 전달됩니다 [SWS_Det_00187]. 선언은 헤더 파일 Det_Externals.h을(를) 통해 제공됩니다 [SWS_Det_00187].

동시성과 관련하여 이 함수는 재진입 가능(reentrant)하도록 명시되어 있습니다 [SWS_Det_00187]. 반환값이 동기적으로 전달되므로, 보고하는 모듈의 실행이 부당하게 지연되지 않도록 콜아웃 구현에 블로킹 작업이 포함되어서는 안 됩니다. 질문 Q-23eaffed8be030bb (열림)

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

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

Record
AUTOSAR/AP/record/CP_MOD_Det
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Det@rel:R20-11#7d1af9b5
Content hash
7d1af9b5
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DefaultErrorTracer.pdf#nameddest=SWS_Det_00008

주제 맵

상세 보기

개요에서 항목을 선택하세요.

초기화 및 상태

Returns the version information of this module.

void Det_GetVersionInfo (Std_VersionInfoType* versioninfo);
Det_Init 함수

Service to initialize the Default Error Tracer.

void Det_Init (const Det_ConfigType* ConfigPtr);

서비스

Service to report development errors.

Std_ReturnType Det_ReportError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

Service to report runtime errors. If a callout has been configured then this callout shall be called.

Std_ReturnType Det_ReportRuntimeError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, faultErrorTracer uint8 ErrorId);

Service to report transient faults. If a callout has been configured than this callout shall be called and the returned value of the callout shall be returned. Otherwise it returns immediately with E_ OK.

Std_ReturnType Det_ReportTransientFault (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);
Det_Start 함수

Service to start the Default Error Tracer.

void Det_Start (void);

콜아웃 및 예상 인터페이스

-

Std_ReturnType <DetReportRuntimeErrorCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

-

Std_ReturnType <DetReportTransientFaultCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);

-

Std_ReturnType <User_Error_Hooks> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

타입

Configuration data structure of the Det module.