修复与 TASKING 编译器相关的 Polyspace 编译错误
如果您为编译器 (-compiler) 选项选择 tasking,则可能会遇到此问题。
问题
在 Polyspace® 分析过程中,您会看到与特殊函数寄存器数据类型相关的错误。
原因
在使用 TASKING 编译器进行编译时,通常需要使用以下编译器标志来指定特殊函数寄存器 (SFR) 数据类型的声明位置:
--cpu=:编译器会在您的源文件中以xxx#include命令隐式包含文件sfr/reg。在以xxx.sfr#include命令包含该文件后,您可以使用在该.sfr文件中声明的特殊函数寄存器 (SFR)。--alternative-sfr-file:编译器使用替代 SFR 文件而不是常规 SFR 文件。您可以使用在该替代 SFR 文件中声明的特殊函数寄存器 (SFR)。
如果您为 Polyspace 分析指定了 TASKING 编译器,则该分析会对这些编译器标志做出如下假设:
--cpu=:此分析会选择一个特定值xxxxxx。如果您为 TASKING 编译器使用不同的值,则在 Polyspace 分析过程中可能会遇到错误。Polyspace 分析使用的
xxx值取决于您选择的目标处理器类型 (-target):tricore:
tc1793bc166:
xc167cirh850:
r7f701603arm:
ARMv7M
--alternative-sfr-file:此分析假设您不使用替代 SFR 文件。如果您使用替代 SFR 文件,则会遇到错误。
解决方案
如下所示在 Polyspace 分析中使用命令行选项 -compiler-parameter。您可使用此命令行选项来让 Polyspace 识别您的编译器标志。在用户界面中,您可以在其他字段中输入此命令行选项。您可以多次输入此选项。
--cpu=:对于您的 Polyspace 分析,请使用xxx其中,-compiler-parameter --cpu=xxx
xxx是您在使用编译器进行编译时所使用的值。--alternative-sfr-file:对于您的 Polyspace 分析,请使用-compiler-parameter --alternative-sfr-file
如果您仍然因为 Polyspace 找不到您的
.asfr文件而遇到错误,请使用选项Include (-include)在预处理代码中以#include显式包含您的.asfr文件。通常,该文件的路径为
。例如,如果 TASKING 编译器安装在Tasking_C166_INSTALL_DIR\include\sfr\regCPUNAME.asfrC:\Program Files\Tasking\C166-VX_v4.0r1\,并且您使用与 CPU 相关的标志-Cxc2287m_104f或--cpu=xc2287m_104f,则路径为C:\Program Files\Tasking\C166-VX_v4.0r1\include\sfr\regxc2287m.asfr。当您跟踪编译命令时,如果使用了替代 SFR 文件,也可能会遇到相同的问题。有关详细信息,请参阅从编译系统创建工程的要求。