Azure RTOSはEclipse ThreadXへ

Azure RTOSはEclipse ThreadXへ
Azure RTOSはEclipse ThreadXへ

Microsoftが、Azure RTOSをEclipse Foundationへ提供しました。Azure RTOSからEclipse ThreadXへ名前を変え、ベンダーニュートラルなオープンソースRTOSへ変わりました(2024年1月9日、MONOist)。

上記記事に筆者は驚きました。Microsoft発表は、昨年11月21日です。発表から約2か月たった現在の業界動向をまとめました。

Microsoft動向

MicrosoftがAzure RTOSを手放した経緯は、前述MONOist記事が詳しく説明しています。ごく簡単にまとめます。

Microsoftは、2019年ExpressLogic社買収で入手したThreadXを、自社クラウドサービス接続用RTOS、Azure RTOSとして育ててきた。しかし、2022年Azure RTOS開発責任者がMicrosoftを退社。結局、2023年Microsoftは、Azure RTOSをEclipse Foundationへ提供。今後、Microsoftは機能安全コストも負担しない。

※機能安全コストとは、厳格な安全やセキュリティ規格を満たすソフトウェアのメンテやサポートコスト。

Eclipse財団動向

MCU統合開発環境のデファクトスタンダード:Eclipse IDEの非営利運営団体がEclipse Foundation。

Eclipse財団は、提供Azure RTOSをEclipse ThreadXと改名。ベンダーニュートラルなオープンソースRTOSとし、一般的に有償の機能安全版も、2024年1月末目途にMIT Licenseで提供準備中。

Eclipse財団は現在Eclipse ThreadX開発者募集中で、Eclipse ThreadXの全コンポーネント(IoT MCUベンダ動向図のTCP/IPスタック等)無償配布になる可能性あり。

MCU RTOS動向

MCU RTOS動向
MCU RTOS動向

Eclipse ThreadX競合ライバルのFreeRTOS、 μT-Kernel状況が下記。特段の対応は現在無し。

FreeRTOS:機能安全版は商用ライセンスSAFERTOSで提供中。FreeRTOSは無償提供中。
μT-Kernel: IEEE標準規格:IEEE2050-2018完全準拠版μT-Kernel 3.0を無償提供中。

IoT MCUベンダ動向

本ブログ掲載IoT MCUベンダで言えば、STマイクロ>ルネサス>NXPの順に、Azure RTOSに積極的でした(FreeRTOSなら真逆)。

そのSTマイクロが、Eclipse ThreadXは、重要な開発環境の一部、とMicrosoft発表内でコメントしています。つまり、STマイクロは、これまでのAzure RTOS同様、Eclipse ThreadXをミドルウェアとして提供すると思います。

現代的ユーザMCU開発の例(出展:The ST blog)
現代的ユーザMCU開発の例(出展:The ST blog)

米市場動向

MicrosoftがAzure RTOSを手放したのは、育成済みAzure RTOSを、今さら保守・運用しなくても、自社クラウドサービスへの影響は少ない、と判断したからかもしれません。

一方、一般向けAI PCに関しては、Windows 11シェア伸び悩む、Windows 12方向性などの記事から、Microsoftは次期Windows+Copilotに注力すると思います。AI Copilotキー追加モバイルCopilotなど、最近は生成AI関連のCopilot発表一色です。

これらCopilot群は、次期AI Windows(Afterword2参照)で使い易く統合されるでしょう。

2024年1月12日、米株式市場も⽣成AI⾰命からより多くの恩恵を受けるMicrosoft時価総額を、アップルを抜き首位復活させました。

Summary:IoT MCU開発者対応

Microsoftが、Azure RTOSを手放し、Eclipse財団が、Eclipse ThreadXと改名、ベンダーニュートラルオープンソースRTOSとしたことを、業界は、冷静かつ好意的に受け止めているようです。

むしろ、AWSならFreeRTOS、AzureならAzure RTOSと2本立てIoT MCU RTOS開発が、Eclipse ThreadXで一本化、機能安全パッケージも無償提供期待の方が大きいのかもしれません。

IoT MCU開発者は、Eclipse ThreadXを含むRTOS動向に注意する必要があります。

Afterword:RTOSチェックポイント

RTOS動向チェックポイント
RTOS動向チェックポイント

MCUにRTOSを使う理由は、クラウド接続ライブラリが必要だからです。

しかし、ライブラリは関数の集合に過ぎないので、ライブラリ利用例、つまりサンプルコードが無いと使えません。ベンダーニュートラルEclipse ThreadXが、AzureとAWS両方の接続サンプルコードを提供するかがチェックポイントです。

また、サンプルコードがあっても、接続の容易さや安定性も確認したいです。評価ボードでのテストやクラウド接続ユーザ数変化、SNSなどで判るでしょう。

Eclipse ThreadXが他RTOSへ与える影響は、少なくないと思います。この辺りは、調査を続けます。

Afterword2:AI Windows12決め手

Win11敗因の1つは、TPM 2.0などのPCハードウェアとWin11アップグレード条件を、100%結び付けたことだと思います。条件を満たさないPCは、Win11アップグレートができずWin10のままです。Win10でも、PC生産性に大差はありませんが…😓。

ハードウェアとアップグレート条件の結び付きを緩くし、例えば、NPU(Neural Processing Unit)搭載最新Core Ultraプロセッサなら、自然言語入力にも対応するAI機能満載Win12、古いCPUなら、従来CUI/GUI 入力のAI Win12など、アップグレード機能/能力差を付けます。

これに近いことは、 既に昨年のWin11 23H2アップデートの段階的機能ロールアウト(Controlled Feature Rollout、CFR)で実施中です。

AI機能は、PC生産性に直結します。PC買換え需要も喚起できるでしょう。不振Win11と2025年秋Win10サポート終了前に、AI Win12リリースをMicrosoftが急ぐ理由です。

つまり、2024年内にPCハードウェアに応じたAI Win12アップグレートをMicrosoftが提供することが、低下しつつあるWindowsシェア復活の決め手になると思います。


RTOSアプリケーションIoT MCU能力推定

RTOSアプリケーションのIoT MCUにはどの程度のハードウェア能力が必要か?
この答を IEEE標準RTOS のμT-Kernelプログラミングコンテスト対象評価ボードから考察しました。

RTOSコンテスト評価ボード
RTOSコンテスト評価ボード

RTOSコンテスト対象評価ボード

MCUベンダ大手4社:インフィニティ、STマイクロ、NXP、ルネサス協賛のRTOSプログラミングコンテストが開催中です。RTOSは、IoT MCU世界標準のμT-Kernel 3.0利用がコンテスト条件です(関連投稿:前投稿)。

但し4社評価ボードは、μT-Kernel以外にもFreeRTOSやAzure RTOSでも動作可能です。そこで、これら評価ボードスペックを分析すると、RTOSアプリケーションのIoT MCUに、どの程度のMCUハードウェア能力が必要か、その目安が判ると思います。

コンテスト対象評価ボードは、ベンダ4社評価ボードと英BBC開発micro:bit、合わせて5種です。

インフィニティ:KIT_XMC72_EVK
STマイクロ:Nucleo_H723ZG
NXP:MCX N94x評価ボード(1月4日現在Coming Soon)
ルネサス:EK-RA8M1
BBC:micro:bit

評価ボードMCUコアとROM/RAM量

各評価ボードは、どれもARM Cortex-M系コアを用いています。

インフィニティとSTマイクロは、ハイパフォーマンスMCU Cortex-M7、NXPは、Trust Zone搭載MCU Cortex-M33、ルネサスは、AI/ML性能向上のArm Helium搭載MCU Cortex-M85、BBC開発micro:bitは、ベーシックなMCU Cortex-M4です。

評価ボードのCortex-Mコアと最高動作速度、ROM/RAM量が下表です。

ベンダ Cortex-Mコア/速度 ROM(KB) RAM(KB)
インフィニティ M7/350MHz 8192 1024
STマイクロ M7/550MHz 1024 564
NXP M33/150MHz 1024 1024
ルネサス M85/480MHz 2049 1024
BBC M4/64MHz 512 128

BBC開発micro:bitは、他に比べスペックが劣っています。
これは、μT-Kernel 3.0学習教材用でコスト最優先のためと思います。

ベンダ4社評価ボードは、RTOSコンテスト参加ハードウェアなので、どれも汎用RTOSアプリケーション開発ができるハズです。コンテストエントリー時に、応募者が第3希望まで評価ボードを選べます。

IDEはRTOSもベアメタルも同じ

ベンダ4社は、ベアメタル開発用の統合開発環境:IDEを利用し、FreeRTOSやAzure RTOS開発環境を提供中です。

例えば、STマイクロは、ベアメタル開発で使うSTM32CubeIDEに、ミドルウェアのAzure RTOS開発ツールを追加し、Azure RTOS開発環境を、ユーザ自身で構築します(関連投稿:STM32 Azure RTOS開発ツール拡充

現代的ユーザMCU開発の例(出展:The ST blog)
現代的ユーザMCU開発の例(出展:The ST blog)

コンテストは、μT-Kernel 3.0 RTOS開発です。筆者は、μT-Kernel 3.0をベンダ4社評価ボード上で動作させる作業、いわゆるポーティング処理は、把握していません。

しかし、本稿主題は、RTOS IoT MCUに必要なハードウェア能力の推定です。従って、評価ボードへのμT-Kernel 3.0ポーティングは、無視します。

一方、micro:bitは、μT-Kernel 3.0で動作するEclipse IDEが提供されます。従って、どなたでも直ぐにmicro:bit上でμT-Kernelを動かすことができます。この点も、教育用に適しています。

RTOS IoT MCUハードウェア能力推定

最初の表に戻り、RTOS IoT MCUに必要なハードウェア能力を推定します。

ベンダ Cortex-Mコア/速度 ROM(KB) RAM(KB)
インフィニティ M7/350MHz 8192 1024
STマイクロ M7/550MHz 1024 564
NXP M33/150MHz 1024 1024
ルネサス M85/480MHz 2049 1024
BBC M4/64MHz 512 128

先ず、MCUコア能力は、micro:bitスペックから最低でもCortex-M4以上、RTOSアプリケーションを実用的に開発するには、Flash ROMは1024KB以上が必要そうです。教育用micro:bitの512KBは、排除しました。

また、RTOSは、動作タスク数に比例し使用スタック量が急増します。これは、RTOSが実行タスクを別タスクへ切替える毎に、実行タスク変数やレジスタ等の状態をスタックにプッシュするためです。タスク再実行の際には、RTOSがスタックからポップし、実行前タスク状態へ戻します。

RTOSスタック動作(出展:ウィキペディア)
RTOSスタック動作(出展:ウィキペディア)

仮に、このRTOSポップ/プッシュに対してスタック量が不足した場合は、再現し難いバグになります。このバグを避けるには、必要十分な量のスタック領域が、RAM上に必要となります。スタック量を見積もるツールは、各社のIDEに付属しています。

表から、RTOSアプリケーション開発には、RAMは、最低でも512KB、安全側評価なら1024KB程度が必要そうです。

Summary:RTOS IoT MCUハードウェア能力

RTOSアプリケーションが動作するIoT MCUに必要なハードウェア能力を、μT-Kernelプログラミングコンテスト対象評価ボードから考察した目安が下記です。

MCUコア:ARM Cortex-M4以上、Flash ROM 1024KB以上、RAM 512KB以上

RTOSアプリケーション開発時には、MCUデバイスコストと発展性の検討が必要です。

機能拡張や横展開が期待できるRTOSアプリケーションなら、IDE付属スタック見積ツールを活用し、RAMに余裕があるデバイスが、効率的で安全な開発ができそうです。

Afterword:2024年もよろしくお願いします

日本時間の毎週金曜日、MCU話題を中心に、その開発環境のWindowsや比較対象にMPU/SBCなども混ぜながら、IoT MCU開発お役立ち情報を投稿します。

「開発スピードと成果」この2つを強く求められるのが、MCUに限らず開発者の宿命です。

激変MCU環境で背反するこの2つを両立する手段の1つが、MCUテンプレートだと筆者は考えています。開発初期立上げをスムースにし、全体像の視点を持ちつつ個々の機能追加もできるからです。
RTOS MCU開発も同様だと思います。

但し、全て自作するベアメタル開発と異なり、RTOSと協調動作するのがRTOS MCU開発です。RTOSを活かすMCUタスク作成や本稿のMCUハードウェア能力を、弊社RTOSテンプレートへ反映したいと考えております。

本年もどうぞよろしくお願いいたします。

FreeRTOS version 11.0.0は、マルチコアMCU動作が可能になりました。


μT-Kernelプログラミングコンテスト

μT-Kernalプログラミングコンテスト(出典:TRONフォーラム)
μT-Kernalプログラミングコンテスト(出典:TRONフォーラム)

2023年12月11日から、インフィニティ、STマイクロ、NXP、ルネサス、4社協賛のμT-Kernelプログラミングコンテストが開催されます。

IoT MCU世界標準RTOSのμT-Kernelを用いたアプリ、ミドルウェア、開発環境/ツールの3部門で競い、対象は国内外技術者と学生、賞金総額500万円、1次審査合格者には評価ボードが無償提供されます。

Summary:エントリ:12月11日~2024年2月29日、提出:2024年3月11日~6月30日

コンテスト詳細は、12月7日、東京ミッドタウンホールの2023 TRON Symposiumで発表されます。

賞金総額500万円のコンテスト応募期間は、2023年12月11日から2024年2月29日。1次審査合格者は、内容に応じて評価ボードが無償提供され、応募プログラムの提出期限は、2024年3月11日~6月30日です。

世界標準MCU RTOS:μT-Kernel 3.0

クラウドへ接続するIoT MCUは、RTOSが必須です。FreeRTOSやAzure RTOSが有名です。

μT-KernelもIoT MCU RTOSの1つです。μT-KernelのIEEE標準規格:IEEE2050-2018完全準拠版がμT-Kernel 3.0です。つまり、μT-Kernel 3.0は、世界標準IoT MCU RTOSです。

さらに、μT-Kernel 3.0は、GitHub公開のオープンソースソフトウェアで、協賛MCUベンダ各社のBSP(ボードサポートパッケージ)もあり、RTOS開発が容易になりました。

※評価ボード毎に異なるBSPにより、ユーザ開発アプリのハードウェア依存性を無くすことがBSPの目的。STマイクロ例が下図(説明投稿はコチラ)。

BSPとMCU Firmwareによりハードウェア依存性が無いHAL APIsが提供
BSPとMCU Firmwareによりハードウェア依存性が無いHAL APIsが提供

協賛4社:STマイクロ、NXP、ルネサス、インフィニティ

μT-Kernelプログラミングコンテスト協賛4社の評価ボードは、上記BSPが提供中です。2023 TRON Symposium会場で、各社評価ボードでμT-Kernel 3.0動作のIoT MCU実機デモが開催されるでしょう。

大手MCUベンダ4社のμT-Kernel 3.0への力の入れ方やRTOS開発のし易さが、実際に評価ボードで判ると思います。

μT-Kernel 3.0学習教材

micro:bit は、入力、出力、センサー、無線通信機能が搭載済み学習ボード(出典:micro bitサイト)
micro:bit は、入力、出力、センサー、無線通信機能が搭載済み学習ボード(出典:micro bitサイト)

英BBC開発の教育向けMCU、micro:bit上で動くリアルタイムOSマイクロ学習キットが販売中です。キットと言っても、入力センサ/スイッチ/LED搭載済みのmicro:bitとPCをUSB接続するだけでRTOS動作します。

RTOSにμT-Kernel 3.0を使用し、タスク動作をビジュアル表示できるタスクトレーサやμT-Kernel日本語解説資料付きです。μT-Kernel 3.0のスケジューリングやセマフォが、ご自分のペースで学習できます。

Afterword:今年最後の投稿、次回1月5日予定

寒暖差のせいか、このごろ体調不調です。流行中のインフルエンザかもしれません。かなり早いのですが、本稿を今年最後の投稿にしたいと思います。次回は、2024年1月5日(金)投稿予定です。

今年も本ブログをご覧いただき、ありがとうございました。皆様、よいお年をお迎えください🤞。