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

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

Предоставляет единообразно названные базовые типы и символы-идентификаторы для разрядности регистров и порядка байтов целевого процессора.
СОЗДАНО ИИ не проверено Модель: claude-opus-5-5 · Усилие: high · Температура: не регулируется · Промпт: 7e73f6d7bb31 Происхождение Открытые вопросы (3)
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Предоставляет единообразно названные базовые типы и символы-идентификаторы для разрядности регистров и порядка байтов целевого процессора.

Platform_Types.h предоставляет платформозависимые базовые типы Classic Platform: целочисленные типы фиксированной ширины от uint8 до sint64, оптимизированные типы *_least, float32/float64, boolean с TRUE/FALSE, а также указатели буфера VoidPtr и ConstVoidPtr. Кроме того, CPU_TYPE, CPU_BIT_ORDER и CPU_BYTE_ORDER определяют разрядность регистров и порядок байтов целевой платформы [SWS_Platform_00046]. boolean разрешается использовать только с TRUE и FALSE и без арифметических или побитовых операторов [SWS_Platform_00034]. Заголовочный файл нельзя расширять, иначе будет утрачено соответствие AUTOSAR.

Platform_Types.h — это платформозависимый базис типов Classic Platform. Заголовочный файл инкапсулирует ширину машинных слов и порядок байтов целевой платформы под унифицированными именами и не подлежит расширению, поскольку любое расширение аннулирует соответствие AUTOSAR [SWS_Platform_00002]. В представлении модели типы находятся по фиксированному пути, такому как /AUTOSAR_Platform/ImplementationDatatypes/uint8 TPS StandardizationTemplate с. 77.

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

  • Целочисленные типы фиксированной ширины от uint8 до sint64 [SWS_Platform_00013] [SWS_Platform_00067]; для знаковых типов допускается только дополнительный код (two's complement) [SWS_Platform_00061].
  • Оптимизированные типы *_least с минимальной шириной, например для счетчиков циклов [SWS_Platform_00020].
  • float32 и float64 согласно IEEE 754-2008 [SWS_Platform_00041].
  • Указатели буфера VoidPtr для данных, передаваемых вызывающей стороне, и ConstVoidPtr для данных, передаваемых вызываемому компоненту [SWS_Platform_91001] [SWS_Platform_91002].
typwahl start Datum festlegen zeiger Указатель на буфер? start->zeiger richtung Передать буфер вызываемому компоненту? zeiger->richtung да wahr Wahrheitswert? zeiger->wahr нет cvp ConstVoidPtr (const void*) richtung->cvp да vp VoidPtr (void*) Daten an Aufrufer richtung->vp нет bool boolean только с TRUE/FALSE wahr->bool да gleit Gleitkommazahl? wahr->gleit нет flt float32 / float64 (IEEE 754-2008) gleit->flt да least Достаточно минимальной разрядности (напр., счетчик цикла, аргумент switch)? gleit->least нет opt uint8_least … sint32_least least->opt да fest uint8 … uint64 / sint8 … sint64 least->fest нет

Диаграмма деятельности: выбор подходящего платформенного типа следует вопросам: указатель буфера, логическое значение, число с плавающей точкой, минимальная или точная ширина. Источники: [SWS_Platform_91001], [SWS_Platform_00026], SWS PlatformTypes с. 17

boolean реализуется в R20-11 как кратчайший нативно поддерживаемый беззнаковый целочисленный тип, как правило, 8 бит [SWS_Platform_00027]. Более поздние редакции отступают от этого и используют _Bool SWS PlatformTypes с. 18. Тип должен поддерживать указатели [SWS_Platform_00060] и может использоваться только с TRUE и FALSE. Арифметические и побитовые операторы запрещены [SWS_Platform_00034], а повторных определений символов следует избегать с помощью условной проверки [SWS_Platform_00054].

Для каждой платформы, кроме того, необходимо определить три символа: CPU_TYPE для разрядности регистров [SWS_Platform_00045], CPU_BIT_ORDER с MSB_FIRST или LSB_FIRST [SWS_Platform_00048] [SWS_Platform_00049] и CPU_BYTE_ORDER с HIGH_BYTE_FIRST или LOW_BYTE_FIRST [SWS_Platform_00050] [SWS_Platform_00051]. При этом нельзя смешивать имена битов и их значимость, так как MSB в аккумуляторе всегда находится слева SWS PlatformTypes с. 15. Интерпретация: модуль не имеет ошибок времени выполнения; неверные назначения проявляются только при интеграции или проверке на соответствие стандарту. Вопрос (открытый)

cpu_symbole start Zielplattform portieren breite Разрядность регистров 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

Диаграмма деятельности: разрядность регистров, порядок битов и порядок байтов целевой платформы отображаются ровно на одно значение символа для каждого параметра. Источники: [SWS_Platform_00045], [SWS_Platform_00048], [SWS_Platform_00050]

Роль Platform_Types.h: платформозависимый базис типов

Модуль представляет собой не исполняемый блок, а заголовочный файл. Все специфицированные типы и символы определены как «Available via Platform_Types.h», например uint8 [SWS_Platform_00013] или CPU_TYPE [SWS_Platform_00064]. Заголовочный файл скрывает характеристики целевого микроконтроллера и компилятора под унифицированными именами: разрядность машинных слов, порядок битов и порядок байтов. Тем самым он относится к абстракции микроконтроллера, требуемой в SRS_BSW_00161, со стандартизированным интерфейсом к верхним уровням SRS BSWGeneral с. 88. Именно на это вышестоящее требование ссылаются и правила порядка байтов SWS PlatformTypes с. 16.

Граница системы проведена строго. Заголовочный файл нельзя расширять, поскольку любое расширение отменяет соответствие AUTOSAR [SWS_Platform_00002]. Возвращаемые типы для успешного или неуспешного завершения API-вызова, напротив, находятся в Std_Types.h SRS BSWGeneral с. 68. В представлении модели платформенные типы сохранены в виде шаблонов (blueprints), например в /AUTOSAR/Platform/ImplementationDatatypes_Blueprint/uint8. Они реализуются в /AUTOSAR_Platform/ImplementationDatatypes/uint8, чтобы поставщики компонентов могли обращаться к ним по предсказуемому пути TPS StandardizationTemplate с. 77.

einbettung ziel Целевой микроконтроллер / компилятор (разрядность регистров, порядок битов и байтов) 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 из boolean) pt->bmc Basistyp keym KeyM / Csm (ConstVoidPtr, VoidPtr, uint32) pt->keym Pufferzeiger cansm CanSM (boolean-Parameter) pt->cansm Typen

Контекстная диаграмма: целевая платформа определяет наполнение Platform_Types.h, типы которого в представлении модели находятся по фиксированному пути и используются многими модулями BSW. Примеры использования взяты из более поздних релизов. Источники: [SWS_Platform_00038], TPS StandardizationTemplate с. 77, SWS BFXLibrary с. 19, SWS CRCLibrary с. 41, SWS BSWMulticoreLibrary с. 16, SWS KeyManager с. 111, SWS CANStateManager с. 83

Целочисленные типы и типы с плавающей точкой гарантированной ширины

Ядром модуля являются беззнаковые и знаковые типы фиксированной ширины от 8 до 64 бит, а также два типа с плавающей точкой. Нормативно требования определяют ширину и диапазон значений, например «32 bit unsigned» для uint32 [SWS_Platform_00015]. Определения C-typedef в каталоге API, например typedef unsigned long uint32;, вероятно, следует читать как типичное отображение, которое может варьироваться в зависимости от компилятора (интерпретация). Вопрос Q-d0ca377fc1abd98a (открытый)

ТипШирина / форматДиапазон значенийОбоснование
uint88 бит, беззнаковый0..255[SWS_Platform_00013]
uint1616 бит, беззнаковый0..65535[SWS_Platform_00014]
uint3232 бит, беззнаковый0..4294967295[SWS_Platform_00015]
uint6464 бит, беззнаковый0..18446744073709551615[SWS_Platform_00066]
sint88 бит, знаковый-128..+127[SWS_Platform_00016]
sint1616 бит, знаковый-32768..+32767[SWS_Platform_00017]
sint3232 бит, знаковый-2147483648..+2147483647[SWS_Platform_00018]
sint6464 бит, знаковый-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]

Для знаковых типов AUTOSAR поддерживает в компиляторе и целевой платформе исключительно арифметику дополнительного кода. Из этого следуют асимметричные диапазоны значений в таблице [SWS_Platform_00061]. Другие спецификации повсеместно предполагают наличие этих типов. Библиотека CRC, например, определяет uint8 Crc_CalculateCRC8(const uint8*, uint32, uint8, boolean) SWS CRCLibrary с. 41. COM должен поддерживать преобразование порядка байтов для типов от uint16 до float64 RS COM с. 14. Оба места взяты из более поздних релизов и служат лишь иллюстрацией применения.

Оптимизированные типы *_least для счетчиков и состояний

Наряду с типами точной ширины модуль определяет шесть оптимизированных типов. Они гарантируют лишь минимальную ширину и производны от uint и sint соответственно:

Таким образом, реализация может выбрать более широкое представление. Сигнатуры каталога отображают все шесть типов на unsigned int и signed int соответственно [SWS_Platform_00020].

В качестве примеров использования спецификация называет счетчики циклов (не более 124 итераций ⇒ uint8_least) и аргументы switch (17 состояний ⇒ uint8_least). За подробностями она отсылает к главе «AUTOSAR Integer Data Types» общих требований к BSW SWS PlatformTypes с. 17.

Корректное использование boolean, TRUE и FALSE в соответствии с правилами

boolean имеет диапазон значений FALSE = 0 и TRUE = 1 и может использоваться только вместе с этими определениями [SWS_Platform_00026]. Для R20-11 действует следующее: boolean реализуется как беззнаковый целочисленный тип с кратчайшей битовой длиной, которую платформа поддерживает нативно, как правило, 8 бит [SWS_Platform_00027]. Место в документе из R24-11/R25-11 формулирует тот же идентификатор иначе: там boolean реализуется через C99-тип _Bool, и AUTOSAR больше не фиксирует точный размер SWS PlatformTypes с. 18. Для R20-11 эта более поздняя редакция не является нормативной.

boolean, кроме того, должен отображаться на тип, на который могут указывать указатели, чтобы параметры могли передаваться через API. Эффективные битовые типы некоторых аппаратных платформ не поддерживают указатели и поэтому исключаются [SWS_Platform_00060]. Для символов TRUE и FALSE действуют три правила:

  • Они определяются с защитой #ifndef как 1 и 0 [SWS_Platform_00056].
  • Если компилятор уже предоставляет эти символы, повторного определения следует избегать с помощью условной проверки [SWS_Platform_00054].
  • Их следует использовать только вместе с boolean [SWS_Platform_00055].

При присваиваниях переменным типа boolean арифметические и побитовые операторы запрещены: +, ++, -, --, *, /, %, <<, >>, ~ и &. Допустимо только присваивание TRUE или FALSE, а также результатов отношений, логических операций и проверок на (не)равенство. Сравнение выполняется только с помощью == или != с TRUE/FALSE либо через if (var) или if (!var) [SWS_Platform_00034]. Использующие модули следуют этому шаблону. Так, Bfx_GetBit явно возвращает результат проверки бита как TRUE или FALSE SWS BFXLibrary с. 19.

boolean_regeln start Операция над переменной boolean art Присваивание или сравнение? start->art zuw Правая часть: TRUE/FALSE, отношение (<, >, <=, >=), логическое (&&, ||, !) или (==, !=)? art->zuw Zuweisung verg Форма: == TRUE/FALSE, != TRUE/FALSE, if (var) или if (!var)? art->verg Vergleich ok допустимо zuw->ok да nok недопустимо (напр., +, ++, -, --, *, /, %, <<, >>, ~, &) zuw->nok нет verg->ok да nokv не указано как допустимая форма verg->nokv нет

Диаграмма деятельности: для переменных boolean допустимы только перечисленные формы присваивания и сравнения, арифметические и побитовые операторы запрещены. Источники: [SWS_Platform_00034], [SWS_Platform_00026].

Нетипизированные указатели буфера: VoidPtr и ConstVoidPtr

Оба типа указателей различаются направлением потока данных:

  • VoidPtr представляет собой void* для буферов, содержащих данные, возвращаемые вызывающей стороне [SWS_Platform_91001].
  • ConstVoidPtr представляет собой const void* для буферов, передаваемых вызываемому компоненту [SWS_Platform_91002].

Направление потока данных заложено уже в имени типа SWS PlatformTypes с. 27 SWS PlatformTypes с. 28.

Как это выглядит в интерфейсах, показывает Key Manager. KeyMServiceCertificateByCertId передает RequestData как ConstVoidPtr вместе с длиной типа uint32. Ответ принимает ResponseData типа VoidPtr; ResponseDataLength (INOUT) при этом указывает доступную длину буфера SWS KeyManager с. 111. Другие примеры:

  • KeyM_CertDataType ссылается на данные сертификата в локальной области данных вызывающей стороны через VoidPtr SWS KeyManager с. 97.
  • Crypto Service Manager передает seed как ConstVoidPtr SWS CryptoServiceManager с. 124.

Во всех трех примерах длина передается в виде отдельного параметра uint32 или отдельного элемента структуры, поскольку нетипизированный указатель не несет информации о длине.

Передача буфера с помощью ConstVoidPtr и VoidPtr (пример KeyM)Вызывающая сторонаKeyMСохранить данные запроса в буфереAntwortpuffer bereitstellenKeyM_ServiceCertificateByCertId(Service, RequestData: ConstVoidPtr,RequestDataLength: uint32,ResponseData: VoidPtr,ResponseDataLength: uint32 [INOUT])ConstVoidPtr: буфер передается вызываемому компонентуVoidPtr: буфер принимает данные для вызывающего компонентаaltOperation angenommenE_OKне принятоE_NOT_OK / KEYM_E_BUSY /KEYM_E_KEY_CERT_SIZE_MISMATCH /KEYM_E_PARAMETER_MISMATCH

Диаграмма последовательности: при вызове службы ConstVoidPtr передает запрос вызываемому компоненту, VoidPtr принимает ответ для вызывающей стороны. Источники: SWS KeyManager с. 111, [SWS_Platform_91001], [SWS_Platform_91002]

typwahl start Datum festlegen zeiger Указатель на буфер? start->zeiger richtung Передать буфер вызываемому компоненту? zeiger->richtung да wahr Wahrheitswert? zeiger->wahr нет cvp ConstVoidPtr (const void*) richtung->cvp да vp VoidPtr (void*) Daten an Aufrufer richtung->vp нет bool boolean только с TRUE/FALSE wahr->bool да gleit Gleitkommazahl? wahr->gleit нет flt float32 / float64 (IEEE 754-2008) gleit->flt да least Достаточно минимальной разрядности (напр., счетчик цикла, аргумент switch)? gleit->least нет opt uint8_least … sint32_least least->opt да fest uint8 … uint64 / sint8 … sint64 least->fest нет

Диаграмма деятельности: выбор типа определяется вопросами о буферном указателе, логическом значении, числе с плавающей точкой, минимальной или точной разрядности. Источники: [SWS_Platform_91001], [SWS_Platform_91002], [SWS_Platform_00026], [SWS_Platform_00041], [SWS_Platform_00020], SWS PlatformTypes с. 17

Идентификация платформы: CPU_TYPE, CPU_BIT_ORDER, CPU_BYTE_ORDER

Для каждой платформы в заголовке необходимо определить три свойства:

Оба символа порядка представляют собой #define, принимающие ровно одно из допустимых значений [SWS_Platform_00038] [SWS_Platform_00039].

cpu_symbole start Zielplattform portieren breite Разрядность регистров 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

Диаграмма деятельности: при портировании на целевую платформу определяются разрядность регистров, порядок битов и порядок байтов, которые отображаются ровно на одно символьное значение каждый. Источники: [SWS_Platform_00045], [SWS_Platform_00048], [SWS_Platform_00049], [SWS_Platform_00050], [SWS_Platform_00051]

При прямом порядке битов (big-endian) действует CPU_BIT_ORDER = MSB_FIRST, при обратном (little-endian) — LSB_FIRST [SWS_Platform_00048] [SWS_Platform_00049]. При этом следует строго разделять наименования битов и их весовое значение. MSB в аккумуляторе независимо от типа CPU всегда находится в крайней левой позиции. В архитектурах Motorola (Big Endian Bit Order) обозначение Bit0 относится к старшему биту, во всех остальных — к младшему SWS PlatformTypes с. 15 SWS PlatformTypes Рис. 7.1 с. 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

Структурная диаграмма по рис. 7.1: весовое значение битов регистра фиксировано, только нумерация Bit0 зависит от CPU_BIT_ORDER. Источники: SWS PlatformTypes Рис. 7.1 с. 14, SWS PlatformTypes с. 15

При прямом порядке байтов (big-endian) действует CPU_BYTE_ORDER = HIGH_BYTE_FIRST: старший байт 16-битного значения располагается по адресу n, младший — по адресу n+1. При обратном порядке (little-endian) действует LOW_BYTE_FIRST с обратным размещением [SWS_Platform_00050] [SWS_Platform_00051]. Обозначения Byte0 и Byte1 служат только для иллюстрации и могут отличаться в справочной документации производителя SWS PlatformTypes с. 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

Структурная диаграмма по рис. 7.2/7.3: одно и то же значение uint16 в зависимости от CPU_BYTE_ORDER отображается на адреса n и n+1 с переставленными байтами. Источники: SWS PlatformTypes Рис. 7.2 с. 16, SWS PlatformTypes Рис. 7.3 с. 15, [SWS_Platform_00039]

Необходимость этих указаний обосновывается другими спецификациями. Представление данных в памяти сильно зависит от архитектуры процессора и настроек компилятора. Поэтому SOME/IP требует алгоритм сериализации, переводящий данные в единое сетевое представление RS SOMEIPProtocol с. 21. Предположительно, подобные преобразования в реализациях опираются на CPU_BYTE_ORDER; однако payload явным образом этого не подтверждает. Вопрос Q-87e212e9eb2a2047 (открытый)

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

Интерпретация: поскольку Platform_Types.h предоставляет только типы и символы, модуль не имеет ошибок времени выполнения и кодов ошибок. Вопрос Q-e504d08b84d7ff70 (открытый) Признаки ошибок проявляются при компиляции, интеграции или проверке на соответствие стандарту. Требования называют типичные причины [SWS_Platform_00002]:

  • Расширения заголовочного файла недопустимы; любое расширение аннулирует соответствие стандарту [SWS_Platform_00002].
  • Повторные определения TRUE/FALSE при наличии поддержки со стороны компилятора должны предотвращаться с помощью условной проверки [SWS_Platform_00054] [SWS_Platform_00056].
  • Неверно заданные символы порядка нарушают требования от [SWS_Platform_00048] до [SWS_Platform_00051]. Особенно подвержено ошибкам смешение наименований битов из документации производителя с их весовым значением SWS PlatformTypes с. 15.
  • Тип boolean, не поддерживающий указатели, нарушает [SWS_Platform_00060], так как в этом случае параметры невозможно передать через API.
  • Арифметика или побитовые операции над boolean недопустимы, как и формы сравнения, отличные от перечисленных [SWS_Platform_00034].
  • Код, предполагающий обратный код (единичное дополнение) или симметричные диапазоны значений, не поддерживается, так как поддерживается только дополнительный код [SWS_Platform_00061].
  • При смене релиза следует учитывать предписание для boolean: R20-11 [SWS_Platform_00027] и более поздние редакции SWS PlatformTypes с. 18 различаются. Поэтому код, предполагающий фиксированный размер boolean, перед сменой релиза подлежит проверке.

Дальнейшие подробные доказательства

Руководство, созданное ИИ на основе требований R20-11 и соответствующих фрагментов документации, часть из которых взята из более поздних релизов. Определяющей является спецификация.

Platform Types (Platform_Types)

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

Typen — Übersicht

Typen — Detailansicht

тип 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".

тип 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".

тип 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.

тип 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.

тип 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.

тип 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.

тип 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.

тип 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#b58f97cd
Content hash
b58f97cd
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_PlatformTypes.pdf#nameddest=SWS_Platform_00026

Типы

boolean тип

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.

CPU_TYPE тип

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 тип

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 тип

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 тип

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 тип

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 тип

This standard AUTOSAR type shall be 64 bit signed.

typedef signed long long sint64;
sint8 тип

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;
TRUE_FALSE тип

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

uint16 тип

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 тип

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 тип

This standard AUTOSAR type shall be 64 bit unsigned.

typedef unsigned long long uint64;
uint8 тип

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 тип

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;