Autosar学习----AUTOSAR_SWS_BSWGeneral(七)

💥💥🔍 🔍 欢迎来到本博客❤️❤️💥💥
🐡优势:❤️博客内容尽量做到通俗易懂,逻辑清晰。
⛳️座右铭:恒心,耐心,静心。
⛳️ 欢迎一起交流分享

目录

Imported types

当新增新的类型时,需要新增对应的表格,用来描述新增类型的定义头文件、类型含义等等,表格规范如下:
在这里插入图片描述

8.2 Type definitions

8.2 类型定义总结

在AUTOSAR基本软件模块的规范中,8.2节主要涉及数据类型的定义,具体内容如下:

  1. 命名约定

    • 所有由BSW模块定义的数据类型(除了ConfigType)应遵循命名约定:<Ma>_<Tn>Type,其中<Ma>是模块缩写,<Tn>是类型名称,采用驼峰命名法。
  2. 示例

    • 示例类型包括Eep_LengthTypeDio_SignalTypeNm_StateType
  3. 基本AUTOSAR类型

    • 基本AUTOSAR类型不需要遵循上述命名约定。
  4. 类型定义模板

    • 类型定义应包括以下信息:
      • 名称:类型的名称。
      • 类型:允许的条目,包括枚举、结构、指向类型的引用和AUTOSAR整数数据类型。
      • 范围:合法值的范围。
      • 描述:对该类型用途的非正式描述。
      • 常量:该类型的预定义名称(可选)。

在这里插入图片描述

  1. 避免重复定义

    • 为避免在BSW模块和软件组件中重复和不一致的类型定义,公共数据类型应在RTE类型头文件中定义。
  2. 接口数据类型

    • 标准化接口和标准化AUTOSAR接口中使用的数据类型应仅在RTE类型头文件中定义。

这一节强调了数据类型的标准化和一致性,以确保在AUTOSAR环境中模块间的兼容性和可维护性。

8.3 Function definitions

  • 该模块的函数定义在各自的BSW模块规范第8章中指定。
  • 函数的定义使用以下模板

8.3.1 General specification on API functions在这里插入图片描述

可重入性术语和定义 (reentrancy)

规定

  • 并发安全:允许无限制地并发执行此接口,包括抢占和多核系统上的并行执行。
  • 可重入:在单核系统上允许此接口的伪并发执行(即抢占)。
  • 不可重入:不允许并发执行此接口。
  • 条件可重入:在某些条件下可能允许并发执行此接口,这些条件作为API规范的一部分
  • 建议:禁止使用局部变量和全局变量,如必须使用,需确保安全;使用stack variables
其他注意事项
  • API参数检查:开发错误检测启用时,所有API服务应启用参数检查。
  • NULL指针检查:开发错误检测启用时,指针参数应检查是否为NULL。
  • 不传递函数指针:API参数中不应传递函数指针。
  • 基于索引的API服务:不同实例的BSW模块应通过索引访问其API。

8.3.2 初始化函数

  • BSW模块在一个单独的初始化函数中初始化变量和硬件资源。
  • API名称遵循Init作为服务名称的模式。
  • 示例:
  • CanIf_Init()
  • Eep_21_LDExt_Init()
  • 只有ECU状态管理器和基础软件模式管理器可以调用初始化函数。
  • BSW模块的状态应在初始化函数结束时相应设置。
  • 检查初始化函数的入参,如发现有错误,抛出开发错误

8.3.3 反初始化函数

  • 反初始化函数用于ECU关闭或睡眠阶段。
  • API名称遵循DeInit作为服务名称的模式。
  • 只有ECU状态管理器和基础软件模式管理器可以调用反初始化函数。
  • BSW模块的状态应在反初始化函数开始时相应设置。

8.3.4 获取版本信息

  • 获取版本信息函数应同步执行,并且是可重入的。
  • 它只具有一个参数,用于返回类型为Std_VersionInfoType的BSW模块版本信息。
  • 此API的可用性在每个BSW模块的预编译时可配置。

8.4 回调通知

  • 回调是用于通知其他模块的函数。
  • 如果BSW模块提供的回调函数是AUTOSAR服务,其签名应遵循RTE提供的签名。
  • 回调函数应避免返回除void以外的类型,除非它们是AUTOSAR服务。

8.5 调度函数

  • 许多BSW模块具有需要周期性或事件触发的调度函数。
  • 调度函数没有返回值和参数。
  • 它们不得进入任何等待状态,通常不可重入。
    在这里插入图片描述

8.6 预期接口

在这里插入图片描述

8.6.1 强制接口

  • 每个BSW模块的强制接口列表是特定的。

8.6.2 可选接口

  • 每个BSW模块的可选接口列表是特定的。

8.6.3 可配置接口

  • 在目标功能可以配置的地方列出可配置接口。

8.7 服务接口

  • 定义模式声明组的AUTOSAR服务、ECU抽象和复杂驱动程序组件应在其SwcBswMapping中定义synchronizedModeGroup
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值