821_AUTOSAR_TPS_BSWModuleDescriptionTemplate17_基础软件变体处理

       全部学习汇总: https://github.com/GreyZhang/hack_autosar

       继续学习AUTOSAR的文档,看一下《AUTOSAR_TPS_BSWModuleDescriptionTemplate》。

       11 BSW变体处理

       BSWMDT 包括允许通过单个 XML 工件描述 BSW 模块或集群的一组变体的变体点(有关 AUTOSAR 中变体处理的一般信息,请参阅 [1])。

       在模板的所有三个级别都提供了变化点。

       11.1 BSW 接口变体点

       BswModuleDescription 范围内的变体点与 latestBindingTime = preCompileTime 允许将可选文档、通信接口、依赖项、触发器和模式组的变量集声明为一个 BSW 模块描述的一部分,参见图 11.1 和 11.2。 为了保持元模型和生成的 M1 模型的可维护性,不允许在编译时绑定此层次结构中的进一步变化点。

       例如,如果要指定一个模块的两个变体,分别将某个 C 函数参数处理为 16 位或 32 位类型,并且这需要在编译时绑定,这可以通过 与 BswModuleEntry 的关联,但不能仅针对单个参数声明具有两个编译时变体的单个 BswModuleEntry。

       但是,在开发的早期阶段,可以将这种额外的可变性包含在 BswModuleEntry-s 的蓝图中(参见 [9])。 如果 BSWMD 用于表示 AUTOSAR 标准的 SWS,这尤其有用,因为此处在蓝图级别指定接口,即它们仍然包含可选或替代函数参数:

       BswModuleEntry 参数的变体点

       可以将 BswModuleEntry.argument 声明为变体点,但其绑定时间不得晚于 blueprintDerivationTime,见图 11.1。

       一个用例是在设计时维护一个规范,其中包括模块的可选或替代接口/依赖项。 例如,如上所述,可以提供一个 BSWMD(作为 XML 工件),它描述了标准化 AUTOSAR 模块的 C 接口的 AUTOSAR 标准,包括作为变体的可选部件的规范。 这些变体将在模块的 BSWMD 中选择,该模块实际上是根据此类规范实现的。

       另一个用例是向积分器提供仍包含一些变化点的 BSWMD,这意味着在这种情况下,积分器将选择变体。

       由于本节中描述的大多数变体点都会影响可执行代码,因此此用例要求在集成时重新生成和/或重新编译代码的相关部分。 由于这个原因,这里描述的大多数变化点的最新可能绑定时间被设置为 preCompileTime。

       第二个用例可能要求实际选择的变化点将约束模块的 ECU 配置参数值(例如,如果配置参数配置回调函数的存在/不存在,这将通过取消选择一个 属性outgoingCallback/expectedCallback的变体。这可以简单地通过提供符合与BswModuleDescription引用/聚合的相应元素相同的变体条件的预配置参数值集来完成。但是,更优雅的解决方案是派生参数定义 有问题的“自动”(即通过其定义)来自在 M1 模型中隐式定义的条件,每个变体选择(参见 [1])。

       11.2 BSW 行为变体点

       以类似的方式,BswInternalBehavior 下面的变体点允许在 BswModuleEntity-s、BswEvents 和更多元素的聚合中声明变体,见图 11.3。

       同样,BswModuleEntity 拥有的几个引用和聚合是变化点,见图 11.4。

       图 11.3 还显示了用于标定和测量以及 ExclusiveArea 基类 InternalBehavior 的本地数据聚合中的变化点。

       用例类似于上面描述的用例(第 11.1 章)。 出于同样的原因,这些变化点的最晚可能绑定时间被定义为 PreCompileTime。

       11.3 BSW变体点的实施

       图 11.5 显示了元类 BswImplementation 下唯一的变化点,即聚合 debugInfo。 同样对于这个变化点,最新的可能绑定时间是 preCompileTime。

       此外,基类Implementation 和从那里聚合的元素中有几个变化点。 这些在第 8 章的相应图中可见。它们也可用于 BSW 和 SWC 描述。 它们都支持用例,即模块或组件作为源代码交付,导致多个实现变体。

       此外,如果一个实现包含 McSupportData,它们也可能有变化点,如第 10.1 章所述。

       与 vendorSpecificModuleDef 和 preconfiguredConfiguration 的关联不被视为变体点,因为它们对应于应该在交付模块时修复的工件。 此外,RecommendedConfiguration 对应于交付时的一组固定工件。

       这一部分主要是讲解了基础软件变体的处理,比较值得注意的是各种行为的绑定时间的选择或者限制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值