0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ETAS AUTOSAR工具链的使用及集成

汽车ECU开发 来源:你好旧时光追忆 2023-06-05 14:58 次阅读

1 引言

在AUTOSAR方式设计车载ECU软件的初期,很多项目团队都采用“基础软件外协开发”的模式。即委托第三方软件公司搭建一个AUTOSAR工程并给出各主要模块的设计示例,再在此基础上去做自己的项目。这样的开发模式有助于快速适应全新的设计方法,缩短项目周期,但也会带来“过于依赖项目组外部资源,一旦出现错误难于解决”等问题。

本文针对上述痛点,讲述了在ETAS工具链环境下进行工程创建和常用模块集成的全过程,目的是让读者对AUTOSAR工程的产生过程有一个大致的了解,从整体上理清AUTOSAR方式设计车载嵌入式软件的思路。

由于要“从无到有”地创建一个实用的AUTOSAR工程,该系列之前编写的三篇文章将作为参考文献在文中引用,感兴趣的读者可在“你好旧时光追忆”公众号中查找阅读。

(1)《从手写代码到AUTOSAR工具链 - RTE入门篇》,以下简称《RTE入门篇》。

(2)《从手写代码到AUTOSAR工具链 - EcuM应用篇》,以下简称《EcuM应用篇》。

(3)《从手写代码到AUTOSAR工具链 - BswM应用篇》,以下简称《BswM应用篇》。

2 工具链

本文所述设计集成过程除MCAL部分采用Infineon和EB联合开发的“EB Tresos”工具外,其余模块均采用ETAS工具链开发,如表2-1所列。

表2-1: AUTOSAR工具链汇总

序号 集成开发环境 子工具 功用
1 EB Tresos EB Tresos MCAL模块设计
2 ISOLAR-AB ISOLAR-A 系统级架构设计
RTA-RTE 接口设计
RTA-BSW BSW模块设计
3 RTA-OS RTA-OS 操作系统设计

3 工程创建和模块集成

对于ETAS工具链使用者而言,AUTOSAR工程主要是在ISOLAR-AB中创建、设计和集成的。

下面以VCU项目为例讲解AUTOSAR工程创建过程,其它车载ECU软件可在此基础上做相应改动。

3.1 工程创建

AUTOSAR工程创建在ISOLAR-A中进行。

3.1.1文件创建

按照表3-1创建工程文件夹。

表3-1: 工程文件夹创建

序号 一级文件夹 二级文件夹 三级文件夹
1 hightec_vcu - -
2 isolar_ab_vcu - -
3 mcal_vcu - -
4 vcu src ASW、BSW、CDD、INFRA、IOHWAB、RTE、Target

3.1.2AUTOSAR工程创建

双击“ISOLAR-AB V 4.0”图标,弹出图3-1所示的界面,按照图示步骤操作进入ISOLAR-AB工具的主界面。

81f5d9a2-0297-11ee-90ce-dac502259ad0.png

图3-1: ISOLAR-AB工作空间选择

在主界面中点击“File->New->AUTOSAR Project”新建工程,弹出图3-2所示的界面,按照图中步骤完成工程创建。

820bdf22-0297-11ee-90ce-dac502259ad0.png

图3-2: AUTOSAR工程创建界面

3.2 架构设计

AUTOSAR开发方式中的架构设计即软件组件(SWC)的设计,包括创建软件组件、端口接口设计、内部行为设计等步骤,还需将SWC分别加入部件和ECU。具体操作方法详见《RTE入门篇》。

3.3 配置系统

系统创建和配置按照下列步骤进行。

3.3.1部件创建

按照图3-3和图3-4所示创建部件。

821840d2-0297-11ee-90ce-dac502259ad0.png

图3-3: 部件创建启动

8221843a-0297-11ee-90ce-dac502259ad0.png

图3-4: 部件创建配置

3.3.2系统创建

按照图3-5和图3-6所示创建系统。

822d553a-0297-11ee-90ce-dac502259ad0.png

图3-5: 系统创建启动

824368ca-0297-11ee-90ce-dac502259ad0.png

图3-6: 系统创建配置

3.3.3系统配置

系统配置包括建立对部件的引用、抽取配置和映射创建3部分。

(1)建立系统对部件的引用

为上节创建的“System”生成1个子项“Root Software Compositions | Root Sw Composition Prototype”,并将其“SoftwareComposition”的引用配置为“TopLevelComposition”。

(2)系统抽取配置

配置上节创建“System”的类别。

(3)映射创建

为上节创建的“System”生成1个子项“Mappings | Mapping”,命名为“SwcToEcuMapping”,并配置“Ecu实例”。

3.4 通信配置

通信配置主要包括DBC导入、报文发送周期配置、抽取和生成RTA-BSW等操作,完成这些步骤后,与CAN通信有关的BSW模块将自动生成。

824ef8d4-0297-11ee-90ce-dac502259ad0.png

图3-7: 生成RTA-BSW

表3-2: RTA-BSW后自动生成的BSW模块

序号 一级文件夹 二级文件夹 BSW模块
1 Com Stack Can Modules Can
2 CanIf
3 CanSM
4 - Com
5 - PduR
6 Mode Mgm - ComM
7 Other Modules - ComStack
8 - Ecuc
9 - rba_ArxmlGen

3.5 模式管理配置

依次进行EcuM和BswM模块的配置,具体参见《EcuM应用篇》和《BswM应用篇》。

3.6 操作系统配置

操作系统配置分为2部分,ISOLAR-AB中的OS模块配置和RTA-OS中的配置。

3.6.1 OS模块配置

创建Os模块并完成基础配置。

(1)Os创建

创建Os模块,再依图3-8删除多余项。

8258c0bc-0297-11ee-90ce-dac502259ad0.png

图3-8: Os多余项删除

(2)应用模式配置

按照图3-9的步骤进行。

826a670e-0297-11ee-90ce-dac502259ad0.png

图3-9: Os应用模式配置

(3)计数器配置

为Os应用配置计数器信息,图3-10为其配置方法。

827b22b0-0297-11ee-90ce-dac502259ad0.png

图3-10: Os计数器配置

(4)任务配置

根据项目需要配置OS任务,图3-11为配置方法,表3-3为任务配置示例。

82883eaa-0297-11ee-90ce-dac502259ad0.png

图3-11: Os任务配置

表3-3: Os任务参数配置示例

序号 配置项 配置值 说明
1 ShortName XXX 任务名
2 OsTaskActivation 1 定义该任务最大数量的队列激活请求,1表示在任何时刻任务仅允许单次激活
3 OsTaskPriority 39 任务优先级,数值越大优先级越高(对于TC275单片机
4 OsTaskSchedule FULL 定义任务的优先处理性
5 OsTaskStackAllocation - 任务手动堆栈分配,以字节为单位
6 OsTaskWaitStack - 激活等待事件时的任务堆栈使用
7 OsTaskBudget - 执行预算,以“浮点数+时基名+单位”表达
8 OsTaskCanCallSchedule - 任务调用或可能调用“Schedule()”时配置为TRUE
9 OsTraceFilter - 描述任务是否被RTA-TRACE跟踪
10 OsTaskAccessingApplication - 访问该对象的应用的引用
11 OsTaskEventRef - 此引用定义了扩展任务可能会响应的事件列表
12 OsTaskResourceRef - 此引用定义了该任务访问的资源列表
13 OsRegSetRef - 该任务用到的寄存器集的引用

3.6.2 RTA-OS配置

在生成RTE成功后进行。

(1)工程创建

点击“File->New Project”新建工程,按照图3-12所示配置工程属性。

82990e88-0297-11ee-90ce-dac502259ad0.png

图3-12: OS工程属性配置

(2)文件加载

按照图3-13所示将“...srcRTEgen”路径下的osNeeds.arxml文件加载进来。

82a8bb80-0297-11ee-90ce-dac502259ad0.png图3-13: OS工程文件加载

(3)工程保存

将工程创建时自动生成的ARXML文件命名为“RTAOS.arxml”,并将其保存至“...srcTargetTC275RTAOSconfig”路径下。

(4)通用参数配置

OS通用参数配置按照图3-14进行。

82b8895c-0297-11ee-90ce-dac502259ad0.png

图3-14: OS通用配置

(5)应用模式配置

按照图3-15将OS应用模式配置为OSDEFAULTAPPMODE。

82c415ce-0297-11ee-90ce-dac502259ad0.png

图3-15: OS应用模式配置

(6)中断配置

按照图3-16配置项目中需要的二类中断。

82d040a6-0297-11ee-90ce-dac502259ad0.png

图3-16: OS中断配置

3.6.3 RTA-OS生成

按照下列步骤生成OS代码。

(1)文件夹创建

在“...srcTargetTC275”路径下创建表3-4所示的文件夹。

表3-4: RTAOS文件夹创建

序号 一级文件夹 二级文件夹 三级文件夹 四级文件夹 五级文件夹
1 RTAOS config
2 generated inc
3 lib
4 report
5 integration inc
6 src
7 MCAL modules general inc
8 tricore compiler
9 inc

(2)生成配置

按照图3-17、图3-18和图3-19的方法依次进行RTA-OS生成配置。

82de78a6-0297-11ee-90ce-dac502259ad0.png

图3-17: RTA-OS生成选项配置

82efeb04-0297-11ee-90ce-dac502259ad0.png

图3-18: RTA-OS生成输出位置配置

82fba8ea-0297-11ee-90ce-dac502259ad0.png

图3-19: RTA-OS生成包含路径配置

(3)生成操作

按照图3-20所示生成OS的代码。

8304e63a-0297-11ee-90ce-dac502259ad0.png

图3-20: OS代码生成

3.7 RTE配置

创建Rte模块并完成基础配置。

3.7.1 Rte创建

创建Rte模块,再依图3-21删除多余项。

831572d4-0297-11ee-90ce-dac502259ad0.png

图3-21: Rte多余项删除

3.7.2 Rte配置

依次进行Rte模块的配置。

(1)Rte生成配置

配置Rte生成参数,图3-22为其配置方法。

8329a858-0297-11ee-90ce-dac502259ad0.png

图3-22: Rte生成配置

(2)Bsw模块实例配置

在生成RTE成功后进行。

Bsw模块实例大部分由工具自动配置,前提是其存在Runnable。为后续编译不出错,在EcucValueCollection中无运行函数的模块需要手动配置。

8337b150-0297-11ee-90ce-dac502259ad0.png

图3-23: Bsw模块实例配置

3.8 定点数位域配置

创建Bfx模块并完成配置。

3.8.1 Bfx创建

在ISOLAR-B中创建Bfx模块。

3.8.2 Bfx配置

依次进行Bfx模块的通用配置和内存定位配置。

8344c1a6-0297-11ee-90ce-dac502259ad0.png

图3-24: Bfx通用配置

8353b3e6-0297-11ee-90ce-dac502259ad0.png

图3-25: Bfx内存定位配置

3.9 Ecuc数值集配置

创建Ecuc Value Collection并完成配置。

3.9.1 EcucValueCollection创建

在ISOLAR-B中创建Ecuc Value Collection。

3.9.2 EcucValueCollection配置

依次进行EcucValueCollection的配置。

(1)模块关联

按照图3-26和图3-27所示进行模块关联。

836cb6b6-0297-11ee-90ce-dac502259ad0.png

图3-26: EcucValueCollection配置启动

83759a56-0297-11ee-90ce-dac502259ad0.png

图3-27: EcucValueCollection配置启动

2任务分配

依照图3-28将各模块的函数拖到对应的OS任务中。

838047a8-0297-11ee-90ce-dac502259ad0.png

图3-28: EcucValueCollection任务分配

3.10 AUTOSAR平台类型配置

创建AUTOSAR_PlatformTypes并完成配置。

3.10.1 AR Package创建

按照图3-29创建名为AUTOSAR_PlatformTypes的AR Package,再按照与之类似的方式为AUTOSAR_PlatformTypes创建1个子AR Package,名称为ImplementationDataTypes。

838dfa74-0297-11ee-90ce-dac502259ad0.png

图3-29: AUTOSAR_PlatformTypes AR Package创建

3.10.2 数据类型添加

以uint8为例,按照图3-30、图3-31、图3-32的步骤添加数据类型。

83a232d2-0297-11ee-90ce-dac502259ad0.png图3-30: 数据类型添加启动

83ab76b2-0297-11ee-90ce-dac502259ad0.png图3-31: 数据类型添加配置

83b5a042-0297-11ee-90ce-dac502259ad0.png图3-32: 数据类型参数配置

按照上述步骤依次添加下列数据类型:boolean、float32、float64、sint16、sint32、sint64、sint8、uint16、uint32、uint64。

3.11 故障追踪器配置

创建Det模块并完成配置。

3.11.1 Det创建

在ISOLAR-B中创建Det模块。

3.11.2 Det配置

依照图3-33进行Det模块的通用配置。

83c49084-0297-11ee-90ce-dac502259ad0.png图3-33: Det通用配置

3.12 RTE生成

在执行RTE生成前,须进行抽取、生成RTA-BSW、生成BSW等操作。

RTE生成按照图3-34和图3-35的步骤进行。

Additional Commands”处输入(该过程不再生成SWC的内存映射文件):--strict-unconnected-rport-check=off -err=xml -nts --os-define-osenv=RTAOS40 --exclusive-area-optimization=disable --os-output-param=all。

83d704b2-0297-11ee-90ce-dac502259ad0.png图3-34: RTE代码生成启动

83e3f186-0297-11ee-90ce-dac502259ad0.png图3-35: RTE代码生成配置

3.13 MCAL集成

下面介绍MCAL的集成步骤。

3.13.1 静态代码集成

MCAL静态代码的工程路径为“...srcTargetTC275MCALmodules”,头文件和源文件分别存放在“inc”和“src”文件夹下。

MCAL静态代码从EB Tresos的安装路径下拷贝。

3.13.2 配置文件集成

配置文件包括MCAL工程文件和单片机各外设模块参数组成的“.xdm”文件,其路径为“...srcTargetTC275MCALconfig”。

配置文件在添加MCAL模块时由工具自动生成。

3.14 ECAL集成

这里的ECAL主要包括实现模拟量输入和数字量输入输出信号的抽象,工程路径为“...srcIOHWAB”。

3.15 内存映射集成

内存映射程序文件采用“xxx_MemMap.h”的命名规范,主要解决将变量、常量和代码放到指定存储空间的问题。

3.15.1 软件组件内存映射文件

各SWC模块的内存映射文件生成方法如图3-36所示,通常每个新建软件组件仅生成1次即可,之后可删除该命令段。

83ed5e6a-0297-11ee-90ce-dac502259ad0.png图3-36: 软件组件内存映射程序文件生成方法

3.15.2 BSW模块内存映射文件

各BSW模块的内存映射文件生成方法如图3-37所示(部分有对应SWC的BSW模块按照图3-36的方法操作),这部分文件通常只生成1次,且生成路径不要在程序工程的路径或子路径下,否则容易带来编译错误。

83fc48f8-0297-11ee-90ce-dac502259ad0.png图3-37: BSW模块内存映射程序文件生成方法

3.15.3 内存映射程序文件路径

内存映射文件统一存储在“...srcINFRAmemmap”路径下(其余路径下的内存映射文件须剪切至此),且须在工具生成文件的基础上做相应改动。

3.16 复杂驱动集成

复杂驱动包含板级芯片驱动程序和对复杂传感器和执行器进行操作的软件模块,相关的程序文件均为手写代码,工程路径为“...srcCDD”。

3.17应用层软件集成

按照下面的步骤进行应用层软件集成。

3.17.1 应用层文件拷贝

按照表3-5将应用层程序文件拷贝或更新至工程的指定目录。

表3-5: 应用层程序文件处理

序号 类别 文件(夹)名 文件拷贝位置
1 A2L XXX.a2l(一个或多个) ... oolsA2LGenToolASAPAdr_Filesa2l
2 Arxml XXX.arxml(一个或多个) ...srcASWVcuApp_SWCarxml
3 文件夹 lib(库文件) ...srcASWVcuApp_SWC
4 C XXX.c(一个或多个) ...srcASWVcuApp_SWCsrc
5 H XXX.h(一个或多个) ...srcASWVcuApp_SWCsrc

3.17.2 ARXML文件导入

如果是首次操作,须按照图3-38所示进行,再执行刷新操作;后续更新只需要在完成文件拷贝后直接刷新工程即可。

8410ef7e-0297-11ee-90ce-dac502259ad0.png图3-38: 应用层ARXML导入

3.17.3 SWC添加

将应用层的SWC分别添加到部件和ECU中,抽取。

3.17.4 相关模块设计

在程序中调用应用层软件的初始化和执行函数。

3.18 其它模块设计与集成

以上完成了VCU软件的工程创建和必备模块集成的基本工作,表3-6列出了车载ECU软件的一些其它的常用模块,这些将在后续的软文中逐一探讨。

表3-6: 车载ECU软件常用模块

序号 模块名称 功用
1 BOOTLOADER 实现ECU程序的更新
2 XCP 用于参数标定
3 UDS 用于故障诊断
4 NvM 用于参数存储
5 核间通信 适用于多核微处理器的主控芯片

4 补充说明

下面对上一章的操作过程进行几点说明。

(1)本文的内容倾向于“工程实践”,仅讲述了“怎么做”而非“为什么这么做”,其中的概念和原理请参考AUTOSAR规范的相关章节。

(2)前文对软件集成的步骤以模块为单位逐一说明,但在实际操作过程中可能出现“前个模块配置须依赖于后续模块设计到某个步骤”的情况,故在软件设计过程中不必拘泥于文中的次序。

(3)在进行“从无到有创建AUTOSAR工程”的过程中得到了团队内外很多同行的指点和帮助,从尊重大家工作成果和遵守公司保密性要求的角度考虑,部分重要的技术细节不宜公开发表(工具链开发涉及到的内容很多,我在此领域工作3年已经编写了数千页的工作文档,确实也很难通过一篇文章讲清楚整个过程),如果读者在开发过程中遇到问题,欢迎私下里探讨。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AUTOSAR
    +关注

    关注

    9

    文章

    330

    浏览量

    21138
  • ecu
    ecu
    +关注

    关注

    14

    文章

    822

    浏览量

    53893
  • Infineon
    +关注

    关注

    2

    文章

    81

    浏览量

    28646
  • 嵌入式软件
    +关注

    关注

    4

    文章

    228

    浏览量

    26386
  • 开发环境
    +关注

    关注

    1

    文章

    203

    浏览量

    16461

原文标题:ETAS AUTOSAR工具链的使用及集成 |附资料下载

文章出处:【微信号:eng2mot,微信公众号:汽车ECU开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ETAS与芯驰达签署战略合作协议 为客户提供完整AUTOSAR解决方案

    7月29日,全球领先的软件定义汽车全方位服务解决方案提供商ETAS与领先的车规芯片企业芯驰科技签署战略合作协议。双方将依托自身的优势产品,深入合作,为客户提供符合功能安全的完整AUTOSAR解决方案。
    发表于 07-29 09:16 472次阅读

    AUTOSAR的工作原理是什么?为什么需要AUTOSAR

    AUTOSAR的工作原理是什么?为什么需要AUTOSAR
    发表于 05-17 06:44

    RISC-V工具简介

    ,加上基金会对软件生态的持续运作,吸引了大量的开发者投入到工具的补充和完善工作上。目前从编译工具(GCC+LLVM)、调试工具集成开发环
    发表于 09-01 14:24

    时间同步Autosar是什么意思

    一样,管你三星苹果还是华为,随便插拔,随心所欲的充电,这就是标准化的力量。Autosar可以让主机厂(OEM, 比如大众宝马奥迪等),供应商(大陆,博世,Nvidia, Renesas等),开发工具供应商(Matlab, Vector, Electrobit等),以及新入
    发表于 09-03 06:33

    什么是交叉编译工具

    @LINUX# 嵌入式嵌入式LINUX交叉编译工具前言一、什么是交叉编译工具?二、ARM交叉编译工具
    发表于 11-04 07:05

    AUTOSAR是什么

    一、AUTOSAR是什么AUTOSAR组织自己的介绍是AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide development
    发表于 11-10 07:47

    为什么使用AUTOSAR

    文章目录一、总概述1 为什么使用AUTOSAR?1.1 AUTOSAR出现之前的行业现状1.2 AUTOSAR出现之后可以实现如下目标2、AUTOSAR总概述二、各层分别概述1、BSW
    发表于 12-09 07:50

    AUTOSAR的相关资料推荐

    AUTOSAR基础篇之EcuM_wto9109的博客-CSDN博客【AutoSAR】【EcuM】ECU状态管理专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。07-08...
    发表于 01-27 08:25

    RISC-V工具简介

    工具。通常,工具由编译器、汇编器、链接器、调试器、模拟器和其他基本工具组成。集成开发环境 (IDE) 也可以作为图形和综合开发
    发表于 03-09 06:32

    “E:\NXP\AUTOSAR\S32K_AUTOSAR_OS_4_0_98_RTM_1_0_0sample\standard\sc1”编译时无法生成sample1_cfg.o怎么解决?

    sample1_cfg.o的问题。(os_prop.h,sample1_cfg.c已经生成)请问如何解决它,谢谢! 我使用的工具是例子提供的../redist/make381.exe,at cygwin 报错如下:E
    发表于 04-06 07:42

    如何将ASCET-Developer开发流程与ARM Development Studio集成

    。 随着汽车变得更加复杂,这种代码量只会增加。系统复杂性的增加导致了基于模型的控制开发工具的广泛使用,生成符合安全标准的、可移植的源代码。 ETAS GmbH是Robert Bosch GmbH的子公司,为
    发表于 08-08 07:07

    ETAS RTA-CAR工具链操作指南

    本系列文章旨在提供一个ETAS RTA-CAR工具链的操作指南,使读者对工具链中各部分软件的功能快速建立初步的理解。同时,通过实际的操作演示,读者可以学习建立AUTOSAR工程的基本工
    的头像 发表于 02-23 17:51 5962次阅读

    一文读懂DDS和AUTOSAR Adaptive的集成

    对于使用AUTOSAR制造车辆的公司来说,已经出现了两个不同的平台 - AUTOSAR Classic和AUTOSAR Adaptive 这两个AUTOSAR平台之间互操作性的基础标准
    的头像 发表于 11-02 10:05 2070次阅读

    AUTOSAR 解决方案 — INTEWORK-EAS-CP

    概述INTEWORK-EAS(ECUAUTOSARSoftware,以下简称EAS)是经纬恒润自主研发,符合AUTOSAR标准的软件产品。解决方案涵盖了嵌入式标准软件、AUTOSAR工具链、
    的头像 发表于 05-21 09:26 904次阅读
    <b class='flag-5'>AUTOSAR</b> 解决方案 — INTEWORK-EAS-CP

    AUTOSAR Builder—符合AUTOSAR(CPAP)的嵌入式系统设计工具

    工具并与其他工具供应商进行集成AUTOSAR Builder在此基础上新增了多个工具套件,更加能够贴合不同用户角色(OEM、Tier1)
    的头像 发表于 01-08 18:06 209次阅读
    <b class='flag-5'>AUTOSAR</b> Builder—符合<b class='flag-5'>AUTOSAR</b>(CPAP)的嵌入式系统设计<b class='flag-5'>工具</b>