DEENESPTFRRUARHIKOZHNL

Platform Types (Platform_Types)

ModulPlatform (Platform Types)
BSW-Modul-ID199
Standard-Header#include "Platform_Types.h"
SWS-SpezifikationAUTOSAR_SWS_PlatformTypes.pdf
ClusterGeneral & Standard Types

Modul-GuideKI-GENERIERT

Stellt einheitlich benannte Basistypen und Kennsymbole für Registerbreite und Endianness des Zielprozessors bereit.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 7e73f6d7bb31 Herkunft Offene Fragen (3)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Stellt einheitlich benannte Basistypen und Kennsymbole für Registerbreite und Endianness des Zielprozessors bereit.

Platform_Types.h stellt die plattformabhängigen Basistypen der Classic Platform bereit: Ganzzahltypen fester Breite von uint8 bis sint64, optimierte *_least-Typen, float32/float64, boolean mit TRUE/FALSE sowie die Pufferzeiger VoidPtr und ConstVoidPtr. Zusätzlich kennzeichnen CPU_TYPE, CPU_BIT_ORDER und CPU_BYTE_ORDER Registerbreite und Endianness des Ziels [SWS_Platform_00046]. boolean darf nur mit TRUE und FALSE und ohne Arithmetik- oder Bitoperatoren verwendet werden [SWS_Platform_00034]. Der Header darf nicht erweitert werden, sonst geht die AUTOSAR-Konformität verloren.

Platform_Types.h ist die plattformabhängige Typbasis der Classic Platform. Der Header kapselt Wortbreiten und Endianness des Ziels hinter einheitlichen Namen und darf nicht erweitert werden, weil jede Erweiterung die AUTOSAR-Konformität aufhebt [SWS_Platform_00002]. In der Modellsicht liegen die Typen unter einem festen Pfad wie /AUTOSAR_Platform/ImplementationDatatypes/uint8 TPS StandardizationTemplate S. 77.

Der Header stellt folgende Typgruppen bereit:

typwahl start Datum festlegen zeiger Zeiger auf Puffer? start->zeiger richtung Puffer an Aufgerufenen übergeben? zeiger->richtung ja wahr Wahrheitswert? zeiger->wahr nein cvp ConstVoidPtr (const void*) richtung->cvp ja vp VoidPtr (void*) Daten an Aufrufer richtung->vp nein bool boolean nur mit TRUE/FALSE wahr->bool ja gleit Gleitkommazahl? wahr->gleit nein flt float32 / float64 (IEEE 754-2008) gleit->flt ja least Mindestbreite genügt (z. B. Schleifenzähler, switch-Argument)? gleit->least nein opt uint8_least … sint32_least least->opt ja fest uint8 … uint64 / sint8 … sint64 least->fest nein

Aktivitätsdiagramm: Die Wahl des passenden Plattformtyps folgt den Fragen Pufferzeiger, Wahrheitswert, Gleitkommazahl, Mindest- oder Exaktbreite. Quellen: [SWS_Platform_91001], [SWS_Platform_00026], SWS PlatformTypes S. 17

boolean wird in R20-11 als kürzester nativ unterstützter vorzeichenloser Ganzzahltyp implementiert, in der Regel 8 Bit [SWS_Platform_00027]. Spätere Fassungen weichen davon ab und verwenden _Bool SWS PlatformTypes S. 18. Der Typ muss zeigerfähig sein [SWS_Platform_00060] und darf nur mit TRUE und FALSE verwendet werden. Arithmetik- und Bitoperatoren sind verboten [SWS_Platform_00034], und Neudefinitionen der Symbole sind per bedingter Prüfung zu vermeiden [SWS_Platform_00054].

Je Plattform sind außerdem drei Symbole festzulegen: CPU_TYPE für die Registerbreite [SWS_Platform_00045], CPU_BIT_ORDER mit MSB_FIRST oder LSB_FIRST [SWS_Platform_00048] [SWS_Platform_00049] und CPU_BYTE_ORDER mit HIGH_BYTE_FIRST oder LOW_BYTE_FIRST [SWS_Platform_00050] [SWS_Platform_00051]. Bitnamen und Wertigkeit dürfen dabei nicht vermischt werden, denn das MSB steht im Akkumulator immer links SWS PlatformTypes S. 15. Interpretation: Laufzeitfehler kennt das Modul nicht; Fehlbelegungen zeigen sich erst bei Integration oder Konformitätsprüfung. Frage (offen)

cpu_symbole start Zielplattform portieren breite Registerbreite der CPU? start->breite t8 CPU_TYPE_8 breite->t8 8 Bit t16 CPU_TYPE_16 breite->t16 16 Bit t32 CPU_TYPE_32 breite->t32 32 Bit t64 CPU_TYPE_64 breite->t64 64 Bit bit Bitreihenfolge (Register)? t8->bit t16->bit t32->bit t64->bit msb CPU_BIT_ORDER = MSB_FIRST bit->msb Big Endian lsb CPU_BIT_ORDER = LSB_FIRST bit->lsb Little Endian byte Bytereihenfolge (Speicher)? msb->byte lsb->byte high CPU_BYTE_ORDER = HIGH_BYTE_FIRST byte->high Big Endian low CPU_BYTE_ORDER = LOW_BYTE_FIRST byte->low Little Endian ende Symbole als #define in Platform_Types.h high->ende low->ende

Aktivitätsdiagramm: Registerbreite, Bitreihenfolge und Bytereihenfolge des Ziels werden jeweils auf genau einen Symbolwert abgebildet. Quellen: [SWS_Platform_00045], [SWS_Platform_00048], [SWS_Platform_00050]

Rolle von Platform_Types.h: die plattformabhängige Typbasis

Das Modul ist kein ausführbarer Baustein, sondern ein Header. Alle spezifizierten Typen und Symbole sind „Available via Platform_Types.h“, etwa uint8 [SWS_Platform_00013] oder CPU_TYPE [SWS_Platform_00064]. Der Header verbirgt die Eigenschaften von Ziel-Mikrocontroller und Compiler hinter einheitlichen Namen: Wortbreiten, Bitreihenfolge und Bytereihenfolge. Damit gehört er zu der in SRS_BSW_00161 geforderten Mikrocontroller-Abstraktion mit standardisierter Schnittstelle zu höheren Schichten SRS BSWGeneral S. 88. Auf genau dieses Upstream-Requirement verweisen auch die Regeln zur Bytereihenfolge SWS PlatformTypes S. 16.

Die Systemgrenze ist eng gezogen. Der Header darf nicht erweitert werden, denn jede Erweiterung hebt die AUTOSAR-Konformität auf [SWS_Platform_00002]. Rückgabetypen für Erfolg oder Misserfolg eines API-Aufrufs liegen dagegen in Std_Types.h SRS BSWGeneral S. 68. In der Modellsicht sind die Plattformtypen als Blueprints hinterlegt, zum Beispiel unter /AUTOSAR/Platform/ImplementationDatatypes_Blueprint/uint8. Implementiert werden sie unter /AUTOSAR_Platform/ImplementationDatatypes/uint8, sodass Komponentenlieferanten sie über einen vorhersagbaren Pfad erreichen TPS StandardizationTemplate S. 77.

einbettung ziel Ziel-µC / Compiler (Registerbreite, Bit- und Bytereihenfolge) pt Platform_Types.h (Basistypen, boolean, TRUE/FALSE, VoidPtr, ConstVoidPtr, CPU_*) ziel->pt bestimmt Belegung modell Modellsicht /AUTOSAR_Platform/ImplementationDatatypes pt->modell entspricht Blueprint-Pfad bfx Bfx (boolean, uint8 … uint64) pt->bfx Typen crc Crc (uint8, uint32, boolean) pt->crc Typen bmc Bmc (Bmc_AtomicFlagType aus boolean) pt->bmc Basistyp keym KeyM / CSM (ConstVoidPtr, VoidPtr, uint32) pt->keym Pufferzeiger cansm CanSM (boolean-Parameter) pt->cansm Typen

Kontextdiagramm: Die Zielplattform bestimmt die Belegung von Platform_Types.h, dessen Typen in der Modellsicht unter einem festen Pfad liegen und von zahlreichen BSW-Modulen genutzt werden. Die Nutzerbeispiele stammen aus späteren Releases. Quellen: [SWS_Platform_00038], TPS StandardizationTemplate S. 77, SWS BFXLibrary S. 19, SWS CRCLibrary S. 41, SWS BSWMulticoreLibrary S. 16, SWS KeyManager S. 111, SWS CANStateManager S. 83

Ganzzahl- und Gleitkommatypen mit garantierter Breite

Kern des Moduls sind vorzeichenlose und vorzeichenbehaftete Typen mit fester Breite von 8 bis 64 Bit sowie zwei Gleitkommatypen. Normativ legen die Requirements Breite und Wertebereich fest, etwa „32 bit unsigned“ für uint32 [SWS_Platform_00015]. Die C-Typedefs im API-Katalog, zum Beispiel typedef unsigned long uint32;, dürften als typische Abbildung zu lesen sein, die je nach Compiler anders ausfallen kann (Interpretation). Frage Q-d0ca377fc1abd98a (offen)

TypBreite / FormatWertebereichBeleg
uint88 Bit, vorzeichenlos0..255[SWS_Platform_00013]
uint1616 Bit, vorzeichenlos0..65535[SWS_Platform_00014]
uint3232 Bit, vorzeichenlos0..4294967295[SWS_Platform_00015]
uint6464 Bit, vorzeichenlos0..18446744073709551615[SWS_Platform_00066]
sint88 Bit, vorzeichenbehaftet-128..+127[SWS_Platform_00016]
sint1616 Bit, vorzeichenbehaftet-32768..+32767[SWS_Platform_00017]
sint3232 Bit, vorzeichenbehaftet-2147483648..+2147483647[SWS_Platform_00018]
sint6464 Bit, vorzeichenbehaftet-9223372036854775808..9223372036854775807[SWS_Platform_00067]
float32IEEE 754-2008 binary32-3.4028235e+38..+3.4028235e+38[SWS_Platform_00041]
float64IEEE 754-2008 binary64±1.7976931348623157e+308[SWS_Platform_00042]

Für die vorzeichenbehafteten Typen unterstützt AUTOSAR bei Compiler und Ziel ausschließlich Zweierkomplement-Arithmetik. Daraus ergeben sich die asymmetrischen Wertebereiche der Tabelle [SWS_Platform_00061]. Andere Spezifikationen setzen diese Typen durchgängig voraus. Die CRC-Bibliothek definiert etwa uint8 Crc_CalculateCRC8(const uint8*, uint32, uint8, boolean) SWS CRCLibrary S. 41. COM muss die Endianness-Umrechnung für uint16 bis float64 unterstützen RS COM S. 14. Beide Stellen stammen aus späteren Releases und illustrieren nur die Verwendung.

Optimierte Typen *_least für Zähler und Zustände

Neben den Typen mit exakter Breite definiert das Modul sechs optimierte Typen. Sie garantieren nur eine Mindestbreite und sind von uint bzw. sint abgeleitet:

Die Implementierung darf also eine breitere Darstellung wählen. Die Katalogsignaturen bilden alle sechs Typen auf unsigned int bzw. signed int ab [SWS_Platform_00020].

Als Einsatzbeispiele nennt die Spezifikation Schleifenzähler (höchstens 124 Durchläufe ⇒ uint8_least) und switch-Argumente (17 Zustände ⇒ uint8_least). Für Details verweist sie auf das Kapitel „AUTOSAR Integer Data Types“ der allgemeinen BSW-Anforderungen SWS PlatformTypes S. 17.

boolean, TRUE und FALSE regelkonform verwenden

boolean hat den Wertebereich FALSE = 0 und TRUE = 1 und darf nur zusammen mit diesen Definitionen verwendet werden [SWS_Platform_00026]. Für R20-11 gilt: boolean wird als vorzeichenloser Ganzzahltyp mit der kürzesten Bitlänge implementiert, die die Plattform nativ unterstützt, in der Regel 8 Bit [SWS_Platform_00027]. Eine Dokumentstelle aus R24-11/R25-11 formuliert dieselbe Kennung anders: Dort wird boolean über den C99-Typ _Bool implementiert, und AUTOSAR legt die genaue Größe nicht mehr fest SWS PlatformTypes S. 18. Für R20-11 ist diese spätere Fassung nicht normativ.

boolean muss außerdem auf einen Typ abgebildet werden, auf den Zeiger zeigen können, damit Parameter per API übergeben werden können. Die effizienten Bit-Typen mancher Hardware sind nicht zeigerfähig und scheiden deshalb aus [SWS_Platform_00060]. Für die Symbole TRUE und FALSE gelten drei Regeln:

Bei Zuweisungen an boolean-Variablen sind arithmetische und bitweise Operatoren verboten: +, ++, -, --, *, /, %, <<, >>, ~ und &. Zulässig ist nur die Zuweisung von TRUE oder FALSE sowie von Ergebnissen aus Relationen, logischen Verknüpfungen und (Un-)Gleichheitsprüfungen. Verglichen wird nur mit == bzw. != gegen TRUE/FALSE oder über if (var) bzw. if (!var) [SWS_Platform_00034]. Konsumierende Module folgen diesem Muster. So liefert Bfx_GetBit das Ergebnis eines Bittests ausdrücklich als TRUE oder FALSE zurück SWS BFXLibrary S. 19.

boolean_regeln start Operation auf boolean-Variable art Zuweisung oder Vergleich? start->art zuw Rechte Seite: TRUE/FALSE, Relation (<, >, <=, >=), logisch (&&, ||, !) oder (==, !=)? art->zuw Zuweisung verg Form: == TRUE/FALSE, != TRUE/FALSE, if (var) oder if (!var)? art->verg Vergleich ok zulässig zuw->ok ja nok unzulässig (z. B. +, ++, -, --, *, /, %, <<, >>, ~, &) zuw->nok nein verg->ok ja nokv nicht als zulässige Form gelistet verg->nokv nein

Aktivitätsdiagramm: Für boolean-Variablen sind nur die gelisteten Zuweisungs- und Vergleichsformen zulässig, Arithmetik- und Bitoperatoren nicht. Quellen: [SWS_Platform_00034], [SWS_Platform_00026]

Untypisierte Pufferzeiger: VoidPtr und ConstVoidPtr

Die beiden Zeigertypen unterscheiden sich in der Richtung des Datenflusses:

  • VoidPtr ist ein void* für Puffer, die an den Aufrufer zurückgegebene Daten enthalten [SWS_Platform_91001].
  • ConstVoidPtr ist ein const void* für Puffer, die an den Aufgerufenen übergeben werden [SWS_Platform_91002].

Die Datenflussrichtung steckt damit schon im Typnamen SWS PlatformTypes S. 27 SWS PlatformTypes S. 28.

Wie das in Schnittstellen aussieht, zeigt der Key Manager. KeyMServiceCertificateByCertId übergibt RequestData als ConstVoidPtr zusammen mit einer Länge vom Typ uint32. Die Antwort nimmt ResponseData vom Typ VoidPtr auf; ResponseDataLength (INOUT) gibt dabei die verfügbare Pufferlänge an SWS KeyManager S. 111. Weitere Beispiele:

In allen drei Beispielen wird die Länge als eigener uint32-Parameter oder als eigenes Strukturelement mitgeführt, weil ein untypisierter Zeiger keine Längeninformation trägt.

Pufferübergabe mit ConstVoidPtr und VoidPtr (Beispiel KeyM)AufruferKeyMAnfragedaten im Puffer ablegenAntwortpuffer bereitstellenKeyM_ServiceCertificateByCertId(Service, RequestData: ConstVoidPtr,RequestDataLength: uint32,ResponseData: VoidPtr,ResponseDataLength: uint32 [INOUT])ConstVoidPtr: Puffer wird an den Aufgerufenen übergebenVoidPtr: Puffer nimmt Daten für den Aufrufer aufaltOperation angenommenE_OKnicht angenommenE_NOT_OK / KEYM_E_BUSY /KEYM_E_KEY_CERT_SIZE_MISMATCH /KEYM_E_PARAMETER_MISMATCH

Sequenzdiagramm: Bei einem Dienstaufruf trägt der ConstVoidPtr die Anfrage zum Aufgerufenen, der VoidPtr nimmt die Antwort für den Aufrufer auf. Quellen: SWS KeyManager S. 111, [SWS_Platform_91001], [SWS_Platform_91002]

typwahl start Datum festlegen zeiger Zeiger auf Puffer? start->zeiger richtung Puffer an Aufgerufenen übergeben? zeiger->richtung ja wahr Wahrheitswert? zeiger->wahr nein cvp ConstVoidPtr (const void*) richtung->cvp ja vp VoidPtr (void*) Daten an Aufrufer richtung->vp nein bool boolean nur mit TRUE/FALSE wahr->bool ja gleit Gleitkommazahl? wahr->gleit nein flt float32 / float64 (IEEE 754-2008) gleit->flt ja least Mindestbreite genügt (z. B. Schleifenzähler, switch-Argument)? gleit->least nein opt uint8_least … sint32_least least->opt ja fest uint8 … uint64 / sint8 … sint64 least->fest nein

Aktivitätsdiagramm: Die Typwahl folgt den Fragen Pufferzeiger, Wahrheitswert, Gleitkommazahl, Mindest- oder Exaktbreite. Quellen: [SWS_Platform_91001], [SWS_Platform_91002], [SWS_Platform_00026], [SWS_Platform_00041], [SWS_Platform_00020], SWS PlatformTypes S. 17

Plattformkennung: CPU_TYPE, CPU_BIT_ORDER, CPU_BYTE_ORDER

Für jede Plattform sind drei Eigenschaften im Header festzulegen:

Beide Reihenfolge-Symbole sind #defines, die genau einen der zulässigen Werte tragen [SWS_Platform_00038] [SWS_Platform_00039].

cpu_symbole start Zielplattform portieren breite Registerbreite der CPU? start->breite t8 CPU_TYPE_8 breite->t8 8 Bit t16 CPU_TYPE_16 breite->t16 16 Bit t32 CPU_TYPE_32 breite->t32 32 Bit t64 CPU_TYPE_64 breite->t64 64 Bit bit Bitreihenfolge (Register)? t8->bit t16->bit t32->bit t64->bit msb CPU_BIT_ORDER = MSB_FIRST bit->msb Big Endian lsb CPU_BIT_ORDER = LSB_FIRST bit->lsb Little Endian byte Bytereihenfolge (Speicher)? msb->byte lsb->byte high CPU_BYTE_ORDER = HIGH_BYTE_FIRST byte->high Big Endian low CPU_BYTE_ORDER = LOW_BYTE_FIRST byte->low Little Endian ende Symbole als #define in Platform_Types.h high->ende low->ende

Aktivitätsdiagramm: Beim Portieren auf ein Ziel werden Registerbreite, Bitreihenfolge und Bytereihenfolge bestimmt und jeweils auf genau einen Symbolwert abgebildet. Quellen: [SWS_Platform_00045], [SWS_Platform_00048], [SWS_Platform_00049], [SWS_Platform_00050], [SWS_Platform_00051]

Bei Big-Endian-Bitreihenfolge gilt CPU_BIT_ORDER = MSB_FIRST, bei Little Endian LSB_FIRST [SWS_Platform_00048] [SWS_Platform_00049]. Bitnamen und Wertigkeit sind dabei streng zu trennen. Das MSB steht im Akkumulator unabhängig vom CPU-Typ immer ganz links. Bei Motorola-Architekturen (Big Endian Bit Order) bezeichnet Bit0 das höchstwertige Bit, bei allen anderen das niederwertigste SWS PlatformTypes S. 15 SWS PlatformTypes Abb. 7.1 S. 14.

bitordnung be CPU_BIT_ORDER = MSB_FIRST (Big Endian, z. B. Motorola) Bit0 = MSB msb Register-MSB (immer links) be->msb Bit0 bezeichnet le CPU_BIT_ORDER = LSB_FIRST (Little Endian) Bit0 = LSB lsb Register-LSB (immer rechts) le->lsb Bit0 bezeichnet w7 Wertigkeit 2^7 = 128 msb->w7 entspricht w0 Wertigkeit 2^0 = 1 lsb->w0 entspricht

Strukturdiagramm nach Abb. 7.1: Die Wertigkeit der Registerbits ist fest, nur die Nummerierung von Bit0 hängt von CPU_BIT_ORDER ab. Quellen: SWS PlatformTypes Abb. 7.1 S. 14, SWS PlatformTypes S. 15

Bei Big-Endian-Bytereihenfolge gilt CPU_BYTE_ORDER = HIGH_BYTE_FIRST: Das höchstwertige Byte eines 16-Bit-Werts liegt an Adresse n, das niederwertigste an n+1. Bei Little Endian gilt LOW_BYTE_FIRST mit umgekehrter Belegung [SWS_Platform_00050] [SWS_Platform_00051]. Die Bezeichnungen Byte0 und Byte1 dienen nur der Illustration und können in der Referenzdokumentation eines Herstellers abweichen SWS PlatformTypes S. 16.

byteordnung cluster_high HIGH_BYTE_FIRST (Big Endian) cluster_low LOW_BYTE_FIRST (Little Endian) wert uint16-Wert ms MS Byte (Byte1) Bits 15..8 wert->ms ls LS Byte (Byte0) Bits 7..0 wert->ls hn Adresse n ms->hn ln1 Adresse n+1 ms->ln1 hn1 Adresse n+1 ls->hn1 ln Adresse n ls->ln

Strukturdiagramm nach Abb. 7.2/7.3: Dasselbe uint16 wird je nach CPU_BYTE_ORDER mit vertauschten Bytes auf die Adressen n und n+1 abgebildet. Quellen: SWS PlatformTypes Abb. 7.2 S. 16, SWS PlatformTypes Abb. 7.3 S. 15, [SWS_Platform_00039]

Warum diese Angaben nötig sind, begründen andere Spezifikationen. Die Speicherdarstellung von Daten hängt stark von Prozessorarchitektur und Compilereinstellungen ab. Deshalb fordert SOME/IP einen Serialisierungsalgorithmus, der in eine gemeinsame Netzdarstellung überführt RS SOMEIPProtocol S. 21. Vermutlich stützen sich solche Umrechnungen in Implementierungen auf CPU_BYTE_ORDER; der Payload belegt das jedoch nicht ausdrücklich. Frage Q-87e212e9eb2a2047 (offen)

Verhalten im Fehlerfall

Interpretation: Weil Platform_Types.h nur Typen und Symbole bereitstellt, kennt das Modul keine Laufzeitfehler und keine Fehlercodes. Frage Q-e504d08b84d7ff70 (offen) Fehlerbilder zeigen sich bei Übersetzung, Integration oder Konformitätsprüfung. Die Requirements benennen die typischen Ursachen [SWS_Platform_00002]:

  • Erweiterungen des Headers sind unzulässig; jede Erweiterung hebt die Konformität auf [SWS_Platform_00002].
  • Doppelte Definitionen von TRUE/FALSE bei vorhandener Compiler-Unterstützung sind durch eine bedingte Prüfung zu verhindern [SWS_Platform_00054] [SWS_Platform_00056].
  • Falsch belegte Reihenfolge-Symbole verletzen [SWS_Platform_00048] bis [SWS_Platform_00051]. Besonders fehleranfällig ist das Vermischen der Bitnamen aus der Herstellerdokumentation mit der Wertigkeit SWS PlatformTypes S. 15.
  • Ein nicht zeigerfähiger boolean verletzt [SWS_Platform_00060], weil Parameter dann nicht per API übergeben werden können.
  • Arithmetik oder Bitoperationen auf boolean sind unzulässig, ebenso andere als die gelisteten Vergleichsformen [SWS_Platform_00034].
  • Code, der Einerkomplement oder symmetrische Wertebereiche voraussetzt, ist nicht gedeckt, da nur Zweierkomplement unterstützt wird [SWS_Platform_00061].
  • Beim Releasewechsel ist die Vorgabe für boolean zu beachten: R20-11 [SWS_Platform_00027] und spätere Fassungen SWS PlatformTypes S. 18 unterscheiden sich. Code, der eine feste Größe von boolean voraussetzt, ist deshalb vor dem Wechsel zu prüfen.

Weiterführende Detailbelege

KI-generierter Leitfaden auf Basis der Requirements von R20-11 und zugeordneter Dokumentstellen, die teils aus späteren Releases stammen. Maßgeblich ist die Spezifikation.

Platform Types (Platform_Types)

Platform-specific fundamental data types (integers, booleans, floating-point numbers) mapped to CPU architecture primitives.

Typen — Übersicht

Typen — Detailansicht

type float32 [SWS_Platform_00041] 📄 PDF

typedef float float32;

This standard AUTOSAR type shall follow the 32-bit binary interchange format according to IEEE 754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary32".

type float64 [SWS_Platform_00042] 📄 PDF

typedef double float64;

This standard AUTOSAR type shall follow the 64-bit binary interchange format according to IEEE 754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary64".

type VoidPtr [SWS_Platform_91001] 📄 PDF

typedef void* VoidPtr;

This standard AUTOSAR type shall be a void pointer Note: This type shall be used for buffers that contain data returned to the caller.

type ConstVoidPtr [SWS_Platform_91002] 📄 PDF

typedef const void* ConstVoidPtr;

This standard AUTOSAR type shall be a void pointer to const. Note: This type shall be used for buffers that are passed to the callee.

type CPU_TYPE [SWS_Platform_00064] 📄 PDF

This symbol shall be defined as #define having one of the values CPU_TYPE_8, CPU_TYPE_16, CPU_TYPE_32 or CPU_TYPE_64 according to the platform.

type CPU_BIT_ORDER [SWS_Platform_00038] 📄 PDF

This symbol shall be defined as #define having one of the values MSB_FIRST or LSB_FIRST according to the platform.

type CPU_BYTE_ORDER [SWS_Platform_00039] 📄 PDF

This symbol shall be defined as #define having one of the values HIGH_BYTE_FIRST or LOW_ BYTE_FIRST according to the platform.

type TRUE_FALSE [SWS_Platform_00056] 📄 PDF

The symbols TRUE and FALSE shall be defined as follows: #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif

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

Record
AUTOSAR/AP/record/CP_MOD_Platform
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Platform@rel:R20-11#e1ea6195
Content hash
e1ea6195
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_PlatformTypes.pdf#nameddest=SWS_Platform_00026

Typen

boolean type

This standard AUTOSAR type shall only be used together with the definitions TRUE and FALSE.

typedef unsigned char boolean;

This standard AUTOSAR type shall be a void pointer to const. Note: This type shall be used for buffers that are passed to the callee.

typedef const void* ConstVoidPtr;

This symbol shall be defined as #define having one of the values MSB_FIRST or LSB_FIRST according to the platform.

This symbol shall be defined as #define having one of the values HIGH_BYTE_FIRST or LOW_ BYTE_FIRST according to the platform.

This symbol shall be defined as #define having one of the values CPU_TYPE_8, CPU_TYPE_16, CPU_TYPE_32 or CPU_TYPE_64 according to the platform.

float32 type

This standard AUTOSAR type shall follow the 32-bit binary interchange format according to IEEE 754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary32".

typedef float float32;
float64 type

This standard AUTOSAR type shall follow the 64-bit binary interchange format according to IEEE 754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary64".

typedef double float64;
sint16 type

This standard AUTOSAR type shall be of 16 bit signed.

typedef signed short sint16;

This optimized AUTOSAR type shall be at least 16 bit signed.

typedef signed int sint16_least;
sint32 type

This standard AUTOSAR type shall be 32 bit signed.

typedef signed long sint32;

This optimized AUTOSAR type shall be at least 32 bit signed.

typedef signed int sint32_least;
sint64 type

This standard AUTOSAR type shall be 64 bit signed.

typedef signed long long sint64;
sint8 type

This standard AUTOSAR type shall be of 8 bit signed.

typedef signed char sint8;

This optimized AUTOSAR type shall be at least 8 bit signed.

typedef signed int sint8_least;

The symbols TRUE and FALSE shall be defined as follows: #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif

uint16 type

This standard AUTOSAR type shall be of 16 bit unsigned.

typedef unsigned short uint16;

This optimized AUTOSAR type shall be at least 16 bit unsigned.

typedef unsigned int uint16_least;
uint32 type

This standard AUTOSAR type shall be 32 bit unsigned.

typedef unsigned long uint32;

This optimized AUTOSAR type shall be at least 32 bit unsigned.

typedef unsigned int uint32_least;
uint64 type

This standard AUTOSAR type shall be 64 bit unsigned.

typedef unsigned long long uint64;
uint8 type

This standard AUTOSAR type shall be of 8 bit unsigned.

typedef unsigned char uint8;

This optimized AUTOSAR type shall be at least 8 bit unsigned.

typedef unsigned int uint8_least;
VoidPtr type

This standard AUTOSAR type shall be a void pointer Note: This type shall be used for buffers that contain data returned to the caller.

typedef void* VoidPtr;