标准类型规范(Specification of Standard Types)

📄 文档 ID:049 🏷 类型:SWS(软件规范) 📅 版本:AUTOSAR CP 4.4.0 📑 页数:22 📌 状态:Final 🔗 原 PDF:AUTOSAR_SWS_StandardTypes.pdf

目录

1 介绍与功能概述(Introduction and functional overview)

本规范定义了 AUTOSAR 标准类型头文件。它包含所有在多个基础软件模块中复用、且与平台和编译器无关的类型。

强烈推荐在 AUTOSAR 社区内统一使用该标准类型文件,以保证类型的唯一性,并避免从供应商 A 切换到供应商 B 时类型发生变化。

2 缩略语与术语(Acronyms and abbreviations)

仅在本文件局部使用、因而未收录到 AUTOSAR 术语表中的缩略语与术语,必须在本节"局部术语表"中列出。

缩略语说明
APIApplication Programming Interface(应用程序编程接口)
OSEK/VDXOffene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug(汽车电子开放系统及其接口)
缩写说明
STDStandard(标准)

3 相关文档(Related documentation)

3.1 输入文档

编号文档名原 PDF
[1]General Requirements on Basic Software ModulesAUTOSAR_SRS_BSWGeneral.pdf
[2]General Requirements on SPALAUTOSAR_SRS_SPALGeneral.pdf
[3]Specification of RTE SoftwareAUTOSAR_SWS_RTE.pdf
[4]Basic Software Module Description TemplateAUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf
[5]List of Basic Software ModulesAUTOSAR_TR_BSWModuleList
[6]General Specification of Basic Software ModulesAUTOSAR_SWS_BSWGeneral.pdf

3.2 相关标准与规范

编号标准
[7]OSEK/VDX Operating System, ISO 17356-3: OS
[8]ISO/IEC 9899:1990 Programming Language – C

3.3 相关规范

AUTOSAR 提供了通用基础软件模块规范 [6](SWS BSW General),该规范对标准类型同样适用。

因此,SWS BSW General 应被视为标准类型的附加且必需的规范。

4 约束与假设(Constraints and assumptions)

4.1 限制(Limitations)

无限制。

4.2 对汽车领域的适用性(Applicability to car domains)

本规范中定义的许多符号(如 OKNOT_OKONOFF)在遗留软件中已经定义并使用。这些"现有符号被重定义"的冲突预期会出现,但因以下原因而被忽略:

  1. AUTOSAR 必须保持与遗留 ECU 的网络兼容性,但不必保持与遗留软件的软件架构兼容性。许多类型定义和使用方式与遗留软件完全相同,遗留软件可继续使用这些符号,只需移除其原有定义并改用本文件的定义即可。

5 软件架构(Software Architecture)

5.1 对其他模块的依赖(Dependencies to other modules)

无。

5.2 文件结构(File structure)

包含结构在属于 COM 栈的 BSW 模块和其他模块之间有所不同:

5.2.1 通信相关 BSW 模块

[SWS_Std_00016]

包含文件的结构应当(shall)如下:

参考:SRS_BSW_00024

6 需求追溯(Requirements traceability)

下表列出本规范涉及的 SRS 需求及其满足情况。本文档共引用了约 100+ SRS 需求条目,绝大部分通过 SWS_Std_00999 声明"不适用"(见 第 11 节)。实际适用的 SRS 需求包括:

SRS 需求描述由以下满足
SRS_BSW_00004所有基础软件模块应当对所包含的头文件版本进行预处理检查SWS_Std_00015
SRS_BSW_00024SWS_Std_00016
SRS_BSW_00059SWS_Std_00014
SRS_BSW_00348所有 AUTOSAR 标准类型与常量应当放置和组织在标准类型头文件中SWS_Std_00007SWS_Std_00010SWS_Std_00013
SRS_BSW_00357API 调用成功/失败应当使用一个标准返回类型SWS_Std_00005SWS_Std_00006SWS_Std_00011
SRS_BSW_00441类型、宏、函数的命名约定SWS_Std_00011
其余 ~100 条由 SWS_Std_00999 声明"不适用"SWS_Std_00999
提示:完整 SRS 需求追溯表共 ~100 项,本译文仅展示实际生效的条目。其余条目均通过 SWS_Std_00999("不适用"声明)集中处理,详见 第 11 节

7 功能规范(Functional specification)

7.1 通用问题(General issues)

[SWS_Std_00004]

本文件不得(shall not)添加任何项目或供应商特定的扩展。任何扩展都将使 AUTOSAR 一致性失效。

参考:SRS_BSW_00161

[SWS_Std_00014]

标准类型头文件应当防止被多次包含:

#ifndef STD_TYPES_H
#define STD_TYPES_H
..
/*
  * Contents of file
  */
..
#endif /* STD_TYPES_H */

参考:SRS_BSW_00059

8 API 规范(API specification)

8.1 类型定义(Type definitions)

8.1.1 Std_ReturnType

[SWS_Std_00005]

名称(Name)Std_ReturnType
种类(Kind)Type(类型)
派生自(Derived from)uint8
说明(Description)该类型可用作 RTE 与 BSW 模块之间共享的标准 API 返回类型。应当按下述方式定义:
typedef uint8 Std_ReturnType;
取值范围(Range)E_OK     0     见 8.2.1,SWS_Std_00006
E_NOT_OK     1     见 8.2.1,SWS_Std_00006
0x02-0x3F     2     留给用户自定义错误使用
变化(Variation)
可获取于(Available via)StandardTypes.h

参考:SRS_BSW_00357

[SWS_Std_00011]

Std_ReturnType 一般使用值 E_OKE_NOT_OK。如果这两个返回值不够用,可使用低 6 位定义用户自定义值。

用户自定义值的命名应当SRS_BSW_00441 的要求使用模块前缀。

Std_ReturnType 的布局应与 RTE 规范一致。Bit 7 和 Bit 8 由 RTE 规范保留和定义。

参考:SRS_BSW_00357, SRS_BSW_00441

8.1.2 Std_VersionInfoType

[SWS_Std_00015]

名称(Name)Std_VersionInfoType
类型(Type)Structure(结构体)
元素(Element)uint16 vendorID
uint16 moduleID
uint8 sw_major_version
uint8 sw_minor_version
uint8 sw_patch_version
说明(Description)该类型应当用于通过 <Module name>_GetVersionInfo() 函数请求 BSW 模块的版本信息。
可获取于(Available via)StandardTypes.h

参考:SRS_BSW_00004

8.2 符号定义(Symbol definitions)

8.2.1 E_OKE_NOT_OK

[SWS_Std_00006]

名称(Name)E_OKE_NOT_OK
类型(Type)Enumeration(枚举)
取值(Range)E_OK     0x00u     —
E_NOT_OK     0x01u     —
说明(Description)由于 E_OK 已在 OSEK 中定义,该符号需共享使用。为避免命名冲突和重定义问题,符号应按下述方式定义(已通过实现审批):
#ifndef STATUSTYPEDEFINED
#define STATUSTYPEDEFINED
#define E_OK 0x00u

typedef unsigned char StatusType; /* OSEK compliance */
#endif

#define E_NOT_OK 0x01u
可获取于(Available via)StandardTypes.h

参考:SRS_BSW_00357

8.2.2 STD_HIGHSTD_LOW

[SWS_Std_00007]

名称(Name)STD_HIGHSTD_LOW
类型(Type)Enumeration(枚举)
取值(Range)STD_LOW     0x00u
STD_HIGH     0x01u
说明(Description)STD_HIGHSTD_LOW 应当按下述方式定义:
#define STD_HIGH 0x01u /* Physical state 5V or 3.3V */
#define STD_LOW 0x00u /* Physical state 0V */
可获取于(Available via)StandardTypes.h

参考:SRS_BSW_00348

8.2.3 STD_ACTIVESTD_IDLE

[SWS_Std_00013]

名称(Name)STD_ACTIVESTD_IDLE
类型(Type)Enumeration(枚举)
取值(Range)STD_IDLE     0x00u
STD_ACTIVE     0x01u
说明(Description)STD_ACTIVESTD_IDLE 应当按下述方式定义:
#define STD_ACTIVE 0x01u /* Logical state active */
#define STD_IDLE   0x00u /* Logical state idle */
可获取于(Available via)StandardTypes.h

参考:SRS_BSW_00348

8.2.4 STD_ONSTD_OFF

[SWS_Std_00010]

名称(Name)STD_ONSTD_OFF
类型(Type)Enumeration(枚举)
取值(Range)STD_OFF     0x00u
STD_ON     0x01u
说明(Description)STD_ONSTD_OFF 应当按下述方式定义:
#define STD_ON  0x01u
#define STD_OFF 0x00u
可获取于(Available via)StandardTypes.h

参考:SRS_BSW_00348

8.3 函数定义(Function definitions)

不适用。

9 时序图(Sequence diagrams)

不适用。

10 配置规范(Configuration specification)

不适用。

11 不适用的需求(Not applicable requirements)

[SWS_Std_00999]

以下需求对本规范不适用

SRS_BSW_00300SRS_BSW_00301SRS_BSW_00302SRS_BSW_00304SRS_BSW_00305SRS_BSW_00306SRS_BSW_00307SRS_BSW_00308SRS_BSW_00309SRS_BSW_00310SRS_BSW_00312SRS_BSW_00314SRS_BSW_00321SRS_BSW_00325SRS_BSW_00327SRS_BSW_00330SRS_BSW_00331SRS_BSW_00333SRS_BSW_00334SRS_BSW_00335SRS_BSW_00342SRS_BSW_00343SRS_BSW_00341SRS_BSW_00346SRS_BSW_00347SRS_BSW_00350SRS_BSW_00353SRS_BSW_00358SRS_BSW_00359SRS_BSW_00360SRS_BSW_00361SRS_BSW_00371SRS_BSW_00373SRS_BSW_00374SRS_BSW_00377SRS_BSW_00378SRS_BSW_00379SRS_BSW_00401SRS_BSW_00408SRS_BSW_00410SRS_BSW_00411SRS_BSW_00413SRS_BSW_00414SRS_BSW_00415SRS_BSW_00005SRS_BSW_00006SRS_BSW_00007SRS_BSW_00009SRS_BSW_00010SRS_BSW_00158SRS_BSW_00160SRS_BSW_00161SRS_BSW_00162SRS_BSW_00164SRS_BSW_00172SRS_BSW_00344SRS_BSW_00404SRS_BSW_00405SRS_BSW_00345SRS_BSW_00159SRS_BSW_00167SRS_BSW_00171SRS_BSW_00170SRS_BSW_00380SRS_BSW_00419SRS_BSW_00381SRS_BSW_00412SRS_BSW_00383SRS_BSW_00388SRS_BSW_00389SRS_BSW_00390SRS_BSW_00392SRS_BSW_00393SRS_BSW_00394SRS_BSW_00395SRS_BSW_00396SRS_BSW_00397SRS_BSW_00398SRS_BSW_00399SRS_BSW_00400SRS_BSW_00375SRS_BSW_00101SRS_BSW_00416SRS_BSW_00406SRS_BSW_00168SRS_BSW_00407SRS_BSW_00423SRS_BSW_00424SRS_BSW_00425SRS_BSW_00426SRS_BSW_00427SRS_BSW_00428SRS_BSW_00429SRS_BSW_00432SRS_BSW_00433SRS_BSW_00336SRS_BSW_00337SRS_BSW_00369SRS_BSW_00339SRS_BSW_00422SRS_BSW_00417SRS_BSW_00323SRS_BSW_00409SRS_BSW_00385SRS_BSW_00386SRS_BSW_00452SRS_BSW_00473SRS_BSW_00458SRS_BSW_00466

📋 校对记录

校对轮次:L1 自动校对(2026-06-13)