DEENESPTFRRUARHIKOZHNL

Default Error Tracer (DET)

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

Guia do móduloGERADO POR IA

Recebe centralizadamente mensagens de erro do software básico e de SW-Cs, repassando-as para hooks do integrador.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 44a890525e71 Procedência Perguntas em aberto (3)
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Recebe centralizadamente mensagens de erro do software básico e de SW-Cs, repassando-as para hooks do integrador.

O Default Error Tracer recebe centralizadamente mensagens de erro de módulos BSW e SW-Cs. Para isso, existem Det_ReportError para erros de desenvolvimento, Det_ReportRuntimeError para erros de tempo de execução e Det_ReportTransientFault para erros transientes, cada um com identificação de módulo, de instância, de API e de erro. O DET repassa cada mensagem a todos os hooks ou callouts configurados do integrador [SWS_Det_00501]. A operação é iniciada por Det_Init e Det_Start a partir do EcuM. A condição de contorno mais importante: em R20-11, Det_ReportError não retorna ao chamador, mas interrompe o fluxo do programa como uma asserção [SWS_Det_00009].

O Default Error Tracer é o ponto central de coleta de mensagens de erro provenientes do software básico e de componentes de software. Ele oferece três serviços de notificação com estrutura idêntica e com os parâmetros ModuleId, InstanceId, ApiId e ErrorId ou FaultId: Det_ReportError para erros de desenvolvimento, Det_ReportRuntimeError para erros de tempo de execução e Det_ReportTransientFault para erros transientes ([SWS_Det_00009], [SWS_Det_01001], [SWS_Det_01003]). O EcuM coloca o DET em operação com Det_Init e, em seguida, Det_Start ([SWS_Det_00008], SWS DET Fig. 1 p. 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 Chamada com ModuleId/InstanceId (port defined argument values) hooks Integrator-Code (Error-Hooks / Callouts) det->hooks todos os hooks/callouts configurados dlt Dlt (optional) det->dlt Dlt_DetForwardErrorTrace dem Dem / memória de erros hooks->dem por ex. chamada do Dem, armazenamento

Diagrama de contexto: O DET recebe mensagens de módulos BSW e SW-Cs e as encaminha para hooks do integrador e, opcionalmente, para o Dlt. Fontes: SWS DET Fig. 2 p. 28, [SWS_Det_00202]

O DET não avalia as mensagens por conta própria. Cada serviço de notificação chama todos os hooks ou callouts configurados para ele (DetErrorHook, DetReportRuntimeErrorCallout, DetReportTransientFaultCallout), precisamente com os mesmos parâmetros da mensagem [SWS_Det_00501]. Por meio desse código do integrador, o DET também alcança o DEM ou a memória de erros. Ao fazer isso, os callouts devem se limitar a ações curtas e adequadas ErrorDescription p. 10.

As SW-Cs realizam notificações por meio da interface cliente-servidor DETService. A RTE complementa ModuleId e InstanceId como “port defined argument values” a partir da configuração do DET; a SW-C sempre recebe E_OK de volta ([SWS_Det_00203], [SWS_Det_00204]).

Para situações de erro, a forma como os três serviços retornam é decisiva. Det_ReportError não retorna em R20-11: após os hooks, o fluxo de controle é interrompido, como em uma asserção ([SWS_Det_00009], RS BSWGeneral p. 33). As notificações de tempo de execução, por sua vez, retornam com E_OK. As notificações transientes repassam o valor do callout; sem callout, E_OK SWS DET Fig. 6 p. 36. Os erros transientes são eliminados a partir de R24-11, e as chamadas ao Dlt a partir de R25-11 SWS DET p. 1.

Notificação de um erro de desenvolvimento através de Det_ReportErrorChamadorBSW-Modul (Det User)DetIntegrator-CodeChamada de API com parâmetro inválidoEntwicklungsfehler erkanntDet_ReportError(ModuleId,InstanceId, ApiId, ErrorId)altDetErrorHook konfiguriertlooppara cada hook configurado<User_Error_Hooks>(ModuleId,InstanceId, ApiId, ErrorId)E_OKkein Hook konfiguriertnenhuma chamada de hookHALT: o fluxo de controlo nãoé continuadoSem retorno para o emissor("never returns" in R20-11)

Diagrama de sequência: Em caso de erro de desenvolvimento, o DET chama todos os hooks configurados e, em seguida, é interrompido, sem retornar ao emissor da notificação. Fontes: SWS DET Fig. 9.2 p. 34, [SWS_Det_00009]

Papel do Default Error Tracer no limite do sistema

O Default Error Tracer (DET) é o ponto central de coleta para o qual módulos do software básico e componentes de software relatam erros detectados. Em R20-11, ele oferece três serviços de notificação com estrutura idêntica para essa finalidade: Det_ReportError para erros de desenvolvimento [SWS_Det_00009], Det_ReportRuntimeError para erros de tempo de execução [SWS_Det_01001] e Det_ReportTransientFault para erros transientes [SWS_Det_01003]. Somam-se a isso os serviços administrativos Det_Init, Det_Start e Det_GetVersionInfo ([SWS_Det_00008], [SWS_Det_00010], [SWS_Det_00011]). O DET não avalia o conteúdo das mensagens por conta própria. Ele notifica os error hooks configurados a cada mensagem recebida SWS DET p. 16.

Externamente, o DET possui conexões reduzidas. Como única interface esperada, a especificação menciona o encaminhamento opcional para o Dlt por meio de Dlt_DetForwardErrorTrace a partir de Dlt_Det.h ([SWS_Det_00211], SWS DET Fig. 2 p. 28). O DET só alcança o DEM e a RTE por meio de código específico do integrador nos callouts ErrorDescription p. 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 Chamada com ModuleId/InstanceId (port defined argument values) hooks Integrator-Code (Error-Hooks / Callouts) det->hooks todos os hooks/callouts configurados dlt Dlt (optional) det->dlt Dlt_DetForwardErrorTrace dem Dem / memória de erros hooks->dem por ex. chamada do Dem, armazenamento

Diagrama de contexto: O DET recebe mensagens de módulos BSW e, via RTE, de SW-Cs. Ele é inicializado pelo EcuM e repassa mensagens apenas para o código configurado do integrador e, opcionalmente, para o Dlt. Fontes: SWS DET Fig. 2 p. 28, [SWS_Det_00202], [SWS_Det_00211], ErrorDescription p. 10

Inicialização: Inicialização e partida pelo EcuM

O ECU State Manager inicializa o DET com Det_Init (Service ID 0x00). Ao fazer isso, ele passa um ponteiro para o conjunto de configuração selecionado do tipo Det_ConfigType, cujo conteúdo é específico da implementação ([SWS_Det_00008], [SWS_Det_00210]). Em seguida, Det_Start (Service ID 0x02) inicia o tracer [SWS_Det_00010]. Ambos os serviços são síncronos e não reentrantes. O diagrama de R20-11 mostra as duas chamadas sucessivas a partir do EcuM SWS DET Fig. 1 p. 34. O EcuM lista Det_Init e Det_ReportError correspondentemente como interfaces opcionais SWS EcuM p. 142.

A especificação não justifica por que a inicialização e a partida são separadas. Interpretação: a divisão em duas partes provavelmente permite inicializar o DET muito cedo na inicialização e liberar a operação regular apenas em uma etapa posterior [SWS_Det_00010]. Pergunta Q-fee4462bdf189dcf (aberta)

Inicialização do Det pelo EcuMEcuMDetDet_Init(ConfigPtr)Inicialização comKonfigurationssatz (Det_ConfigType)Retorno (síncrono)Det_Start()Retorno (síncrono)Ambos os serviços síncronos e não reentrantes

Diagrama de sequência: O EcuM chama primeiro de forma síncrona Det_Init com o ponteiro de configuração e, depois, Det_Start. Fontes: SWS DET Fig. 1 p. 34, [SWS_Det_00008], [SWS_Det_00010]

Três vias de notificação e seus identificadores

Todos os três serviços de notificação possuem a mesma estrutura de parâmetros:

  • ModuleId (uint16);
  • InstanceId (uint8), o valor 0 no caso de módulos de instância única;
  • ApiId (uint8);
  • ErrorId ou FaultId (uint8).

Os identificadores de API e de erro são definidos pela SWS do respectivo módulo emissor ([SWS_Det_00009], [SWS_Det_01001], [SWS_Det_01003]). O ID do módulo provém da lista de módulos do software básico. O software básico utiliza apenas a faixa de 0..255 disso EXP LSA p. 157.

Qual via é a correta decorre da classificação de erros. Pré-condições fundamentais violadas são erros de desenvolvimento e são tratadas como uma asserção; exemplos são erros de software, integração incorreta ou configuração inválida. Os erros restantes são erros de tempo de execução ou de produção EXP LSA p. 154. Se a detecção de erros de desenvolvimento estiver configurada, os módulos BSW relatam erros de desenvolvimento com seu ID de módulo atribuído via Det_ReportError SWS BSWGeneral p. 57. Uma chave de pré-processador como SPI_DEV_ERROR_DETECT habilita ou desabilita a chamada EXP LSA p. 113.

fehlerklassifikation start Fehler erkannt q1 Grundlegende Vorbedingung verletzt? start->q1 q2 Relevante para diagnóstico (de serviço/EOL)? q1->q2 não dev Entwicklungsfehler: Det_ReportError (Programmfluss endet) q1->dev sim prod Falha de produção (não através do Det) q2->prod sim rt Laufzeitfehler: Det_ReportRuntimeError q2->rt não

Diagrama de atividades: Se uma pré-condição fundamental for violada, um erro de desenvolvimento é relatado via Det_ReportError. Caso contrário, a relevância de diagnóstico decide entre erro de produção e erro de tempo de execução (Det_ReportRuntimeError). Fontes: EXP LSA p. 154, [SWS_Det_00009], [SWS_Det_01001]

Erros de tempo de execução são relatados, por exemplo, pelo driver ADC com ADC_E_BUSY ou pelo Dds no caso de mensagens descartadas, em cada caso via Det_ReportRuntimeError (SWS Adc p. 95, SWS Dds p. 53). Um módulo BSW descreve suas necessidades com o tipo de ServiceNeeds ErrorTracerNeeds. Ele reconhece as funções Det_ReportError, Det_ReportRuntimeError e Det_ReportTransientFault TPS BSWMDT p. 266.

Hooks e callouts como ponte para o código do integrador

Cada chamada de Det_ReportError chama todas as funções configuradas em DetErrorHook. Da mesma forma, Det_ReportRuntimeError e Det_ReportTransientFault chamam todos os callouts de DetReportRuntimeErrorCallout ou DetReportTransientFaultCallout, respectivamente [SWS_Det_00501]. Hooks e callouts possuem a assinatura do serviço acionador e recebem os mesmos parâmetros ([SWS_Det_00181], [SWS_Det_00184], [SWS_Det_00187], SWS DET p. 16). A interface de hook <User_Error_Hooks> possui o Service ID 0x10. Ela é síncrona e reentrante e sempre retorna E_OK SWS DET p. 25.

O que os callouts fazem é decisão do integrador. No caso de erros de tempo de execução e transientes, eles devem se limitar a poucas ações: armazenar o evento, chamar o DEM ou executar outra ação curta e adequada ErrorDescription p. 10. Após uma chamada de Det_ReportRuntimeError, o DET sempre retorna com E_OK, estejam os callouts configurados ou não (SWS DET Fig. 4 p. 35, SWS DET Fig. 5 p. 35).

Det_ReportRuntimeError com e sem calloutDet UserDetIntegrator-CodeDet_ReportRuntimeError(ModuleId,InstanceId, ApiId, ErrorId)altDetReportRuntimeErrorCallout konfiguriertlooppara cada callout configurado<DetReportRuntimeErrorCallout>(ModuleId,InstanceId, ApiId, ErrorId)E_OKkein Callout konfiguriertnenhum encaminhamentoE_OKFluxo de programa do emissor continua em execução

Diagrama de sequência: Det_ReportRuntimeError chama todos os callouts configurados e retorna, em qualquer caso, com E_OK ao emissor da notificação. Fontes: SWS DET Fig. 4 p. 35, SWS DET Fig. 5 p. 35, [SWS_Det_00501]

No caso de Det_ReportTransientFault, por outro lado, o DET repassa diretamente o valor de retorno do callout ao emissor da notificação. Sem callout, ele retorna E_OK (SWS DET Fig. 6 p. 36, SWS DET Fig. 7 p. 36). Para múltiplos callouts, uma versão posterior descreve uma operação lógica OU dos valores de retorno: E_OK só é retornado se todos os callouts fornecerem E_OK. Presume-se que essa regra já se aplique a R20-11 SWS DET p. 24. Pergunta (aberta)

Det_ReportTransientFault com e sem calloutDet UserDetIntegrator-CodeDet_ReportTransientFault(ModuleId,InstanceId, ApiId, FaultId)altDetReportTransientFaultCallout konfiguriertlooppara cada callout configurado<DetReportTransientFaultCallout>(ModuleId,InstanceId, ApiId, FaultId)Valor de retorno XEfetuar operação lógica OR aos valores de retorno(Suposição para R20-11)Callout-Ergebniskein Callout konfiguriertE_OK

Diagrama de sequência: Det_ReportTransientFault repassa os valores de retorno dos callouts ao emissor da notificação; sem callout, retorna E_OK. A operação OU no caso de múltiplos callouts é indicada como uma suposição. Fontes: SWS DET Fig. 6 p. 36, SWS DET Fig. 7 p. 36, SWS DET p. 24

Conexão de componentes de software por meio de portas de serviço

As SW-Cs acessam o DET por meio da interface cliente-servidor DETService. Suas operações chamam Det_ReportError ou a notificação de tempo de execução com o ID de módulo da porta [SWS_Det_00202]. ModuleId e InstanceId não são passados pela própria SW-C. A RTE os complementa como “port defined argument values”, cujos valores provêm de DetModuleId e DetInstanceId da configuração do DET ([SWS_Det_00204], [SWS_Det_00205], [SWS_Det_00206]). Para SW-Cs, ApiId e ErrorId não são padronizados e podem ser atribuídos livremente na faixa de 0x00..0xFF. O valor de retorno é sempre E_OK [SWS_Det_00203]. A interface de porta utiliza os tipos de dados AUTOSAR uint8 e uint16 [SWS_Det_00200].

Notificação de erro de um SW-C através da porta de serviçoSW-CRTEDetReportRuntimeError(ApiId, ErrorId)através da porta R (DETService)Chamada com ModuleId, InstanceId complementados(port defined argument values)Valores de DetModuleId / DetInstanceIdda configuração do DetDet_ReportRuntimeError(ModuleId,InstanceId, ApiId, ErrorId)E_OKE_OK

Diagrama de sequência: A SW-C passa apenas ApiId e ErrorId. A RTE complementa ModuleId e InstanceId a partir da configuração; o retorno é E_OK. Fontes: [SWS_Det_00202], [SWS_Det_00203], [SWS_Det_00204], SWS DET Fig. 3 p. 33

Configuração das notificações

As funções de notificação localizam-se no contêiner opcional DetNotification (multiplicidade 0..1). Ele contém as listas DetErrorHook e DetReportRuntimeErrorCallout (0..* cada). DetErrorHook é configurado em tempo de pré-compilação e requer o tipo de função Std_ReturnType (*f)(uint16, uint8, uint8, uint8) SWS DET p. 37. Em R20-11, acrescenta-se DetReportTransientFaultCallout [SWS_Det_00501]. O diagrama de parâmetros mostra ainda o contêiner obrigatório DetGeneral com DetVersionInfoApi e DetForwardToDlt SWS DET (alt) Fig. 6 p. 43. A partir de DetConfigSet/DetModule e DetModuleInstance, a configuração forma as portas Det_{Name} juntamente com a identificação de módulo e de instância [SWS_Det_00205].

Comportamento em caso de erro

Erros de desenvolvimento são tratados como assertions. Após a chamada dos hooks configurados, o fluxo de controle normal não é continuado, e o DET interrompe a execução, por exemplo, por meio de um loop infinito ou de uma instrução de parada RS BSWGeneral p. 33. A isso corresponde a entrada para Det_ReportError em R20-11 sob Sync/Async: «Not Applicable: The function never returns» [SWS_Det_00009]. Os diagramas mostram este HALT com e sem hook configurado (SWS DET Fig. 9.2 p. 34, SWS DET Fig. 9.3 p. 35).

Notificação de um erro de desenvolvimento através de Det_ReportErrorChamadorBSW-Modul (Det User)DetIntegrator-CodeChamada de API com parâmetro inválidoEntwicklungsfehler erkanntDet_ReportError(ModuleId,InstanceId, ApiId, ErrorId)altDetErrorHook konfiguriertlooppara cada hook configurado<User_Error_Hooks>(ModuleId,InstanceId, ApiId, ErrorId)E_OKkein Hook konfiguriertnenhuma chamada de hookHALT: o fluxo de controlo nãoé continuadoSem retorno para o emissor("never returns" in R20-11)

Diagrama de sequência: um módulo BSW detecta um erro de desenvolvimento e chama Det_ReportError. O DET chama todos os hooks configurados e para em seguida, sem retornar ao emissor da notificação. Fontes: SWS DET Fig. 9.2 p. 34, SWS DET Fig. 9.3 p. 35, [SWS_Det_00009], [SWS_Det_00501]

Alguns diagramas divergem disso. Um diagrama de sequência observa que o comportamento síncrono ou assíncrono depende da implementação e desenha um retorno ao chamador SWS DET Fig. 5 p. 36. O diagrama de Dio também mostra um retorno após Det_ReportError SWS Dio Fig. 5 p. 41. Normativo para R20-11 é [SWS_Det_00009]. Um esclarecimento da indicação Sync/Async seguiu apenas com R21-11 SWS DET p. 1.

Erros de tempo de execução e transitórios não interrompem o fluxo do programa: o DET retorna ao emissor da notificação com um valor de retorno ([SWS_Det_01001], [SWS_Det_01003]). O próprio DET conhece apenas um erro de desenvolvimento próprio. DET_E_PARAM_POINTER (0x01) ocorre quando Det_GetVersionInfo é chamado com um ponteiro nulo [SWS_Det_00301]. Uma versão posterior estabelece que esse erro é reportado a todos os callouts configurados. Presumivelmente, isso também se aplica a R20-11 SWS DET p. 18. Pergunta Q-3a7f5865d61186d4 (aberta)

Evidências mais detalhadas

Releases posteriores alteram o escopo funcional. Uma versão de R23-11/R24-11 marca Det_ReportTransientFault como OBSOLETE SWS DET p. 24. De acordo com o histórico de alterações, erros transitórios são eliminados com R24-11 e as chamadas Dlt com R25-11 SWS DET p. 1. Em R20-11, ambas as funções ainda fazem parte da especificação ([SWS_Det_01003], [SWS_Det_00211]).

Guia de módulo gerado por IA com base nos trechos de especificação disponibilizados no payload. Normativos para R20-11 são exclusivamente os requirements vinculados; declarações de outros releases estão identificadas como tais.

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

função Det_Init [SWS_Det_00008] 📄 PDF

void Det_Init (const Det_ConfigType* ConfigPtr);

Service to initialize the Default Error Tracer.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 03eaeb7bec98 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Det_Init serve como serviço central para a inicialização do Default Error Tracer ([SWS_Det_00008]). Ela é disponibilizada através do arquivo de cabeçalho Det.h e possui a assinatura void Det_Init (const Det_ConfigType* ConfigPtr). Através do parâmetro de entrada formal ConfigPtr, a função recebe um ponteiro para o registro de configuração selecionado do módulo. Nenhum valor de retorno está previsto para este serviço ([SWS_Det_00008]).

Em relação ao comportamento em tempo de execução, Det_Init é obrigatoriamente especificada como não reentrante (Non Reentrant) ([SWS_Det_00008]). Por esse motivo, a função nunca deve ser chamada em operação contínua de forma paralela ou com interrupções a partir de diferentes contextos de execução. O módulo provavelmente deve ser chamado centralmente durante a fase de inicialização do software básico, antes mesmo que outros módulos BSW ou componentes transmitam erros ao DET (interpretação). Pergunta Q-143a3c098d03d7f8 (aberta)

A função é definida com o ID de serviço 0x00 ([SWS_Det_00008]). Códigos de erro próprios, mecanismos específicos de tratamento de erros ou mensagens de erro separadas via DET ou DEM não estão indicados para esta chamada de inicialização no presente trecho da especificação.

No âmbito do rastreamento de requisitos, a interface atende às diretrizes gerais do AUTOSAR para convenções uniformes de nomenclatura de APIs de acordo com [SRS_BSW_00310] (SWS DefaultErrorTracer §6 «Requirements Tracing»).

Esta nota foi gerada por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Det_ReportError [SWS_Det_00009] 📄 PDF

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

Service to report development errors.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 52a5f1bc3a91 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Det_ReportError destina-se, em módulos BSW do AUTOSAR Classic, à notificação de erros de desenvolvimento quando a detecção de erros está ativa ([SWS_BSW_00045], [SWS_Det_00009]). A interface é declarada como reentrante ([SWS_Det_00009]). O comportamento de execução não retorna ao chamador ("never returns"); o tipo de retorno Std_ReturnType existe apenas para compatibilidade com serviços e hooks ([SWS_Det_00009]).

Os parâmetros de passagem identificam o contexto do erro de forma unívoca ([SWS_Det_00009]):

Erros de desenvolvimento representam violações fundamentais de pré-condições decorrentes de erros de software, configurações incorretas ou problemas de integração (EXP_LayeredSoftwareArchitecture §3 «Error Classification», [SRS_BSW_00337] texto ainda não importado), como a chamada de um módulo não inicializado ([SWS_BSW_00243]) ou parâmetros inválidos ([SWS_CANIF_00538]). Eles são tratados como assertions: após a chamada de todos os callbacks configurados em DetErrorHook ([SWS_Det_00501]), o fluxo de controle normal não deve continuar; o DET interrompe a execução, por exemplo, por meio de um loop infinito, instrução de parada (halt) ou reset ([SRS_BSW_00337] texto ainda não importado, EXP_LayeredSoftwareArchitecture §3 «Error Classification»).

Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função Det_Start [SWS_Det_00010] 📄 PDF

void Det_Start (void);

Service to start the Default Error Tracer.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c7a7762c6c8d Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de API síncrona Det_Start destina-se a iniciar o Default Error Tracer (DET) ([SWS_Det_00010]). Este serviço está declarado no arquivo de cabeçalho Det.h sob o service ID 0x02 (SWS_DefaultErrorTracer §8.1.3.3 «Det_Start»). De acordo com a sintaxe void Det_Start(void), a função não recebe parâmetros de entrada nem de saída e não retorna valor ao chamador ([SWS_Det_00010]).

Para a integração e execução aplicam-se condições específicas:

  • Reentrância e concorrência: A função é definida como não reentrante (Non Reentrant) ([SWS_Det_00010]). Chamadas paralelas a partir de múltiplas tarefas ou contextos de interrupção são inadmissíveis.
  • Contexto de chamada: Interpretação: a chamada normalmente deve ocorrer de forma centralizada durante o startup do sistema após a inicialização básica, a fim de ativar o rastreamento de erros na unidade de controle. Pergunta Q-b28f205b1cc7acfa (aberta)
  • Tratamento de erros: A interface não reporta estados de erro; no trecho da especificação não são definidos códigos de erro nem eventos de DET ou DEM para esta chamada ([SWS_Det_00010]).

No sistema geral, Det_Start atende à convenção de nomenclatura padronizada para o software de base AUTOSAR conforme [SRS_BSW_00310] texto ainda não importado (SWS_DefaultErrorTracer §6 «Requirements Tracing»).

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a935ac5290c8 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função [SWS_Det_01001] serve como serviço BSW central em Det.h para receber erros de tempo de execução (Runtime Errors). Ela opera de forma síncrona e é projetada como reentrante [SWS_Det_01001].

Utilização e parâmetros

Módulos BSW chamadores passam quatro parâmetros obrigatórios para [SWS_Det_01001] na sinalização de erros:

  • ModuleId: Identificador de módulo do módulo BSW notificador.
  • InstanceId: Número da instância baseado em índice (o valor 0 para módulos com apenas uma instância).
  • ApiId: Identificador da função de API na qual o erro ocorreu.
  • ErrorId: Identificador específico do módulo para o erro de tempo de execução detectado.

O serviço sempre retorna o valor de retorno E_OK para o módulo chamador [SWS_Det_01001].

Interação e tratamento de erros

De acordo com a arquitetura AUTOSAR, erros de tempo de execução distinguem-se de erros de desenvolvimento (que violam pré-condições fundamentais) e erros de produção (que são relevantes para o diagnóstico de oficina) EXP_LayeredSoftwareArchitecture §Integration and Runtime Aspects. O serviço é integrado, por exemplo, como interface obrigatória pelo driver ADC [SWS_Adc_00530] ou DDS [CP_SWS_Dds_00832] texto ainda não importado.

No CanIf, por exemplo, uma tentativa de envio através de um canal offline leva à notificação de CANIF_E_STOPPED [SWS_CANIF_00382], enquanto excessos de comprimento sem truncamento são reportados como CANIF_E_TXPDU_LENGTH_EXCEEDED [SWS_CANIF_00900].

Ao chamar [SWS_Det_01001], são executadas todas as funções de callout armazenadas no parâmetro de configuração DetReportRuntimeErrorCallout [SWS_Det_00503]. Se nenhum gancho de erro tiver sido configurado, chamadas de função adicionais são omitidas, permanecendo ativo um encaminhamento para o DLT caso este esteja configurado [SWS_Det_00503].

Esta nota de uso foi criada de forma automatizada com base na versão da especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a646ffef7d6e Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante Det_ReportTransientFault (service ID 0x05) serve para que módulos BSW reportem erros transientes detectados ao Default Error Tracer de forma padronizada ([SWS_BSW_00225], [SWS_Det_01003]). O serviço é declarado através do cabeçalho Det.h, mas está classificado como obsoleto (OBSOLETE) no release R20-11 (SWS_DefaultErrorTracer §8.1.3.5 «Det_ReportTransientFault»).

Na chamada, são passados exclusivamente parâmetros de entrada: o identificador do módulo chamador (ModuleId), o índice da instância (InstanceId, onde módulos de instância única passam 0), o service ID da API detectora do erro (ApiId) bem como o número do erro (FaultId), o qual deve ser do tipo uint8 conforme SWS_BSWGeneral §7.2.4.4 «Reporting» ([SWS_Det_01003]).

A chamada encaminha o erro para funções de callout configuradas e avalia seus retornos:

  • Uma chamada resulta na execução de todos os callbacks configurados sob DetReportTransientFaultCallout ([SWS_Det_00502]).
  • Se não existir nenhum callout configurado, a função termina imediatamente e retorna o valor E_OK ([SWS_Det_01003]).
  • Se estiver configurado exatamente um callout, Det_ReportTransientFault retorna o seu valor de retorno do tipo Std_ReturnType ([SWS_Det_01003]).
  • Se houver múltiplos callouts, é formada a operação lógica OU (soma) de todos os valores de retorno dos callouts. Como E_OK = 0 está definido, a função somente retorna E_OK se todos os callouts responderem sem erros com E_OK ([SWS_Det_01003]).

Em relação à concorrência e ao ambiente de execução, a função foi projetada para ser reentrante, razão pela qual pode ser chamada concorrentemente a partir de diferentes contextos de módulo ([SWS_Det_01003]).

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função <User_Error_Hooks> [SWS_Det_00181] 📄 PDF

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

-

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ff89a131530f Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A interface configurável <User_Error_Hooks> define a chamada de funções de callout personalizadas na detecção de erros de desenvolvimento [SWS_Det_00181]. Assim que a função Det_ReportError é chamada, todos os callouts configurados para isso no sistema devem ser executados de forma síncrona [SWS_Det_00180]. A declaração desta interface é disponibilizada por meio do cabeçalho Det_Externals.h SWS DefaultErrorTracer §8.1.5 «Callout Functions / Configurable Interfaces».

A função possui o service ID 0x10 e passa quatro parâmetros de diagnóstico para análise de erros [SWS_Det_00181]:

  • ModuleId: ID de módulo unívoco do módulo BSW chamador.
  • InstanceId: identificador da instância do módulo, iniciando em 0 (para módulos com apenas uma instância, é passado 0).
  • ApiId: identificador da função de API afetada conforme a especificação do respectivo módulo.
  • ErrorId: identificador do erro de desenvolvimento específico.

Conforme a especificação, a interface sempre retorna o valor de retorno E_OK, conforme exigido para tais serviços [SWS_Det_00181]. Códigos de erro próprios ou valores de status alternativos não podem ser reportados ao chamador por meio da interface.

Em relação à execução, <User_Error_Hooks> é projetado como síncrono e reentrante [SWS_Det_00181]. Caso múltiplos callouts estejam definidos para o mesmo serviço, eles devem apresentar a mesma assinatura e service ID [SWS_Det_00180]. Interpretação: como o processamento ocorre diretamente no contexto de chamada de Det_ReportError, hooks de usuário não devem utilizar mecanismos bloqueantes para não atrasar a execução do sistema. Pergunta Q-acd1afcd9336992f (aberta)

Esta nota de utilização foi gerada automaticamente com base na especificação AUTOSAR R20-11.

função <DetReportRuntimeErrorCallout> [SWS_Det_00184] 📄 PDF

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

-

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 19a5d54e4d0b Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A interface de callout configurável <DetReportRuntimeErrorCallout> serve para a detecção e o processamento posterior específicos do usuário de erros de tempo de execução no Default Error Tracer (SWS_DefaultErrorTracer §8.1.5 «Callout Functions / Configurable Interfaces»). Assim que a função Det_ReportRuntimeError é chamada, o DET executa todas as funções de callout configuradas para ela de forma síncrona ([SWS_Det_00180], [SWS_Det_00503]). Funções de callout configuradas são disponibilizadas através do arquivo de cabeçalho Det_Externals.h e possuem o ID de serviço 0x11 ([SWS_Det_00184]).

Parâmetros e valor de retorno

  • ModuleId (uint16): Identificador numérico do módulo BSW que reporta o erro de tempo de execução ([SWS_Det_00184]).
  • InstanceId (uint8): Índice da instância do módulo, começando em 0; para instâncias únicas, sempre é passado 0 ([SWS_Det_00184]).
  • ApiId (uint8): Identificador do serviço de API no qual o erro de tempo de execução ocorreu ([SWS_Det_00184]).
  • ErrorId (uint8): Identificador específico do módulo para o erro de tempo de execução detectado ([SWS_Det_00184]).
  • Valor de retorno: O tipo Std_ReturnType sempre retorna E_OK de acordo com a especificação do serviço ([SWS_Det_00184]).

Simultaneidade e comportamento

A função de callout é especificada como reentrante e é processada sincronamente no contexto de execução do emissor ([SWS_Det_00184]). Todos os callouts configurados para o mesmo serviço devem apresentar a mesma assinatura e ID de serviço ([SWS_Det_00180]). Como o valor de retorno é fixado em E_OK, não ocorre nenhum feedback de estados de erro ao DET através do callout.

Nota: Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic R20-11.

função <DetReportTransientFaultCallout> [SWS_Det_00187] 📄 PDF

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

-

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: aceceb0a4117 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O gancho de callout [SWS_Det_00187] serve para o tratamento específico da aplicação de erros transitórios no Default Error Tracer (DET). A função é executada de forma síncrona e está definida com o ID de serviço 0x12 [SWS_Det_00187]. Ela recebe quatro parâmetros de entrada:

  • ModuleId: Identificador de módulo do módulo de software chamador [SWS_Det_00187].
  • InstanceId: ID de instância do módulo baseada em índice, começando em 0, em que módulos de instância única devem passar o valor 0 [SWS_Det_00187].
  • ApiId: Identificador do serviço de API no qual o erro transitório ocorreu [SWS_Det_00187].
  • FaultId: Identificador do erro transitório detectado conforme a SWS do módulo chamador [SWS_Det_00187].

Como valor de retorno, a interface fornece um valor do tipo Std_ReturnType, o qual é propagado imediatamente para o chamador de Det_ReportTransientFault [SWS_Det_00187]. A declaração é disponibilizada através do arquivo de cabeçalho Det_Externals.h [SWS_Det_00187].

Em termos de concorrência, a função é especificada como reentrante [SWS_Det_00187]. Como o valor de retorno é repassado sincronamente, a implementação do callout não deve conter operações bloqueantes, a fim de não atrasar indevidamente a execução do módulo notificador. Pergunta Q-23eaffed8be030bb (aberta)

Este texto foi gerado por uma IA com base nos dados de especificação.

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

Mapa de temas

Vista de detalhes

Selecione uma entrada no índice.

Inicialização e estado

Returns the version information of this module.

void Det_GetVersionInfo (Std_VersionInfoType* versioninfo);
Det_Init função

Service to initialize the Default Error Tracer.

void Det_Init (const Det_ConfigType* ConfigPtr);

Serviços

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 função

Service to start the Default Error Tracer.

void Det_Start (void);

Callouts e interfaces esperadas

-

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

Tipos

Configuration data structure of the Det module.