0

Linux以外のプラットフォームであるuC/OS-IIRTOSにHiawathaWebサーバーを実装することを計画しています。

Linuxに依存するAPIをRTOSプラットフォームに移植するための支援が必要です。

LinuxをRTOSに移植するために使用できるビルドライブラリがすでにある場合は、教えてください。

前もって感謝します

4

1 に答える 1

2

標準 C ライブラリ以外を使用するコードには、ある程度の移植作業が必要になります。非標準および OS 固有のライブラリと呼び出しがどの程度行われるかによって、必要な作業やそのような移植の実現可能性が決まります。

複雑な Linux コードのほとんどは POSIX API を必要とし、ネットワーキング コードはおそらく BSD ソケットを使用します。マルチスレッド コードでは、pthreads を使用する可能性が高くなります。uC/OS-II にはこれらのどちらもありません。スケジューリング、タイミング、同期、およびプロセス間通信のみを扱います。これはスケジューリング カーネルであり、Linux と同じ意味での完全な OS ではありません。ほとんどの Linux コードの要件であるファイル システムさえありません。もちろん、追加のライブラリと拡張機能を追加すると、必要なものの一部またはすべてが提供される場合があります。

さらに、uC/OS-II の単純な優先度レベルごとに 1 つのスレッドのスケジューラーは、典型的な Linux マルチスレッド コードを意図した方法でスケジュールすることを困難にします。ほとんどの RTOS (uC/OS-III を含む) は、同じ優先度レベルでのタスクのラウンド ロビン/タイム スライス スケジューリングをサポートしていますが、uC/OS-II はサポートしていません。このタスクには適さない可能性があります。

uC/OS-II よりも洗練されたもの、あるいは uC/OS-II により適したコードを使用することが必要かもしれません。 たとえば、 eCosは組み込みシステム向けのはるかに完全な RTOS です。これはオープンソースであり、POSIX API、ファイル システム サポート、およびソケット API が含まれています。Linux コードをそれに移植する方がはるかに簡単です。同様に、uC/OS-II やその他の単純な RTOS に適しているか、OS がまったくない場合にも適している軽量の組み込み Web サーバーの例が多数あります。たとえば、 LwIPは、uC/OS-II ポートが存在し、Web サーバーの例がある小規模な組み込みシステム用の TCP/IP スタックです。

ポイントは、Linux と uC/OS-II は比較できないということです。1 つは 10Kb 未満のコードを必要とし、もう 1 つは約 4Mb の最小限のフットプリントです! このようなシステムで Linux コードを実行するには、不足しているサービスを提供するために多くのコードを追加する必要があり、ターゲット プラットフォームでは実行できない場合があります。


[編集: 2012 年 7 月 8 日]

Micrium 独自の TCP/IP スタックと μC/HTTPs Web サーバー アドオンの使用を検討しましたか? uC/OS-II により良く統合され、非 RTOS 固有のサードパーティ コードよりも優れたパフォーマンスを提供する可能性があります。

于 2012-07-03T20:35:44.430 に答える