Skip to content

Instantly share code, notes, and snippets.

@mneko22
Last active February 16, 2017 10:30
Show Gist options
  • Select an option

  • Save mneko22/431dd6d3584c69e7b7454f1f94bf1422 to your computer and use it in GitHub Desktop.

Select an option

Save mneko22/431dd6d3584c69e7b7454f1f94bf1422 to your computer and use it in GitHub Desktop.
mbed cliを使ったコンパイル方法

mbed cliとは

mbedのビルド機能とgitによる管理、publish機能などを提供するコマンドツール。

動作環境

  • python2.7(3系は動かなかった)
  • sourceをmbed用にコンパイルするためのツール群(gcc armとか)。以後ツールチェーンと呼称。
  • gitかMercurial

今回使用した環境

  • hard:64bit CPU
  • os:fedora 24 64bit(Ubuntu 16.04LTSで動作確認済み)
  • mbed:KL25Z

ツールチェーンの導入

mbed用のバイナリにコンパイルするためのツールチェーンを導入する。ツールチェーンは様々あるが今回はGNU ARM Embedded Toolchainを使用する。

  1. 対応するOSのバイナリをこちらのアドレスから落としてくる.今回はlinux x86_64を使用しているのでlinux-64bitを選択する.
  2. 適当なディレクトリに解凍する.
  3. 必須ではないが解凍したディレクトリにPATHを通す.

mbed cliの導入

mbed cliを導入する手段は2種類ある。今回はgithub上のレポジトリからインストールしたが、pipとsourceからインストールする方法を紹介する。

pipからインストール

pipyにmbed-cliがあるのでそれをインストールする

sudo pip install mbed-cli

ソースからインストール

git clone https://github.com/ARMmbed/mbed-cli.git
cd mbed-cli
sudo python setup.py install

mbed cliの設定

mbed cliにツールチェーンを登録する。

mbed config --global GCC_ARM_PATH "/toolchain/install/directory/bin/"

プロジェクトの作成からhello worldまで

プロジェクトの作成

作成したい場所にディレクトリを作りその中で以下のコマンド実行。

mkdir helloWorld
cd helloWorld
mbed new .

githubにあるmbed osのレポジトリなど落としているので時間がかかる。

作成されるディレクトリ構造

  • .git
  • .mbed
  • mbed-os
  • mbed-os.lib
  • mbed_settings.py

プログラム作成

ディレクトリ内にmain.cppでプログラムを書く。
今回使用したサンプルプログラムは以下の通り。

#include <mbed.h>

int main(){
    DigitalOut led(LED_GREEN);
    while(true){
       led = !led;
       Thread::wait(100);
    }
}

コンパイル

コンパイル時に対象のボードの型と使用するツールチェーンの指定が必要。

mbed compile -t GCC_ARM -m kl25z

-tがツールチェーン、-mがボードの型。

バイナリファイルは.build/指定したボードの型/指定したツールチェーン/内に作成される。 そのバイナリファイルをmbedに移して実行する。

@mneko22
Copy link
Author

mneko22 commented Aug 26, 2016

mbed os5が出てローカル開発環境のツールが出ていたので、使用してみたまとめです。まだ試していませんがgithubに上がっているライブラリがコマンド一つでimportできるらしいので、オンラインIDEよりも使いやすいのではと個人的に思っています。

@mneko22
Copy link
Author

mneko22 commented Feb 16, 2017

toolchainのところを書き足しました.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment