メインコンテンツ

TASKING コンパイラに関連する Polyspace コンパイル エラーの修正

オプション [コンパイラ] (-compiler)tasking を選択すると、この問題が発生する可能性があります。

問題

Polyspace® 解析中、特殊機能レジスタのデータ型に関連するエラーが表示されます。

原因

TASKING コンパイラでのコンパイル時は、通常次のコンパイラ フラグを使用して特殊機能レジスタ (SFR) データ型を宣言している場所を指定します。

  • --cpu=xxx:コンパイラはソース ファイルにファイル sfr/regxxx.sfr を暗黙のうちに #include します。#include したら、その .sfr ファイルで宣言された特殊機能レジスタ (SFR) を使用できます。

  • --alternative-sfr-file:コンパイラは通常の SFR ファイルとは別の SFR ファイルを使用します。その代わりの SFR ファイルで宣言された特殊機能レジスタ (SFR) を使用できます。

Polyspace 解析用に TASKING コンパイラを指定すると、解析ではコンパイラ フラグについて次の前提条件が使用されます。

  • --cpu=xxx:解析では xxx の具体的な値が選択されます。TASKING コンパイラと異なる値を使用すると、Polyspace 解析中にエラーが発生する場合があります。

    Polyspace 解析によって使用される xxx 値は、選択した [ターゲット プロセッサ タイプ] (-target) によって異なります。

    • tricore: tc1793b

    • c166: xc167ci

    • rh850: r7f701603

    • arm: ARMv7M

  • --alternative-sfr-file:解析では、代わりの SFR ファイルを使用しないと仮定します。使用すると、エラーが発生する可能性があります。

解決法

コマンド ライン オプション -compiler-parameter を Polyspace 解析で次のように使用します。コマンド ライン オプションを使用して、Polyspace にコンパイラ フラグを認識させます。ユーザー インターフェイスでは、フィールドOtherにコマンド ライン オプションを入力できます。オプションは複数回入力できます。

  • --cpu=xxx:Polyspace 解析には、以下を使用します。

    -compiler-parameter --cpu=xxx
    ここで、xxx はコンパイラがコンパイル時に使用する値です。

  • --alternative-sfr-file:Polyspace 解析には、以下を使用します。

    -compiler-parameter --alternative-sfr-file

    Polyspace が .asfr ファイルを見つけられないために依然エラーが発生する場合、オプション [インクルード] (-include) を使用して、前処理済みのコードに .asfr ファイルを明示的に #include します。

    通常、そのファイルへのパスは 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 ファイルで同様の問題が発生する可能性もあります。詳細については、ビルド システムからのプロジェクト作成の要件を参照してください。