メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

IAR Embedded Workbench コンパイラ (-compiler iar-ew)

IAR Embedded Workbench コンパイラの指定

説明

IAR Embedded Workbench コンパイラを使用してコードをコンパイルする場合は、[コンパイラ] (-compiler)[iar-ew] を指定します。コンパイラを指定することによって、規格に含まれていなくても言語拡張に含まれている構文によるコンパイル エラーを回避できます。

次に、ターゲット プロセッサ タイプを指定します。[コンパイラ][iar-ew] を選択すると、Polyspace® デスクトップ製品のユーザー インターフェイスには、IAR Embedded Workbench コンパイラで許容されるプロセッサのみが表示されます。選択するターゲット プロセッサに応じて、基本的なデータ型のサイズ、ターゲット マシンのエンディアンおよび特定のキーワード定義が決まります。

[iar-ew] コンパイラを指定する場合は、コンパイラ ヘッダー ファイルへのパスを指定しなければなりません。Polyspace 解析への標準ライブラリ ヘッダーの指定を参照してください。

設定

ターゲットでは、基本的な型に対して以下のビット サイズが既定で使用されます。Polyspace デスクトップ製品のユーザー インターフェイスには、これらのサイズが表示されません。

ターゲットcharshortintlonglong longfloatdoublelong doubleptrchar の既定の符号エンディアンアライメントsize_t の定義wchar_t の定義
arm81632326432646432符号なしリトル64符号なし int 型short
avr81616326432323216符号なしリトル8符号なし int 型符号なし short 型
msp43081616326432323216符号なしリトル16符号なし int 型符号なし short 型
rh85081632326432646432符号なしリトル32符号なし int 型short
riscv81632326432646432符号なしリトル64符号なし int 型符号なし int 型
rl7881616326432323216符号なしリトル16符号なし int 型符号なし short 型

コンパイラの仕様では、多くのコンパイラ固有のマクロの値も決定されます。Polyspace で特定のマクロがどのように定義されるかを確認するには、オプション -dump-preprocessing-info を使用します。

ヒント

  • Polyspace では、$Super$$ および $Sub$$ を使用したシンボル定義のパッチ適用はサポートされていません。たとえば、次のコードは正しくコンパイルされますが、Polyspace は main() がこのコード ($Sub$$func) で定義されている関数 func ではなく extern func ($Super$$func) を呼び出すと見なします。

    /* void func() declared in another file */
    extern void $Super$$func(int i);
    
    int setup = 0;
    
    void setup_func(int i) {
      setup = i;
    }
    
    /* this function should be called instead of the original extern func() */
    void $Sub$$func(int i) {
      setup_foo(i); 
      /* does some extra setup work */   
      /* ... */
    }
    
    int main() {
      assert(setup = 0);
      func(1); // Should call $Sub$$func instead of $Super$$func
      assert(setup = 1);
      return 0;
    }
    Polyspace がコードの解析時に正しい関数を呼び出すようにするには、前処理後のすべてのファイルで、$Sub$$ のすべてのインスタンスを空の string に置き換えます。前処理済みファイルに適用するコマンド/スクリプト (-post-preprocessing-command) を参照してください。

  • Polyspace は、IAR コンパイラ固有の一部の構成要素をサポートしていません。

    サポートされていない構成要素一覧については、polyspaceroot\polyspace\verifier\code_prover_desktopcodeprover_limitations.pdf を参照してください。ここで、polyspaceroot は MATLAB® インストール フォルダーです。たとえば、C:\Program Files\Polyspace\R2019a です。

  • IDE で Polyspace as You Code の拡張機能を使用する場合は、このオプションを解析オプション ファイルに入力します。オプション ファイルを参照してください。

コマンド ライン情報

パラメーター: -compiler iar-ew -target
値: arm | avr | msp430 | rh850 | riscv | rl78
既定値: arm
例 (Bug Finder): polyspace-bug-finder -compiler iar-ew -target rl78
例 (Code Prover): polyspace-code-prover -compiler iar-ew -target rl78
例 (Bug Finder Server): polyspace-bug-finder-server -compiler iar-ew -target rl78
例 (Code Prover Server): polyspace-code-prover-server -compiler iar-ew -target rl78

バージョン履歴

R2018a で導入