C++test スタンドアロン版と C++test Eclipse プラグイン版の両方で、Renesas High-performance Embedded Workshop (HEW) と C++test を連携して使用することができます。特別な統合は必要ありません。
C++test は実際に HEW 開発環境と「統合」するわけではありません。C++test は HEW のコンパイラをサポートするようにあらかじめ構成されています。C++test プロジェクトで HEW コンパイラを使用できるほか、完全な HEW プロジェクトを C++test ワークスペースにインポートすることができます。
サポートの概要
C++test は High-performance Embedded Workshop 4 をサポートします。次のクロス コンパイラがサポートされます。
- Renesas SuperH RISC engine V9.03
- Renesas M16C,R8C Family C Compiler v5.4X (静的解析のみ)
既知の制限事項
Renesas SuperH RISC Engine
テスト実行可能ファイルに含める実行時テスト機能によっては、準備されるテスト バイナリのサイズが元のアプリケーションに較べて非常に大きくなる場合があります。リソースの限られた環境では、利用可能なプログラム メモリの容量の問題が発生することがあります。プログラム実行中のヒープおよびスタック メモリ使用量の増加についても、同様の制限があります。この問題を解決するには、プログラムのメモリ配置を変更し、利用可能なスタック/ヒープのサイズを変更しなければならない場合があります。
自動的にスタブを構成するには、最終的なプログラムをリンクしたときに使われるライブラリの情報をスキャンする必要があります。現時点では、C++test はライブラリから C++ シンボルを読み取ることができません。そのため、見つからないシンボルが誤ってレポートされることがあります。
コマンドライン処理に関する既知のコンパイラの制限事項のために、C++test はワークスペースの場所あるいは C++test インストール ディレクトリについて '(' と ')' を含むパスをサポートしません。
Renesas M16C, R8C Family C Compiler
Renesas M16C,R8C Family C Compiler は、C 言語のさまざまな構造を無視します。このコンパイラは、構造に対するサポートがないことについて警告メッセージを出しますが、コンパイルは正常に終了します。
例
[Warning(ccom):stmt_expr.c,line 2] this feature not supported now,ignored
===> int i = ({ int x = 777; x; });
コンパイラによって無視される構造がある場合、静的解析が不正確になることがあります。
要件
C++test 自体には標準の規則が適用されます。C++test Eclipse スタンドアロン版の場合、拡張は必要ありません。CDT (C++ Development Tools) はすでに含まれています。C++test Eclipse プラグイン版の場合は、CDT 拡張も Eclipse にインストールする必要があります。 詳細については 「インストール」 および「ライセンスの設定」を参照してください。
Renesas HEW コンパイラを使ってテストを実行するには、環境からコンパイラにアクセスできるようにする必要があります。 以下の操作手順では、環境変数の設定を簡単にするために、Renesas High-performance Embedded Workshop のインストール ディレクトリにある以下の *.bat ファイルを使用します。
Renesas のディストリビューション | *.bat ファイルのディレクトリ |
---|---|
Renesas SuperH RISC engine (v9.03) | Tools\Renesas\Sh\9_3_0\shv9300env.bat |
Renesas SuperH RISC engine (v9.04) | Tools\Renesas\Sh\9_4_0\shv9400env.bat |
Renesas M16C, R8C Family C Compiler V5.4x | Tools\Renesas\nc30wa\<version number>\setnc30.bat |
- Windows コマンドライン ウィンドウを開き、.bat ファイルを実行します。
- 同じコマンドライン ウィンドウから C++test を実行します。