• 328查看
  • 0回复

[Autosar] AutoSar工程——项目移植

[复制链接]


该用户从未签到

发表于 8-3-2024 20:44:04 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师



    前言  


Autosar的配置过程相当复杂,本文基于有一个现成的autosar工程基础框架这一资源的前提下,保持原有架构优点的同时,结合目标项目需求,将此autosar工程的基础框架有效地进行移植并实现复用到新的工程中。(基于V9.0.1)

2. 重命名ECU

在AR Explorer界面,找到ECU组件并重新命名为待实现的ECU名。这个ECU名需要跟dbc中自身的节点名一致。

AutoSar工程——项目移植w1.jpg

重命名之前,可以先生成下项目的bsw、rte、os,确保工程是可以使用的。

3. bsw部分

首先我们需要删除当前工程导入dbc生成的xml文件。可以配合git来查看我们更改配置带来的文件变更:

AutoSar工程——项目移植w2.jpg

暴力一些的话直接删除arxml文件也可,这里只是删除了xml文件中的内容。

万事开头难,导入dbc。

AutoSar工程——项目移植w3.jpg

正常来说的话,选择dbc的路径之后,按默认名字点击next即可导入成功。不过!!!dbc文件也是很看主机厂工程师水平的
AutoSar工程——项目移植w4.png

小编在导入dbc时,遇到了dbc的文件部分缺失的问题。于是只能自己手动制作dbc。之后,最后将有问题的dbc导入了CAN设备之后才得到答案:

AutoSar工程——项目移植w5.jpg

导入dbc之后即生成相关的bsw配置:

AutoSar工程——项目移植w6.jpg

AutoSar工程——项目移植w7.jpg

生成完之后,包括不限于Can、CanIf、CanSM、CanTP、CanTp、CanTSyn、Com、PduR、ComM、Dcm、BSWM、ECUC模块都会发生配置变化,我们需要去删除base项目中基于dbc的内容,保留autosar的一些通用配置,最终将新dbc的内容融合到base工程的配置中。

插个稍微复杂的路由:诊断报文的接收从CanIf2CanTP后,CanTp将PDU转化为SDU,之后CanTp2PduR,最后由PduR2Dcm完成传输,如果dbc中报文的属性是dcm,PDU配置都会帮我们自动创建,只需要重新选择pduref即可。

AutoSar工程——项目移植w8.jpg

再自认为完成配置后,打开代码生成配置界面,勾选新项目中需要用到的模块,设置生成路径即可开始运行。

AutoSar工程——项目移植w9.jpg

中间我又遇到一些棘手的问题,比如工程只显示报错不显示报错的具体原因:

AutoSar工程——项目移植w10.jpg

控制台只有短短的4行无关的log,没办法只能通过vscode打开工程来查看log:

AutoSar工程——项目移植w11.jpg

搜索error定位到问题,可能是时间同步模块哪里配置有问题,于是对比工程之后完善配置,最后生成bsw。

AutoSar工程——项目移植w12.jpg

4. RTE部分

由于是全新的项目,我们在重命名ECU之后,ECU抽象出来的内容都无法再使用了,我们需要删除如图框中的内容,:

AutoSar工程——项目移植w13.jpg

之后去做RTE的配置即可。可以参考下之前的文章RTE配置 (qq.com),本文基于移植的思路继续下去。

这边也有个小tips:

在设置system的类别时,如果我们有使用输入法的话,是无法通过CTRL+Space来打开文本框的:

AutoSar工程——项目移植w14.jpg

例如小编使用的QQ输入法,尤其是在python的调试过程中经常报warning信息。可以在改为大写之后,按CTRL+SHIFT之后再空格,即可弹出选择界面。当然文本框手敲也是可以的。

AutoSar工程——项目移植w15.jpg

AutoSar工程——项目移植w16.jpg

之后,重新选择ECU抽象即可开始RTE的配置。

AutoSar工程——项目移植w17.jpg

由于我们删除了抽象之后生成的文件和文件之中的配置内容,打开rte配置界面之后,会出现大量配置丢失的情况。

AutoSar工程——项目移植w18.jpg

AutoSar工程——项目移植w19.jpg

那么我们只能去重新配置丢失的这部分内容,正好可以将新项目的swc配置移植进来一起完善。

接下来就是生成配置界面,需要重新选择ECU的xml路径哦,继续使用旧ECU的路径会报错。

AutoSar工程——项目移植w20.jpg

到这里又发生了让小编崩溃的问题,英文好的小伙伴可以翻译翻译如下信息吗:

A relative reference with neither a BASE attribute nor adefault reference base is invalid. Either include a default ReferenceBasewithin package '/DBC_SysDesc_CanNetwork' or add aBASE attribute to the reference.

最后是同事使用火眼金睛发现了问题所在,计算方法的DBC_前面丢失了‘/’

AutoSar工程——项目移植w21.jpg

整个移植的过程下来,rte的配置除了rte界面无外乎在 rte、os、ecuc这些模块。如果RTE Editor出现改不了的情况,我们可以去模块中去配置,如果配置无法更改,我们就去暴力的操作xml文件,直到代码可以生成。当然,最好还是使用vscode去查找报错信息和xml文件去解决问题。

AutoSar工程——项目移植w22.jpg

5. 集成编译

最后的最后,配置MCAL代码再去集成编译整个工程就可以开始测试功能啦。至此,autosar的工程移(拷)植(贝)就完成了。

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 1-2-2025 11:00 , Processed in 0.418258 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.