MCUに慣れていなくても使いやすい、サブシステム向けRTOS「Apache Mynewt」:リアルタイムOS列伝(15)(2/4 ページ)
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第15回は、ASF(ソフトウェア財団)のインキュベーションを受けて、Linuxを用いるような大規模システムのサブシステム向けに開発されたRTOS「Apache Mynewt」を紹介する。
32ビットMCUをターゲットに機能強化が順調に進む
ちなみにこのApache Mynewt、当然ながら無償での商用利用が可能となっている(図3)。プロジェクト開始は2015年11月で、2017年6月にはTLP(Top Level Project)に昇格している(図4)。もう少し細かな歴史を示すと以下のようになる。
- 2016年4月:v0.8がリリース。BLE 4.2、FFS、カーネル、コンソール、シェルとSecure Bootが実装。これが最初のパブリックリリース
- 2016年5月:v0.9。対応ハードウェアとHAL(ハードウェア抽象化レイヤー)を拡充
- 2016年6月:v0.10。Wi-FiおよびIP対応を追加
- 2016年7月:v0.11。Bluetoothのフルサポートおよび品質向上
- 2016年8月:v1.0-b1(最終β)
- 2016年10月:v1.0-GA(最初の正式版)
- 2017年7月:v1.1.0。BLEスタックの拡張、ツール類の強化、センサーフレームワークの搭載、対応機種の追加、デバッグ環境の強化など
- 2017年9月:v1.2.0。LoRa/BLE Meshスタックの搭載、ツール類の強化など
- 2017年12月:v1.3.0。センサーフレームワークの強化、LoRa/BLE Meshスタックの改良など
- 2018年6月:v1.4.0。BLEスタックが分離(Apache Mynewt Nimble)。対応アーキテクチャの追加、幾つかのドライバ類の追加など
- 2018年7月:v1.4.1。バグフィックス(新機能の搭載はなし)
- 2018年11月:v1.5.0。ロギング機能の追加、新アーキテクチャ対応、ドライバ類の追加、暗号化フラッシュのサポート、エラーレポート機能の搭載など
- 2019年4月:v1.6.0。第2世代FCB(Flash Circular Buffer)の搭載やGFM(Global Fault Management)機能の搭載、新アーキテクチャ/ドライバ追加、暗号化フレームワーク実装など
- 2019年8月:v1.7.0。旧Bootloaderの削除、TaskpoolパッケージやGeneric Data Streaming Interfaceの搭載、新ハードウェアサポートなど
- 2020年4月:v1.8.0。FCB2の搭載、mbedTLSの新版対応、Newt Toolの改良など
- 2021年3月:v1.9.0。USB peripheralやI2S、汎用温度センサーI/F、LittleFSの搭載や新ドライバなど
このように、比較的順調に開発というか機能強化が進んでいる。v0.8の時にはシミュレーターとNordic Semiconductorの「NRF51/52」、STマイクロの「STM32F3/F4」、それとArduinoだけだった対応機種も、現在では結構な数が用意されている(ちなみにApache Mynewt ProjectのWikiにおけるBSPのページは2017年4月付のまま放置されており、あてにならない。最新のBSPはこちらに置かれており、72ほどが現在ラインアップされている)。基本的に、図2にあるように32ビットMCUがターゲットであり、Armの「Cortex-M」と一部のMIPS32、それとRISC-Vが対応アーキテクチャとして挙げられている(図5)。今のところ、これ以外のアーキテクチャへの積極的な対応は進んでいないが、Apache Mynewtでは、CPUやHAL、BSP(ボードサポートパッケージ)をポーティングするための詳細な手順などが細かく説明されていたりする。実際には、公開されていないだけで他のアーキテクチャへ移植された実績は結構あるのかもしれない。
Copyright © ITmedia, Inc. All Rights Reserved.