BTC测试目前遇到的问题的解决方法

1,报"冒号运算符……"

or

报错原因:

将信号的维度设置为了标定量。

BTC测试目前遇到的问题的解决方法_第1张图片

BTC提供的解决方法:

BTC测试目前遇到的问题的解决方法_第2张图片

(1)将对应的标定量改为该标定量对应的数字。(我采用的)

BTC测试目前遇到的问题的解决方法_第3张图片

(2)去掉后面的标定量的''符号,并定义后面的标定量为数字。

%%%目前使用了这个方法后,会报enum多次定义的问题。

BTC测试目前遇到的问题的解决方法_第4张图片

2,报enum未定义:

BTC测试目前遇到的问题的解决方法_第5张图片

报错原因:

BTC方面认为是MATLAB 的bug.

BTC测试目前遇到的问题的解决方法_第6张图片

如图,当自定义数据和头文件的名字,且类型选择Modular,则会出现enum类型的数据被定义在Rte_Type.h,在报错的C文件中需要使用此enum数据但是未直接或间接声明此文件。所以BTC导入中C代码编译变量未定义错误。

BTC测试目前遇到的问题的解决方法_第7张图片

BTC提供的解决方法:

BTC测试目前遇到的问题的解决方法_第8张图片

BTC测试目前遇到的问题的解决方法_第9张图片

(1)让mathworks公司修复此bug.

(2)在mathworks公司未修复此bug前,可通过修改配置来规避此bug,将两个生成文件的选项改为自动。如图.

BTC测试目前遇到的问题的解决方法_第10张图片

或者将File packaging format改为Compact.

BTC测试目前遇到的问题的解决方法_第11张图片

(3)若不想按照方法(1)和(2),则当BTC测试到达代码导入界面时,修改对应的C文件,声明相应的头文件。修改后,保存。回到BTC的界面,选择Check后不再有error.

BTC测试目前遇到的问题的解决方法_第12张图片

 

BTC测试目前遇到的问题的解决方法_第13张图片

BTC测试目前遇到的问题的解决方法_第14张图片

3,报"more than one AUTOSAR element"

BTC提供的解决方法:

(1)第一步换插件:卸载掉旧的1.22的插件,安装新的.1.3.3的插件

(2)将出现此问题的输出接口:右键-Block Parameters.在Signal Attributes下,将Output as nonvirtual bus in parent model选项选择。(出现此选项的前提是接口被定义为Bus:***,此类型应在文件里定义一下)

BTC测试目前遇到的问题的解决方法_第15张图片

(3)将此simulink模型中,选择"菜单-Tools-BTC Plugin for Embedded Coder-Create AUTOSAR wrapper model",生成wrapper模型。

将生成的wrapper模型中对应的port也设置为非虚拟bus.

(4)将生成的Wrapper*.slx,调度用的Scheduler连接错的接口手动修正好。

BTC测试目前遇到的问题的解决方法_第16张图片

4,报:function 多次定义.

报错原因:

因为BTC软件的bug.当模型中存在goto和多个from,且每个from存在不同的runable中.则每个from会导致BTC工具对该信号相关的桩函数重复定义一次.

BTC提供的解决方法:

(1)临时解决方法:自行前往报错的文件,查找相应的报多次定义的function,并屏蔽到只剩一个.

5,报:usage of undefined Function

报错原因:

MATLAB漏打了桩函数.

BTC提供的解决方法:

在BTC软件的界面,当报此错误时,Check按钮旁会多一个自动生成桩函数的按钮,点击后,让你为生成的桩函数取名.之后再check则此问题消失.

6,报:compilation failure:cannot open source file "can_message.h"

报错原因:

使用can pack和can unpack模块的后遗症,这些块不属于MAAB规定的标准块.

BTC提供的解决方法:需将相应的.h文件从MATLAB目录拷贝到被测模型报错的.c文件所在目录下,之后再check一下.

我实际上的解决方法:从matlab的目录搜索到一个同名文件,拷贝过来.

7,没有SWC

这个块暂时不测.

你可能感兴趣的:(BTC测试目前遇到的问题的解决方法)