Stelt uniform benoemde basistypen en identificatiesymbolen voor registerbreedte en endianness van de doelprocessor beschikbaar.
DOOR AI GEGENEREERDongecontroleerdModel: claude-opus-5-5 · Inspanning: high · Temperatuur: niet regelbaar · Prompt: 7e73f6d7bb31HerkomstOpen vragen (3)
Causaal anker: R20-11Geldig vanaf R20-11Nieuw gesynthetiseerd voor deze specificatiestand.
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Stelt uniform benoemde basistypen en identificatiesymbolen voor registerbreedte en endianness van de doelprocessor beschikbaar.
Platform_Types.h stelt de platformafhankelijke basistypen van het Classic Platform beschikbaar: geheeltallige typen met vaste breedte van uint8 tot sint64, geoptimaliseerde *_least-typen, float32/float64, boolean met TRUE/FALSE en de bufferpointers VoidPtr en ConstVoidPtr. Daarnaast duiden CPU_TYPE, CPU_BIT_ORDER en CPU_BYTE_ORDER de registerbreedte en endianness van het doel aan [SWS_Platform_00046]. boolean mag alleen met TRUE en FALSE en zonder rekenkundige of bitwise operatoren worden gebruikt [SWS_Platform_00034]. De header mag niet worden uitgebreid, anders gaat de AUTOSAR-conformiteit verloren.
Platform_Types.h is de platformafhankelijke typebasis van het Classic Platform. De header kapselt woordbreedten en endianness van het doel in achter uniforme namen en mag niet worden uitgebreid, omdat elke uitbreiding de AUTOSAR-conformiteit tenietdoet [SWS_Platform_00002]. In de modelweergave bevinden de typen zich onder een vast pad zoals /AUTOSAR_Platform/ImplementationDatatypes/uint8TPS StandardizationTemplate p. 77.
De header stelt de volgende typegroepen beschikbaar:
boolean wordt in R20-11 geïmplementeerd als het kortste native ondersteunde geheeltallige type zonder teken, gewoonlijk 8 bits [SWS_Platform_00027]. Latere versies wijken daarvan af en gebruiken _BoolSWS PlatformTypes p. 18. Het type moet pointercompatibel zijn [SWS_Platform_00060] en mag alleen met TRUE en FALSE worden gebruikt. Rekenkundige en bitwise operatoren zijn verboden [SWS_Platform_00034], en herdefinities van de symbolen moeten door middel van een voorwaardelijke controle worden vermeden [SWS_Platform_00054].
Per platform moeten bovendien drie symbolen worden vastgelegd: CPU_TYPE voor de registerbreedte [SWS_Platform_00045], CPU_BIT_ORDER met MSB_FIRST of LSB_FIRST[SWS_Platform_00048][SWS_Platform_00049] en CPU_BYTE_ORDER met HIGH_BYTE_FIRST of LOW_BYTE_FIRST[SWS_Platform_00050][SWS_Platform_00051]. Bitnamen en significantie mogen daarbij niet worden verward, want het MSB staat in de accumulator altijd links SWS PlatformTypes p. 15. Interpretatie: De module kent geen runtimefouten; onjuiste toewijzingen komen pas aan het licht bij integratie of conformiteitscontrole. Vraag (open)
Rol van Platform_Types.h: de platformafhankelijke typebasis
De module is geen uitvoerbare bouwsteen, maar een header. Alle gespecificeerde typen en symbolen zijn „Available via Platform_Types.h”, zoals uint8[SWS_Platform_00013] of CPU_TYPE[SWS_Platform_00064]. De header verbergt de eigenschappen van doelmicrocontroller en compiler achter uniforme namen: woordbreedten, bitvolgorde en bytevolgorde. Daarmee behoort hij tot de in SRS_BSW_00161 vereiste microcontroller-abstractie met gestandaardiseerde interface naar hogere lagen SRS BSWGeneral p. 88. Naar precies deze upstream-requirement verwijzen ook de regels voor de bytevolgorde SWS PlatformTypes p. 16.
De systeemgrens is nauw getrokken. De header mag niet worden uitgebreid, want elke uitbreiding doet de AUTOSAR-conformiteit teniet [SWS_Platform_00002]. Returntypen voor succes of falen van een API-aanroep bevinden zich daarentegen in Std_Types.hSRS BSWGeneral p. 68. In de modelweergave zijn de platformtypen vastgelegd als blueprints, bijvoorbeeld onder /AUTOSAR/Platform/ImplementationDatatypes_Blueprint/uint8. Ze worden geïmplementeerd onder /AUTOSAR_Platform/ImplementationDatatypes/uint8, zodat componentleveranciers ze via een voorspelbaar pad bereiken TPS StandardizationTemplate p. 77.
Geheeltallige typen en drijvende-kommatypen met gegarandeerde breedte
De kern van de module bestaat uit unsigned en signed types met een vaste breedte van 8 tot 64 bit en twee floating-point types. Normatief leggen de requirements breedte en waardebereik vast, zoals “32 bit unsigned” voor uint32[SWS_Platform_00015]. De C-typedefs in de API-catalogus, bijvoorbeeld typedef unsigned long uint32;, moeten vermoedelijk als een typische afbeelding worden gelezen, die afhankelijk van de compiler anders kan uitvallen (interpretatie). Vraag Q-d0ca377fc1abd98a (open)
Voor de signed types ondersteunt AUTOSAR bij compiler en doelplatform uitsluitend tweeledig complement (two's complement) rekenkunde. Hieruit volgen de asymmetrische waardebereiken in tabel [SWS_Platform_00061]. Andere specificaties gaan consequent uit van deze types. De CRC-bibliotheek definieert bijvoorbeeld uint8 Crc_CalculateCRC8(const uint8*, uint32, uint8, boolean)SWS CRCLibrary p. 41. COM moet de endianness-conversie voor uint16 tot float64 ondersteunen RS COM p. 14. Beide passages zijn afkomstig uit latere releases en dienen louter ter illustratie van het gebruik.
Geoptimaliseerde types *_least voor tellers en toestanden
Naast de types met exacte breedte definieert de module zes geoptimaliseerde types. Deze garanderen slechts een minimale breedte en zijn afgeleid van uint respectievelijk sint:
De implementatie mag dus een bredere weergave kiezen. De catalogussignaturen beelden alle zes types af op unsigned int respectievelijk signed int[SWS_Platform_00020].
Als toepassingsvoorbeelden noemt de specificatie lustellers (maximaal 124 iteraties ⇒ uint8_least) en switch-argumenten (17 toestanden ⇒ uint8_least). Voor details verwijst zij naar het hoofdstuk “AUTOSAR Integer Data Types” van de algemene BSW-eisen SWS PlatformTypes p. 17.
boolean, TRUE en FALSE conform de regels gebruiken
boolean heeft het waardebereik FALSE = 0 en TRUE = 1 en mag uitsluitend samen met deze definities worden gebruikt [SWS_Platform_00026]. Voor R20-11 geldt: boolean wordt geïmplementeerd als een unsigned integer-type met de kortste bitlengte die het platform native ondersteunt, doorgaans 8 bit [SWS_Platform_00027]. Een documentpassage uit R24-11/R25-11 formuleert dezelfde identifier anders: daar wordt boolean via het C99-type _Bool geïmplementeerd en legt AUTOSAR de exacte omvang niet meer vast SWS PlatformTypes p. 18. Voor R20-11 is deze latere versie niet normatief.
boolean moet bovendien worden afgebeeld op een type waarnaar pointers kunnen wijzen, zodat parameters via de API kunnen worden overgedragen. De efficiënte bit-types van sommige hardware ondersteunen geen pointers en vallen daarom af [SWS_Platform_00060]. Voor de symbolen TRUE en FALSE gelden drie regels:
Bij toekenningen aan boolean-variabelen zijn rekenkundige en bitsgewijze operatoren verboden: +, ++, -, --, *, /, %, <<, >>, ~ en &. Toegestaan is uitsluitend de toekenning van TRUE of FALSE en van resultaten uit relaties, logische bewerkingen en (on)gelijkheidstoetsen. Vergelijkingen vinden uitsluitend plaats met == respectievelijk != tegen TRUE/FALSE of via if (var) respectievelijk if (!var)[SWS_Platform_00034]. Consumerende modules volgen dit patroon. Zo retourneert Bfx_GetBit het resultaat van een bittest uitdrukkelijk als TRUE of FALSESWS BFXLibrary p. 19.
Activiteitendiagram: Voor boolean-variabelen zijn alleen de vermelde toekennings- en vergelijkingsvormen toegestaan, rekenkundige en bitoperatoren niet. Bronnen: [SWS_Platform_00034], [SWS_Platform_00026]
Ongetypt bufferpointers: VoidPtr en ConstVoidPtr
De twee pointertypes verschillen in de richting van de gegevensstroom:
VoidPtr is een void* voor buffers die gegevens bevatten die aan de aanroeper worden geretourneerd [SWS_Platform_91001].
ConstVoidPtr is een const void* voor buffers die aan de aangeroepene worden overgedragen [SWS_Platform_91002].
Hoe dit er in interfaces uitziet, toont de Key Manager. KeyMServiceCertificateByCertId draagt RequestData als ConstVoidPtr over samen met een lengte van het type uint32. Het antwoord wordt opgevangen door ResponseData van het type VoidPtr; ResponseDataLength (INOUT) geeft daarbij de beschikbare bufferlengte aan SWS KeyManager p. 111. Verdere voorbeelden:
KeyM_CertDataType refereert aan certificaatgegevens in het lokale datagebied van de aanroeper via een VoidPtrSWS KeyManager p. 97.
In alle drie de voorbeelden wordt de lengte als afzonderlijke uint32-parameter of als eigen structuurelement meegegeven, omdat een ongetypt pointer geen lengte-informatie bevat.
Bij big-endian-bitvolgorde geldt CPU_BIT_ORDER = MSB_FIRST, bij little-endian LSB_FIRST[SWS_Platform_00048][SWS_Platform_00049]. Bitnamen en significantie moeten daarbij strikt gescheiden worden. De MSB staat in de accumulator ongeacht het CPU-type altijd uiterst links. Bij Motorola-architecturen (Big Endian Bit Order) duidt Bit0 het meest significante bit aan, bij alle andere het minst significante SWS PlatformTypes p. 15SWS PlatformTypes Afb. 7.1 p. 14.
Bij big-endian-bytevolgorde geldt CPU_BYTE_ORDER = HIGH_BYTE_FIRST: het meest significante byte van een 16-bit waarde bevindt zich op adres n, het minst significante op n+1. Bij little-endian geldt LOW_BYTE_FIRST met omgekeerde toewijzing [SWS_Platform_00050][SWS_Platform_00051]. De aanduidingen Byte0 en Byte1 dienen louter ter illustratie en kunnen in de referentiedocumentatie van een fabrikant afwijken SWS PlatformTypes p. 16.
Waarom deze gegevens noodzakelijk zijn, motiveren andere specificaties. De geheugenweergave van gegevens hangt sterk af van de processorarchitectuur en compilerinstellingen. Daarom vereist SOME/IP een serialisatie-algoritme dat naar een gemeenschappelijke netwerkweergave converteert RS SOMEIPProtocol p. 21. Vermoedelijk baseren dergelijke omrekeningen zich in implementaties op CPU_BYTE_ORDER; de payload toont dit echter niet expliciet aan. Vraag Q-87e212e9eb2a2047 (open)
Gedrag in het foutgeval
Interpretatie: Omdat Platform_Types.h alleen types en symbolen levert, kent de module geen runtime-fouten en geen foutcodes. Vraag Q-e504d08b84d7ff70 (open) Foutpatronen openbaren zich bij compilatie, integratie of conformiteitstests. De requirements noemen de typische oorzaken [SWS_Platform_00002]:
Uitbreidingen van de header zijn niet toegestaan; elke uitbreiding heft de conformiteit op [SWS_Platform_00002].
Dubbele definities van TRUE/FALSE bij aanwezige compilerondersteuning moeten door middel van een voorwaardelijke controle worden voorkomen [SWS_Platform_00054][SWS_Platform_00056].
Een boolean die geen pointers ondersteunt, schendt [SWS_Platform_00060], omdat parameters dan niet via de API kunnen worden overgedragen.
Rekenkundige bewerkingen of bitoperaties op boolean zijn niet toegestaan, evenmin als andere dan de vermelde vergelijkingsvormen [SWS_Platform_00034].
Code die uitgaat van one's complement of symmetrische waardebereiken wordt niet gedekt, aangezien alleen two's complement wordt ondersteund [SWS_Platform_00061].
Bij een releasewijziging moet het voorschrift voor boolean in acht worden genomen: R20-11 [SWS_Platform_00027] en latere versies SWS PlatformTypes p. 18 verschillen. Code die uitgaat van een vaste omvang van boolean dient daarom vóór de overstap te worden gecontroleerd.
AI-gegenereerde handleiding op basis van de requirements van R20-11 en bijbehorende documentpassages, die deels uit latere releases afkomstig zijn. Maatgevend is de specificatie.
Platform Types (Platform_Types)
Platform-specific fundamental data types (integers, booleans, floating-point numbers) mapped to CPU architecture primitives.
Typen — Übersicht
typedef booleanThis standard AUTOSAR type shall only be used together with the definitions TRUE and FALSE.
typedef uint8This standard AUTOSAR type shall be of 8 bit unsigned.
typedef uint16This standard AUTOSAR type shall be of 16 bit unsigned.
typedef uint32This standard AUTOSAR type shall be 32 bit unsigned.
typedef uint64This standard AUTOSAR type shall be 64 bit unsigned.
typedef sint8This standard AUTOSAR type shall be of 8 bit signed.
typedef sint16This standard AUTOSAR type shall be of 16 bit signed.
typedef sint32This standard AUTOSAR type shall be 32 bit signed.
typedef sint64This standard AUTOSAR type shall be 64 bit signed.
typedef uint8_leastThis optimized AUTOSAR type shall be at least 8 bit unsigned.
typedef uint16_leastThis optimized AUTOSAR type shall be at least 16 bit unsigned.
typedef uint32_leastThis optimized AUTOSAR type shall be at least 32 bit unsigned.
typedef sint8_leastThis optimized AUTOSAR type shall be at least 8 bit signed.
typedef sint16_leastThis optimized AUTOSAR type shall be at least 16 bit signed.
typedef sint32_leastThis optimized AUTOSAR type shall be at least 32 bit signed.
typedef float32This standard AUTOSAR type shall follow the 32-bit binary interchange format according to IEEE 754-2008 with encoding...
typedef float64This standard AUTOSAR type shall follow the 64-bit binary interchange format according to IEEE 754-2008 with encoding...
typedef VoidPtrThis standard AUTOSAR type shall be a void pointer Note: This type shall be used for buffers that contain data returned to the...
typedef ConstVoidPtrThis standard AUTOSAR type shall be a void pointer to const.
CPU_TYPEThis 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...
CPU_BIT_ORDERThis symbol shall be defined as #define having one of the values MSB_FIRST or LSB_FIRST according to the platform.
CPU_BYTE_ORDERThis symbol shall be defined as #define having one of the values HIGH_BYTE_FIRST or LOW_ BYTE_FIRST according to the platform.
TRUE_FALSEThe symbols TRUE and FALSE shall be defined as follows: #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif
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".
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".
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".
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".
gemini-3.8-flash-low· 2026-10-13 · Duits origineel