サポートの概要

サポート対象コンパイラ

サポートされる EWARM (Embedded Workbench for ARM) コンパイラ/環境バージョンについては「コンパイラ」を参照してください。

EWARM プロジェクトのインポート

cpptesttrace を使用して EWARM プロジェクトをインポートできます。詳細については「プロジェクトのインポート」を参照してください。

コンポーネントのサポート

IAR Embedded Workbench プロジェクトのテストを容易にするために、以下のコンポーネントが提供されます。

  • サポートされている ARM 用 IAR コンパイラ (上記のリストを参照) の各バージョンに対応するコンパイラ構成。
  • make を使って IAR コンパイラ v. 6.1x 以降で C/C++test ランタイム ライブラリをビルドするための IAR_iccarm.mk ランタイム ライブラリ ビルド構成ファイル。
  • C-SPY シミュレーターで単体テストとアプリケーション テストを開始するためのテスト コンフィギュレーション
    • Run IAR EW Tests (Batch Template) - EW によって生成されたバッチ スクリプト ('.cspy.bat') を使用してシミュレーターを起動
    • Run IAR EW Application with Mem Monitoring (Batch Template) - EW によって生成されたバッチ スクリプト ('.cspy.bat') を使用してシミュレーターを起動
    • Run IAR ARM Tests – 純粋なマニュアル シミュレーターのコンフィギュレーション
    • Run IAR ARM Application with Mem Monitoring - 純粋なマニュアル シミュレーターのコンフィギュレーション

既知の制限事項

    • IAR ARM compiler v. 7.2x およびそれ以前に含まれるプリプロセッサの制限により、C/C++test は次のコードを解析できません。

      #define MHZ *1000000l 
      #define FREQ (1MHZ)
       
      void foo(long freq);
       
      void bar(void)
      {
             foo(FREQ);
      }

      回避策: 1MHZ の間に空白を挿入します。

      #define FREQ (1 MHZ)
         

    • C/C++test は、例外がキャッチされた後に再スローされるため、__nounwind キーワードをサポートしていません。プログラムに __nounwind が含まれる場合、[プロジェクト プロパティ] > [Parasoft] > [C/C++test] > [ビルド設定] でコンパイラ オプションに次のマクロを追加します。

      -DCPPTEST_COLLECT_STACK_TRACE=0

      C/C++test は C 言語のマルチバイト文字を正確に再構築しません。
    • IAR EW Build System (および 'iarbuild' コマンド ライン ユーティリティ) は、EWP プロジェクトに定義された各インクルード パスの最後に '\' (バックスラッシュ) を追加します。これは、ビルドをスキャン/トレースした後の BDF にも反映されます。
      C/C++test はインクルード パス オプションを引用符で囲むため、最後の引用符がエスケープされるのを防ぐため、バックスラッシュをエスケープする必要があります。iccarm に関連するバグのため、パス オプションにスペースと最後に 2 つのバックスラッシュの連続が含まれる場合、引用符に囲まれていても、単一のオプションとして解釈されません。
      これには、2 つの回避策があります。

      • スペースを含まないパスに IAR EW をインストールし、パスにスペースが含まれないようにします。

      • BDF を後処理してパス オプションから末尾のバックスラッシュを削除するか、オプション内のすべてのスペースをエスケープします。


  • No labels