DEENESPTFRRUARHIKOZHNL

Standard Types (Std_Types)

ModulStd (Standard Types)
BSW-Modul-ID197
Standard-Header#include "Std_Types.h"
SWS-SpezifikationAUTOSAR_SWS_StandardTypes.pdf
ClusterGeneral & Standard Types

Modul-GuideKI-GENERIERT

Stellt einheitliche Rückgabe-, Versions-, Transformer- und Konstantentypen für alle Classic-Module bereit.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 4fcc802ced39 Herkunft Offene Fragen (4)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Stellt einheitliche Rückgabe-, Versions-, Transformer- und Konstantentypen für alle Classic-Module bereit.

Das Modul std stellt über Std_Types.h plattformweit einheitliche Typen und Konstanten bereit, enthält aber weder Code noch Konfiguration. Zentral ist Std_ReturnType (uint8) mit E_OK und E_NOT_OK. Module dürfen eigene Werte nur im Bereich 0x02–0x3F mit Modulpräfix definieren, denn Bit 7 und Bit 8 sind der RTE vorbehalten [SWS_Std_00011]. Daneben liefert das Modul die Konstanten STD_HIGH/STD_LOW, STD_ON/STD_OFF und STD_ACTIVE/STD_IDLE, den Typ Std_VersionInfoType für die Versionsabfrage sowie Transformer- und Nachrichtentypen für die Client-Server-Kommunikation. In R20-11 bindet der Header außerdem Compiler.h ein SRS BSWGeneral S. 62.

Das Modul std ist ein reiner Typ-Header. Über Std_Types.h stellt es Typen und Symbole bereit, aber keine Funktionen [SWS_Std_00005]. In R20-11 bindet der Header Platform_Types.h und Compiler.h ein und definiert Std_ReturnType sowie die Werte E_OK/E_NOT_OK und die STD_*-Konstanten. Jedes Modul, das diese Typen nutzt, bindet ihn ein SRS BSWGeneral S. 62. Konfiguration und eigene Fehlerbehandlung gibt es laut späterer Spezifikationsfassung nicht; für R20-11 dürfte das ebenso gelten (Interpretation) SWS StandardTypes S. 27. Frage (offen)

kontext std Std_Types.h (Modul std) plat Platform_Types.h std->plat #include comp Compiler.h (in R20-11 gefordert) std->comp #include bsw BSW-Module (z. B. Can, CanIf, Adc, NvM) bsw->std #include cdd Complex Device Driver cdd->std #include rte RTE (Rte_Call, Rte_Read, Rte_Send, …) rte->std nutzt Std_ReturnType, Std_TransformerError xf Transformer (SomeIpXf, E2EXf) xf->std nutzt Std_MessageTypeType, Std_MessageResultType swc SW-C swc->rte RTE-APIs mit Std_ReturnType / transformerError

Kontextdiagramm: Std_Types.h als gemeinsame Typbasis für BSW-Module, CDDs, RTE und Transformer. Quellen: SRS BSWGeneral S. 62, CDD Guideline S. 14

Kern des Moduls ist Std_ReturnType (uint8) mit den Werten E_OK (0) und E_NOT_OK (1). Der Bereich 0x02–0x3F ist für modulspezifische Fehler mit Modulpräfix vorgesehen; Bit 7 und Bit 8 legt die RTE-Spezifikation fest [SWS_Std_00011]. Beispiele für solche Erweiterungen sind CAN_BUSY und Csm_ReturnType BSWUML Guide S. 29. E_OK wird wegen OSEK über STATUSTYPEDEFINED abgesichert [SWS_Std_00006].

returntype rt Std_ReturnType (abgeleitet von uint8) ok E_OK = 0x00 (kein Fehler) rt->ok Standardwert nok E_NOT_OK = 0x01 (generischer Fehler) rt->nok Standardwert user 0x02–0x3F modulspezifische Werte (6 niederwertige Bits, Modulpräfix) rt->user erweiterbar rtebits Bit 7 und Bit 8 reserviert, festgelegt durch RTE-Spezifikation rt->rtebits reserviert csm Csm_ReturnType «extra_literals» CSM_E_BUSY = 2 CSM_E_SMALL_BUFFER = 3 CSM_E_ENTROPY_EXHAUSTION = 4 csm->rt erbt von csm->user belegt can CAN_BUSY = 0x02 (Can_Write: kein Sendeobjekt frei) can->user belegt

Kontextdiagramm (Typstruktur): Standardwerte, modulspezifischer Bereich und RTE-reservierte Bits von Std_ReturnType. Quellen: [SWS_Std_00005], [SWS_Std_00011], SWS StandardTypes S. 15

Hinzu kommen drei Konstantenpaare mit jeweils 0x01u/0x00u: STD_HIGH/STD_LOW für physikalische Pegel, STD_ON/STD_OFF als Schalter und STD_ACTIVE/STD_IDLE für logische Zustände ([SWS_Std_00007], [SWS_Std_00010], [SWS_Std_00013]). Std_VersionInfoType transportiert Hersteller-ID, Modul-ID und Softwareversion für die synchrone, reentrante Funktion <Ma>_GetVersionInfo [SWS_Std_00015].

Für die Datentransformation definiert std zwei Typen für Transformer-Fehler: Std_TransformerError, eine Struktur aus Fehlercode und Transformer-Klasse, und Std_TransformerClass [SWS_Std_00021]. Die RTE reicht diesen Fehler über den optionalen Parameter transformerError weiter SWS RTE S. 731. Für Client-Server-Kommunikation kodieren Std_MessageTypeType und Std_MessageResultType Anfrage/Antwort und OK/ERROR. Ein Funktionszeiger vom Typ Std_ExtractProtocolHeaderFieldsType liest beide Werte aus einem Transformer-Header [SWS_Std_91003]. Die Forward-Typen sind in R20-11 noch Entwurf [SWS_Std_00029].

Rolle und Systemgrenze: ein reiner Typ-Header ohne Laufzeitverhalten

Das Modul std (Standard Types) enthält keine Funktionen. Es stellt ausschließlich Typen und Symbole bereit, die über Std_Types.h verfügbar sind. Jedes Requirement des Moduls nennt diesen Header als Bezugsquelle, etwa [SWS_Std_00005] und [SWS_Std_00015]. Die Spezifikation hält ausdrücklich fest: Der Header liefert weder Code noch benötigt er andere BSW-Module, er hat keine Konfiguration und keine eigene Fehlerbehandlung SWS StandardTypes S. 27. Diese Formulierungen stammen aus der Fassung ab R23-11. Für R20-11 dürfte dasselbe gelten, weil die R20-11-Requirements ausschließlich Typ- und Symboldefinitionen enthalten (Interpretation). Frage Q-8e4c66ae80752d38 (offen)

Der Zweck ist ein einheitlicher, plattformweiter Zugriff auf Standardtypen. Die BSW-Anforderung an den Standard-Typ-Header verlangt deshalb: Jedes Modul, das AUTOSAR-Ganzzahltypen oder den Standard-Rückgabetyp verwendet, bindet Std_Types.h ein SRS BSWGeneral S. 62. Der Rückgabetyp Std_ReturnType wird ausdrücklich zwischen RTE und BSW-Modulen geteilt [SWS_Std_00005]. In der Methodik sind die Standardtypen zusätzlich als ARXML-Artefakt „AUTOSAR Standard Types“ beschrieben Methodology S. 400.

kontext std Std_Types.h (Modul std) plat Platform_Types.h std->plat #include comp Compiler.h (in R20-11 gefordert) std->comp #include bsw BSW-Module (z. B. Can, CanIf, Adc, NvM) bsw->std #include cdd Complex Device Driver cdd->std #include rte RTE (Rte_Call, Rte_Read, Rte_Send, …) rte->std nutzt Std_ReturnType, Std_TransformerError xf Transformer (SomeIpXf, E2EXf) xf->std nutzt Std_MessageTypeType, Std_MessageResultType swc SW-C swc->rte RTE-APIs mit Std_ReturnType / transformerError

Kontextdiagramm: Std_Types.h bindet Plattform- und Compiler-Header ein und wird von BSW-Modulen, CDDs, RTE und Transformern als gemeinsame Typbasis genutzt. Quellen: SRS BSWGeneral S. 62, CDD Guideline S. 14, [SWS_Std_00005], [SWS_Std_00021]

Aufbau von Std_Types.h und Einbindung in den Header-Baum

Für R20-11 legt die BSW-Anforderung fest, was Std_Types.h leisten muss SRS BSWGeneral S. 62:

  • den plattformspezifischen Typ-Header Platform_Types.h einbinden,
  • den compilerspezifischen Header Compiler.h einbinden,
  • Std_ReturnType definieren,
  • Werte für E_OK, E_NOT_OK, STD_ON, STD_OFF, STD_HIGH, STD_LOW, STD_ACTIVE und STD_IDLE festlegen.

In der späteren Fassung derselben Anforderung fehlt die Einbindung von Compiler.h RS BSWGeneral S. 60. Das passt zur Änderungshistorie: In R22-11 wurde die veraltete Compiler-Abstraktion aus einem Std-Requirement entfernt, und NULL_PTR kam erst mit R21-11 hinzu SWS StandardTypes S. 1. Für R20-11 gehört Compiler.h also zur Include-Kette, ein NULL_PTR aus Std_Types.h dagegen noch nicht.

Eine Besonderheit betrifft E_OK. Das Symbol ist bereits in OSEK definiert und muss deshalb gemeinsam genutzt werden. [SWS_Std_00006] schreibt einen Schutz über STATUSTYPEDEFINED vor: Innerhalb des Schutzes werden E_OK (0x00u) und StatusType definiert, E_NOT_OK (0x01u) steht außerhalb. Die BSW-Anforderung enthält dieselbe Implementierungsnotiz mit Verweis auf ISO 17356-3 SRS BSWGeneral S. 62. Wie ein Complex Device Driver den Header in seine Include-Struktur einordnet, zeigt das Schaubild zur CDD-Header-Struktur CDD Guideline S. 14.

Std_ReturnType: Wertebereich, Bitlayout und modulspezifische Erweiterungen

Std_ReturnType ist von uint8 abgeleitet. Die Standardwerte sind E_OK (0) und E_NOT_OK (1); der Bereich 0x02–0x3F steht für anwenderspezifische Fehler zur Verfügung [SWS_Std_00005]. [SWS_Std_00011] präzisiert diese Regel:

  • Normalerweise wird der Typ mit E_OK oder E_NOT_OK verwendet.
  • Reichen diese Werte nicht, dürfen eigene Werte in den sechs niederwertigen Bits definiert werden, benannt mit dem Modulpräfix.
  • Bit 7 und Bit 8 sind reserviert. Sie werden, wie das Layout insgesamt, durch die RTE-Spezifikation festgelegt.

Das Schaubild zum Layout stellt genau diese Aufteilung dar SWS StandardTypes S. 15.

Die RTE-Spezifikation beschreibt Std_ReturnType als Typ für Status- und Fehlerwerte von API-Funktionen; der Wert 0 ist für „kein Fehler aufgetreten“ reserviert SWS RTE S. 675. Laut BSW-Modellierungsleitfaden ist er der einzige Rückgabetyp, der in Client-Server-Operationen von Service-Interfaces erlaubt ist BSWUML Guide S. 28. Ein Beispiel für eine modulspezifische Erweiterung ist CAN_BUSY (0x02) des CAN-Treibers. Can_Write() liefert diesen Wert, wenn kein Sendeobjekt frei ist SWS CANDriver S. 54.

returntype rt Std_ReturnType (abgeleitet von uint8) ok E_OK = 0x00 (kein Fehler) rt->ok Standardwert nok E_NOT_OK = 0x01 (generischer Fehler) rt->nok Standardwert user 0x02–0x3F modulspezifische Werte (6 niederwertige Bits, Modulpräfix) rt->user erweiterbar rtebits Bit 7 und Bit 8 reserviert, festgelegt durch RTE-Spezifikation rt->rtebits reserviert csm Csm_ReturnType «extra_literals» CSM_E_BUSY = 2 CSM_E_SMALL_BUFFER = 3 CSM_E_ENTROPY_EXHAUSTION = 4 csm->rt erbt von csm->user belegt can CAN_BUSY = 0x02 (Can_Write: kein Sendeobjekt frei) can->user belegt

Kontextdiagramm (Typstruktur): Std_ReturnType teilt sich in Standardwerte, einen modulspezifischen Bereich 0x02–0x3F und zwei durch die RTE reservierte Bits; Modulerweiterungen wie Csm_ReturnType oder CAN_BUSY belegen nur den freien Bereich. Quellen: [SWS_Std_00005], [SWS_Std_00011], SWS StandardTypes S. 15, BSWUML Guide S. 29, SWS CANDriver S. 54

Im UML-Modell der BSW wird eine solche Erweiterung als Klasse <Ma>_ReturnType mit Stereotyp «extra_literals» modelliert. Ihre Werte tragen das Modulpräfix und liegen im Bereich 0x02–0x3f BSWUML Guide S. 28. Das Beispiel Csm_ReturnType mit CSM_E_BUSY, CSM_E_SMALL_BUFFER und CSM_E_ENTROPY_EXHAUSTION zeigt das Muster BSWUML Guide S. 29. Brauchen mehrere Module eines Stacks dieselbe Erweiterung, muss sie nicht für jedes Modul getrennt definiert werden BSWUML Guide S. 33. Die R23-11-Fassung sieht dafür eine generische Klasse mit «generic_type» vor, von der die modulspezifischen Erweiterungen abgeleitet werden TR BSWUML Guide S. 37.

erweiterung start Start: Modul definiert Rückgabewerte q1 Reichen E_OK / E_NOT_OK aus? start->q1 std Std_ReturnType mit E_OK / E_NOT_OK verwenden q1->std ja q2 Benötigen mehrere Module eines Stacks dieselbe Erweiterung? q1->q2 nein ende Ende: Bits 7/8 bleiben der RTE vorbehalten std->ende gen generische Erweiterung «extra_literals» «generic_type» (Fassung R23-11) q2->gen ja own <Ma>_ReturnType als Klasse «extra_literals» modellieren q2->own nein derive <Ma>_ReturnType davon ableiten, ggf. eigene Literale ergänzen gen->derive lit Literale mit Modulpräfix im Bereich 0x02–0x3F festlegen derive->lit own->lit lit->ende

Aktivitätsdiagramm: Entscheidung, ob und wie ein Modul Std_ReturnType um eigene Werte erweitert. Quellen: [SWS_Std_00011], BSWUML Guide S. 28, BSWUML Guide S. 33, TR BSWUML Guide S. 37

Symbolische Konstanten für Pegel, Schalter und Zustände

Neben den Rückgabewerten definiert Std_Types.h drei Konstantenpaare. Alle drei verwenden die Zahlenwerte 0x01u und 0x00u, sind aber unterschiedlich kommentiert ([SWS_Std_00007], [SWS_Std_00010], [SWS_Std_00013]):

PaarWerteBedeutung laut Definition
STD_HIGH / STD_LOW0x01u / 0x00uphysikalischer Zustand 5 V oder 3,3 V / 0 V
STD_ON / STD_OFF0x01u / 0x00uEin/Aus, ohne weiteren Kommentar
STD_ACTIVE / STD_IDLE0x01u / 0x00ulogischer Zustand aktiv / idle

Ein typischer Nutzer von STD_HIGH/STD_LOW ist der DIO-Treiber: Sein Lesedienst meldet genau einen dieser beiden Pegel zurück SWS DIO S. 37. STD_ON/STD_OFF dienen als Pre-compile-Schalter. Ein Beispiel ist EEP_21_LDEXT_VERSION_INFO_API STD_ON in der allgemeinen BSW-Spezifikation SWS BSWGeneral S. 76, ein weiteres sind die optionalen API-Schalter des GPT-Treibers SWS GPT S. 48.

Versionsabfrage über Std_VersionInfoType

Std_VersionInfoType ist eine Struktur mit folgenden Elementen: vendorID und moduleID (je uint16) sowie sw_major_version, sw_minor_version und sw_patch_version (je uint8). Über <Module name>_GetVersionInfo() wird damit die Version eines BSW-Moduls abgefragt [SWS_Std_00015]. Die allgemeine BSW-Spezifikation legt für diese Funktion fest SWS BSWGeneral S. 76:

  • Sie arbeitet synchron und ist reentrant.
  • Sie hat genau einen Parameter dieses Typs.
  • Ihre Verfügbarkeit wird pro Modul zur Pre-compile-Zeit über <Ma>VersionInfoApi konfiguriert.

Die Namensregel GetVersionInfo nennt die BSW-Anforderung mit dem Beispiel Eep_21_LDExt_GetVersionInfo SRS BSWGeneral S. 60.

Konkrete Umsetzungen gibt es in vielen Modulen. Can_GetVersionInfo weist bei aktivierter Entwicklungsfehlererkennung einen Nullzeiger mit CAN_E_PARAM_POINTER zurück SWS CANDriver S. 57. Adc_GetVersionInfo prüft entsprechend auf ADC_E_PARAM_POINTER SWS ADCDriver S. 80. Der NVRAM-Manager zeigt den Aufruf als einfachen synchronen Austausch zwischen Nutzer und Modul SWS NvM S. 158.

Versionsabfrage mit Std_VersionInfoTypeNutzerBSW-Modul <Ma>DETAPI nur vorhanden, wenn<Ma>VersionInfoApi = STD_ON (Pre-compile)<Ma>_GetVersionInfo(&versioninfo)altversioninfo == NULL und Entwicklungsfehlererkennung aktivEntwicklungsfehler melden(z. B. CAN_E_PARAM_POINTER)gültiger ZeigervendorID, moduleID,sw_major/minor/patch_version eintragenRückkehr (void; synchron, reentrant)

Sequenzdiagramm: Ein Nutzer fragt die Version eines Moduls synchron ab; bei Nullzeiger und aktiver Entwicklungsfehlererkennung meldet das Modul einen Fehler, sonst füllt es Std_VersionInfoType. Quellen: [SWS_Std_00015], SWS BSWGeneral S. 76, SWS CANDriver S. 57, SWS NvM S. 158

Transformer- und Nachrichtentypen für die Datentransformation

Für Transformer-Ketten stellt std mehrere Typen bereit. Std_TransformerError ist in R20-11 eine Struktur aus errorCode (uint8) und transformerClass vom Typ Std_TransformerClass [SWS_Std_00021]. Std_TransformerClass ist von uint8 abgeleitet und kennt fünf Werte [SWS_Std_00024]: STD_TRANSFORMER_UNSPECIFIED (0x00), STD_TRANSFORMER_SERIALIZER (0x01), STD_TRANSFORMER_SAFETY (0x02), STD_TRANSFORMER_SECURITY (0x03) und STD_TRANSFORMER_CUSTOM (0xFF).

Die Kurzsignatur im API-Verzeichnis führt Std_TransformerError als typedef uint8. Maßgeblich ist jedoch die Strukturdefinition des Requirements. Spätere Fassungen typisieren errorCode als eigenen Typ Std_TransformerErrorCode, dessen Bedeutung je Transformer-Kette festgelegt wird SWS StandardTypes S. 17.

Die RTE übergibt diesen Typ als optionalen OUT-Parameter transformerError an ihre APIs, etwa bei Rte_Call SWS RTE S. 731, Rte_Read SWS RTE S. 720 und Rte_Result SWS RTE S. 750. Die Plug-in-Schnittstellen beschreiben ihn als den Fehler, der bei der Ausführung der Transformer-Kette aufgetreten ist SWS RTE S. 969.

Std_TransformerForward und Std_TransformerForwardCode sind in R20-11 als Entwurf (draft) markiert. Der Forward-Code kennt E_OK, E_SAFETY_INVALID_REP, E_SAFETY_INVALID_SEQ und E_SAFETY_INVALID_CRC ([SWS_Std_00027], [SWS_Std_00029]). In späteren Fassungen nimmt Rte_Send einen optionalen forwardedCode dieses Typs entgegen SWS RTE S. 704. Vermutlich dient er dazu, empfangene Safety-Fehler beim Weiterleiten erneut abzubilden, wie es die E2E-Forward-Funktionen beschreiben SWS E2ELibrary S. 107 (Interpretation). Frage Q-f0d374b3b793c868 (offen) Laut Änderungshistorie wurde die Struktur Std_TransformerForward in R22-11 entfernt SWS StandardTypes S. 1.

Transformer-Fehler über Std_TransformerError meldenSW-CRTETransformer-KettetransformerError existiert nur beierrorHandling = transformerErrorHandlingRte_Call_<p>_<o>(…, OUT transformerError)Transformer-Kette ausführenaltTransformer meldet FehlerFehlercode (Interpretation)Std_TransformerError füllen:errorCode, transformerClass (z. B. STD_TRANSFORMER_SAFETY)Std_ReturnType + transformerErrorkein Transformer-FehlerErgebnis ohne FehlerStd_ReturnType (z. B. E_OK)

Sequenzdiagramm: Ein Transformer-Fehler gelangt neben dem Std_ReturnType als Std_TransformerError mit Fehlercode und Transformer-Klasse zur SW-C. Quellen: [SWS_Std_00021], [SWS_Std_00024], SWS RTE S. 731, SwCluster Guideline S. 245, SWS RTE S. 774

Für die Client-Server-Kommunikation gibt es zwei Kodierungstypen, bei denen 0x02–0x3F jeweils für künftige Werte reserviert sind:

  • Std_MessageTypeType unterscheidet Anfrage (STD_MESSAGETYPE_REQUEST, 0x00) und Antwort (STD_MESSAGETYPE_RESPONSE, 0x01) ([SWS_Std_91001], [SWS_Std_00017]).
  • Std_MessageResultType kodiert das Ergebnis einer Antwort: STD_MESSAGERESULT_OK (0x00) oder STD_MESSAGERESULT_ERROR (0x01) ([SWS_Std_91002], [SWS_Std_00019]).

Der Funktionszeigertyp Std_ExtractProtocolHeaderFieldsType beschreibt eine synchrone, reentrante Funktion. Sie extrahiert beide Werte aus dem Protokoll-Header eines Transformers in einem Puffer und liefert ein Std_ReturnType [SWS_Std_91003]. Transformer erhalten einen solchen Zeiger optional als Argument ihrer inversen Funktion ASWS TransformerGeneral S. 40. Der SOME/IP-Transformer stellt mit SomeIpXf_ExtractProtocolHeaderFields eine passende Implementierung bereit SWS SOMEIPTransformer S. 61. Die E2E-Profile 4m, 7m, 8m und 44m werten die beiden Werte in ihren Prüffunktionen aus SWS E2ELibrary S. 108.

Protokoll-Header-Felder extrahieren (E2E, Profil PXXm)RTEE2EXf (inverse Funktion)SomeIpXfE2E-BibliothekE2EXf_Inv_<transformerId>(extractProtocolHeaderFields,buffer, bufferLength, …)optProfile == PXXmextractProtocolHeaderFields(buffer, bufferLength,&messageType, &messageResult)= SomeIpXf_ExtractProtocolHeaderFields (Beispiel)Std_ReturnType ok,Std_MessageTypeType, Std_MessageResultTypealtok == E_OKsourceID = config->sourceIDE2E_P04mSourceCheck(…, SourceID,MessageType, MessageResult, …) (Beispiel)Std_ReturnTypeok == E_NOT_OK (z. B. falsche Protokollversion, Puffer zu kurz)Verarbeitung mit Fehlerende abbrechenuint8 (Ergebnis der inversen Transformation)

Sequenzdiagramm: Der E2E-Transformer extrahiert für PXXm-Profile über den übergebenen Funktionszeiger Nachrichtentyp und -ergebnis und prüft nur bei E_OK weiter. Quellen: [SWS_Std_91003], ASWS TransformerGeneral S. 40, SWS E2ETransformer S. 45, SWS SOMEIPTransformer S. 61, SWS E2ELibrary S. 108

Verhalten im Fehlerfall

Das Modul selbst erkennt und meldet keine Fehler. Die Fassung ab R23-11 stellt fest, dass die Standardtypen keine Fehlerbehandlung vorsehen und keine Security-Events unterstützen SWS StandardTypes S. 27; für R20-11 dürfte dasselbe gelten (Interpretation). Frage (offen) Fehlerverhalten entsteht daher nur in den Modulen, die die Typen verwenden. Das Grundsignal ist E_NOT_OK [SWS_Std_00006]; seine konkrete Bedeutung legt das jeweilige API fest. Bei Adc_ReadGroup heißt es „keine Ergebnisse verfügbar oder Entwicklungsfehler“ SWS ADCDriver S. 61, bei CanIf_Transmit „Sendeanforderung nicht angenommen“ SWS CANInterface S. 87.

Feinere Fehlerbilder werden über modulspezifische Werte im Bereich 0x02–0x3F gemeldet [SWS_Std_00011], zum Beispiel CAN_BUSY SWS CANDriver S. 54. Aufrufer müssen also damit rechnen, dass ein Std_ReturnType mehr als zwei Werte annimmt. Ein Sonderfall sind Callbacks, die als AUTOSAR-Services über die RTE geroutet werden: Der Aufrufer darf zwar E_OK annehmen, doch können solche Callbacks etwa in partitionierten Systemen fehlschlagen SWS BSWGeneral S. 69.

In Transformer-Ketten wird ein Fehler zusätzlich zum Rückgabewert über Std_TransformerError mit Fehlercode und Transformer-Klasse gemeldet [SWS_Std_00021]. Die RTE erzeugt den optionalen Parameter transformerError nur, wenn für den Port die Fehlerbehandlung transformerErrorHandling konfiguriert ist SWS RTE S. 774. Scheitert das Extrahieren der Header-Felder, liefert SomeIpXf_ExtractProtocolHeaderFields E_NOT_OK, etwa bei falscher Protokollversion oder zu kurzem Puffer SWS SOMEIPTransformer S. 61. Die E2E-Transformatorlogik setzt die Prüfung nur bei E_OK fort SWS E2ETransformer S. 45.

Weiterführende Detailbelege

KI-generierter Modul-Leitfaden für std (classic, R20-11), erstellt ausschließlich auf Basis des autodocs-Payloads. Viele Dokumentstellen stammen aus anderen Releases; normativ sind die R20-11-Requirements. Vor verbindlicher Verwendung mit der Spezifikation abgleichen.

Standard Types (Std_Types)

Standard types, return codes (Std_ReturnType, E_OK, E_NOT_OK), version info structures, and error codes shared across the entire AUTOSAR architecture.

Typen — Übersicht

Typen — Detailansicht

type Std_ReturnType [SWS_Std_00005] 📄 PDF

typedef uint8 Std_ReturnType;

This type can be used as standard API return type which is shared between the RTE and the BSW modules. It shall be defined as follows: typedef uint8 Std_ Return Type;

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6f8f9add55f9 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Typ Std_ReturnType dient als standardisierter Rückgabetyp für API-Funktionen und wird gemeinsam von der RTE und den BSW-Modulen genutzt ([SWS_Std_00005]). Er ist über den Header Std_Types.h verfügbar und als uint8 definiert ([SWS_Std_00005]).

Standardmäßig wird Std_ReturnType mit den Werten E_OK (Wert 0) oder E_NOT_OK (Wert 1) belegt ([SWS_Std_00005], [SWS_Std_00011]). Reichen diese beiden Standardrückgabewerte nicht aus, gestattet der Standard die Definition modulspezifischer Fehlerwerte:

  • Wertebereich für Anwenderfehler: Für benutzerdefinierte Fehlercodes steht der Bereich 0x02 bis 0x3F zur Verfügung ([SWS_Std_00005]). Hierbei werden die sechs niedrigstwertigen Bits verwendet ([SWS_Std_00011]).
  • Namenskonvention: Bei der Benennung anwenderspezifischer Fehlerwerte ist gemäß den BSW-Vorgaben zwingend das jeweilige Modulpräfix voranzustellen ([SWS_Std_00011]).
  • RTE-Reservierung: Bit 7 und Bit 8 sind reserviert und werden durch die RTE-Spezifikation vorgegeben, der auch das allgemeine Layout des Rückgabetyps folgt ([SWS_Std_00011]). Interpretation: Hierbei dürfte es sich um die beiden höchstwertigen Bits der 8-Bit-Repräsentation handeln, welche die sechs niederwertigen Bits zu einem Byte komplettieren. Frage Q-d97256956c510f58 (offen)

Spezifische Fehlerbehandlungsmechanismen wie DET oder DEM sowie Reentranzvorgaben werden für den Basistyp selbst in den Quellen nicht definiert, sondern obliegen den jeweiligen APIs, die diesen Typ als Rückgabewert einsetzen.

Dieser Nutzungshinweis wurde von einer KI erstellt und basiert auf den Spezifikationen von AUTOSAR Classic Release R20-11.

Implementer's Guide folgt (Komplexität I1)

type Std_TransformerError [SWS_Std_00021] 📄 PDF

typedef uint8 Std_TransformerError;

-

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 534a10ed1c56 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Datentyp Std_TransformerError wird gemäß der Anforderung [SWS_Std_00021] als standardisierter Typ über die Header-Datei Std_Types.h für die AUTOSAR-Classic-Plattform bereitgestellt. Strukturell ist das Element in der Spezifikation als Verbund (Structure) definiert und setzt sich aus zwei Komponenten zusammen: dem Element errorCode mit dem Basistyp uint8 sowie dem Element transformerClass mit dem Typ Std_TransformerClass [SWS_Std_00021].

Hinsichtlich der praktischen Verwendung enthält die Spezifikation keine konkreten Funktionssignaturen, Parameterbeschreibungen oder Rückgabewerte. Der Strukturtyp dient vermutlich als einheitlicher Datencontainer zur strukturierten Übermittlung von Fehlern, die bei der Transformation von Daten auftreten (Interpretation). Frage Q-6e0938f276d60fd3 (offen) Dabei dürfte das Feld errorCode den eigentlichen numerischen Fehlerschlüssel transportieren, während transformerClass die verursachende oder zugeordnete Transformer-Klasse identifiziert (Interpretation). Frage Q-d8806698683ec00e (offen)

Spezifische Mechanismen zur Fehlerbehandlung wie DET- oder DEM-Meldungen sind in [SWS_Std_00021] nicht definiert. Auch Vorgaben zu Nebenläufigkeit, Reentranz oder synchroner beziehungsweise asynchroner Semantik fehlen im Quellmaterial. Da es sich um eine reine Typdefinition in Std_Types.h handelt, unterliegt der Typ selbst keinen Laufzeitbeschränkungen; diese ergeben sich ausschließlich aus dem jeweiligen Kontext der anwendenden Module.

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

type Std_MessageType [SWS_Std_91001] 📄 PDF

This type is used to encode the different type of messages. - Currently this encoding is limited to the distinction between requests and responses in C/ S c ommunication.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3a61d74dd0cf Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Standardtyp Std_MessageType wird gemäß [SWS_Std_91001] zur Codierung verschiedener Nachrichtentypen verwendet. In der vorliegenden Spezifikation beschränkt sich diese Codierung auf die Unterscheidung zwischen Anfragen (Requests) und Antworten (Responses) im Rahmen der Client/Server-Kommunikation ([SWS_Std_91001]).

Der Datentyp leitet sich vom Basistyp uint8 ab und wird Software-Komponenten sowie Basissoftware-Modulen über die Header-Datei Std_Types.h bereitgestellt ([SWS_Std_91001]). Für die Zuweisung und Auswertung sind folgende Werte und Konstanten spezifiziert:

  • STD_MESSAGETYPE_REQUEST (Wert 0x00): Kennzeichnet eine Anfragenachricht ([SWS_Std_91001]).
  • STD_MESSAGETYPE_RESPONSE (Wert 0x01): Kennzeichnet eine Antwortnachricht ([SWS_Std_91001]).
  • Wertebereich 0x02 bis 0x3F: Dieser Bereich ist für zukünftige Nachrichtentypen reserviert ([SWS_Std_91001]).

Hinsichtlich der Anwendung und Randbedingungen gilt, dass implementierende Module ausschließlich die definierten Bezeichner verwenden sollten. Da die Werte von 0x02 bis 0x3F für künftige AUTOSAR-Erweiterungen reserviert sind, dürfen sie nicht eigenmächtig für andere Zwecke belegt werden ([SWS_Std_91001]). Spezifische Fehlercodes, Rückgabewerte, asynchrone Abläufe oder Meldungen an DET oder DEM sind für diesen Datentyp in der Spezifikation nicht definiert ([SWS_Std_91001]).

Dieser Text wurde von einem KI-Kurations-Assistenten generiert und basiert auf der Spezifikation von AUTOSAR R20-11.

type Std_MessageResultType [SWS_Std_91002] 📄 PDF

typedef uint8 Std_MessageResultType;

This type is used to encode different types of results for response messages. - Currently this encoding is limited to the distinction between OK and ERROR responses.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 48b18d78d865 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der fundamentale Datentyp Std_MessageResultType dient in der AUTOSAR-Classic-Plattform der Enkodierung verschiedener Ergebnistypen für Antwortnachrichten (Response Messages) [SWS_Std_00019]. Der Typ wird über die Standard-Headerdatei Std_Types.h bereitgestellt und ist als Skalartyp auf Basis von uint8 definiert [SWS_Std_91002].

Verwendung und Wertebereich

Die Spezifikation fordert die Nutzung von Std_MessageResultType zur einheitlichen Kennzeichnung von Antwortnachrichten [SWS_Std_00019]. Derzeit ist der vorgesehene Funktionsumfang dieser Enkodierung auf die grundlegende Unterscheidung zwischen erfolgreichen und fehlerhaften Antworten beschränkt [SWS_Std_91002]. Hierzu sind folgende feste Ergebniswerte definiert:

  • STD_MESSAGERESULT_OK (Wert 0x00): Kennzeichnet das reguläre, fehlerfreie Ergebnis einer Antwortnachricht [SWS_Std_91002].
  • STD_MESSAGERESULT_ERROR (Wert 0x01): Signalisiert das Ergebnis einer fehlerhaften Antwortnachricht (Error Response) [SWS_Std_91002].

Einschränkungen und künftige Erweiterungen

Der Wertebereich von 0x02 bis 0x3F ist explizit für künftige Nachrichtenergebnisse reserviert [SWS_Std_91002]. Interpretation: Da die Spezifikation aktuell keine anderen gültigen Rückgabewerte vorsieht, dürften auswertende Module defensiv programmiert sein müssen, um unerwartete oder noch nicht belegte Werte in diesem Bereich sicher abzufangen [SWS_Std_00019]. Frage Q-5f652f73800b7d94 (offen)

Dieser Text wurde durch eine KI erstellt und fasst die Festlegungen der AUTOSAR-Spezifikation für Entwickler zusammen.

type Std_ExtractProtocolHeaderFieldsType [SWS_Std_91003] 📄 PDF

typedef Std_ReturnType (* Std_ExtractProtocolHeaderFieldsType)(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);

Type for the function pointer to extract the relevant protocol header fields of the message and the type of the message result of a transformer. - At the time being, this is limited to the types used for C/ S communication (i.e., REQUE ST and RESPONSE and OK and ERROR).

type E_OK / E_NOT_OK [SWS_Std_00006] 📄 PDF

#define E_OK 0x00u #define E_NOT_OK 0x01u

Because E_ OK is already defined within OSEK, the symbol E_ OK has to be shared. To avoid name clashes and redefinition problems, the symbols have to be defined in the following way (approved within implementation): #ifndef STATUSTYPEDEFINED #define STATUSTYPEDEFINED #define E_ OK 0x00u typedef unsigned char Status Type; /* OSEK compliance */ #endif #define E_ NOT_ OK 0x01u

type STD_HIGH / STD_LOW [SWS_Std_00007] 📄 PDF

#define STD_HIGH 0x01u #define STD_LOW 0x00u

The symbols STD_ HIGH and STD_ LOW shall be defined as follows: #define STD_ HIGH 0x01u /* Physical state 5V or 3.3V */ #define STD_ LOW 0x00u /* Physical state 0V */

type STD_ACTIVE / STD_IDLE [SWS_Std_00013] 📄 PDF

#define STD_ACTIVE 0x01u #define STD_IDLE 0x00u

The symbols STD_ ACTIVE and STD_ IDLE shall be defined as follows: #define STD_ ACTIVE 0x01u /* Logical state active */ #define STD_ IDLE 0x00u /* Logical state idle */

type STD_ON / STD_OFF [SWS_Std_00010] 📄 PDF

#define STD_ON 0x01u #define STD_OFF 0x00u

The symbols STD_ ON and STD_ OFF shall be defined as follows: #define STD_ ON 0x01u #define STD_ OFF 0x00u

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

Record
AUTOSAR/AP/record/CP_MOD_Std
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Std@rel:R20-11#4f00bf09
Content hash
4f00bf09
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_StandardTypes.pdf#nameddest=SWS_Std_00005

Typen

Because E_ OK is already defined within OSEK, the symbol E_ OK has to be shared. To avoid name clashes and redefinition problems, the symbols have to be defined in the following way (approved within implementation): #ifndef STATUSTYPEDEFINED #define STATUSTYPEDEFINED #define E_ OK 0x00u typedef unsigned char Status Type; /* OSEK compliance */ #endif #define E_ NOT_ OK 0x01u

#define E_OK 0x00u #define E_NOT_OK 0x01u

The symbols STD_ ACTIVE and STD_ IDLE shall be defined as follows: #define STD_ ACTIVE 0x01u /* Logical state active */ #define STD_ IDLE 0x00u /* Logical state idle */

#define STD_ACTIVE 0x01u #define STD_IDLE 0x00u

Type for the function pointer to extract the relevant protocol header fields of the message and the type of the message result of a transformer. - At the time being, this is limited to the types used for C/ S communication (i.e., REQUE ST and RESPONSE and OK and ERROR).

typedef Std_ReturnType (* Std_ExtractProtocolHeaderFieldsType)(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);

The symbols STD_ HIGH and STD_ LOW shall be defined as follows: #define STD_ HIGH 0x01u /* Physical state 5V or 3.3V */ #define STD_ LOW 0x00u /* Physical state 0V */

#define STD_HIGH 0x01u #define STD_LOW 0x00u

This type is used to encode different types of results for response messages. - Currently this encoding is limited to the distinction between OK and ERROR responses.

This type is used to encode the different type of messages. - Currently this encoding is limited to the distinction between requests and responses in C/ S c ommunication.

The symbols STD_ ON and STD_ OFF shall be defined as follows: #define STD_ ON 0x01u #define STD_ OFF 0x00u

#define STD_ON 0x01u #define STD_OFF 0x00u

This type can be used as standard API return type which is shared between the RTE and the BSW modules. It shall be defined as follows: typedef uint8 Std_ Return Type;

- Tags: atp.Status=draft

- Tags: atp.Status=draft

This type shall be used to request the version of a BSW module using the _ Get Version Info() function.

typedef struct { uint16 vendorID; uint16 moduleID; uint8 sw_major_version; uint8 sw_minor_version; uint8 sw_patch_version; } Std_VersionInfoType;