ChibiOS/RTは、コンパクトで高速なRTOS performance data on emb4fun.de リアルタイムオペレーティングシステムであり、複数のアーキテクチャーをサポートし、GPL3ライセンスでリリースされている。 開発者は、Giovanni Di Sirioである。
評価 ChibiOS/RTは、8ビットと16ビット、32ビットのマイクロコントローラーの組み込み用途向けに設計されている。 プロジェクトの主なゴールは、サイズと実行性能である。ChibiOS/RT statistics on Open Hub 実例を参考にすると、カーネルのサイズは、最小で1.2KiBから、STMのCortex-M3プロセッサーの全てのサブシステムを有効化した場合で最大5.5KiBである。 カーネルは1秒間に220,000スレッド以上を開始と終了させることができ、コンテキストスイッチは、STM32を72 MHzで動作させた場合、 1.2マイクロ秒で実行できる。 全てのサポートされたプラットフォームにおける同様の評価結果は、ソースコードの配布物のテストリポートに含まれている。
機能 ChibiOS/RTマイクロカーネルは、以下をサポートしている。
プリエンプティブなマルチスレッディングA detailed explanation of multithreading in ChibiOS/RT 128段階の優先度 同じ優先度のスレッドのラウンドロビン・スケジューリング ソフトウェアタイマー カウンティングセマフォ 優先度継承をサポートしたミューテックス 条件変数 同期と非同期のメッセージ イベントフラグとハンドラー キュー タイムアウトをサポートした同期と非同期I/O スレッドセーフなメモリーヒープとメモリープールのアロケーター ADCやCANやGPT (汎用タイマー)、EXT、I²C、ICU、MAC、MMC/SD、PAL、PWM、RTC、SDC、シリアル、SPI、USBドライバーをサポートするハードウェア抽象化レイヤー lwIPとuIP TCP/IPスタックのサポート FatFSファイルシステムライブラリーのサポート
全てのシステムオブジェクト(スレッドやセマフォ、タイマーなど)は、実行時に生成と削除が可能である。 利用可能なメモリーに上限はない。 システムの信頼性を向上させるため、カーネルアーキテクチャーは全体を通して静的であり、メモリーアロケーターは、オプションとして用意はされているが、必須ではない。 テーブルや配列といったデータ構造にサイズの上限はない。 システムのCPIは、エラーコードや例外といったエラー時の処理を持たない設計である。
ChibiOS/RTは、組み込みデバイスで動かすアプリケーションのために設計されており、 様々なマイクロコントローラー向けのデモアプリケーションを含んでいる。 ST STM32F1xx、STM32F2xx、STM32F3xx、STM32F4xx、STM32L1xx、STM32F0xx ST STM8S208x、STM8S105x、STM8L152x ST/Freescale SPC56x / MPC56xx NXP LPC11xx、LPC11Uxx、LPC13xx NXP LPC2148 Atmel AT91SAM7S、AT91SAM7X Atmel Mega AVR TI MSP430x1611 TI TM4C123GとTM4C1294 Microchip PIC32MX
ColdfireとH8S向けの移植も存在する。 Additional supported architectures on emb4fun.de
ChibiOS/RTは、Raspberry Piにも移植されており、
GPIOやシリアル、GPT (汎用タイマー)、I2C、SPI、PWM用のドライバーが実装されている。
ソフトウェアI/Oエミュレーションモードでは、Win32プロセスとしてカーネルを動かすことができる。 これにより、実際のハードウェアなしで簡単にアプリケーションを開発できる。 MinGWコンパイラ向けの例が含まれている。
ChibiOS/RTは、wolfSSLといった著名なTLS/SSLライブラリーにサポートされている。
uGFX ChibiOS/RTは、GUIツールキットであるµGFXに完全にサポートされている。 µGFXは、過去にはChibiOS/GFXと呼ばれていた。
関連項目
A detailed explanation of multithreading in ChibiOS/RT
脚注
外部リンク ChibiOS/RTホームページと文書 ChibiOS/RTプロジェクトとサポート