主要内容

修复与 TASKING 编译器相关的 Polyspace 编译错误

如果您为编译器 (-compiler) 选项选择 tasking,则可能会遇到此问题。

问题

在 Polyspace® 分析过程中,您会看到与特殊函数寄存器数据类型相关的错误。

原因

在使用 TASKING 编译器进行编译时,通常需要使用以下编译器标志来指定特殊函数寄存器 (SFR) 数据类型的声明位置:

  • --cpu=xxx:编译器会在您的源文件中以 #include 命令隐式包含文件 sfr/regxxx.sfr。在以 #include 命令包含该文件后,您可以使用在该 .sfr 文件中声明的特殊函数寄存器 (SFR)。

  • --alternative-sfr-file:编译器使用替代 SFR 文件而不是常规 SFR 文件。您可以使用在该替代 SFR 文件中声明的特殊函数寄存器 (SFR)。

如果您为 Polyspace 分析指定了 TASKING 编译器,则该分析会对这些编译器标志做出如下假设:

  • --cpu=xxx:此分析会选择一个特定值 xxx。如果您为 TASKING 编译器使用不同的值,则在 Polyspace 分析过程中可能会遇到错误。

    Polyspace 分析使用的 xxx 值取决于您选择的目标处理器类型 (-target)

    • tricoretc1793b

    • c166xc167ci

    • rh850r7f701603

    • armARMv7M

  • --alternative-sfr-file:此分析假设您不使用替代 SFR 文件。如果您使用替代 SFR 文件,则会遇到错误。

解决方案

如下所示在 Polyspace 分析中使用命令行选项 -compiler-parameter。您可使用此命令行选项来让 Polyspace 识别您的编译器标志。在用户界面中,您可以在其他字段中输入此命令行选项。您可以多次输入此选项。

  • --cpu=xxx:对于您的 Polyspace 分析,请使用

    -compiler-parameter --cpu=xxx
    其中,xxx 是您在使用编译器进行编译时所使用的值。

  • --alternative-sfr-file:对于您的 Polyspace 分析,请使用

    -compiler-parameter --alternative-sfr-file

    如果您仍然因为 Polyspace 找不到您的 .asfr 文件而遇到错误,请使用选项 Include (-include) 在预处理代码中以 #include 显式包含您的 .asfr 文件。

    通常,该文件的路径为 Tasking_C166_INSTALL_DIR\include\sfr\regCPUNAME.asfr。例如,如果 TASKING 编译器安装在 C:\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 文件,也可能会遇到相同的问题。有关详细信息,请参阅从编译系统创建工程的要求