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”)。
本说明由 AI 基于 AUTOSAR R20-11 规范生成。
实现者指南即将推出(复杂度 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])。该接口声明为可重入([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])。
开发错误代表由于软件错误、配置错误或集成问题导致的基本前提条件破坏(EXP_LayeredSoftwareArchitecture §3 “Error Classification”,[SRS_BSW_00337] 原文尚未导入),例如调用未初始化的模块([SWS_BSW_00243])或无效参数([SWS_CANIF_00538])。它们被作为断言处理:在调用DetErrorHook中配置的所有回调([SWS_Det_00501])之后,不得继续正常的控制流;DET例如通过死循环、停机指令或复位来停止执行([SRS_BSW_00337] 原文尚未导入,EXP_LayeredSoftwareArchitecture §3 “Error Classification”)。
此使用说明由AI基于AUTOSAR R20-11规范生成。
实现者指南即将推出(复杂度 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] 原文尚未导入中规定的AUTOSAR基础软件标准化命名约定(SWS_DefaultErrorTracer §6 “Requirements Tracing”)。
本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。
实现者指南即将推出(复杂度 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] 在 Det.h 中用作接收运行时错误(Runtime Errors)的核心 BSW 服务。它同步工作并设计为可重入的 [SWS_Det_01001]。
用法与参数
调用方 BSW 模块在指示错误时向 [SWS_Det_01001] 传递四个必选参数:
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 中存储的所有 callout 函数 [SWS_Det_00503]。如果未配置错误钩子,则不会执行额外的函数调用,只要配置了 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声明,但在Release R20-11中被标记为已弃用(OBSOLETE)(SWS_DefaultErrorTracer §8.1.3.5 “Det_ReportTransientFault”)。
调用时仅传递输入参数:调用模块的标识符(ModuleId)、实例索引(InstanceId,其中单实例模块传递0)、检测到错误的API的服务ID(ApiId)以及错误编号(FaultId),根据SWS_BSWGeneral §7.2.4.4 “Reporting”,其类型必须为uint8([SWS_Det_01003])。
该调用将错误转发给配置的Callout函数并评估其反馈:
- 一次调用会导致执行在
DetReportTransientFaultCallout下配置的所有回调([SWS_Det_00502])。 - 如果不存在配置的Callout,该函数立即终止并返回值
E_OK([SWS_Det_01003])。 - 如果恰好设置了一个Callout,
Det_ReportTransientFault将返回其类型为Std_ReturnType的返回值([SWS_Det_01003])。 - 如果存在多个Callout,则形成所有Callout返回值的逻辑“或”运算(总和)。由于定义了
E_OK = 0,因此仅当所有Callout均无错误地以E_OK响应时,该函数才返回E_OK([SWS_Det_01003])。
在并发性和执行环境方面,该函数设计为可重入的,因此可以从不同的模块上下文并发调用它([SWS_Det_01003])。
此文本由 AI 基于 AUTOSAR 规范 R20-11 生成。
实现者指南即将推出(复杂度 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>定义了在检测到开发错误时调用用户定义的Callout函数[SWS_Det_00181]。一旦调用函数Det_ReportError,必须同步执行系统中为此配置的所有Callout [SWS_Det_00180]。该接口的声明通过头文件Det_Externals.h提供SWS DefaultErrorTracer §8.1.5 “Callout Functions / Configurable Interfaces”。
该函数具有服务ID 0x10,并传递四个用于错误分析的诊断参数[SWS_Det_00181]:
ModuleId:调用BSW模块的唯一模块ID。InstanceId:模块实例的标识符,从0开始(对于仅具有一个实例的模块,传递0)。ApiId:受影响API函数的标识符,根据相应模块的规范。ErrorId:特定开发错误的标识符。
根据规范,该接口始终返回返回值E_OK,正如对此类服务所要求的那样[SWS_Det_00181]。自定义错误代码或替代状态值无法通过该接口返回给调用者。
在执行方面,<User_Error_Hooks>设计为同步且可重入的[SWS_Det_00181]。如果为同一服务定义了多个Callout,则它们必须具有相同的签名和服务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);
-
可配置的 Callout 接口 <DetReportRuntimeErrorCallout> 用于在 Default Error Tracer 中对运行时错误进行用户特定的捕获与进一步处理(SWS_DefaultErrorTracer §8.1.5 “Callout Functions / Configurable Interfaces”)。一旦调用函数 Det_ReportRuntimeError,DET 便会同步执行为此配置的所有 Callout 函数([SWS_Det_00180]、[SWS_Det_00503])。配置的 Callout 函数通过头文件 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])。
并发性与行为
该 callout 函数被指定为可重入的,并在报告者的执行上下文中同步执行 ([SWS_Det_00184])。为同一服务配置的所有 callout 必须具有相同的签名和服务 ID ([SWS_Det_00180])。由于返回值固定指定为 E_OK,因此不会通过 callout 向 DET 反馈错误状态。
注意:此使用说明是基于 AUTOSAR Classic R20-11 规范自动生成的。
函数 <DetReportTransientFaultCallout> [SWS_Det_00187] 📄 PDF
Std_ReturnType <DetReportTransientFaultCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);
-
Callout 钩子 [SWS_Det_00187] 用于在 Default Error Tracer (DET) 中对瞬态错误进行应用程序特定的处理。该函数同步执行,并使用服务 ID 0x12 进行定义 [SWS_Det_00187]。它接收四个输入参数:
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]。
在并发性方面,该函数被指定为可重入的 [SWS_Det_00187]。由于返回值是同步传递的,callout 实现可能不应包含任何阻塞操作,以免造成报告模块的执行发生不可接受的延迟。 问题 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#a30a3af4- Content hash
a30a3af4- 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 · 德文原文