学会读懂AUTOSAR模式管理BswM配置

模式管理是AUTOSAR中的一个难点,也可以说是最庞杂的一块。因为模式管理贯穿整个CP Autosar流程,几乎所有模块都跟BSWM发生着联系。

BswM作为一个独立的模块,其代码是在BswM_MainFunction()中周期执行的,那么它的输入/激励是什么?

答案:Port!

在ETAS的ISOLAR软件中BswM可用的Port分以下这些类.

我们把Port信号的改变理解成触发BswM动作的信息,从Port开始追朔,按图索骥,则可将BswM贯穿起来。我举个最简单的场景作为例子:

SWC发起请求 -> 改变ModeRequestPort信息 -> 构成ModeCondition -> 构成LogicalExpression -> 构成Rules -> 触发ActionLists -> 包含Actions。

例子1 - BswMSwcModeRequest类型的请求

该Port请求来源是SWC,也就是说SWC控制着它。

第一步 - 请求/触发源

在ModeRequestPort上单击右键 选择BswM Rule Trace View, 在弹出的视图里就给出了该Port对应的各个配置项,逻辑是很清晰的。

第二步 - 条件

在BswM Rule Trace View视图中点击ModeCondition,进入BswM_MC_BswM_PostRun这个配置项:

这个配置项简单来来说就是一行语句

BswM_MRP_SwcModeRequest == ECUM_STATE_POST_RUN

第三步 - 逻辑表达式

在BswM Rule Trace View视图上点击LogicalExpression视图, 进入BswM_LE_PostRun这个配置项:

该配置项只包含了BswM_MC_BswM_PostRun这一个条件,所以它依然是一行语句

BswM_MRP_SwcModeRequest == ECUM_STATE_POST_RUN

第四步 - 规则

在BswM Rule Trace View视图上点击Rules视图, 进入BswM_AR_PostRun这个配置项,

可见这个规则就是,使用BswM_LE_PostRun这个表达式,当其为真的时候触发BswM_AL_BswMSwitchPrepShutdown这个动作组。简化成伪代码就是:


if(BswM_MRP_SwcModeRequest== ECUM_STATE_POST_RUN)
{
  BswM_AL_BswMSwitchPrepShutdown();
}
else
{
  /* Do Nothing… */
}

第五步 - 动作列表

在BswM Rule Trace View视图上点击ActionList视图,进入BswM_AL_BswMSwitchPrepShutdown配置项:

第六步 - 动作

在视图上点击Action视图,进入各个动作详细配置,一看就懂了。

做个总结

原文:https://blog.csdn.net/m0_58346868/article/details/129558935

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值