サポートの概要
サポート対象コンパイラ
サポートされる 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); }回避策:
1とMHZの間に空白を挿入します。#define FREQ (1 MHZ)
- C/C++test は、例外がキャッチされた後に再スローされるため、
__nounwindキーワードをサポートしていません。プログラムに__nounwindが含まれる場合、[プロジェクト プロパティ] > [Parasoft] > [C/C++test] > [ビルド設定] でコンパイラ オプションに次のマクロを追加します。
C/C++test は C 言語のマルチバイト文字を正確に再構築しません。-DCPPTEST_COLLECT_STACK_TRACE=0 IAR EW Build System (および 'iarbuild' コマンド ライン ユーティリティ) は、EWP プロジェクトに定義された各インクルード パスの最後に '\' (バックスラッシュ) を追加します。これは、ビルドをスキャン/トレースした後の BDF にも反映されます。
C/C++test はインクルード パス オプションを引用符で囲むため、最後の引用符がエスケープされるのを防ぐため、バックスラッシュをエスケープする必要があります。iccarm に関連するバグのため、パス オプションにスペースと最後に 2 つのバックスラッシュの連続が含まれる場合、引用符に囲まれていても、単一のオプションとして解釈されません。
これには、2 つの回避策があります。スペースを含まないパスに IAR EW をインストールし、パスにスペースが含まれないようにします。
BDF を後処理してパス オプションから末尾のバックスラッシュを削除するか、オプション内のすべてのスペースをエスケープします。