今回は、Mbed(エンベッド)が提供するプロトタイプ開発用ボード、またその開発ボードのプログラミング環境を使用したいと思います。MbedはIoTのためのプラットフォーム、OS、ツールといったシステムを迅速に開発することを目的としてるようです。
以前、評価ボードは、NUCLEO-F446REを使用しましたがこちらもMbedに対応しています。今回はNUCLEO-F446REを使用して、Mbedの開発環境を検討していきたいと思います。
開発環境を調べた結果、以下の4つを試用してみることにしました。
- Mbed Compiler Workspace Management(オンライン環境)
- Mbed Studio(オフライン環境)
- Visual Studio Code + Platform IO(オフライン環境)
- Visual Studio Code + GNU Arm Embedded Toolchain + opneOCD(オフライン環境)
下記のように比較してみました。
コンパイラ | コンパイル速度 ※Windows |
コンパイル速度 ※Linux |
デバッグ | 開発環境 構築 |
|
1 | Arm Compiler | 〇 | 〇 | × | 普 |
2 | Arm Compiler | × | △ | 〇 | 普 |
3 | GCC Arm | × | △ | 〇 | 普 |
4 | GCC Arm | – | 〇 | 〇 | 難 |
1.Mbed Compiler Workspace Management
まずは「Mbed Compiler Workspace Management」です。こちらはオンラン環境となっており、ユーザ登録を行えば無料で利用できます。下記サイトから使用できます。
https://ide.mbed.com/compiler/
オンライン環境となっているので、開発環境をローカルPC上にインストールする必要もなくすぐに利用できます。PCのスペックにも左右されないのでよいです。通信環境には影響するかもしれません。Windows環境、Linux環境ともに問題なくコンパイルできます。難点はデバッグができないところです。
2.Mbed Studio
「Mbed Studio」は、オフラインの開発環境です。Mbedから提供されている開発環境で、無料で利用できます。開発環境の構築も容易です。下記よりダウンロードできます。
こちらは、「Mbed Compiler Workspace Management」で行えなかったデバッグを行うことができます。とても便利です。残念なことに、Windows環境では、コンパイルに非常に時間がかかります。私の環境では、30分~40分はかかっていたと思います。一度コンパイルしてしまえば、次回コンパイルは早くなりますが、Build Profileを変更するとまたコンパイルに時間がかかる状態になってしまいます。おそらくmbed osをコンパイルすることに主に時間がかかっているのだと思います。Linux上でコンパイルすれば、数分でコンパイル可能です。また、プロジェクトを作成方法を工夫しないと毎回mbed-osをダウンロードしてくるので注意が必要です。mbed-osのサイズは1GB弱あります。こちらは、mbed os5、mbed os6は対応していますが、mbed os2は対応していません。そのため、参照したいコードがmbed os2で作成してあると読み込むことができなかったです。
3.Visual Studio Code + Platform IO
「Visual Studio Code + Platform IO」は、オフラインの開発環境です。Visual Studio Code をインストールして、拡張機能からインストールすることができます。プロジェクトの作成も容易に行うことができ、デバッグ処理もすることが可能です。余談になりますが、Arduinoの開発も行うことができます。操作性もよく、プロジェクト作成からデバッグまでの流れもわかりやすいです。こちらも「Mbed Studio」同様で、Windowsでコンパイルを実行すると非常に時間がかかります。コンパイル完了までに1時間以上かかったと思います。一度コンパイルしてしまえば、次回コンパイルは早くなりますが、Build Profileを変更するとまたコンパイルに時間がかかる状態になってしまいます。こちらもLinux環境であればコンパイルは数分で完了します。Platform IOから参照できるProject Examplesであればよいのですが、Web上で参照したいコードを読み込む方法をまだ見つけられていません。Visual Studio Codeに読み込むことはできたのですが、コンパイルするためのファイルの参照パスを定義する方法が一つずつ行う方法はわかったのですが、まとめて定義する良い方法を見つけれませんでした。
4.Visual Studio Code + GNU Arm Embedded Toolchain + opneOCD
「Visual Studio Code + GNU Arm Embedded Toolchain + opneOCD」はオフライン開発環境です。こちらは、「Mbed Compiler Workspace Management」からエクスポートされたプロジェクトファイルを読み込むこともできます。Linuxでは、コンパイルも数十秒で完了します。プロジェクトは、「Mbed Compiler Workspace Management」で作成しておいて、それをエクスポートして使用すればよいと思います。デバッグ処理も可能です。ただし、コンパイル、デバッグともにインポートしたデータを少々修正しなければ動作しないので注意が必要です。また、インストール作業も少々ややこしかったところもあります。
Mbedの開発環境をいろいろと試してみましたが、私としては、「Visual Studio Code + Platform IO」 or 「Visual Studio Code + GNU Arm Embedded Toolchain + opneOCD」をLinux環境で使用しようと思っております。基本的には、「Visual Studio Code + Platform IO」を使用して、Web上のプロジェクトファイルを参照したい場合は、「Visual Studio Code + GNU Arm Embedded Toolchain + opneOCD」を使用しようと思います。また、Linux環境として、今回は「Ubuntu」を使用しましたが、RaspberryPi等で環境も構築してみたいと思います。