FreeRTOS

組み込みシステム用のオープンソースのリアルタイムオペレーティングシステム

FreeRTOS組み込みシステム用のオープンソースリアルタイムオペレーティングシステム (RTOS) 。いくつものマイクロコントローラに移植されている。

FreeRTOS
開発者 Richard Barry、FreeRTOSチーム
OSの系統 リアルタイムオペレーティングシステム
開発状況 開発中
ソースモデル フリーソフトウェア/オープンソース
最新安定版 10.4.1[1] ウィキデータを編集 - エラー: 最初のパラメータの文字列長が想定外です。 (エラー: 最初のパラメータを日付や時間として解析することができません。)
リポジトリ ウィキデータを編集
対象市場 組み込みシステム
使用できる言語 英語
プラットフォーム ARM (ARM7、ARM9、Cortex-M3、Cortex-M0))、Atmel AVRAVR32HCS12MicroBlazeTI MSP430PICルネサスH8/Sx868052ColdfireKinetisV850、78K0R、富士通FRファミリ(MB91460シリーズ)、F2MC-16FXファミリ(MB96340シリーズ)、Nios II
カーネル種別 マイクロカーネル
ライセンス MIT License
ウェブサイト www.freertos.org ウィキデータを編集
テンプレートを表示

ライセンス 編集

バージョン9までは例外条項付きGPLの下で配布されていた。 例外条項は、カーネルそのものがオープンソースである場合にはユーザのコードをクローズドソースにしておくことができるという内容である。[2]

Amazon.comに買収された後のバージョン10からはMITライセンスを採用している。

サポートされているアーキテクチャ 編集

サポートされているアーキテクチャは以下のようである[3]

概要 編集

FreeRTOSは小さく単純であるように設計されている。 カーネル自体は3つあるいは4つのC言語によるファイルのみからなっている。 コードを読みやすく、移植しやすく、メンテナンスしやすくするために、ほとんどC言語で書かれている。 しかし、アーキテクチャ独自のスケジューラルーチンを中心に、必要な部分には少ないがアセンブリ言語が使われている。 ダウンロードできる配布物では、既に設定がなされており、 全ての移植先に対してのデモンストレーションとコンパイラが含まれている。 これにより、すばやくアプリケーションをデザインできる。 FreeRTOS.orgウェブサイトはRTOSについてのチュートリアルや、 設計の詳細と様々なマイクロコントローラでのパフォーマンスの比較結果を掲載している。

以下が主要な機能である。

  • 小さく単純である。オペレーティングシステムに慣れていない者にも適している。
  • スケジューラはプリエンプティブマルチタスクと協調的マルチタスクの両方に設定できる。
  • コルーチンサポート (FreeRTOSにおけるコルーチンとは、非常に単純で軽量なタスクであり、スタックの使用は極めて制限されている)

SafeRTOS 編集

FreeRTOSから派生したSafeRTOSと呼ばれるスピンオフしたプロジェクトがある。 SafeRTOSはFreeRTOSのコードをベースとしているが、 IEC 61508に定める安全性に関連するアプリケーションで使用できるように アップデートやドキュメントの作成、テスト、検査されている。

OpenRTOS 編集

関連するもう一つのプロジェクトはOpenRTOSである。これはFreeRTOSのコードベースを基にしているが、 ライセンスが異なっている。 OpenRTOSはFreeRTOSからGPLへの言及とGPLによる実装をすべて取り除いたものである。 たとえば、商用製品にFreeRTOSを組み込んだ場合には、製造者はFreeRTOSを使用していることを意識し、 利用者が要求すればGPLの規定によりソースコードを開示提供しなければならないが、OpenRTOSを採用している場合にはそのような制約がない。

脚注 編集

  1. ^ "Release 10.4.1"; 閲覧日: 2020年10月10日; 出版日: 2020年9月17日.
  2. ^ FreeRTOS open source licensing, FreeRTOS license description, FreeRTOS license terms and OpenRTOS commercial licensing options.”. 2015年10月11日時点のオリジナルよりアーカイブ。2018年2月3日閲覧。
  3. ^ FreeRTOS Ports

関連項目 編集

外部リンク 編集