mbed オフラインの開発環境
mbed は、ネットワーク環境とブラウザさえあればどこでもオンラインでコンパイラが使える環境を提供していますが、オフライン(ネットワーク接続がない環境)で使いたいというケースもあります。ここでは、オフライン環境の使い方を紹介します。
オフラインの環境を使うには
mbed では以下のようなオフラインビルド環境をサポートしています。
- mbed SDK (mbed classic) のビルドツール
- オンラインIDEからのプロジェクトファイルエクスポート
- mbed CLI (mbed command-line tool)
ここでは、mbed OS 5 と共にリリースされた mbed CLI を中心に説明します。
mbed SDK のビルドツールはこちら(日本語版)を、オンラインIDEからのプロジェクトファイルエクスポートはこちらを参照して下さい。
mbed CLI とは
mbed CLI は、mbed OS 5 開発用のツールとして提供され、プログラムのインポート及びエクスポート、複数のツールチェインを使ったビルドを簡単に行うことができます。
- リポジトリのバージョンコントロール
- 依存関係の解決
- コードのパブリッシュ
- リモートホストされたリポジトリからのアップデート(GitHub, GitLab 及び mbed.org)
- ARM mbed ビルドシステムの呼び出し
- インポート及びエクスポート機能
mbed CLI を使えば、クラウド側のプログラムを全てローカル環境にコピーして作業を行うことが出来ます。自分が作成したコードは手元に保存され、クラウド側にアップロードする必要はありません。これは、ネットワークに接続されていない場合や、企業内での開発ルールやプロジェクト管理ポリシーなどで、社外にソースコードを置きたくない場合に有効です。
準備
mbed CLI と関連ツールのインストール
インストール方法は以下の動画を参照して下さい。
- Python のインストール: https://www.python.org/downloads/
- Git のインストール: https://git-scm.com/download
- Mercurial のインストール: https://www.mercurial-scm.org/
- GCC のインストール: https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update
- mbed CLI のインストール:
pip install mbed-cli
細かい設定とか更に分かりやすい説明は、こちらをご覧下さい。
- mbed CLI (コマンドライン・インタフェース)を Mac OS X で使ってみる
- [lang:ja] mbed CLIをWindowsで使ってみる(環境構築編)
- mbed OS 5 の CLI 開発環境を Linux 上に構築する
GitHub と mercurial のリポジトリからのインポートとビルド
mbed CLI は、git または mercurial のリポジトリからコードをインポートすることができます。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 のライブラリ本体は、リポジトリからリンクされているコードがインポートされます。 もし、リポジトリを手動で git clone
した場合は mbed OS ライブラリのソースコードは含まれていないので、deploy
コマンドを使ってライブラリのコードを追加します。
$ mbed deploy
使用される mbed OS ライブラリは、リポジトリが更新された時のバージョンになり、必ずしもライブラリの最新バージョンではないかもしれません。mbed OS ライブラリを最新のバージョンに置き換えたい場合は、以下のようなコマンドを実行します。
$ cd mbed-os
$ mbed sync
$ mbed update latest --clean
$ cd ..
これで、最新バージョンのライブラリを使うことが出来ます。
ARM mbed チームが提供しているサンプルコードのリポジトリは、ライブラリのバージョンがこまめにアップデートされていますが、ユーザが公開しているプログラムは上記したような手順が必要になる場合があります。
ビルドを行うには、compile
コマンドを使用します。ここでは、ターゲットボードに FRDM-K64F、ツールチェインに gcc を使ってみます。ターゲットとツールチェインの名称は、使用するボードを接続した状態で mbed detect コマンドを実行して確認できます。
$ mbed compile -m K64F -t GCC_ARM
他にも、toolchain
や target
コマンドを使ってビルド時のオプションを省略することも出来ます。
developer.mbed.org で公開されている mbed 2.0 (classic) プログラムのインポートとビルド
mbed CLI は mbed OS 5 だけではなく、mbed 2.0 のコードでもビルドする事が出来ます。既存のプログラムを変更せずにそのまま使うことが出来ます。
$ mbed import https://developer.mbed.org/teams/mbed/code/mbed_blinky/
$ cd mbed_blinky
$ mbed compile -m K64F -t GCC_ARM
自分だけで使用するプライベートなリポジトリもインポートすることが可能です。その場合は、リポジトリにアクセス可能なユーザ名とパスワードを入力してインポートを行います。
新規にプログラムを作る
既存のリポジトリからコードをインポートせずに、新規プログラムをローカル環境で作成することが出来ます(mbed OS ライブラリは、自動でインポートされます)。developer.mbed.org のアカウントを持っていなくても利用可能です。
mbed OS 5 の場合
new
コマンドで新規のプロジェクトを作成できます。
$ mbed new mytest1
$ cd mytest1
実行用の main()
関数がないので、このまま compile
するとリンクエラーが発生します。フォルダ内にソースファイルを作成し(ファイル名は任意)、main()
関数を記述して下さい。
#include "mbed.h"
DigitalOut led1(LED1);
Serial pc(USBTX, USBRX);
int main()
{
pc.printf("Hello, mbed world\n");
while (1) {
led1 = !led1;
Thread::wait(500);
}
}
mbed 2.0 の場合
同じように、mbed ライブラリ(mbed 2.0)を使用したプログラムを作成することも可能です。この場合は、--mbedlib
オプションを指定します。
$ mbed new mytest2 --mbedlib
$ cd mytest2
「mbed OS 5 の場合」と同様に、フォルダ内に main()
関数を含んだソースファイルを作成します。
#include "mbed.h"
DigitalOut led1(LED1);
Serial pc(USBTX, USBRX);
int main()
{
pc.printf("Hello, mbed world\n");
while (1) {
led1 = !led1;
wait_ms(500);
}
}
デバッグしてみる
mbed CLI を使用したオフライン環境でデバッグする方法を説明します。
オンライン環境の場合は、オンラインIDEから「エクスポート」を選んで各種 IDE 用のプロジェクトを選択し、生成されたプロジェクトファイルダウンロードして使っていました。
mbed CLI を使ったオフラインの環境では、export
コマンドで直接 IDE のプロジェクトファイルを生成することが出来ます。
Eclipse と pyOCD でデバッグする (Windows, Mac, Linux)
この場合は、mbed CLI でデバッグ情報付きのイメージファイルを生成して、Eclipse CDT と pyOCD
の組み合わせでデバッグを行うのが簡単です。Eclipse CDT でデバッグだけを行う場合は、mbed CLI で export
を行う必要もありません。
ツールのセットアップは、以下の Notebook の「最初の準備」の部分を参照して下さい。 https://developer.mbed.org/users/MACRUM/notebook/debugging-with-eclipse-and-pyocd-ja/
デバッグを行うためのイメージの作成は、--profile debug
を付加してビルドします。
$ mbed compile -m K64F -t GCC_ARM --profile debug
デバッグの設定は、メニューから [Run] - [Debug Confugurations...] を選択し、新規に GDB PyOCD Debugging
のコンフィグレーションを作成します。以下のように、C/C++ Application:
の部分に mbed CLI で生成した .elf
ファイルをフルパスで指定します。
ターゲットボードとホストマシンをUSBケーブルで接続します。[Apply] ボタンで設定を更新し、[Debug] ボタンを押してデバッグを始めます。
MDK-ARM でデバッグする(Windows ホスト環境のみ)
MDK-ARM でデバッグを行うには、uVision 用のプロジェクトファイルを生成します。
$ mbed export -i uvision -m K64F
projectfiles\uvision_K64F
フォルダ配下に .uvision ファイルが生成されるので、ダブルクリックして uVision を起動します。
EWARM でデバッグする(Windows ホスト環境のみ)
EWARM でデバッグを行うには、IAR Embedded Workbech 用のプロジェクトファイルを生成します。
$ mbed export -i iar -m K64F
projectfiles\uvision_K64F
フォルダ配下に .ewwファイルが生成されるので、ダブルクリックして IAR Embedded Workbench IDE を起動します。
Author And Source
この問題について(mbed オフラインの開発環境), 我々は、より多くの情報をここで見つけました https://qiita.com/toyowata/items/21a6635d08afe96532b0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .