目录
1.1 前言
由于在网络上关于DaVinci Developer的文章内容实在很少,官方文档又生涩难懂,故而在此分享本人在日常学习Developer操作过程中的理解与总结,内容参考了AUTOSAR官方文档、Vector操作文档以及CSDN上已有的大佬的博客,望与诸君共同学习、共同交流、共同进步。
如有疑误,望诸君多多海涵,在评论区下留言共同讨论!
本章内容主要介绍Application SWC的配置及介绍,包含新建软件组件、不同软件组件的含义以及各软件组件之间配置上的异同总结。
1.2 New SWC Type
选中Object Browser(对象浏览器),在主工作界面上第一个Application Component Types就是用来定义SWC Type的,右键选中New Application Component Type…,打开New Component Type界面,如下图1.1、1.2所示:


SWC | Description/Function |
Composition SWC | 在系统配置期间单一ECU里面的SWC集合。有助于抽象和标准化AUTOSAR目标的软件开发 |
Atomic SWC | 相对于Composition SWC而言,是单个不再拆解的SWC |
Service SWC | 这类SWC为BSW模块提供AUTOSAR指定的服务 |
其中在Type基础解释栏可扩展,有如下图1.3所示的7种类型:

SWC | Description/Function |
Application SWC | 一般只包含应用程序的SWC |
SensorActuator SWC | 专门处理和传感器、执行机构相关的SWC |
Calibration SWC | 此SWC用于将其所在的ECU的Calibration Parameters共享给外部设备。这类SWC没有任何内部行为。 |
NV Block SWC | 用于访问NV RAM或Memory的SWC |
IoHwAb SWC | 与IoHwAb模块直接交互来提供对I/O的访问。严格来说其他SWC不能用于访问I/O。 |
CDD SWC | 用于开发CDD或者AUTOSAR标准不支持或未定义的组件 |
Service Proxy SWC | 充当代理,为一个或多个remote ECU提供内部服务。主要用途是在整个系统中分发车辆的模式信息。简单地说,用于跨ECU |
对每个Type依次建立一个SWC Type,完成后7个SWC Type会出现在Application Component Types下方,如下图1.4所示:

其中:
Appl表示Application;
SA表示SensorActuator;
NV表示Non-Volatile Memory Block;
SP表示Service Proxy。
随后对每个SWC Type右键点击Properties,可以发现:除了Calibration和Non-Volatile Memory Block两个Type在创建后就被锁定而不可修改,其余5个Type均可自由修改Type。例如,可以在Application SWC Type的Properties直接修改为SenorActuator SWC Type。如下图所示。


1.3 Component Type Editor
左键双击SWC Type进入其对应的Software Design,可见项目栏、列表和属性配置框,并且在左侧项目栏中,有9种项目和1个接口视图,如下图1.7、1.8所示:


虽然对于7个SWC Type而言,这个Software Design工作区结构相同,但是它们可使用的项目却不完全一样,见下表1.3:
SWC Type | | | | | | | | | | |
Appl | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | — | ✔ | ✔ | ✔ |
SA | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | — | ✔ | ✔ | ✔ |
IoHwAb | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | — | ✔ | ✔ | ✔ |
CDD | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | — | ✔ | ✔ | ✔ |
SP | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | — | ✔ | ✔ | ✔ |
NV Block | ✔ | — | — | — | — | — | ✔ | — | ✔ | ✔ |
Calibration | — | — | — | — | — | — | — | — | ✔ | ✔ |
特别说明(针对✔):
组件类型SP在配置端口原型(Port Prototype)时,对于Application Ports而言只允许实例化S/R端口接口类型,而不限制Service Ports的接口实例化,但不允许配置Calibration Port;
组件类型NV Block不可配置Init Runnable和Access Points,且在配置端口原型时,只能在Application Port框中实例化C/S端口接口类型、模式转换端口接口类型和NV Data端口接口类型,不允许配置Service Port和Calibration Port;
组件类型Calibration只允许配置Calibration Port的端口原型。
后续会依次对每个项目进行详细介绍...