Default Error Tracer (DET)
The DET handles development errors, runtime errors, and transient faults across all BSW modules and SW-Cs.
Funktionen — Übersicht
void Det_Init (const Det_ConfigType* ConfigPtr);Service to initialize the Default Error Tracer.Std_ReturnType Det_ReportError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);Service to report development errors.void Det_Start (void);Service to start the Default Error Tracer.Std_ReturnType Det_ReportRuntimeError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, faultErrorTracer uint8 ErrorId);Service to report runtime errors.Std_ReturnType Det_ReportTransientFault (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);Service to report transient faults.void Det_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.Std_ReturnType <User_Error_Hooks> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);-Std_ReturnType <DetReportRuntimeErrorCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);-Std_ReturnType <DetReportTransientFaultCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);-
Typen — Übersicht
struct Det_ConfigTypeConfiguration data structure of the Det module.
Funktionen & Typen — Detailansicht
함수 Det_Init [SWS_Det_00008] 📄 PDF
void Det_Init (const Det_ConfigType* ConfigPtr);
Service to initialize the Default Error Tracer.
동기 함수 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.
함수 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]):
ModuleId(uint16): 보고하는 모듈의 AUTOSAR 모듈 식별자. 베이스 소프트웨어는 0부터 255까지의 범위를 사용합니다(EXP_LayeredSoftwareArchitecture §3 “Default Error Tracer”).InstanceId(uint8): 0부터 시작하는 모듈 인스턴스. 단일 인스턴스의 경우 0이 전달됩니다([SWS_Det_00009]).ApiId(uint8): 오류를 감지한 API 서비스의 식별자([SWS_Det_00009]).ErrorId(uint8): BSW 모듈의 특정 오류 식별자([SWS_BSW_00045], [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.
동기식 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.
함수 [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.
동기식 및 재진입 가능한 함수 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)
함수 Det_GetVersionInfo [SWS_Det_00011] 📄 PDF
void Det_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
함수 <User_Error_Hooks> [SWS_Det_00181] 📄 PDF
Std_ReturnType <User_Error_Hooks> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
-
구성 가능한 인터페이스 <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);
-
구성 가능한 콜아웃 인터페이스 <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);
-
콜아웃 후크 [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에 의해 생성되었습니다.
타입 Det_ConfigType [SWS_Det_00210] 📄 PDF
Configuration data structure of the Det module.
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
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문