この質問に関連する議論がここにありました:リンク
抽出:参照されるLinux Journalの記事はこちら:リンク
8052とM68HC12のポートは、NuttXを特徴付けるのに特に悪い選択だと思います。両方ともいくつかの問題があり、NuttXは63リリースでバージョン5.16になっています。
私はここで、「出版社」タブでインタビューに記入しました:リンク ; レビューもあります:link。
広範なNuttXのドキュメントは、リンクから入手できます。
hcs12および8051パーツの問題は次のとおりです。
8051 / 80c52:このアーキテクチャは、実際にはRTOSの敵対的です。専用のメモリ位置(アドレス0)に小さなハードウェアスタック(8051では128バイト、80c52では256バイト)があります。タスクを切り替えるには、ブロックするタスクのスタック全体を専用アドレスから保存場所にコピーしてから、開始するタスクのスタック全体を保存場所から専用スタックの場所にコピーする必要があります。うん!
以来、スタックは非常に小さいです。スタックのオーバーランは非常に簡単です(特に割り込み処理中)。
NuttX 8051ポートは完全で機能的です(少なくとも前回使用したときは)。しかし、それを有用にするためには、おそらく各割り込みでスタック全体をコピーして、オーバーフローを防ぐ必要があります。基本的に、私はその時点で興味を失いましたが、8051を使用する動機があれば、それは実行可能です(おそらく賢明ではない場合)。
8051ポートの良かった点は、NuttXを非常に小さなメモリの場所に配置するのに優れた運動だったことです。8051ポートは32KbのRAMで実行されます。これにはRTOS、libc、コンパイラライブラリ、実質的なテストプログラム、.data / .bss、およびヒープが含まれます。そして、少しのメモリを用意してください!
hcs12:これは、他に何もしていない暇なときに取り組んでいるプロジェクトです。まだ完成しておらず、まだプライムタイムの準備ができていません。
他のRTOSとの比較については、他のRTOSを使用していないため、良い、信頼できる答えはありません。しかし、ここに私の素朴な理解があります:
FreeRTOSには、大量のダウンロードがあり、約4Kbの非常に小さなフットプリントがあります。本当に小さなMCUに最適なRTOSです。FreeRTOSポートは、ほぼすべてのMCUを備えたシリコンベンダーによってバンドルされています。したがって、これはデフォルトのRTOS選択です。
FreeRTOSを使用している競合他社は数十社あります。ChiBIOSはすぐに思い浮かびます。これらはすべて、さまざまなタイプの小さなスケジューラです。
実際の比較を行うために、最初に行う必要があることの1つは、RTOSの意味を定義することです。それは単なるスケジューラーですか?または、スケジューラ、ファイルシステム、デバイスドライバ、メモリ管理、ネットワークなどの標準OS機能の統合セットです。たとえば、Linuxなどのほとんどのオペレーティングシステムは、スケジューラだけではなく完全な開発環境です。NuttXは完全なオペレーティングシステムであり、Linuxと同じ意味です。他にもいくつかあります:
RTEMS:私はこれで働いてきました。それは永遠に存在しており、非常に安定しているはずです。大きいです。> 100kbだと思います。MCU市場の少し上を目指していると思います。
uCOS:使用したことはありませんが、これはいくつかの一般的なブートローダーでのRTOSですよね?私の印象では、これはRTEMSに似ていますが、私が何について話しているのか本当にわかりません。
NuttXとそれらをどのように比較しますか:それは、はるかに小さいです。開始時のフットプリントは約20Kbです。完全な機能を備えた構成は、さらに10〜20 KB増えます。これらのRTOSとのもう1つの違いは、NuttXが非常に標準指向であることです。NuttXは、Linuxに似た小さなものと考えることができます。Linuxでコンパイルおよび実行されるほとんどのコードは、NuttXでも実行されます(ネットワークコードやデーモンなどの一部のシステムコードは、調整が必要な場合があります)。
RTEMSはマイクロプロセッサーにより焦点を当てていると思います。NuttXは、マイクロコントローラーにより重点を置いています。