Arm Mbed CLIの環境構築 for Windows

先日開催されたMbed ConnectのワークショップでMbed CLIのWindowsインストーラーが用意されていることを知りました。そこで、どんなものなのかを掘り下げて確認してみました。

# Mbed CLI環境構築の定番マニュアル

「mbed-cli windows」でググると、一番最初によく知っている人の記事がヒットしますw

![image.png](https://qiita-image-store.s3.amazonaws.com/0/109634/3c05a3de-3179-cd44-6052-31a3d5ce6c70.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/109634/f7512270-4861-06ba-d4e7-9f071ced3c64.png)

この定番マニュアルでは、

* Python 2.7.12
* Git 2.9.3
* Mercurial 3.9.0
* GNU ARM Embedded Toolchain 4.9.2015q3

を個別にインストールしてから、

* Mbed CLI

をpipコマンドでインストールしていました。

# Windows installer for Mbed CLI

Arm Mbed CLIの[ドキュメント](https://os.mbed.com/docs/v5.6/tools/setup.html#windows-installer-for-mbed-cli)によるとWindows intaller for Mbed CLIをインストールすると、必要なソフトウェアが一発でインストールできるようです。素晴らしい。

* Python 2.7.13
* Git 2.12.2
* Mercurial 4.1.1
* GNU ARM Embedded Toolchain
* Mbed CLI 1.2.2
* Mbed Windows serial port driver

# Windows installer for Mbed CLIを実行

では、実際に（ほぼ）クリーンなWindows 10にインストールしてみましょう。

mbed-windows-installer v0.4.3のところをクリックしてダウンロードされた、**mbed_installer_v043.exe**を実行します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/109634/13a55aa8-10e3-7e76-67f4-43e40cbc6ee3.png)

実行すると、一般的なアプリと同様に、ウィザード形式の画面が出てきますので、次へ次へと進めます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/109634/1a2e7ce3-7584-259c-1803-0f94c72ad0b1.png)

途中のChoose Components画面でAdvancedにして確認すると、ドキュメントに書かれているソフトウェアが含まれていることが分かります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/109634/17de0c67-1f28-f233-4ef0-d314d4689e2c.png)

Mbed Windows seiral port driverをインストールするタイミングにMbed enabled boardの接続を求められましたが、ボードがパッと出てこなかったので、そのままOKをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/109634/7caddf00-19f0-536e-9bd1-8e4f8b2d300b.png)

Mbed Windows serial port driverがインストールできないエラーになってしまいました。あとから手動インストールすることとして、ここではキャンセルをクリックすることにします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/109634/514cacea-eac8-f2be-5b5b-7be0fdbd96af.png)

# 実行結果

追加されたフォルダは以下でした。

* C:\Python27
* C:\Program Files (x86)\Git
* C:\Program Files (x86)\Mercurial
* C:\Program Files (x86)\GNU Tools ARM Embedded
* C:\mbed-cli
* C:\Program Files\mbed\drivers

また、環境変数PATHに、

* C:\Python27\
* C:\Python27\Scripts
* C:\Program Files (x86)\Git\cmd
* C:\Program Files (x86)\Mercurial
* C:\Program Files (x86)\GNU Tools ARM Embedded\6 2017-q2-update\bin

が追加されていました。

## インストールされたソフトウェアのバージョン

### Python

```
C:\>python --version
Python 2.7.13
```

### Git

```
C:\>git --version
git version 2.12.2.windows.1
```

### Mercurial

```
C:\>hg --version
Mercurial - 分散構成管理ツール(バージョン 4.1.1)
...
```

### GNU ARM Embedded Toolchain

```
C:\>arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors 6-2017-q2-update) 6.3.1 20170620 (release) [ARM/embedded-6-branch revision 249437]
...
```

### Mbed CLI

```
C:\>mbed --version
1.2.2
```

# お試し

```
C:\>cd mbed

C:\mbed>mbed import mbed-os-example-blinky
[mbed] Importing program "mbed-os-example-blinky" from "https://github.com/ARMmbed/mbed-os-example-blinky" at latest revision in the current branch
[mbed] Adding library "mbed-os" from "https://github.com/ARMmbed/mbed-os" at rev #5f6572179d66
[mbed] Auto-installing missing Python modules...

C:\mbed>cd mbed-os-example-blinky

C:\mbed\mbed-os-example-blinky>mbed compile -m K64F -t GCC_ARM
Building project mbed-os-example-blinky (K64F, GCC_ARM)
Scan: .
Scan: mbed
Scan: env
Scan: FEATURE_LWIP
Scan: FEATURE_STORAGE
Compile [  0.3%]: AnalogIn.cpp
...

Image: .\BUILD\K64F\GCC_ARM\mbed-os-example-blinky.bin

C:\mbed\mbed-os-example-blinky>
```

# まとめ

* WindowsにMbed CLI環境を構築するときは、Windows installer for Mbed CLIを使うと簡単。
* Mbedボードを用意しておかないと、Mbed Windows serial port driverがインストールできない。