[lang:ja] mbed CLIをWindowsで使ってみる(環境構築編)
Note
さきほど新しいWindowsマシンにmbed CLI Windows Installerを使ってmbed-cliをインストールしたところ、問題がありました。しばらくはマニュアルでインストールしたほうが良さそうです。
今は、mbed CLI Windows Installerなるものがあって、一発で環境構築できるそうです。
mbed CLI Windows Installerを使ったほうがお手軽そうです。
Mbed OSを手元のWindowsでビルドできるような環境を整えてみましょう。
Windows 10 Proの64bit版を使用しています。公式のドキュメントは、Docs › Build tools › Mbed CLI › Install and set upですので、こっちを読んだほうがいいかもです。
ちなみに、OS Xにbrewでサクっと環境構築する方法は、巨匠Tedd OKANO氏が執筆しています。Macユーザーの皆さまは、こちらを御覧ください。
1. 要るモノ
- Python 3.7系(python-3.7.8-amd64.exeを使用。)
- Git(Git-2.9.3-64-bit.exeを使用。)
- Mercurial(mercurial-3.9.0-x64.msiを使用。)
- GNU Arm Embedded Toolchain( OS 5.15からはGCC 9がサポートされています。 )
インストーラー付きで配布されているパッケージばかりですので、ダブルクリックしてインストールしまくります。気を付けなければならないのは、インストーラーでディレクトリをPATHに追加するかどうか聞かれるものは追加するようにすることです。
コマンドプロンプトで、
C:¥>python --version Python 3.7.8 C:¥>git --version git version 2.9.3.windows.1 C:¥>hg --version Mercurial - 分散構成管理ツール(バージョン 3.9) (詳細は https://mercurial-scm.org を参照) Copyright (C) 2005-2016 Matt Mackall 他 本製品はフリーソフトウェアです。 頒布条件に関しては同梱されるライセンス条項をお読みください。 市場適合性や特定用途への可否を含め、 本製品は無保証です。
こんな感じにコマンドを叩いてパスが通っていることを確認します。gccにはパスが通っていなくても構いません。もし、設定したのにコマンドが見つからなければ、いちどログアウトしてみるか、再起動をしてみてください。
次に、いよいよmbed CLIのインストールをします。
C:¥>python -m pip install mbed-cli
これで準備は完了です。
2. 動作を確認する
ここでは、C:¥mbedを作業フォルダにして、試しにblinkyをビルドしてみます。 まずは、作業フォルダを作り、blinkyのサンプルプロジェクトをインポートします。
C:¥>cd ¥ C:¥>mkdir mbed C:¥>cd mbed C:¥mbed>mbed import https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-blinky
少々時間がかかりますがインポートを終えると、「mbed」というディレクトリの中に「mbed-os-example-blinky」というディレクトリができています。なお、これをインポートするとディスクを250MBほど使用する様です。作業は、このディレクトリの中で行います。
C:¥mbed>cd mbed-os-example-blinky
次に、mbedをパソコンに接続します。接続した状態で「mbed detect」というコマンドを使うと、パソコンに接続されているmbedを検出し、そのmbedのツールチェーン等への対応状況を表示してくれます。
C:¥mbed¥mbed-os-example-blinky>mbed detect [mbed] Detected LPC1768, port None, mounted E: [mbed] Supported toolchains for LPC1768 +---------+-----------+-----------+-----------+-----------+-----------+ | Target | mbed OS 2 | mbed OS 5 | ARM | GCC_ARM | IAR | +---------+-----------+-----------+-----------+-----------+-----------+ | LPC1768 | Supported | Supported | Supported | Supported | Supported | +---------+-----------+-----------+-----------+-----------+-----------+ Supported targets: 1 Supported toolchains: 3
これを参照しながら、開発ターゲットやツールチェーン(コンパイラ)を設定します。
その前に、手元のパソコンにインストールされているコンパイラのパスなどを指定しておきましょう。
2016/08/14 17:06 32 .gitignore 2016/08/14 17:06 <DIR> .hg 2016/08/14 17:07 8 .mbed 2016/08/14 17:06 <DIR> img 2016/08/14 17:06 229 main.cpp 2016/08/14 17:07 <DIR> mbed-os 2016/08/14 17:06 77 mbed-os.lib 2016/08/14 17:07 1,374 mbed_settings.py 2016/08/14 17:06 2,872 README.md
mbed-os-example-blinkyの中には、このようなファイルがあると思います。このうち、「mbed_settings.py」に設定を記述します。
C:¥mbed¥mbed-os-example-blinky>notepad mbed_settings.py
等として、適当なテキストエディタで設定ファイルを開きましょう。 GCCのパスは、GCC_ARM_PATHに書くみたいです。筆者の環境の場合、次の様に記述をしました。
GCC_ARM_PATH = "C:/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q3/bin"
次に、開発ターゲットやツールチェーン(コンパイラ)の設定をします。ここでは、mbed LPC1768のアプリケーションをgccでビルドするように設定しました。
C:¥mbed¥mbed-os-example-blinky>mbed target LPC1768 [mbed] LPC1768 now set as default target in program "mbed-os-example-blinky" C:¥mbed¥mbed-os-example-blinky>mbed toolchain GCC_ARM [mbed] GCC_ARM now set as default toolchain in program "mbed-os-example-blinky"
ビルドは「mbed compile」コマンドで行います。コマンドを実行すると、次の様なメッセージが表示されます。
C:¥mbed¥mbed-os-example-blinky>mbed compile Building project mbed-os-example-blinky (LPC1768, GCC_ARM) Scan: . Scan: FEATURE_BLE Scan: FEATURE_CLIENT Scan: FEATURE_COMMON_PAL Scan: FEATURE_UVISOR Scan: FEATURE_IPV4 Scan: FEATURE_IPV6 Scan: FEATURE_STORAGE Scan: mbed Scan: env Compile: main.cpp (((中略))) Compile: test_env.cpp Link: mbed-os-example-blinky Elf2Bin: mbed-os-example-blinky +---------------------+-------+-------+------+ | Module | .text | .data | .bss | +---------------------+-------+-------+------+ | Fill | 127 | 0 | 13 | | Misc | 31909 | 2196 | 2176 | | features/frameworks | 3936 | 92 | 792 | | hal/common | 2861 | 4 | 269 | | hal/targets | 3574 | 4 | 244 | | rtos/rtos | 22 | 4 | 0 | | rtos/rtx | 5571 | 20 | 2682 | | Subtotals | 48000 | 2320 | 6176 | +---------------------+-------+-------+------+ Allocated Heap: 2048 bytes Allocated Stack: 3072 bytes Total Static RAM memory (data + bss): 8496 bytes Total RAM memory (data + bss + heap + stack): 13616 bytes Total Flash memory (text + data + misc): 50320 bytes Image: .¥.build¥LPC1768¥GCC_ARM¥mbed-os-example-blinky.bin
最後の行に、できあがったバイナリの場所がしるされていますので、これをmbedにコピーします。
C:¥mbed¥mbed-os-example-blinky>copy .¥.build¥LPC1768¥GCC_ARM¥mbed-os-example-blinky.bin E:¥
コピーを終えたら、mbed LPC1768のリセットボタンを押します。すると、さきほどビルドしたアプリケーションが実行され、mbed LPC1768のLED1が点滅をはじめます。
3. GCC以外のコンパイラを使ってみる
普段はOS Xユーザーの筆者がWindowsでmbed OS 5のビルド環境を整える記事を書いているのは、GCC以外のコンパイラを使いたいからです。ビルドしたバイナリが保存される場所は、ツールチェーンごとに異なるので便利でした。
3.1 MDK-ARM編
MDK-ARMのarmccを使うには、特に設定を編集する必要はありませんでした。 ビルドする前に、
C:¥mbed¥mbed-os-example-blinky>mbed toolchain ARM
と、ツールチェーンとしてARMを指定するだけです。
3.2 EWARM編
IARのEWARMを使うには、mbed_settings.pyを編集して次のような行を記述します。
IAR_PATH = "C:/Program Files (x86)/IAR Systems/Embedded Workbench 7.5/arm"
筆者は、Embedded Workbench 7.5.1を使っているので、上記の様なパスになりました。ツールチェーンは、
C:¥mbed¥mbed-os-example-blinky>mbed toolchain IAR
と設定します。
3 comments on [lang:ja] mbed CLIをWindowsで使ってみる(環境構築編):
Please log in to post comments.
はじめまして、Takahiroと申します。 主にSTM32向けの開発環境を構築するために情報収集をしています。 記事を読ませていただきましたが、一つ質問があります。 GNU ARM Embedded Toolchainに関して、5以上は不安が残るので4.9を推奨されていますが、具体的になにか不具合があるのでしょうか? 他のページでも4.9を推奨する記事が多かったのですが、根拠となる一次情報が見つからなかったため判断しかねております。 ちなみに自分はSTM32のCortex-M4系を主なビルド対象としています。 浅学ながらご指導いただけると幸いです。