DEENESPTFRRUARHIKOZHNL

Default Error Tracer (DET)

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

Руководство по модулюСОЗДАНО ИИ

Централизованно принимает сообщения об ошибках от базового программного обеспечения и SW-C и передает их в хуки интегратора.
СОЗДАНО ИИ не проверено Модель: 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]. Работу запускают Det_Init и Det_Start из EcuM. Важнейшее граничное условие: в R20-11 Det_ReportError не возвращает управление вызывающей стороне, а останавливает поток выполнения программы подобно утверждению (assertion) [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 в работу с помощью Det_Init, а затем Det_Start ([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 (port defined argument values) hooks Integrator-Code (Error-Hooks / Callouts) det->hooks все сконфигурированные хуки/callout-функции 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 дополняет ModuleId и InstanceId как «port defined argument values» из конфигурации DET, а SW-C всегда получает обратно E_OK ([SWS_Det_00203], [SWS_Det_00204]).

Для случаев ошибок решающее значение имеет то, как возвращают управление эти три сервиса. В R20-11 Det_ReportError не возвращает управление: после хуков поток управления останавливается, как при утверждении (assertion) ([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 через Dlt_DetForwardErrorTrace из Dlt_Det.h ([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 (port defined argument values) hooks Integrator-Code (Error-Hooks / Callouts) det->hooks все сконфигурированные хуки/callout-функции 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 с помощью Det_Init (Service-ID 0x00). При этом он передает указатель на выбранный конфигурационный набор типа Det_ConfigType, содержимое которого зависит от реализации ([SWS_Det_00008], [SWS_Det_00210]). Затем Det_Start (Service-ID 0x02) запускает трассировщик [SWS_Det_00010]. Оба сервиса являются синхронными и нереентерабельными. Схема R20-11 показывает оба вызова последовательно из EcuM SWS DET Рис. 1 с. 34. Соответственно, EcuM ведет Det_Init и Det_ReportError как опциональные интерфейсы SWS EcuM с. 142.

Почему инициализация и запуск разделены, спецификация не поясняет. Интерпретация: разделение на две части, вероятно, позволяет инициализировать DET на очень раннем этапе запуска и разрешать штатную работу лишь на более позднем шаге [SWS_Det_00010]. Вопрос Q-fee4462bdf189dcf (открытый)

Запуск Det с помощью EcuMEcuMDetDet_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]). Идентификатор модуля берется из списка модулей базового программного обеспечения. Базовое ПО использует из него только диапазон 0..255 EXP LSA с. 157.

Какой путь правильный, следует из классификации ошибок. Нарушенные фундаментальные предварительные условия представляют собой ошибки разработки и обрабатываются подобно утверждению (assertion); примерами служат программные ошибки, некорректная интеграция или недействительная конфигурация. Остальные ошибки являются ошибками времени выполнения или производственными ошибками EXP LSA с. 154. Если сконфигурировано обнаружение ошибок разработки, BSW-модули сообщают об ошибках разработки с присвоенным им идентификатором модуля через 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> имеет Service-ID 0x10. Он является синхронным и реентерабельным и всегда возвращает E_OK SWS DET с. 25.

Что выполняют коллауты, решает интегратор. При ошибках времени выполнения и транзиентных ошибках они должны ограничиваться небольшим числом действий: сохранить событие, вызвать DEM или выполнить другое краткое соразмерное действие ErrorDescription с. 10. После вызова Det_ReportRuntimeError DET всегда возвращает управление с E_OK, независимо от того, сконфигурированы ли коллауты (SWS DET Рис. 4 с. 35, SWS DET Рис. 5 с. 35).

Det_ReportRuntimeError с callout-функцией и без нееDet UserDetIntegrator-CodeDet_ReportRuntimeError(ModuleId,InstanceId, ApiId, ErrorId)altDetReportRuntimeErrorCallout konfiguriertloopдля каждой сконфигурированной callout-функции<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). Для случая нескольких коллаутов более поздняя редакция описывает логическое объединение «ИЛИ» возвращаемых значений: E_OK возвращается только тогда, когда все коллауты возвращают E_OK. Это правило, вероятно, применимо уже и к R20-11 SWS DET с. 24. Вопрос (открытый)

Det_ReportTransientFault с callout-функцией и без нееDet UserDetIntegrator-CodeDet_ReportTransientFault(ModuleId,InstanceId, ApiId, FaultId)altDetReportTransientFaultCallout konfiguriertloopдля каждой сконфигурированной callout-функции<DetReportTransientFaultCallout>(ModuleId,InstanceId, ApiId, FaultId)Возвращаемое значение XПрименить логическое ИЛИ к возвращаемым значениям(предположение для R20-11)Callout-Ergebniskein Callout konfiguriertE_OK

Диаграмма последовательности: Det_ReportTransientFault передает возвращаемые значения коллаутов отправителю отчета; без коллаута возвращается E_OK. Логическое объединение «ИЛИ» при нескольких коллаутах обозначено как предположение. Источники: SWS DET Рис. 6 с. 36, SWS DET Рис. 7 с. 36, SWS DET с. 24

Подключение программных компонентов через сервисные порты

SW-C обращаются к DET через клиент-серверный интерфейс DETService. Его операции вызывают Det_ReportError или сообщение времени выполнения с ID модуля порта [SWS_Det_00202]. ModuleId и InstanceId передает не сам SW-C. RTE дополняет их как «port defined argument values», значения которых берутся из DetModuleId и DetInstanceId конфигурации DET ([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-порт (DETService)Вызов с дополненными ModuleId, InstanceId(port defined argument values)Значения из DetModuleId / DetInstanceIdконфигурации DetDet_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]. Диаграмма параметров также показывает обязательный контейнер DetGeneral с DetVersionInfoApi и DetForwardToDlt SWS DET (alt) Рис. 6 с. 43. На основе DetConfigSet/DetModule и DetModuleInstance конфигурация формирует порты Det_{Name} вместе с идентификатором модуля и экземпляра [SWS_Det_00205].

Поведение при ошибке

Ошибки разработки обрабатываются как утверждения (assertions). После вызова сконфигурированных хуков обычный поток управления не продолжается, и DET останавливает выполнение, например, с помощью бесконечного цикла или инструкции останова RS BSWGeneral с. 33. Этому соответствует запись для Det_ReportError в R20-11 в разделе Sync/Async: «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]. Более поздняя редакция определяет, что эта ошибка сообщается всем сконфигурированным колбэкам (callouts). Вероятно, это подразумевалось и для 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]).

Сгенерированное ИИ руководство по модулю на основе выдержек из спецификации, предоставленных в полезной нагрузке. Нормативными для 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.

СОЗДАНО ИИ не проверено Модель: 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 (открытый)

Функция определена с Service-ID 0x00 ([SWS_Det_00008]). Собственные коды ошибок, специфические механизмы обработки ошибок или отдельные сообщения об ошибках через DET или DEM для этого вызова инициализации в данном фрагменте спецификации не указаны.

В рамках трассировки требований интерфейс удовлетворяет общим предписаниям AUTOSAR к единым соглашениям об именовании API согласно [SRS_BSW_00310] (SWS DefaultErrorTracer §6 «Requirements Tracing»).

Это примечание сгенерировано ИИ на основе спецификации 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 52a5f1bc3a91 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Det_ReportError служит в BSW-модулях AUTOSAR Classic для сообщения об ошибках разработки при активном обнаружении ошибок ([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]). Они обрабатываются как утверждения (assertions): после вызова всех сконфигурированных в DetErrorHook callback-функций ([SWS_Det_00501]) обычный поток управления не должен продолжаться; DET останавливает выполнение, например, с помощью бесконечного цикла, инструкции остановки или сброса ([SRS_BSW_00337] текст ещё не импортирован, EXP_LayeredSoftwareArchitecture §3 «Error Classification»).

Это указание по использованию сгенерировано ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Det_Start [SWS_Det_00010] 📄 PDF

void Det_Start (void);

Service to start the Default Error Tracer.

СОЗДАНО ИИ не проверено Модель: 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 под идентификатором сервиса 0x02 (SWS_DefaultErrorTracer §8.1.3.3 «Det_Start»). В соответствии с синтаксисом void Det_Start(void) функция не принимает ни входных, ни выходных параметров и не возвращает вызывающей стороне никакого значения ([SWS_Det_00010]).

Для интеграции и выполнения действуют специфические условия:

  • Реентерабельность и параллелизм: функция определена как нереентерабельная (Non Reentrant) ([SWS_Det_00010]). Параллельные вызовы из нескольких задач или прерывающих контекстов недопустимы.
  • Контекст вызова: интерпретация: вызов, вероятно, обычно выполняется централизованно во время запуска системы после базовой инициализации, чтобы активировать трассировку ошибок в электронном блоке управления. Вопрос Q-b28f205b1cc7acfa (открытый)
  • Обработка ошибок: интерфейс не возвращает состояний ошибок; в выдержке из спецификации для этого вызова не определены ни коды ошибок, ни события DET или DEM ([SWS_Det_00010]).

В общей системе Det_Start удовлетворяет стандартизированному соглашению об именовании для базового программного обеспечения AUTOSAR согласно [SRS_BSW_00310] текст ещё не импортирован (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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a935ac5290c8 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция [SWS_Det_01001] служит центральным сервисом BSW в Det.h для приема ошибок времени выполнения (Runtime Errors). Она работает синхронно и спроектирована как ревходабельная [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] выполняются все функции callout, указанные в параметре конфигурации DetReportRuntimeErrorCallout [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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a646ffef7d6e Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция Det_ReportTransientFault (идентификатор сервиса 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 (ApiId), а также номер ошибки (FaultId), который согласно SWS_BSWGeneral §7.2.4.4 «Reporting» должен иметь тип uint8 ([SWS_Det_01003]).

Вызов перенаправляет ошибку в сконфигурированные callout-функции и оценивает их ответы:

  • Вызов приводит к выполнению всех callback-функций, сконфигурированных в DetReportTransientFaultCallout ([SWS_Det_00502]).
  • Если сконфигурированная callout-функция отсутствует, функция немедленно завершает работу и возвращает значение E_OK ([SWS_Det_01003]).
  • Если настроена ровно одна callout-функция, Det_ReportTransientFault возвращает ее возвращаемое значение типа Std_ReturnType ([SWS_Det_01003]).
  • Если присутствует несколько callout-функций, формируется логическое «ИЛИ» (сумма) всех возвращаемых значений callout-функций. Поскольку определено E_OK = 0, функция возвращает E_OK только в том случае, если все callout-функции безошибочно отвечают E_OK ([SWS_Det_01003]).

С точки зрения параллелизма и среды выполнения функция спроектирована как реентерабельная, поэтому ее можно вызывать параллельно из контекстов различных модулей ([SWS_Det_01003]).

Данный текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция <User_Error_Hooks> [SWS_Det_00181] 📄 PDF

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

-

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ff89a131530f Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Конфигурируемый интерфейс <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».

Функция имеет идентификатор сервиса 0x10 и передает четыре диагностических параметра для анализа ошибок [SWS_Det_00181]:

  • ModuleId: уникальный идентификатор модуля вызывающего BSW-модуля.
  • InstanceId: идентификатор экземпляра модуля, начиная с 0 (для модулей только с одним экземпляром передается 0).
  • ApiId: идентификатор соответствующей API-функции согласно спецификации соответствующего модуля.
  • ErrorId: идентификатор конкретной ошибки разработки.

Согласно спецификации интерфейс всегда возвращает возвращаемое значение E_OK, как это требуется для подобных сервисных служб [SWS_Det_00181]. Собственные коды ошибок или альтернативные значения статуса не могут быть возвращены вызывающей стороне через этот интерфейс.

С точки зрения выполнения <User_Error_Hooks> спроектирована как синхронная и реентерабельная [SWS_Det_00181]. Если для одного и того же сервиса определено несколько callout-функций, они должны иметь одинаковую сигнатуру и идентификатор сервиса [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);

-

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 19a5d54e4d0b Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Конфигурируемый интерфейс 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 и имеют Service-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, сконфигурированные для одного и того же сервиса, должны иметь одинаковую сигнатуру и Service-ID ([SWS_Det_00180]). Поскольку возвращаемое значение жестко задано как E_OK, обратной связи о состояниях ошибок в DET через callout не происходит.

Примечание: это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR Classic R20-11.

функция <DetReportTransientFaultCallout> [SWS_Det_00187] 📄 PDF

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

-

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: aceceb0a4117 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Хук callout [SWS_Det_00187] служит для обработки транзиентных ошибок в соответствии с требованиями приложения в Default Error Tracer (DET). Функция выполняется синхронно и определена с Service-ID 0x12 [SWS_Det_00187]. Она принимает четыре входных параметра:

  • ModuleId: идентификатор вызывающего программного модуля [SWS_Det_00187].
  • InstanceId: индексный ID экземпляра модуля, начиная с 0, причем модули с единственным экземпляром должны передавать значение 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 (открытый)

Этот текст был сгенерирован ИИ на основе данных спецификации.

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#dad4ce63
Content hash
dad4ce63
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DefaultErrorTracer.pdf#nameddest=SWS_Det_00008

Карта тем

Инициализация и состояние

2

Callout-функции и ожидаемые интерфейсы

3

Подробный вид

Выберите элемент в оглавлении.

Инициализация и состояние

Det_GetVersionInfo функция

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);

Сервисы

Det_ReportError функция

Service to report development errors.

Std_ReturnType Det_ReportError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
Det_ReportRuntimeError функция

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);

Callout-функции и ожидаемые интерфейсы

-

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

-

Std_ReturnType <DetReportTransientFaultCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);
<User_Error_Hooks> функция

-

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

Типы

Configuration data structure of the Det module.