总体架构¶
目标¶
该文档描述了整体开发过程中工具链的使用和工程的集成,旨在让各个开发实施人员对整体的开发流程有粗浅认知。本集成工程含有通信栈,网络管理栈,系统服务栈,诊断栈等多个服务栈,各个协议栈细节的集成请参照相关文档,本文档不做详细说明。
说明:本文档只包含对CP工具链开发的流程性描述。本文档只做概述,若要深入各个协议栈配置请参阅具体模块集成手册。
由于各项目的需求不同,该集成示例不会针对于特定的商业项目做详细讲解。特定商业项目的主要集成问题,将在项目集成特殊说明章节讲述。
缩写词和术语¶
缩写词/术语 |
描述 |
ASW |
Application Software应用软件 |
BSW |
Basic Software基础软件 |
MCAL |
Microcontroller Abstraction Layer微控制器抽象层 |
CanIf |
CAN Interface module CAN接口模块 |
CanSM |
CAN State Manager module CAN状态管理器模块 |
ComM |
Communication Manager module通信管理器模块 |
EcuM |
ECU State Manager module ECU状态管理器模块 |
PduR |
PDU Router module PDU模块化路由器 |
Com |
Communication 通讯 |
CanNm |
CAN Network Management CAN网络管理 |
NMIf |
Network Management Interface网络管理接口 |
BswM |
Basic Software Mode Manager基础软件模式管理器 |
EcuM |
ECU State Manager ECU状态管理器 |
参考文档¶
无
CP工具链开发方法¶
集成流程¶
集成分为全工具集成和手动集成;主要的区别为全工具集成会用到普华SWC工具获取萃取文件后会使用RTE模块;手动集成则不会用到SWC和RTE模块,涉及到RTE模块的一些接口一般在BSW工具中由iRTE模块进行生成,具体流程内容可参考以下两个章节。
SWC&RTE全工具集成流程¶
项目交付的内容为:相关协议栈源码和ORIENTAIS Studio配置工具。协议栈细分为协议栈的各模块及其对应的配置工具模块。
使用普华CP工具链进行ECU开发时,一般会涉及到三种配置工具:1.SWC工具;2.BSW工具;3.MCAL工具;对于基础软件(BSW工具)来讲,输入源只有两个:1.通过SWC工具萃取出的arxml文件;2.MCAL导出的包含驱动配置的arxml文件;因此在进行BSW协议栈配置之前,首先需要配置SWC和MCAL;具体的标准开发流程参见表 标准开发流程介绍:
步骤 |
实施层级 |
操作 |
参考 |
---|---|---|---|
1 |
BSW |
|
详细步骤细节参考“BSW工程创建”章节 |
2 |
SWC |
|
详细步骤细节可参考“SWC集成”章节 |
3 |
SWC组件内部行为(internal behavior)设计,组件间Port连接 注:原则上,内部行内只能对SWC进行设计,服务组件原则上无法修改 |
||
4 |
DBC、LDF、PDX等文件导入到SWC |
||
5 |
|
||
6 |
基于单个ECU进行配置萃取,生成EcuExtract萃取文件 |
||
7 |
MCAL |
配置MCAL,BSW工具导入MCAL输出的arxml文件‘ 注:用于IF层模块引用驱动提供的相关信息 |
详细步骤细节可参考“MCAL集成”章节 |
8 |
BSW |
BSW工具萃取和Mcal生成arxml文件导入、arxml文件同步 |
详细步骤细节可参考“RTE&多核BSW集成”章节 |
9 |
|
||
10 |
更新所有模块的bswmd.arxml文件(包括RTE) |
||
11 |
点击RTE-OS自动同步,自动配置RTE/OS的推荐配置 |
||
12 |
在RTE-OS自动同步后,根据项目需求手动调整RTE/OS配置,以适配项目需求 |
||
13 |
|
表 全工具集成标准开发流程介绍
手动集成流程¶
手动集成相比全工具集成,不会使用到SWC工具和RTE模块,取而代之的是使用iRTE模块来完成相关功能,所以集成流程中就不会涉及到BSW进行服务封装和SWC层级的相关内容
步骤 |
实施层级 |
操作 |
参考 |
---|---|---|---|
1 |
MCAL |
配置MCAL,BSW工具导入MCAL输出的arxml文件‘ 注:用于IF层模块引用驱动提供的相关信息 |
详细步骤细节可参考“手动集成”章节 |
BSW |
创建BSW工程,创建相关模块,使用iRTE模块 |
详细步骤细节可参考“手动集成”章节 |
|
2 |
Mcal生成arxml文件导入、arxml文件同步 |
||
3 |
|
||
4 |
更新所有模块的bswmd.arxml文件(包括RTE) |
||
5 |
点击iRTE-OS自动同步,自动配置iRTE/OS的推荐配置 |
||
6 |
在iRTE-OS自动同步后,根据项目需求手动调整iRTE/OS配置,以适配项目需求 |
||
7 |
|
表 手动集成标准开发流程介绍
集成说明¶
示例工程有如下几点说明:1.Hightec集成工程未使用链接文件夹形式引用到BSW配置工具以及EB MCAL生成的配置文件,因此更新配置之后必须手动Merge替换代码,之后再刷新工程即可编译;2.BSW源码是是按照模块化Demo需求集成到不同的Demo工程中,并非全量代码;
集成示例¶
本章节向用户展示整体工具链的使用过程。用户可以据此熟悉系统服务栈配置工具的配置过程,以及如何应用配置工具生成的配置文件。
Note
本示例不代表用户的实际配置情况,用户需要根据自己的实际需求,决定各个参数的配置,另外配置工具有很多其他特性,比如新建条目可以在文件夹上右击、某些情况选中文件夹可以在界面右侧上下移动调整条目顺序等,请自行探索,手册截图上只代表个人习惯方式。
集成目标¶
根据用户策略需求配置各个协议栈,满足策略需求。本示例实现主要展示工具的使用,不做具体配置介绍。
开发链路¶
工具整体使用流程,请参考本文档图 。需要注意,因购买产品不同,集成的最后步骤会有RTE集成和手动集成两种不同方式,具体细节可参考5.2.1(BSW工程创建)和5.2.2(SWC集成)两个章节。
全工具集成工程创建¶
BSW工程创建¶
步骤 |
说明 |
插图 |
---|---|---|
1 |
创建工程 |
|
2 |
创建模块 |
|
3 |
首先配置SWC需要的服务组件的相关模块 (根据不同协议栈的差别,需要先配置不同的模块后再进行服务封装; 具体需要配置的模块可参考各协议栈具体参考手册) |
以IO抽象模块为例: 配置IO抽象模块基本信息 生成IO抽象单模块的ServiceComponent |
4 |
生成全部模块的ServiceComponent.arxml(可选) |
SWC集成¶
步骤 |
说明 |
插图 |
---|---|---|
1 |
新建SWC工程 |
|
2 |
导入BSW服务封装文件 |
|
3 |
设计应用(PortInterface、Component、Composition)。 |
常规操作,省略步骤图,具体可参考各个模块的集成手册,此处仅贴出ECU架构图; |
4 |
导入设计好的DBC文件(Ldf、Odx等类似) 注:此类文件导入有两种方式,1.导入到SWC;2.导入到BSW; DBC导入到BSW工具的步骤见附录章节; |
导入DBC文件 |
5 |
SWC实例与ECU映射; 主要描述组件分配到分区的操作步骤; |
|
6 |
信号Mapping |
|
8 |
萃取Ecu Extract.arxml文件 |
MCAL集成¶
步骤 |
说明 |
插图 |
---|---|---|
1 |
新建Mcal工程 |
|
2 |
萃取arxml自动导入部分驱动的配置,如Can.arxml |
|
3 |
手动配置Mcal相关模块 |
|
4 |
导出arxml文件 |
RTE&BSW集成¶
若购买了SWC和RTE模块的工具,请参考本章节进行工程集成。
步骤 |
说明 |
插图 |
---|---|---|
1 |
RTE导入Ecu萃取文件 因购买产品不同,萃取文件一般会有两种形式,情况说明如下: 若已购买普华SWC&RTE产品则可参考章节5.2.2进行配置,最后导出配置过的萃取文件,使用RTE模块进行配置。 |
|
2 |
BSW导入EB ARXML文件 |
|
3 |
同步RTE模块配置信息 |
|
4 |
RTE同步前准备工作:
|
|
5 |
更新bswmd文件 |
|
6 |
操作完步骤5后,同步ECUC模块 |
|
7 |
若工程为多核工程步骤6完成ECUC同步后,需要做如下检查(单核工程可跳过该步骤):
|
|
8 |
步骤7中,所有的bsw模块映射关联到EcucPartitionCollection后,需要重新生成一次所有模块的bswmd文件,做好RTE-OS同步前准备(同步骤4) |
|
9 |
完成上述8步骤后,使用Orientais RTE自动同步功能,进行RTE和OS自动配置; 注意:一般只有在首次配置和大量变更时,才使用RTE&OS同步功能;因为RTE&OS同步会覆盖部分task的映射,导致多余变更需要进行手动修改。 工程变动较小时,可参考下个步骤手动修改task |
|
10 |
手动配置用户指定task |
|
11 |
RTE&OS同步后配置微调,如:
|
|
12 |
生成源代码,生成BSW所有模块的配置文件,生成顺序:其它BSW模块→RTE→OS |
生成后源代码存放位置如图: |
手动集成¶
若未购买SWC和RTE模块的工具,请参考本章节进行工程集成,主要区别是此方式不会使用SWC工具和BSW工具的RTE模块,作为替代会使用iRTE模块。
MCAL集成¶
手动集成的Mcal集成步骤与全工具集成类似,故此处不做赘述,可参考5.2.1.3(MCAL集成)章节流程
BSW集成¶
步骤 |
说明 |
插图 |
---|---|---|
1 |
创建工程 |
|
2 |
创建模块 注意:此处除所需模块外,需添加iRTE模块 |
|
3 |
iRTE同步前准备工作:
|
再配置其他所需模块,具体配置方法可参考对应模块的集成手册 |
4 |
更新bswmd文件,做好iRTE-OS同步前准备 |
|
5 |
完成上述5步骤后,使用Orientais iRTE自动同步功能,进行iRTE和OS自动配置; 注意:一般只有在首次配置和大量变更时,才使用iRTE&OS同步功能;因为iRTE&OS同步会覆盖部分task的映射,导致多余变更需要进行手动修改。 工程变动较小时,可参考下个步骤手动修改task |
|
6 |
手动配置用户指定task |
|
7 |
iRTE&OS同步后配置微调,如: OS调整任务、中断的堆栈大小等; |
|
8 |
生成源代码,生成BSW所有模块的配置文件,生成顺序:其它BSW模块→iRTE→OS |
生成后源代码存放位置如图: |
源代码集成¶
Demo工程结构如下:
图 BSW的工程结构图
BSW下的Config目录用来存放配置工具生成的配置文件,各模块或各栈建立对应文件夹存放对应模块配置代码。
系统服务栈源代码集成:新建对应的源码文件夹和配置文件文件夹,将对应源码和配置代码放入,然后工程中添加相应头文件路径即可。