GR-PEACH オフライン開発環境の手順

Note

For English version, please refer to here.

オフライン開発環境の手順

mbedはオンラインコンパイラ環境が提供されていますが、オフライン環境でもコンパイルを行うことができます。
オフライン環境を行うためにmbed CLIというツールを使用します。
ここでは、mbed CLIを使ったオフライン環境でのデバッグ方法についてご紹介します。

mbed CLIとは

mbed CLIは、mbed OS 5開発用のツールとして提供され、プログラムのインポート及びエクスポート、複数のツールチェインを使ったビルドを簡単に行うことができます。

  • リポジトリのバージョンコントロール
  • 依存関係の解決
  • コードのパブリッシュ
  • リモートホストされたリポジトリからのアップデート(GitHub, GitLab 及び mbed.org)
  • ARM mbed ビルドシステムの呼び出し
  • エクスポート機能

詳しくは以下を参照下さい。
https://github.com/ARMmbed/mbed-cli

準備するもの

mbed CLI と関連ツールをインストールします。
インストール方法は以下の動画を参照して下さい。


上記の物は、ディレクトリをPCの環境変数のPATHに追加する必要があります。
例) 環境変数のPATH

C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2015q3\bin
C:\Program Files\Mercurial
C:\Program Files\Git
C:\Python27\Scripts


コマンドプロンプトを立ち上げてコマンドを実行することで、パスが通っているか確認できます。

$ python --version
$ git --version
$ hg --version


最後にmbed CLIをインストールします。
コマンドプロンプトを立ち上げ、以下を実行します。

$ pip install mbed-cli


リポジトリからインポート

mbed CLIは、Git又はmercurialのリポジトリからコードをインポートすることができます。
コマンドプロンプトを立ち上げて手元の作業ディレクトリに移動して、「mbed import」コマンドと共にリポジトリのURLを指定します。
mercurial リポジトリ:

$ mbed import https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-blinky

GitHub リポジトリ:

$ mbed import https://github.com/ARMmbed/mbed-os-example-blinky


少々時間がかかりますがインポートを終えると、「mbed-os-example-blinky」というディレクトリができます。
あとの作業は、このディレクトリの中で行います。

$ cd mbed-os-example-blinky


Gitリポジトリを手動でcloneした場合は mbed OSライブラリのソースコードは含まれていないので、deployコマンドを使ってライブラリのコードを追加します。

$ mbed deploy


ビルドの前に

mbed環境のサンプルの中には、「mbed_settings.py」というファイルがあり、この中でビルドに使用するツールチェーンを指定します。
複数のコンパイラバージョンをお持ちの方は以下のようにバージョンを指定することができますので、適当なテキストエディタでファイルを開き、ツールチェーンのパスを記載してください。
例) GCCのツールチェーンのパス

GCC_ARM_PATH = "C:/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q3/bin"


ビルド

ビルドを行うには、「mbed compile」コマンドを使用します。
ターゲットボードにGR-PEACH、ツールチェインにGCCを使う場合は以下のようになります。

$ mbed compile -m RZ_A1H -t GCC_ARM --profile debug


例) mbed-os-example-blinkyをビルドした際のメッセージ

Building project mbed-os-example-blinky (RZ_A1H, GCC_ARM)
Scan: .
Scan: FEATURE_BLE
Scan: FEATURE_COMMON_PAL
Scan: FEATURE_LWIP
Scan: FEATURE_UVISOR
Scan: FEATURE_ETHERNET_HOST
Scan: FEATURE_LOWPAN_BORDER_ROUTER
Scan: FEATURE_LOWPAN_HOST
Scan: FEATURE_LOWPAN_ROUTER
Scan: FEATURE_NANOSTACK
Scan: FEATURE_NANOSTACK_FULL
Scan: FEATURE_THREAD_BORDER_ROUTER
Scan: FEATURE_THREAD_END_DEVICE
Scan: FEATURE_THREAD_ROUTER
Scan: FEATURE_STORAGE
Scan: mbed
Scan: env
Compile [  0.4%]: cache.S
Compile [  0.8%]: AnalogIn.cpp
Compile [  1.2%]: BusIn.cpp
Compile [  1.6%]: BusInOut.cpp
Compile [  2.0%]: main.cpp

///Omission///

Compile [100.0%]: test_env.cpp
Link: mbed-os-example-blinky
Elf2Bin: mbed-os-example-blinky
+------------------------+-------+-------+-------+
| Module                 | .text | .data |  .bss |
+------------------------+-------+-------+-------+
| Fill                   |  1053 |     9 |     7 |
| Misc                   | 20204 |  2180 |   108 |
| cmsis/TOOLCHAIN_GCC    |   180 |     0 |     0 |
| drivers                |   184 |     4 |   716 |
| hal                    |   608 |     0 |     8 |
| platform               |  1890 |     4 |   269 |
| rtos                   |    56 |     4 |     4 |
| rtos/rtx               |  9737 |    21 | 21139 |
| targets/TARGET_RENESAS |  8732 |     6 |  3129 |
| Subtotals              | 42644 |  2228 | 25380 |
+------------------------+-------+-------+-------+
Allocated Heap: 524288 bytes
Allocated Stack: 82688 bytes
Total Static RAM memory (data + bss): 27608 bytes
Total RAM memory (data + bss + heap + stack): 634584 bytes
Total Flash memory (text + data + misc): 44872 bytes

Image: .\BUILD\RZ_A1H\GCC_ARM\mbed-os-example-blinky.bin

ビルドメッセージの最終行に、生成したバイナリファイルの場所が出力されます。

Image: .\BUILD\RZ_A1H\GCC_ARM\mbed-os-example-blinky.bin


生成されたバイナリファイル(.bin)をmbedボードにコピーして、ボードのリセットボタンを押すとコードが実行されます。

mbed CLI の使い方についてはこちらの動画もご参照ください。


オフラインでのデバッグ方法

mbed CLIを使ったオフライン環境では、mbed CLIでデバッグ情報付きのイメージファイルを生成して、Eclipseベースの「e2 studio」とOpenOCDの組み合わせでデバッグを行うことができます。

e2 studioのインストール:
https://developer.mbed.org/teams/Renesas/wiki/Exporting-to-e2studio-with-CMSIS_DAP-DBG#install-e2studio
OpenOCDのインストール:
https://developer.mbed.org/teams/Renesas/wiki/Exporting-to-e2studio-with-CMSIS_DAP-DBG#install-openocd

e2 studioを立ち上げて以下の手順を行ってください。

  • 空のプロジェクトを作成します。
  • 「実行」→「デバッグ構成」をクリックして「GDB OpenOCD Debugging」を選択します。
  • 「メイン」タブにて、プロジェクト: 部分に適当な名前、C/C++ アプリケーション: 部分にmbed CLIで生成した.elfファイルをフルパスで指定します。
    起動前に必要に応じてビルド部分のビルド構成で「Use Active」を選択します。
    /media/uploads/1050186/setting_p_1.png
  • 「Debugger」タブにて、OpenOCD Setup部分のConfig options:に「-f board/renesas_gr-peach.cfg」を記載します。
    BDB Client Setup部分のExeutable:に「arm-none-eabi-gdb」を記載します。
    /media/uploads/1050186/setting_p_2.png
  • 「Startup」タブにて、「Initial Reset.」と「Enable ARM semihosting」のチェックをはずします。
    Load Symbols and Executable部分の「Load executable」のチェックをはずします。
    /media/uploads/1050186/setting_p_3.png
  • 「ソース」タブは以下のように、デフォルトのままになります。
    /media/uploads/1050186/setting_p_4.png
  • 「共通」タブは以下のように、デフォルトのままになります。
    /media/uploads/1050186/setting_p_5.png
  • 適用ボタンを押します。
  • USBケーブルをGR-PEACHに接続します。
  • ".bin"ファイルをmbedドライブにコピーします。
  • USBケーブルをGR-PEACHから抜き、再接続します。
  • デバッグボタンを押します。
  • リセットしたい場合 :
    「コンソール」ビューの"arm-none-eabi-gdb.exe"スクリーンを選択して、以下のコマンドを入力下さい。
    ウィンドウ下段にあるツールバーボタンから「コンソール」ビューを選ぶことができます。
monitor reset init

/media/uploads/1050186/e2studio-thewaytoreset1.png /media/uploads/1050186/e2studio-thewaytoreset2.png

その他参考情報

ビルドオプションの変更方法

ビルドオプションは以下のjsonファイルにありますので、適当なテキストエディタでファイルを開いて下さい。
GCCのオプションは、GCC_ARMというラベルで括られています。

\mbed-os-example-blinky\mbed-os\tools\profiles\debug.json

Information

お使いのmbed OSのバージョンによっては、ビルドオプションを記載したファイルの格納先やファイル名が異なる場合があります。
その際は、オプションのシンボル名などで検索して下さい。


適宜オプションを変更したのち、-cを付けてリビルドして下さい。

$ mbed compile -m RZ_A1H -t GCC_ARM --profile debug -c


デバッグ方法は、上記の「オフラインでのデバッグ方法」と同じになります。


Please log in to post comments.