さて、背景説明はこの程度にして、RTOSとしてのChibiOS/RTについて紹介したい。以前の製品はChibiOS/RTだけだったが、最近は以下のように複数のコンポーネントに分けて提供されている。
RTOS本体となるChibiOS/RTの特徴は以下のようになっている。
ちなみにContext Switchingの実測結果は表1のようになっている。
MCU(プロセッサ/動作周波数) | ChibiOS/RT | ChibiOS/NIL |
---|---|---|
STM32F303(Cortex-M4/72MHz) | 1.12〜1.92 | 1.49〜1.96 |
STM32G0(Cortex-M0+/64MHz) | 1.69〜1.69 | 1.85〜1.85 |
STM32G4(Cortex-M4/170MHz) | 0.39〜0.58 | 0.47〜0.67 |
STM32H7(Cortex-M7/480MHz) | 0.14〜0.19 | 0.12〜0.18 |
表1 Context Switchingの実測結果。数値の単位はいずれもμs |
これらの数字はPerformance Tableに示されているが、特徴のところで挙げた10μsという数字は、もっと動作の遅いMCUを利用した場合と思われる(数字のばらつきは、FPUの有無およびGCC/IAR/Keilのどれを使ってビルドしたかに依存する)。
ここでちょっと面白いのがHAL。筆者が知っているHALと明らかに違う(図4)。実際特徴としても“ChibiOS/RTはHALに一切影響を受けない”が挙げられており、世間一般で言うところのHALに相当するのは、ChibiOS/RTの中の“RT Port Layer”に近い。とはいえ、ChibiOS/RTの方式のHALでも別に困らない(というか、むしろこの方が楽)なのは事実であるが。
対応プラットフォームは、やはりSirio氏がSTマイクロの社員(≒STマイクロのMCUや開発ボードの入手が容易)ということもあってか、STM32やSTM8のサポートが手厚い。ただし、STマイクロ/フリースケール系のPowerPCや、Cortex-MでもNXP SemiconductorやAtmelのMCUがサポートされているし、他にもAtmelの「Mega AVR」やTIの「MSP430」、Microchipの「PIC32MX」、古いところではフリースケールの「Coldfire」やルネサスの「H8S」、最近だと「Raspberry Pi」への移植も行われている。RISC-V向けは教育目的で移植された例は報告されているが、Sirio氏いわく「面白そうだしやってみたいけど時間がない」などとリプライしているあたり、完全な移植が行われるまでまだ時間がかかりそうだ。
現状STマイクロのMCU以外で使うにはそれなりの作業は必要そうだが、取っつきやすい構成ではあるし、機能の割には使うリソースもわずかで、RTOSを遊んでみるのには悪くない題材かもしれない。Context Switchingの数字からも明らかなようにリアルタイム処理の性能も悪くない。「とにかくリアルタイム性能が欲しい」なんて場合に考慮するRTOSの一つであろう。
Copyright © ITmedia, Inc. All Rights Reserved.