DBC导入和CAN的ETAS配置
本文档是以导入test_0906.dbc为例,配置CAN模块,生成BSW和RTE的方法。
1.选择D,导入dbc
2.选择dbc路径,Network Name与Controller与原总线保持一致
3.配置dbc导入方式
4.选择导入的数据
5.添加/
生成RTE之前先修改一下DBC_SysDesc.arxml
的bug
,在<COMPU-METHOD-REFDEST="COMPU-METHOD">DBC_SysDesc_CanNetwork_Vehicle
前加/否则编译报错
- 注意 因为落盘到
DBC_SysDesc.arxml
比较慢,即便有时候进度条已经结束,也需要等一段时间 - 第一个
SHORT-NAME
不用替换
导入DBC 后
bash
modified: DBC_SysDesc.arxml modified: system_config/Platform_Types.arxml //出现添加的ID与signal
6.设置Tx报文周期以及Rx报文设置
6.1 Tx报文周期发送
pdu
中找到对应的报文6EF
EventControll…
改为 cyclicTiming
后Value为周期 更改为 1 — 1S周期发送
6.2 rx报文设置
- 创建interface
随便点击一个
跳转到界面,注意上面的配置
我们添加一个 Interface_ASW_COM_Vehicle/
/Interface_ASW_COM_Vehicle.arxml
的接口
在现有的基础上添加SR Interface
即可 SRInterface_Test_6E1_Signal1
添加效果如下(Add VariableData Prototype)并指定VDP Type Ref
注意添加时候每写完一次,界面就会刷新到最后
- 创建RPort-SenderReceiver
- 创建DataAccessPoint
- System Data Mapping
7.System-ECUExtract提取
8.ECU Configuration
这里是为了生成BSW的输入文件
PS:因为新增了一个TX报文,这步骤之后就会新增一个TX mailbox17 下面就可以看到
删除CAN模块mailbox
BSW配置生成后,先删除CAN->CanConfigSet“CanConfigSet”->CanHardWareObject下多的maibox
删除CANIF下的mailbox
删除CANIF -> CanIfInitCfg -> CanIfInitHohCfg[1] -> CanIfInitHohCfg -> CanIfHrhCfg下的mailbox
PS:这些多的mailbox
报错最终是因为生成BSW
会提示,所以写文档的时候就知道了这些需要删除了
mapping接收id的mailbox
配置接收mask
CanObjectId 修改
在这里依次排序更改
9.生成BSW(如果生成报错 **CanIfPduId
报错**)
**CanIfPduId
报错**
生成BSW报错如下是ETAS的bug,需要删除报错对应的
CanIfPduId
移除之后其实在会后生成代码也会再次生成排序,之后窗口再次打开,就可以看到此pduId
了
重新生成BSW
ps:如果控制台不是以下显示,可能需要在RTE 重新编译 BSW
10.生成RTE (RTA Code Generator)
11.代码合成
代码检查 Rx返回值
bsw模块合成
CanIf Com Xcp PduR
添加debug 代码
找到对应的api 添加 到 CODE\CodePrj_QuadCore\src\Asw\ASW_COM_Vehicle.c
种
添加read252
添加函数调用
rte 代码合成
- rte 方面代码复制
bash
cd D:\code\adas\ADAS\ETAS/ETAS_project_QuadCore/BYD_L2_RH850/src/rte cp ./*.h D:\code\adas\ADAS\CODE\CodePrj_QuadCore\src\Rte cp ./*.c D:\code\adas\ADAS\CODE\CodePrj_QuadCore\src\Rte cp ./RteErr.xml D:\code\adas\ADAS\CODE\CodePrj_QuadCore\src\Rte cp ./rtegen_files.lst D:\code\adas\ADAS\CODE\CodePrj_QuadCore\src\Rte
- rte.c 修改
Mcall 配置
软件列表与安装
1、GenTool_RedistributableEnv
mcal 环境配置工具
GenTool_RedistributableEnv
其实就是DaVinci_Configurator_5.13.45_SP7
(达芬奇软件的安装之后的环境,可直接拿来解压使用)-提供的软件位置如下
- 配置静态文件,在上面的目录下
GenTool_RedistributableEnv\BSWMD
-BSWMD
需要将BSWMD_U2A16
下的所有文件(一堆arxml
)复制到这个路径下,(PS:此路径不要包含其它文件/文件夹) - 作用是是根据配置生成对应的
arxml
文件
2、AUTOSAR_RH850_U2Ax_MCAL_Ver43.02.00
瑞萨的静态文件和生成代码的工具
3、McalGen
执行上述工具的脚本
highlighter-
**PS: 上面的几个工具建议都放在一个目录下**
mcall配置
- 打开软件
GenTool_RedistributableEnv\DaVinciConfigurator\Core
下的DaVinciCFG.exe
可执行文件 - 打开
MCALL
中的.dpa
Basic Editor
- 视图样式
- 新建mailbox—右键Duplicate
- 弹出界面选择 数量 1 ,新添加一个
- 修改ObjectId
- 添加mailbox的 CanHwFilter过滤
- 导出All.arxml
代码生成
- 将上述
All.arxml
放入到McalGen
下
- 执行脚本
- 脚本报错
-
是因为对应位置下的文件加密
我们可以将加密文件放入到服务器,之后更改为服务器映射地址即可
AUTOSAR_RH850_U2Ax_MCAL_Ver43.02.00\X2x\U2Ax\common_family\generator
AUTOSAR_RH850_U2Ax_MCAL_Ver43.02.00\X2x\U2Ax\common_family\include\ghs
其中 trxml 没有加密 但是头文件加密了 所以可以将 头文件放入服务器
更改trxml 中 文件对应路径
-
再次运行脚本
- 执行成功,将生成文件导出 和 代码路径文件对比,同步,注意一些有人为修改的地方不要改动
对比
相关注释手动修改部分是为了保持版本一致
OS代码配置
路径配置
编辑器更改oscfg.rtaos
内的路径配置
原先为
路径明显不对,Options
更改为
bash
<Options> <Option name="BuildGui.LastBuildCommand">rtaosgen.exe --build:clean --debug:source --output:..\gen --include:..\..\..\CODE\CodePrj_QuadCore\src\Integration\BswIntegration --include:..\..\..\CODE\CodePrj_QuadCore\src\Integration\RteIntegration --include:..\..\..\CODE\CodePrj_QuadCore\src\Integration\OsIntegration --include:..\..\..\ETAS\ETAS_project_QuadCore\BYD_L2_RH850\src\rte oscfg.rtaos</Option> <Option name="BuildGui.CleanRebuild">TRUE</Option> <Option name="BuildGui.KeepSourceFiles">TRUE</Option> <Option name="BuildGui.OutputFolder">..\gen</Option> <Option name="BuildGui.IncludePaths">..\..\..\CODE\CodePrj_QuadCore\src\Integration\BswIntegration;..\..\..\CODE\CodePrj_QuadCore\src\Integration\RteIntegration;..\..\..\CODE\CodePrj_QuadCore\src\Integration\OsIntegration;..\..\..\ETAS\ETAS_project_QuadCore\BYD_L2_RH850\src\rte</Option> </Options>
D:\code\adas\ADAS\OS\OsCfg_QuadCore\cfg 下的oscfg.rtaos 打开(
默认使用C:\ETAS\RTA-CAR_9.1.0\RTA-OS_6.1.3\bin\rtaoscfg.exe
—ETAS 安装目录下的)
点击左下列表中的Build,看参数配置对不对
环境变量配置
在最后添加 添加gerrnhill
环境变量 C:\ghs\comp_202115
(按照自身安装路径)
最好是添加到系统环境变量中,不然每次打开都需要添加,不会保存
文件配置
对于此练习简单的Rx添加更改
bash
cd D:\code\adas\ADAS\OS\OsCfg_QuadCore\cfg d: cp ../../../ETAS/ETAS_project_QuadCore/BYD_L2_RH850/MPC_Project_EcucValues.arxml ./ cp ../../../ETAS/ETAS_project_QuadCore/BYD_L2_RH850/Project_EcucValues_UserConfig.arxml ./ cp ../../../ETAS/ETAS_project_QuadCore/BYD_L2_RH850/src/rte/iocNeeds.arxml ./
编译
点击build now
编译成功os, 生成路径为 ADAS\OS\OsCfg_QuadCore\gen
文件比对复制
bash
cd D:\code\adas\ADAS\OS\OsCfg_QuadCore\gen cp ./* D:\code\adas\ADAS\CODE\CodePrj_QuadCore\src\Os\src\ cd D:\code\adas\ADAS\CODE\CodePrj_QuadCore\src\Os\src\ cp RTAOS.a.sig ../
编译
GreenHill编译
编译OK之后
点击debug 小虫子
按F5 进入连接界面
如果是首次连接,需要按照以下步骤创建连接:
a)Create a new connection method
这个参考四维文档 GreenHills+E2 调试
需要注意在这里添加debug 参数
配置完成时候选择connect 这时候会下载刚才编译的版本,之后等待进入连接界面
选择core0 ,找到调试文件,在目标代码下一步打上断点
点击read252 会弹出窗口显示值
发送报文之后点击继续运行可以发现值的变化
制作差分包
取出编辑生成文件,放入version文件夹中
打开制作工具
软件版本看 注释
软件编码为FD07_Ver 中 0x 和 , 移除的16进制组合
烧写
MCU版本路径
\\10.4.0.4\第五事业部\软件中心\Product\AutoElectronic\BYD_ADAS\Release_SZ\Release\V3\MPC\MCU
其中XCD下的zip包为烧写文件
工具为 D:\software\adas\update_version
下的 007release
- 点击exe可执行程序,更改下载长度为64,路径选择为
zip
包
等待成功即可
如果报错可以尝试将 烧写模式更改为 忽略版本号
转自月的光景