Mbed OS 2のサポートがいつ終わっても良いようにローカル環境を構築する方法【改訂版】
この記事は、こちらの改訂版です。
はじめに
最初のバージョンのMbed OS 5 がリリースされてから約3年が経ちました。Mbed OS 5 では、四半期ごとに比較的大きな機能を追加するFeature releaseと、二週間ごとに新しいボードの追加やバグフィックスが含まれるPatch releaseを行っています。
一方で、Mbed OS 2 (Mbed classic)は既にメンテナンスリリースが終了しています。
主要なライブラリやサンプルコードはMbed OS 5 への移行がほぼ終了していますが、個人での開発や古いソフトウェア資産の継続利用の目的で、Mbed OS 2 を使い続けなければならないケースもあるかもしれません。
ここでは、オンラインコンパイラではなくローカルPCにMbed OS 2のビルド環境を構築し、Mbed 開発サイトの状態になるべく依存しない閉じた環境での運用方法を説明します。古いプロジェクトもローカル環境で保守することが出来ます。
Mbed対応ボードは、スイッチサイエンス製のmbed LPC1114FN28を使用します。
事前準備
Mbed 2のビルド環境は、python 2のみサポートされているので、python 3との共存も考えてpyenvを導入します。インストール方法は解説記事が色々とありますので、そちらを参考にしてください。python のバージョンは、2.7.15を使用しました。
pyenv導入後は、(python 2なので)virtualenvをインストールします。
pip install virtualenv
python -m virtualenv .venv2
.venv2\Script\activate
必要なモジュールをインストールします。
pip install mbed-cli==1.10.1 pyelftools jsonschema
GNU Arm Embedded Toolchainをインストールします(Mbed 2の場合は、gcc-arm-none-eabi-6-2017-q2-updateが推奨されています)。
Mercurial SCMをインストールします。
https://www.mercurial-scm.org/downloads
Git SCMをインストールします。
https://git-scm.com/downloads
プロジェクトの作成
プロジェクトディレクトリを作成し、移動します。
mkdir my_project
cd my_project
以下のコマンドで、ビルド用のツールをtoolsディレクトリにダウンロードします。
hg clone https://os.mbed.com/users/mbed_official/code/mbed-sdk-tools/ tools
必要なモジュールをインストールします。
pip install -r .\tools\requirements.txt
以下のリンクをクリックして、Mbed 2ライブラリ(プリビルドアーカイブ)をダウンロードします。
https://dl.dropboxusercontent.com/s/p3pygps0uqfc5hq/mbed-e95d10626187.zip
zipファイルを展開し、先ほどのプロジェクトディレクトリにコピーします。
動作確認用に以下のようなmain.cpp を作成し、プロジェクトディレクトリに保存します。
#include "mbed.h"
DigitalOut led(LED1);
int main()
{
printf("hello, Mbed.\n");
while (1) {
led = !led;
wait(0.5);
}
}
この時点で、プロジェクトディレクトリは以下のような構成になっています。
ディレクトリ: D:\work\myprog
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2020/04/04 10:50 mbed-e95d10626187
d----- 2020/04/04 10:45 tools
-a---- 2020/04/04 10:52 160 main.cpp
mbed compile
コマンドでコンパイルします。-m
でターゲットボード、-t
でツールチェインを指定します。
mbed compile -m lpc1114 -t gcc_arm
[mbed] Working path "D:\work\myprog" (program)
Using targets from D:\work\myprog\mbed-e95d10626187\targets.json
[Error] @,: Compiler version mismatch: Have 9.2.1; expected version >= 6.0.0 and < 7.0.0
Building project myprog (LPC1114, GCC_ARM)
Scan: myprog
Compile [100.0%]: main.cpp
Link: myprog
Elf2Bin: myprog
| Module | .text | .data | .bss |
|----------------------------------|---------------|-----------|-----------|
| BUILD\LPC1114 | 235(+235) | 4(+4) | 16(+16) |
| [fill] | 210(+210) | 0(+0) | 12(+12) |
| [lib]\c_nano.a | 5166(+5166) | 100(+100) | 21(+21) |
| [lib]\gcc.a | 1696(+1696) | 0(+0) | 0(+0) |
| [lib]\mbed.a | 2937(+2937) | 4(+4) | 183(+183) |
| [lib]\misc | 220(+220) | 12(+12) | 28(+28) |
| mbed-e95d10626187\TARGET_LPC1114 | 4161(+4161) | 264(+264) | 32(+32) |
| Subtotals | 14625(+14625) | 384(+384) | 292(+292) |
Total Static RAM memory (data + bss): 676(+676) bytes
Total Flash memory (text + data): 15009(+15009) bytes
Image: .\BUILD\LPC1114\GCC_ARM\myprog.bin
最後に表示されたイメージファイルをターゲットボードに書き込みます。
copy .\BUILD\LPC1114\GCC_ARM\myprog.bin e:
ターゲットにバイナリを直接書き込みたい場合には、ターゲットボードを接続した状態で-f
オプションをつけます。
mbed compile -m lpc1114 -t gcc_arm -f
Mbed 2ライブラリのソースからビルドする場合
先ほどの手順と同様にプロジェクトディレクトリを作成して、ビルドツールをダウンロードします。
mkdir myprog_source
cd myprog_source
hg clone https://os.mbed.com/users/mbed_official/code/mbed-sdk-tools/ tools
GitHubに公開されているMbed 2ライブラリのソースコードをダウンロードします。
git clone https://github.com/ARMmbed/mbed-dev
先ほどの手順と同じようにmain.cpp を作成し、プロジェクトディレクトリに保存します。
この時点で、プロジェクトディレクトリは以下のような構成になっています。
ディレクトリ: D:\work\myprog_source
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2020/04/04 11:07 mbed-dev
d----- 2020/04/04 11:06 tools
-a---- 2020/04/04 10:52 160 main.cpp
コンパイル手順は先ほどのコマンド同じです。ターゲットにバイナリを直接書き込みたい場合には、ターゲットボードを接続した状態で-f
オプションをつけます。
mbed compile -m lpc1114 -t gcc_arm -f
オンラインIDE上の古いプロジェクトをローカル環境で使用する方法
オンラインIDEのプログラムワークスペースから使用したいプロジェクトを選び、右クリックします。ポップアップメニューから、[プログラムのエクスポート]を選択します。
Export Programダイアログが表示されるので、Export ToolchainからZIP Archiveを選択し、[Export]ボタンを押します(Export Targetは何を選択しても構いません)。
ダウンロードされたZIPアーカイブを展開します。この中から以下を除外したファイルを全てローカル環境のプロジェクトディレクトリにコピーしてください。
mbed(ディレクトリ)
mbed.bld
以下の例を参考にしてください(水色で選択されたファイルをローカル環境に構築したプロジェクトディレクトリにコピーします)。
コンパイルの手順は先ほどと同じです。
以上です。
Author And Source
この問題について(Mbed OS 2のサポートがいつ終わっても良いようにローカル環境を構築する方法【改訂版】), 我々は、より多くの情報をここで見つけました https://qiita.com/toyowata/items/86a312158187cafe3f7d著者帰属:元の著者の情報は、元の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 .