前面

如何在Matlab进行AutoSAR软件组件SWC的开发?也就是下图红框标识出来的部分。
image.png
常规的有两种方式自顶向下自下而上

  • 从上往下:从软件组件描述文件起步
  • 从下往上:从Simulink已有模型起步

    自顶向下

    首先,你需要在AutoSAR的架构设计工具中,比如Davinci DEV中设计好你需要的SWC,以及这个SWC的里有哪些Runnable,Interface,Port……然后导出arxml 文件
    然后,把上一步生成的arxml 文件导入到Matlab中,Matlab会自己识别,生成模型的框架,我们只需要在这个框架里开发我们的算法,生成符合AutoSAR代码,最后在编译环境中集成。
    image.png

具体操作如下:

导入arxml文件

这里借用一个大佬的例子(ID:Qingniao_Avalon)
image.png
导入指令:

  1. arObj = arxml.importer('SWC1.arxml')

image.png
这是第一步,已经导入了arxml文件,可以看到反馈,下一步是根据这个文件生成模型框架。

生成模型框架

输入指令

  1. arObj.createComponentAsModel("/Components/SWC1", //上面导入文件后,生成的组件名字
  2. "ModelPeriodicRunnablesAs", //添加一个周期性的运行实体
  3. "FunctionCallSubsystem", //回调函数
  4. "DataDictionary",//数据字典
  5. "SWC_Data.sldd")//sldd

image.png
生成模型:
image.png
在10ms运行实体里可以看到,只有输入输出port,具体的内容是需要我们去搭建的。
image.png
打开AutoSAR工具箱
image.png
这里注意两个东西:AUTOSAR Dictionary 和 Code Mapping
AUTOSAR Dictionary是你这个SWC的所有信息:Runnable,interface,Port,Compu Method……
image.png
Code Mapping顾名思义,就是把你模型里的各种Port、subsystem与AUTOSAR Dictionary中你定义好的AUTOSAR组件联合起来。
image.png

搭建算法模型

如何搭建?其实就是在Runnable中把输入输出,按照自己的需要连起来。
比如我们这里先把他们都加起来,再求OR:
image.png

生成代码

Ctrl+B或者image.png
image.png

自下向上

从Simulink已有模型起步。
首先,我们要搞清楚simulink组件到autosar组件的映射,可以看一下我这篇笔记,里面有详细的介绍;
基于Matlab/Simulink的软件组件开发
然后,在simulink中搭建模型(要与autosar组件能映射上);
其次,在autosar工具箱中里,也就是AUTOSAR Dictionary中定义你需要的autosar组件;
再次,在Code Mapping里把两者映射起来;
最后,生成代码,生成arxml文件,导入到autosar配置工具中,把一些端口该连接的连接起来,生成 RTE代码。

关于直接在Matlab中搭建AUTOSAR的步骤,内容较多故放在下一篇博客里讲解。