誰かがNuttX RTOSを評価しましたか?


15

今日Linux User's Journalを読んでいると、NuttX RTOS についてのちょっとした宣伝文句出会いました。私は彼らのウェブサイトをチェックアウトし、その機能セットと8052にそれを入れる能力にかなり感銘を受けました!POSIXをサポートしていることは興味深いと思います。POSIXは、社内RTOSのクライアントの1人のために取り組んできたものです。これは、社内のRTOSよりももう少し豊富な機能のようです。

他の誰かがNuttXのことを聞いて、試してみましたか?その場合、FreeRTOSなどの他のRTOSと比較してどうですか?


1
私はちょうどRTOSで遊び始めたばかりで、ここで尋ねると素晴らしいアドバイスを得ましたが、ここのほとんどのユーザーはRTOSが何であるかを知らないと感じました。これは悪い意味ではありません。他のフォーラムでも、良い答えを受け取るチャンスを増やすことを求める価値があるかもしれません。
-Kortuk

とにかく試してみる必要があります:-)誰がここに潜んでいるかわからない:-)
ジェイアトキンソン

ええ、私もここで糸くずの質問をしました。一口を期待して痛いことはありません。
コルトゥク

バウンティを開始!RTOSの比較に興味があります。
-tyblu

7
なぜこの質問に賛成票を投じるのですか?RTOSは電子機器やロボット工学で常に使用されています。
ケレンブ

回答:


17

この質問に関連する議論がここにありました:リンク

抽出:参照される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は、マイクロコントローラーにより重点を置いています。


4

ライセンスは、オープンソースRTOSを選択する際に留意すべきもう1つの違いです。特に商用プロジェクトでRTOSを使用する場合。ほとんどのオープンソースRTOSにはGPLライセンスが変更されています。通常、ライセンスの変更では、GPL RTOSとリンクする独自のコードは必要ないことを指定しています(ただし、変更したRTOSファイルをリリースする必要があります)。

NuttX(およびおそらくその他)には、制限のない修正されたBSDライセンスがあります。BSDライセンスを使用すると、基本的にコードを取得し、ファイル内にライセンス情報と著作権情報を保持する以外の義務を負わずに独自のコードとして使用できます。


Nutt、この情報を編集して他の回答に変えてくれませんか?
-Kortuk

もちろん、お気軽に。8051と80c52とhc12についての暴言も、ここでは文脈から外れているようです。
patacongo

もっと編集できることに気づいただけです。あなたがそれを知っていて、意図的にやったので、ここに置いておくことができます。通常、別のセクションで編集してタイトルを使用することができます。気が変わったら助けてもらえるか教えてください。
Kortuk
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.