GR-PEACHオフライン開発環境の構築[On Windows 10]


GR_PEACH をオフラインで開発する環境を構築したので、以下、覚書として残します。

※2019/01/04追記
e2studio 7.2.0 + OpenOCD は動作しましたが、OpenOCD の代わりに J-link を利用した場合、On Chip Debug 時に main 関数でブレークがかからない・・
他の方は、e2studio の 6.2.0 で問題なく実行されているようでしたので、 v6.3.0 R2 にして実行してみました。結果、e2studio + J-link のデバッグができました。但し、たまに 7.2.0 の時と同じような挙動になることもありました(ダウンロードしたり、リセットしたりしてると直る)。よって、原因は不明です。

0. 前提条件

  • Windows 10 Pro 1809 64bit
  • e2studio 7.2.0
  • OpenOCD
  • GR-PEACH

1. e2studio のインストール

Renesasのサイト 統合開発環境 e2studio より e2studio のインストーラ(setup_e2_studio_7_2_0.exe[2018/12/30 現在の最新版 7.2.0])をダウンロードします。
ダウンロードしたインストーラを起動し、インストールします。

どうも VS2008 用及び VS2017 用の C++ 再頒布可能パッケージが必要のようです。
インストーラで自動インストールしてくれるようですが、なぜか私の環境では、VS2017 用がインストールに失敗し、e2studio のインストーラがエラーとなってしまいました。そこで、e2studio インストールする前に VS2017 用を手動でインストールして対応しました。
VS2017 用 再頒布可能パッケージは、以下からダウンロード可能です。
https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads

以下は、私がインストールした際のスナップショットです。


「Support Synergy Devices」及び「RZデバイス・サポート」を選択します(※前者をインストールしないと make コマンドがインストールされないようです)。

「コラボレーション」「日本語言語パック」「RTOS」及び「Terminals」を選択しました。





2. OpenOCD のインストール

GNU MCU Eclipse OpenOCD v0.10.0-10-20181020 のインストーラをダウンロードします。
e2studio が 32bit アプリケーションなので、32bit 版(gnuarmeclipse-openocd-win32-0.10.0-201601101000-dev-setup.exe)となります。

3. OpemOCD 設定ファイルのコピー

renesas_gr-peach.cfg をダウンロードします。
ダウンロードした renesas_gr-peach.cfgC:\Program Files (x86)\GNU ARM Eclipse\OpenOCD\0.10.0-201601101000-dev\scripts\board に格納します。

4. e2studio の起動

インストールした e2studio を起動します、
ツールチェーン・タイプ選択画面では、GCC ARM embedded を選択し、登録します。

5. GR-PEACH サンプルプロジェクトのビルド

mbed のサンプルプロジェクトをエクスポートしたものを e2studio にインポートしてみましたが、e2studio でのビルド時にビルドエラー(ヘッダファイルが見つからない)が発生してビルドできませんでした。以下に同じ問題でチケットが発行されており、Closed していますが、私の環境では解決できませんでした。

※2019/01/04追記
ヘッダファイルが見つからない件ですが、インクルードパスを解決してみましたが、最終的に以下のエラーでビルドできませんでした。諦めました・・

  :
  :
'Building target: mbed-os-example-blinky.elf'
'Invoking: Cross ARM C++ Linker'
arm-none-eabi-g++ @"mbed-os-example-blinky.elf.in"
arm-none-eabi-g++: error: unrecognized command line option '--wrap=main'
arm-none-eabi-g++: error: unrecognized command line option '--wrap=_malloc_r'
arm-none-eabi-g++: error: unrecognized command line option '--wrap=_free_r'
arm-none-eabi-g++: error: unrecognized command line option '--wrap=_realloc_r'
arm-none-eabi-g++: error: unrecognized command line option '--wrap=_memalign_r'
arm-none-eabi-g++: error: unrecognized command line option '--wrap=_calloc_r'
arm-none-eabi-g++: error: unrecognized command line option '--wrap=exit'
arm-none-eabi-g++: error: unrecognized command line option '--wrap=atexit'
make: *** [mbed-os-example-blinky.elf] Error 1
makefile:242: recipe for target 'mbed-os-example-blinky.elf' failed

07:02:34 Build Failed. 2 errors, 79 warnings. (took 3m:52s.706ms)

とりあえず、がじぇるね GR-PEACH で公開されている e2studio用プロジェクトコード peach_mbed_style_V203.zip を利用して動作確認しました。

peach_mbed_style_V203.zip を解凍し、peach_mbed_style フォルダをワークスペースにコピーします。

e2studio のメニューから [ファイル]→[インポート...] を選択します。

インポート画面で、[一般]→[既存プロジェクトをワークスペースへ]を選択し、[次へ]をクリックします。

「ルート・ディレクトリーの選択」で先ほどのフォルダを選択し、「終了」ボタンでインポートされます。

インポートできたら、ビルドします。
ビルドの前に、Toolchain のバージョンを確認します。
peach_mbed_style プロジェクトを選択し、右クリックでプロパティ画面を表示します。

[C/C++ ビルド]→[設定]を選択し、設定画面で [Toolchainタブ] を表示します。「Use integrated toolchaom version:」で "4.9.3.20150529" を選択します。

設定が完了したら、[Apply and Close] ボタンで画面を閉じ、プロジェクトをビルドします(※一応、プロジェクトをクリーンした後、ビルドを実行)。

 :
 :
'Finished building: ../main.cpp'
' '
'Building target: peach_mbed_style.elf'
'Invoking: Cross ARM C++ Linker'
arm-none-eabi-gcc @"peach_mbed_style.elf.in"
'Finished building target: peach_mbed_style.elf'
' '
'Invoking: Cross ARM GNU Create Flash Image'
arm-none-eabi-objcopy -O binary "peach_mbed_style.elf"  "peach_mbed_style.bin"
'Finished building: peach_mbed_style.bin'
' '
'Invoking: Cross ARM GNU Print Size'
arm-none-eabi-size --format=berkeley "peach_mbed_style.elf"
   text    data     bss     dec     hex filename
  77244    2360   44304  123908   1e404 peach_mbed_style.elf
'Finished building: peach_mbed_style.siz'
' '

17:52:20 ビルドが完了しました(所要時間 7m:2s.300ms)

6. GR-PEACH サンプルプロジェクトのデバッグ

ビルドしたサンプルプロジェクトを OpenOCD を利用してデバッグします。

「実行」→「デバッグ構成」をクリックして「GDB OpenOCD Debugging」を選択します。


ダブルクリックすると peach_mbed_style Debug[local] の項目が追加され、設定画面が表示されます。

「メイン」タブは、デフォルトのままです。

「Debugger」タブでは、Config options:「-f board/renesas_gr-peach.cfg」を記載します。

「Startup」タブでは、「Initial Reset.」「Enable ARM semihosting」のチェックをはずします。
また、
Load Symbols and Executable** 部分の「Load executable」のチェックをはずします

「ソース」「共通」及び「SVD Path」タブは、デフォルトのままです。


上記全ての変更を**[適用]ボタンで反映します。

USBケーブルを GR-PEACH に接続(基板外側のUSB)し、"Debug\peach_mbed_style.bin"MBED ドライブにコピーします。
[デバッグ」ボタンをクリックすると、デバッグが始まります。

※ステップ実行する際、プロジェクトのプロパティ画面(C/C++ ビルド→[設定]→[ツール設定]タブ→[Optimization]→[Optimization Level]最適化を **None(-O0) (default: Optimize more(-O2)) にしたほうがステップ実行はわかりやすいと思います。

export to e2studio [lang:ja]@mbed 公式のページでは、リセット時に monitor reset init を入力するように記載がありますが、私の環境では、Console で入力できないようでした(挙動がわからない)。
そこで、デバッグをやめる場合、ストップボタンで停止しています(特に問題なくデバッグできています)。

7. 参考にさせていただいたページ

以上です。