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 と関連ツールをインストールします。
インストール方法は以下の動画を参照して下さい。
- Python:
version2.7.11以降を入れてください。version3系は入れないでください。
https://www.python.org/downloads/
- Git:
version1.9.5以降を入れてください。
https://git-scm.com/download
- Mercurial:
version2.2.2以降を入れてください。
https://www.mercurial-scm.org/
- GCC:
gcc-arm-none-eabi-4_9-2015q3-20150921-win32.exeを入れて下さい。
https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update
上記の物は、ディレクトリを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」を選択します。
- 「Debugger」タブにて、OpenOCD Setup部分のConfig options:に「-f board/renesas_gr-peach.cfg」を記載します。
BDB Client Setup部分のExeutable:に「arm-none-eabi-gdb」を記載します。
- 「Startup」タブにて、「Initial Reset.」と「Enable ARM semihosting」のチェックをはずします。
Load Symbols and Executable部分の「Load executable」のチェックをはずします。
- 「ソース」タブは以下のように、デフォルトのままになります。
- 「共通」タブは以下のように、デフォルトのままになります。
- 適用ボタンを押します。
- USBケーブルをGR-PEACHに接続します。
- ".bin"ファイルをmbedドライブにコピーします。
- USBケーブルをGR-PEACHから抜き、再接続します。
- デバッグボタンを押します。
- リセットしたい場合 :
「コンソール」ビューの"arm-none-eabi-gdb.exe"スクリーンを選択して、以下のコマンドを入力下さい。
ウィンドウ下段にあるツールバーボタンから「コンソール」ビューを選ぶことができます。
monitor reset init
その他参考情報
ビルドオプションの変更方法
ビルドオプションは以下の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.