サポートの概要

次のバージョンのコンパイラ/環境がサポートされます。

  • IAR EW430 (Embedded Workbench for MSP430) 4.2x (C および C++ の静的解析のみ)  
  • IAR EW430 (Embedded Workbench for MSP430) 5.3x (C のみ)  
  • IAR EW430 (Embedded Workbench for MSP430) 5.4x (C++ の静的解析のみ)  
  • IAR EW430 (Embedded Workbench for MSP430) 6.1x (C および C++ の静的解析のみ)  

IAR EW の統合は以下のように提供されます。

  • プロジェクトのインポートは、cpptesttrace ユーティリティを使ったインポートだけが可能 (詳細については 「プロジェクトのインポート」を参照)。  

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

  • サポートされている MSP430 用 IAR コンパイラ (上記のリストを参照) の各バージョンに対応するコンパイラ構成。  
  • make を使ってランタイム ライブラリをビルドするための IAR_icc430.mk ランタイム ライブラリ ビルド構成ファイル。  
  • C-SPY シミュレーターで単体テストとアプリケーション テストを開始するためのテスト コンフィギュレーション  
    • Run IAR MSP430 Tests - 純粋なマニュアル シミュレーターのコンフィギュレーション  
    • Run IAR MSP430 Application with Mem Monitoring - 純粋なマニュアル シミュレーターのコンフィギュレーション  

既知の制限事項

ポインタ宣言の前に IAR メモリ属性を置くことは、完全にはサポートされていません。次の「宣言 A」のような宣言は、まるで「宣言 B」のように記述されたかのように解析されます。  

Declaration A

         

Declaration B

この情報は以下の構成のプロジェクトに影響します。

  • 430X ターゲット プロセッサ コア
  • ミディアム データ メモリ モデルまたはラージ データ メモリ モデル
  • 有効化された IAR 言語拡張

以下の宣言は正しく処理され、上記のサポートされない構造の代わりに使用される可能性があります。

  • デフォルトでは、UBROF のライブラリとオブジェクト ファイルが同じ拡張子で生成されます (EW430 5.3x-5.4x の 場合は .r?? および .r43)。その場合、C++test はオブジェクトとライブラリを区別できません。その結果、ユーザー ライブラリがリンク コマンドラインから削除されます。以下のセクションでは、この制限事項とその解決方法について説明します。
  • IAR compilers for MSP430 バージョン 5.3x-5.4x に付属するバージョンの Xlib には、C++test の LSI フェーズでエラーを発生させる可能性がある既知の問題があります。この問題が発生した場合、Xlib は次のメッセージをレポートします。
    「Error [14]: Unknown tag: E0」
    この問題を解決するには、xlink をバージョン 5.2.6.19 以上にアップデートすることによって、Xlib を新しいバージョンにアップデートします。この操作の詳細については IAR サポートに連絡してください。

リンク中にユーザー ライブラリが削除される理由

C++test は、リンク コマンドの実行中、オプション フィルタリング メカニズムを利用して、オリジナルのユーザー オブジェクトの代わりにインストゥルメントされたオブジェクトを使用します。ELF や COFF のような形式では、オブジェクト ファイルとライブラリ ファイルの拡張子はデフォルトで異なります (.o/.a、.obj/.lib)。 この拡張性を頼りに C++test はオプション フィルタリング メカニズムを適切に使用します。しかし、UBROF のライブラリ ファイルとオブジェクト ファイルの拡張子はデフォルトで同じ .r?? であるため、C++test はリンクのコマンドラインからライブラリを削除します。システム ライブラリについては、観察された、体系化された名前付け規約 (dl430*.r43) に基づいてオプション フィルタリング パターンを導入することによって、この問題は解決されました。しかしユーザー ライブラリは今もなお削除されます。

リンク時にライブラリが削除されないようにするには

この問題には 2 つの解決方法があります。

  1. プロジェクトを右クリックして [プロパティ] > [Parasoft] > [C++test] > [ビルド設定] をクリックします。オプション セクションの [リンカー オプション] フィールドに手動でライブラリを追加します (推奨)。  
  2. ライブラリの名前付け制度 (拡張子または名前パターン) を確立し、カスタム コンパイラ構成を作成します。  

オプション #2 を選択した場合、c/cpp.psrc ファイルの
edgtk.optionConfig name=*.r43 regexp=true casesensitive=false tags=linker,excludable,object_file  

の直前に、次のオプション フィルターリング ルールを挿入します。
edgtk.optionConfig name=*<your_pattern> regexp=true casesensitive=false tags=linker  

この問題は、外部的にビルドされた C++test ランタイム ライブラリにも当てはまります。カスタム コンパイラの詳細については 「カスタム コンパイラを使用するテストの設定」を参照してください。

  • No labels