CP AUTOSAR 入门系列之理解 BSWGeneral

CP AUTOSAR 入门系列之理解 BSWGeneral

CP AUTOSAR 入门系列之理解 BSWGeneral

CP AUTOSAR 入门系列之理解 BSWGeneral

中汽创智科技有限公司 – 基础软件部门

说明

文章转载请注明作者、出处以及版权声明。未经授权,禁止用于商业目的。本文章仅代表作者观点,不对其中包含或引用信息的准确性、可靠性或完整性提供任何明示或默示的承诺及保证。对于任何直接或间接采用、转载本文章信息产生的损失,作者不承担任何责任。

联系

如果您对本文档内容有任何建议,请发邮件至以下邮件列表。

邮件列表:

zhoushu@t3caic.com

autosemo-info@caam.org.cn

缩略语
缩略语 描述
EcuC ECU Configuration
PDU Protocol Data Unit
DET Default Error Tracer
DEM Diagnostic Event Manager
IdsM Intrusion Detection System Manager
Ie Implementation specific file name extension
Ma Module abbreviation
Mip Module implementation prefix
vi Vendor Id
ai Vendor Api Infix
正  文
 0 . 概述

我们刚开始看AUTOSAR基础软件代码时,时常会想代码中的符号命名、代码文件命名及代码实现都是基于什么样的规则,而这些规则又在哪儿有定义。

BSWGeneral规范是AUTOSAR基础软件的通用性规范,对所有BSW模块都适用,可以理解成该部分是各AUTOSAR软件供应商所使用的编码规范的一部分,所以建议在该规范理解的基础上,再去阅读BSW模块代码。

该规范主要包括了文件结构、一般实现规范、错误处理、元数据、配置等,下面逐一进行介绍。

 1 . 文件结构

所有BSW模块的文件结构设计需遵循该内容规范要求,主要包括:

  • 模块实现前缀
  • 模块实现文件
  • 导入和导出信息
  • 模块文档
  • 代码文件结构
  • 头文件结构
  • 版本检查

限于篇幅,这里仅对常接触的代码文件命名进行说明。

1.1 模块实现前缀(< Mip >)    

所有BSW模块的实现文件名前缀应符合以下命名规则:

<Ma>[_<vi>_<ai>]

<Ma>为BSW模块的模块缩写,比如COM模块的缩写是Com。

<Vi>为供应商ID号,该号在AUTOSAR官网可查。<ai>为供应商应用中缀。如果BSW模块没有供应商扩展的应用服务,那么中括号的内容可以省去。

CP AUTOSAR 入门系列之理解 BSWGeneral

模块实现前缀举例 [1]

1.2 模块实现文件    

所有BSW模块的实现文件名应符合以下命名规则:

<Mip>[_<Ie>]*.*

<Mip>为模块实现前缀。

[_<Ie>]为模块实现文件的扩展(.c或.h同样),表达为模块的子部分,比如COM模块的信号发送的实现代码文件可以是Com_Transmit.c

1.3 模块配置文件    

所有BSW模块的配置代码文件名应符合以下命名规则:

Pre-compile time:<Mip>[_<Ie>]_Cfg.h

Link time:<Mip>[_<Ie>]_Lcfg.c/h or <Mip>[_<Ie>]_Cfg.c/h

Post-build time:<Mip>[_<Ie>]_PBcfg.c/h

1.4 中断服务实现代码    

中断服务文件名应符合以下命名规则:

<Mip>[_<Ie>]_Irq.c ※ 如Gpt_Irq.c

 

 2 . 通用实现规范

AUTOSAR模块的代码实现需遵循该内容规范要求,主要包括:

  • 符合MISRA C 标准和C标准(Conformance to MISRA C and C standard)

  • 独立于平台要求和编译器抽象要求(Platform independency and compiler abstraction)

  • 可配置性(Configurability)

  • 不同的命名约定(Various naming conventions)

  • 配置参数(Configuration parameters)

  • 共享代码(Shared code)

  • 全局数据(Global data)

  • 宏和内联函数的用法(Usage of macros and inline functions)

  • 主处理函数(Main processing functions)

  • 专用区域(Exclusive areas)

  • 回调函数(Callouts)

  • 中断服务函数(Interrupt service routines)

  • 数据类型(Data types)

限于篇幅,这里仅对常接触的数据类型进行说明。

2.1 数据类型    

AUTOSAR通用的数据类型主要分AUTOSAR Standard Types(Std_Types.h)和Platform Specific Types[8](Platform_Types.h)。

Std_Types.h包含Platform_Types.h、Compiler.h,并且定义Std_ReturnType、E_OK/ E_NOT_OK、STD_ON /STD_OFF。

Platform_Types.h主要对数据类型进行了定义。像原生C数据类型(char, int, short, long)在不同编译器平台在可移植性和可重用性方面可能存在问题,所以AUTOSAR在该头文件通过typedef方式对原生数据类型进行了替换。比如unsigned short替换为uint16。

CP AUTOSAR 入门系列之理解 BSWGeneral

uint16类型定义 [8]

 

 3 . 错误处理

BSW模块检出的所有错误分类有6种不同类型,即开发错误(development errors)、运行时错误(runtime errors)、瞬态故障(transient faults)、生产错误(production errors)、扩展生产错误(extended production errors)、信息安全事件(security event)。

开发错误、运行时错误及瞬态故障通知到DET[6]模块。使用的函数接口名分别是Det_ReportError(用于通知开发错误)、Det_ReportRuntimeError(用于通知运行时错误)、Det_ReportTransientFault(用于通知瞬态故障)。

生产错误以及扩展生产错误通知到DEM模块,使用的是DEM模块提供的函数接口。

信息安全事件通知到IdsM模块(2020年发布的R20-11版本开始才有IdsM模块),具体的信息安全事件定义专门的arxml文件[7]中。

※  相关知识 – ISO26262的fault(故障), error(错误), failure(失效)

ISO26262 Part10[6]的4.3小节有对故障、错误和失效之间的关系进行说明。

CP AUTOSAR 入门系列之理解 BSWGeneral

故障导致失效的示例 [6]

 

 4 . 元数据

元数据(Meta Data)在AUTOSAR术语表规范[4]中的定义是“Metadata is data about data”,字面理解是“关于数据的数据”,可以理解成数据的相关信息。Metadata在AUTOSAR中主要用在通信协议栈,EcuC规范[3]里有对 PDU MetaData 的具体描述,作为PDU的额外数据主要体现为PDU相关的ID信息或地址信息。

 

CP AUTOSAR 入门系列之理解 BSWGeneral

Pdu Meta-Data [3]

 5 . 配置

建议结合分层架构规范[5]理解该部分内容,AUTOSAR在配置方面支持三种分类,即Pre-compile time、Link time、Post-build time。

  • Pre-compile time:配置以预编译宏的形式体现在预编译阶段

  • Link time:配置体现在链接阶段。出于IP保护等原因,基础软件的实现部分需要做成库文件,配置代码在链接阶段结合库文件形成最终的可执行文件。

  • Post-build time:配置数据重定向在一个指定的地址区间,支持在软件发布后重载配置数据。比如在生产线生产ECU时,可以根据需要更新配置数据。

其中,Post-build time有两个比较重要的概念,即Post-build loadable和Post-build selectable。关于配置的进一步理解,限于篇幅限制,后续打算做一个专题讨论。

参考

[1] AUTOSAR_SWS_BSWGeneral.pdf

[2] misra-c-2012.pdf

[3] AUTOSAR_TPS_ECUConfiguration.pdf

[4] AUTOSAR_TR_Glossary.pdf

[5] AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf

[6] ISO 26262-10-2018 Guidelines on ISO 26262.pdf

[7] AUTOSAR_MOD_GeneralDefinition_SecurityEvents.arxml

[8] AUTOSAR_SWS_PlatformTypes.pdf

0

评论0

请先
显示验证码

社交账号快速登录