Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

以下は、私がインストールした際のスナップショットです。
image.png
image.png
「Support Synergy Devices」及び「RZデバイス・サポート」を選択します(※前者をインストールしないと make コマンドがインストールされないようです)。
image.png
「コラボレーション」「日本語言語パック」「RTOS」及び「Terminals」を選択しました。
image.png
image.png
image.png
image.png
image.png
image.png

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 を選択し、登録します。
image.png

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 のメニューから [ファイル]→[インポート...] を選択します。
image.png

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

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

image.png

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

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

設定が完了したら、[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」を選択します。

image.png
image.png

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

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

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

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

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

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

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

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

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

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

以上です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away