前提条件
- Renesas RX 2.05
- Parasoft C++test plugin for Eclipse
統合の概要
C++test プラグインは、Eclipse のプラグイン メカニズムを使用して e2 studio Eclipse IDE と統合します。「プラグイン版 - Windows」の手順を実行してください。ターゲット プラットフォームを選択するよう求められたら、[Other] ラジオ ボタンをオンにし、e2 studio インストール ディレクトリの Eclipse フォルダーへのパスを指定します。その後、通常どおりインストールを続行します。
単体テストおよびアプリケーション検証の実行
プロジェクトが「シミュレーターを使用したデバッグ」をサポートしていることを確認してください。これを確認するには、プロジェクトの最上位レベルにある "{project_name} Debug.launch" ファイルを確認します。
Eclipse ワークスペースの更新
単体テストのカバレッジを収集するには、追加のデバッガー アクションを登録する必要があります。
- e2 studio で [Window] メニューの [Preferences] > [C/C++] > [Debug] > [GDB] をクリックします。
- 次の場所にある gdb スクリプトを参照して [GDB Command] の値を変更します。
<path_to_install_location>\engine\etc\templates\for_recipes\RenesasRxGDBinit.gdb
- すでに GDB コマンドが指定されている場合、上記のスクリプトの内容をすでに登録されているスクリプトに追加します。
gdb スクリプトは、Excep_BRK() でデバッガーを終了するよう設定されています。実行中のプログラムを別の方法で中断する場合、それに合わせて gdb スクリプトを変更します。
プロジェクト プロパティの更新
C++test で単体テストを実行するには、最適化を 0 に設定する必要があります。
- プロジェクト プロパティを開いて [C/C++ Build] > [Settings] に移動します。
- C および C** コンパイラのサブメニューを開いて [Optimize] をクリックします。
- [Optimize level] フィールドに 0 を指定します。
プロジェクト プロパティを開いて [C/C++ Build] > [Settings] に移動し、以下のオプションを設定します。
- オプションのソース
ドロップ ダウン メニューから [Use Options from Managed Make C/C++ project] を選択します。 - コンパイラ設定
[種類] ドロップダウン メニューから [Renesas RX C/C++ Compiler 2.5x] を選択し、変更の確認を求められたら [OK] をクリックします。 - オプション
[コンパイラ オプション] に${cpptest:original_options}
を指定します。[リンカー オプション] に ${workspace_loc}\Debug\LinkerSubCommand.tmp にある start 引数を追加します。${cpptest:original_options} -define=PARASOFT_CPPTEST -define=FILE_COMMUNICATION_BUFFER_SIZE=128
-start
引数は次のようになります。:-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/0FFD00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC
インストゥルメントされたデバッグ起動構成の設定
- デフォルトのデバッグ起動構成を複製します。新しい構成は、e2 studio で作成された新しいプロジェクトの最上位ディレクトリに配置されます。
- 複製された構成によって、e2 studio が提供するデバッガーで実行可能なデバッグ実行モジュールが生成されることを確認します。
- 新しいデバッグ起動構成の名前を変更し、C++test で単体テストを実行するために使用するものだとわかるようにします。
- 構成をカスタマイズします。
[Startup] タブ:
- [Halt] チェックボックスをオフにします。
- [Set breakpoint at] チェックボックスをオフにします。
- [Resume] チェックボックスをオンにします。
[Debugger] > [Debug Tool Settings] タブ:
- [Memory] セクションで [Memory Areas] 行の [...] ボタンをクリックします。
- 1 MB 以上のマップへの新規 Emulation Rom アドレス スペースを追加します。
- start 引数を変更し、プログラム エリア {P} としてこの新しいメモリ スペースのスタート アドレスを使用します。
start 引数の変更例
新しい Simulator Memory Map Row:
Emulation ROM | 0x01000000 | 0x01ffffff | 16384 KBytes |
元のプロジェクト リンク コマンドの start 引数:
-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/0FFFF0000,FIXEDVECT/0FFFFFF80
変更後の Parasoft リンク オプション:
-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/001000000,FIXEDVECT/0FFFFFF80
Uninitialized D のためにより多くの領域を空ける必要がある場合もあります。
未初期化データのためにより多くの領域を割り当てる
次の場合、未初期化データにより多くのスペースを割り当てなければならない可能性があります。
- インストゥルメントされた実行モジュールのヒープ領域がデフォルトで提供される RAM を超えている。
- アドレスが指定されたセクションをはみ出していることを示すエラーによりプログラムのリンクが失敗する。
メモリ マップを更新するには、「インストゥルメントされたデバッグ起動構成の設定」の手順に従って [Emulation RAM] セクション (Emulation ROM ではなく) を追加します。
新しい Simulator Memory Map Row:
Emulation RAM | 0x02000000 | 0x02ffffff | 16384 KBytes |
Parasoft リンカー オプションの start 引数を変更し、メモリ マップの新しい行を反映します。
元のプロジェクト リンク コマンドの start 引数:
-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/001000000,FIXEDVECT/0FFFFFF80
変更後の Parasoft リンク オプション:
-start=SU,SI,R_1,R_2,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/001000000,FIXEDVECT/0FFFFFF80,B_1,B_2,B/002000000
スタックおよびヒープのサイズの値を変更する必要がある場合もあります。これらは #define HEAPSIZE
および #pragma stacksize su
によって定義されます。
アプリケーション検証用の C++test の実行フローは、カスタマイズされた起動コンフィギュレーションを指す必要があります。コンフィギュレーションを設定するには、次の操作を行います。
- IDE のメニュー バーで [Parasoft] をクリックします。
- [テスト コンフィギュレーション] > [ビルトイン] > [Embedded Systems] >[Renesas Rx] に移動します。
- [Build and Run Renesas Rx Application Monitoring Executable in e2 Studio] コンフィギュレーションを複製します。複製されたコンフィギュレーションがユーザ定義カテゴリに表示されます。
- 複製されたコンフィギュレーションを開いて [実行] > [ランタイム] タブをクリックします。
- [デバッガーでテストを実行する(*)] チェックボックスをオンにします。
- [Eclipse の内部的なデバッガーとデバッグ構成を使用する:] オプションをオンにし、ドロップダウン メニューから新しく作成したデバッグ起動コンフィギュレーションを選択します。