AutoSAR系列讲解(实践篇)7.4-实验:配置SWC&RTE(上)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xyfx_fhw/article/details/102543399

实验:配置SWC&RTE(上)

->返回总目录<-

阅读建议: 实验篇是重点,有条件的同学最好跟着做一遍,然后回头对照着7.1-7.3理解其配置的目的和意义。实验下篇将在7.7节中继续做

一、实验概览

1、实验目的

通过本次实验,主要是让大家对Dev的配置有一个全流程的学习。这里会用到前两节的内容,将其串联起来,让大家能完整的知道Dev打开后如何配置,和这么配置的意义是什么。

2、实验内容

本次实验主要做下图的配置,搭建下面的框架,并且将线都连上,将数据都映射上
在这里插入图片描述

二、步骤一:配置SWC

1、在Cfg中新建工程并在Dev中打开

  1. 打开DaVinci Configurator(Cfg),点击File->new,出现如下界面,配置好后点击next
    在这里插入图片描述
  2. 这里选默认即可,如需配置,下图有说明,看不懂的还请回头看看4.9节。其中的标定a2l文件是标定中需要用的标准文件,包含有变量在ram的地址信息
    在这里插入图片描述
  3. 选择芯片和编译器
    在这里插入图片描述
  4. 最后不需要改变,点击Finish即可生成工程。需要配置的话说明如下图
    在这里插入图片描述
  5. 保存工程,打开Dev,点击File->Open Workspace,选中之前Cfg配置路径下的.dpa工程(注意这个.dpa工程用Dev和Cfg都能打开,是公用的工程,也是总工程)
    在这里插入图片描述
  6. 打开后,应该能出现如下界面,这样就算是新建好一个工程了
    在这里插入图片描述

2、创建各种类型定义

这里如何配置前两节已经介绍过了,这里不再赘述,有不同的地方博主再截图说明

  1. 创建SWC Types(注意观察这里的命名都是有规则的)
  • CtCoApplication (Type: Composition) 这里定义了一个Composition型的SWC Type
  • CtApMySwc (Type: Application; Support Multiple Instantiation: off) 这里定义了Application型的SWC Type,并且申明不可以被重用
  • CtSaDoor (Type: SensorActuator; Support Multiple Instantiation: on) 定义为传感器/执行器型的SWC
  • CtSaInteriorLight (Type: SensorActuator; Support Multiple Instantiation: on)
  1. 创建ADT Types
    在这里插入图片描述
  • AdtDoorState (新建成boolean类型)
  • AdtLightState (新建成boolean类型)
  1. 创建Interface定义(这里用的S/R接口)
  • PiDoorState with data element DeDoorState (Application Data Type: AdtDoorState) 创建Interface的同时,关联上相应的ADT数据类型
    在这里插入图片描述
  • PiLightState with data element DeLightState (Application Data Type: AdtLightState)

3、通过Interface创建SWC上的Port实体

  1. 双击CtApMySwc,进入其编辑界面,选中左下角的Interface Graphic图标(如图),进入图形编辑界面
    在这里插入图片描述
  2. 点击导航栏的Graphic选项卡,切换到图形界面编辑工具
    在这里插入图片描述
  3. 添加三个端口,方法如图(图中是添加Sender接口的方法,其他同理)
  • Sender -> PiLightState
  • Receiver -> PiDoorState
  • Receiver -> PiDoorState
    在这里插入图片描述
    在这里插入图片描述
  1. 添加常量定义,就是为常量取个名字
  • CDoorClosed = 0
  • CLightOff = 0
    在这里插入图片描述
    在这里插入图片描述
  1. 双击端口,修改其属性
  • PiDoorState -> PpDoorStateFrontLeft (Init value: CDoorClosed)
  • PiDoorState -> PpDoorStateFrontRight ( Init value: CDoorClosed)
  • PiLightState -> PpLightStateFront (Init value: CLightOff)
    在这里插入图片描述
    完成后如下图:
    在这里插入图片描述

4、SWC的连接

  1. 首先同3中的步骤建立其他SWC的接口实体,并配置其属性
  • CtSaDoor
    - piDoorState -> PpDoorState (Sender, Init value: CDoorClosed)
  • CtSaInteriorLight
    - PiLightState -> PpLightState (Receiver, Init value: CLightOff)
  1. 双击CtCoApplication,进入其配置页面。然后将三个Atomic SWC拖放入Composition SWC中
    在这里插入图片描述
    在这里插入图片描述
  2. 修改各实例化后的SWC的名字。注意这里的名字格式是CpApMySwc::CtApMySwc,就是说实例化后的CpApMySwc继承于CtApMySwc的意思
  • CpApMySwc
  • CpSaDoorFrontLeft
  • CpSaDoorFrontRight
  • CpSaInteriorLight
    在这里插入图片描述
  1. 最后使用连接工具将对应的线连接起来即可
    在这里插入图片描述

5、创建IDT

  1. 创建两个IDT
  • IdtDoorState (Data Type:boolean;Compu Method:boolean_CompuMethod)
  • IdtLightState (Data Type:boolean;Compu Method:boolean_CompuMethod)
    在这里插入图片描述
    注意这里的计算方法,代码生成里就是简单的将1和0用#define定义成了TRUE和FLASE,用的是查表的方式。这里是默认的方法,如果各位想要进一步定制化,可以自己定义计算方法:比如将1定义为DoorOpen,将0定义为DoorClosed
    在这里插入图片描述

6、建立数据映射模板

  1. 创建Data Mapping Set,并取名为DemoTypeMapping
    在这里插入图片描述
  2. 定义Data Type Map,按照图中的方式将我们定义好的两种ADT和IDT映射上
  • AdtDoorState -> IdtDoorState
  • AdtLightState -> IdtLightState
    在这里插入图片描述

7、使用数据映射

  1. 在我们的三个Atomic SWC(CtApMySwc、CtSaDoor和CtSaInteriorLight )中右键Properties,打开后点击Mapping Sets选项卡
    在这里插入图片描述
  2. 使用我们之前定义好的Data Mapping Sets,将所有的Atomic SWC都添加上
    在这里插入图片描述
  3. 然后点击检查,确认都映射上了
    在这里插入图片描述
    如果没有映射上会出现如下警号
    在这里插入图片描述

8、在ECU中添加我们的SWC

  1. 双击打开ECU_Composition
    在这里插入图片描述
  2. 按照下图,我们定义的SWC集合拖动到ECU中,这样就算是完成了我们的实验上篇的内容了
    在这里插入图片描述
    附:返回总目录的传送门如下
    ->返回总目录<-

猜你喜欢

转载自blog.csdn.net/xyfx_fhw/article/details/102543399