「Azure RTOS コンポーネント」には、リアルタイムOS「Azure RTOS ThreadX」以外にも「Azure RTOS FileX」「Azure RTOS GUIX」「Azure RTOS GUIX Studio」「Azure RTOS NetXDuo」「Azure RTOS USBX」および「Azure RTOS TraceX」というミドルウェアおよびツールが用意されています。
AzureRTOSミドルウェアはすべてC言語で記述されており、どのようなターゲットでも動作可能というのが一つの特徴です。それぞれのターゲットに合わせた多少の設定調整は必要ですが、これらの機能を組込みシステムやIoT機器でそのまま使用できることは、開発期間の短縮と開発コスト低減に有効です。
ミドルウェアとツール、それぞれの機能の紹介と特長について、以下に説明します。
FileX
FileXは、組込み向けFATファイルシステムです。
FileXは、FAT12、FAT16、FAT32、exFATなど、すべてのFATファイル形式をサポートしています。 セクターキャッシュ機能も用意されており、高速なアクセスが可能です。
またFileXのオプションとして、フォールトトレランス(電源断対応)機能や、NANDまたはNORフラッシュウェアレベリングを行う「LevexX」というミドルウェアも提供されています。
GUIXおよびGUIX Studio
GUIXは、比較的性能の低い環境でも動作するように設計されている組込み向けのGUIツールです。
Windows上で動作する、視覚的・直感的に理解しやすいデザインツール(GUIX Studio)を使用して、簡単にアプリケーション画面を設計することができ、ThreadX for Win32と組み合わせて、複雑な画面遷移等の動作も確認することができます。
なお、GUIX StudioはWindows専用で、他のOS環境用のものは、現時点では提供されていません。
GUIXについては、こちらのコラムでご確認ください。
https://blog.grape.co.jp/guix_column0421/
NetXDuo
NetXDuoは、組込み向け高速かつ軽量なTCP/IPプロトコルスタックです。
NetXDuoはIPv4/IPv6に対応しており、高速かつ軽量なプロトコル処理が特徴です。高速性についてはMicrosoft社の「Azure RTOS NetX Duo の概要」の説明でも、100Mbps回線で95Mbpsという説明もされており、当社での実測でも90Mbps程度の速度が出ることは確認しています。
NetXDuoのターゲット依存部分は比較的少なく、ドライバが用意できればどのようなターゲットでも動作可能です。ドライバについても、機能としては、回線接続・切断、送信、受信のそれぞれの機能が用意できれば基本的な通信は可能で、チェックサムオフロードなどのコントローラの機能を使用する場合でも、一部の設定変更や簡単な処理追加だけで対応できます。
また各種上位プロトコルも用意されており、AutoIP、DHCP、DNS、FTP、HTTP、LWM2M、MDNS、MQTT、NAT、POP3、PPP、PPPoE、PTP、SMTP、SNTP、Telnet、TFTP、WebSocketが提供されています。SSL/TLS機能も提供されており、HTTPSプロトコルも用意されています。
ネットワークプログラミングはBSD Socket APIの方が作りやすいという方のために、BSD 4.3 Socket API Compatible Interfaceも用意されており、BSD Socket形式でアプリケーション開発を行うことも可能です。
なおグレープシステムでは、NetX ITRON TCPIPというライブラリを用意しており、ITRON TCPIP APIを使用したアプリケーション開発をサポートする製品になりますので、ご興味がある方は当社にお問い合わせください。
上位プロトコルの実装はアプリケーション側の対応も必要ですが、アプリケーションのサンプルも用意されていますので、比較的簡単に使用することができます。サンプルアプリケーションにはAzureCloudに接続するものもあり、IoT機器としてクラウド機能を用意することも簡単にできます。
USBX
USBXは、USB ホスト、デバイス、On-The-Go(OTG)に対応したUSBスタックです。各種クラスも用意されており、ASIX、AUDIO、CDC/ACM、CDC/ECM、GSER、HID(キーボード、マウス、およびリモート コントロール)、HUB、PIMA(PTP/MTP)、PRINTER、PROLIFIC、STORAGEなどに対応しています。またFileXやNetXDuoと組み合わせて動作するための処理も含んでいるため、USBXのドライバが用意できれば、そのままクラスを使用したアプリケーションを開発することが可能です。
ホストドライバについても、標準的なEHCI/OHCIドライバが用意されているため、簡単な設定のみでUSBを使用することが可能です。
現在のUSBXではUSB Video Class(UVC)もサポートされていますが、残念ながらMicrosoft社のマニュアルが更新されておらず、サンプルコードも用意されていません。ただしAzureRTOSをサポートしているMCUメーカが提供している公開されているサンプルコードがいくつかありますので、それらを参考にしていただくことは可能です。MCUが異なる場合でも、アプリケーション部分は基本的には同じです。
TraceX
TraceXは、Windows上で動作するThreadX専用の分析ツールです。
ThreadXおよびAzureRTOSミドルウェアにはシステムイベントをトレースバッファに記録する機能が用意されており、そのイベントをWindows上でグラフィカルに分析し、システムの問題を診断し、アプリケーションをチューニングしてパフォーマンスとリソース管理を向上させることができます。
なおTraceXはWindows上で動作するツールですが、現時点では他のOS環境用のものはリリースされていません。
終わりに
AzureRTOSは、「高速」「コンパクト」を特徴とし、ライセンスされたMCU・MPUであれば、契約不要で量産製品に使用することができます。提供されているミドルウェア群も、たくさんの機能やプロトコルがサポートされており、製品開発の際に必要な要件が一通りそろっています。
各MCU・MPUメーカーやツールもAzureRTOSを積極的にサポートしており、製品の試作や機能検討などの、製品開発の初期段階でも簡単に環境を用意することができます。
多くのメリットがあるAzureRTOSを一度触ってみてはいかがでしょうか?
なおグレープシステムでは、ミドルウェアも含めてAzureRTOSコンポーネント全体に対するサポートサービスを用意しています。また、開発のお手伝いもしており、多くの実績もあります。AzureRTOSを使用して開発する際の不安や疑問があれば、是非一度お声がけいただければと思います。
2023年、Microsoft は Azure RTOS テクノロジを Eclipse Foundation に提供しました。
Eclipse Foundation を新しい拠点として、Azure RTOS は Eclipse ThreadX になりました。