これらに続いて2017年に投入されたのが「Phoenix-RTOS 3」である。最大の違いはマイクロカーネルへの移行である。恐らくこの移行は、メンテナンス性が大きな要因だったと思われる。というのは、ここまででも書いたがPhoenix-RTOS 2.0ではLoCが200KだったのがPhoenix-RTOS 3では20K(2万行)にまで減っている。さすがに200KものLoCのメンテナンスは大変だったのだろう。これに伴い、バイナリイメージは120KB(コード100KB+データ20KB)まで小さくなっている。またx86とArm、eSI-RISCに加えてArmv7MやRISC-Vへの移植も行われている(図7)。W-MBusやIEEE 802.15.4(というよりもZigBee)はスマートガスメーターへの対応ということのようだ(図8)。もちろん、従来のDCUやスマートメーターにも利用可能である(図9)。
ところでArmv7Mへの対応であるが、NXPの「iMX.RTシリーズ」、つまり「Cortex-M7」とCortex-M4のデュアルコアMCU(NXPの表現では「Crossover Processor」)がメインターゲットの模様だ。600MHz駆動のCortex-M7は、500MHz駆動のCortex-A5よりも当然パワフルであり、モデムなどをソフトウェア無線(SDR)的に実装することも可能で、当然これはBOMコスト削減につながることになる。そのあたりもあって、今後のスマートメータープラットフォームとして考えているようだ(図10)。
さて、このPhoenix-RTOS 3、ここまではPhoenix Systemsが提供する商用製品だったわけだが、2018年にBSD Licenseの下で提供される形でオープンソース化された。ソースはGitHubで公開されている。今やPhoenix-RTOS 3はEUプロジェクトの扱いになっており、実際に欧州投資基金(European Investment Fund)や欧州地域開発基金(European Regional Development Fund)の資金援助を受けている。オープンソースではあるものの、Phoenix SystemsがPhoenix-RTOSにおける最大のコントリビューターであることは間違いなく、またBSD Licenseの下で誰でも自由に使えるとはいえ、サポートやカスタマイズ、移植などを自分の手で行えないユーザーが一定量存在する以上、これらユーザーに対するさまざまなサービスを提供するのがPhoenix Systemsの主なミッションになっている。
Phoenix-RTOSは、これまで紹介してきた汎用のRTOSとは少し違う、というかリアルタイム処理が本当に必要なユーザー向けといった格好になっている。どの程度のリアルタイム処理か? といえば、それこそ「スマートメーターを実装するのに必要な程度」であり、それもあって性能の低いMCUなどはきれいに切り捨てているというあたりもちょっと独特である。一応、英語のドキュメントはそろっているし、GNUのツールチェーンをサポートしているので、慣れた開発者ならそれほどハードルは高くない。
執筆時点でのGitHubに公開されているターゲットは以下の8つである
ただし、IA32-Genericはx86汎用ながらVGAとTTY VGA Driver、ATA Driverとやや古めというか、組み込み向けSBCを使わないとうまく動かない感じの構成だし、RISC-VはQEMU(RISCV64-virt)かSpike(RISCV64-Spike)という仮想環境のみが用意されている。一番手軽なのはSTマイクロのSTM32L4xを搭載したDiscoveryボードを探すことだろうか。ちょっと癖はありそうなRTOSだが、特定用途向けに特化した潔さが光るものとなっている。
Copyright © ITmedia, Inc. All Rights Reserved.