特集:IoTがもたらす製造業の革新〜進化する製品、サービス、工場のかたち〜
ニュース
» 2017年11月30日 10時00分 公開

IoT観測所(39):Arm「mbed OS」は立ち位置を変えながら進化する (2/3)

[大原雄介,MONOist]

「mbed OS Classic」と「mbed OS 5」の違い

 さて、ユーザー(というか、開発者)から見るとどの程度の変化があったか?というと、これは案外と違いが無い。例えば、チュートリアルのLチカ(LEDを点滅させる)のコードを見てみよう。mbed OS Classicのコードはリスト1のようになっている。

#include "mbed.h"
DigitalOut redled(p5);
DigitalOut greenled(p6);
int main() {
    while(1) {
	redled = 1;
	greenled = 0;
	wait(0.2);
	redled = 0;
	greenled = 1;
	wait(0.2);
    }
}
リスト1 「mbed OS Classic」のチュートリアルにおけるLチカコード

 これが、mbed OS 5ではリスト2のようになる。

#include "mbed.h"
#include "rtos.h"
DigitalOut led1(LED1);
// main() runs in its own thread in the OS
// (note the calls to wait below for delays)
int main() {
    while (true) {
        led1 = !led1;
        wait(0.5);
    }
}
リスト2 「mbed OS 5」のチュートリアルにおけるLチカコード

 mbed OS Classicでは2つのLEDを0.2秒間隔で交互に点灯させているのに対し、mbed OS 5では1つのLEDを0.5秒間隔で点滅させている、という処理の違いはあるにせよ、main()の中身は完全に一緒で、rtos.hをincludeするかしないかだけが明示的な違いであるといっても良い。

 もちろん実際には、例えばセキュリティ周りのAPIはmbed OS Classicにはほとんどなかったし、APIの絶対数がmbed OS 5になってだいぶ増えているので、厳密な意味では同じといえるかどうか微妙だ。しかし、少なくともmbed OS Classicで導入したClass Libraryはそのまま互換性を保つように工夫している。このため、最大の違いはrtos.hをincludeするところになっている。

 これはもう明確で、図2でもmbed OS Classicの方に“mbed RTOS”がReworkedという形で追加されていることからはっきり分かるように、mbed OS 5はRTOSベースで構築されている。実際に、5.1.0のリリースノートには、mbed OS 5.1.0はCMSIS-RTOS RTX 4.79.0をベースに構築されていると明確に記述がある。ただし、その後もいろいろ手が入っており、5.3.0でCMSIS5 Libraryを導入、5.5.0ではカーネルをCMSIS-RTOS2 Kernelに切り替え、5.6.0ではTickless RTOS Schedulerを導入と少しづつ機能が向上している。このあたりが旧来のmbed OS Classicからの最大の違いといえるだろう。

 また開発環境で言えば、従来のmbedのOnlineIDE(WebベースのIDE)に加え、CLI(コマンドラインインタフェース)ベースの開発環境(mbed CLI)も提供されるようになったのも新たな違いである(図4)。

図3 図3 「mbed CLI」の概要(クリックで拡大)

 もっとも違いという意味では、Cookbookでmbed OS ClassicのHandbookを見てみると、ネットワークはイーサネットベースしかなかったのが、最新のCookbookではかなり充実しており、特に無線通信を利用する場合は新規にコードの追加が必須ではある。逆に言えば以前はそれだけネットワーク関連が貧弱だった、ということでもあるが。

 ハードウェアのサポートも拡充されており、現時点で対応基板の一覧には126種類がラインアップされている。また基板とは別にサポートされる周辺回路に関しても、かなりの種類が並んでいる。mbed OS 2の時代に比べると、はるかに使いやすくなったと考えてよいだろう。

関連キーワード

mbed | mbed OS | mbed Cloud | ARM | IoT観測所


Copyright © ITmedia, Inc. All Rights Reserved.