2011-10-25 20 views
1

私はマルチタスキングRTOSを実行したいAT90USB162 AVRチップを持っていますので、私はAVRチップを使ってRTOSを評価しています。どのマルチタスキングRTOSがAVRでサポートされていますか?たぶんQNX? (AVRマイクロチップでQNXカーネルを実行することは可能ですか?)AVRのマルチタスクRTOS

ありがとうございます。

+0

"リアルタイム..."のように "RTOS"を意味しますか? - あるいは先制的なスケジューリングを探していますか? – JimmyB

+0

私はリアルタイムオペレーティングシステムを意味します。 – Rego

+1

@ハンノ:リアルタイムではないAVR用のプリエンプティブスケジューラはありますか? – Clifford

答えて

8

アトメルAT90USB162は、8ビットAVR RISCベースのマイクロコントローラである - QNXストレッチであろう、そしてAVRは、そのBSP directory

MicriumでないのuC/OS-IIとAVRをサポート

FreeRTOS AVRにも対応しています

+0

Doug、uC/OS-IIがopensourceであるかどうか知っていますか? (私はFreeRTOSがopensourceであると仮定していますか?) – Rego

+0

私はDougではありませんが、uC/OS-IIはオープンソースライセンスソフトウェアです:http://micrium.com/page/downloads/source_codeアカウントを作成し、商用アプリケーションで使用する場合はライセンスを購入してください) –

+2

ソースをダウンロードする機能は「オープンソース」と同じではありません。記載されているものに頼るのではなく、ここに。 uC/OS-IIのソースはJean Labrosseの本に含まれています。以前はそれを得る唯一の方法でした。ライセンスを購入することなく、市販の製品で使用することはできません。 FreeRTOSはオープンソースです。 FreeRTOSが配布されている製品で使用されていることを確認する必要があります。そうしたくない場合は、OpenRTOSは同一ですが、商用ライセンスがあり、サポートされています。 – Clifford

3

"RTOS"と言えば、先制的なマルチタスクを意味すると思いますか?私はあなたがファイルシステム、ネットワークスタックなどを必要としないことを推測しています(これは8ビットAVRなので)。

あなたは小さな、プリエンプティブマルチタスクカーネルを探しているなら、あなたはQuantum Platformをチェックアウトする場合があります - 私はAVR & MSP430のような非常にリソースに制約のプラットフォーム上でそれを使用しました。共同作業者は、8ビットの8051およびHC11のバリアントでも同様に使用しています。

QPのプリエンプティブカーネル(QK)は、実行(スタック)(RAM)の要件を減らし、コンテキストの切り替えにリソースをほとんど必要としません(TCBがなく、文脈が少なくて&のリストアを保存します)。

「小」のQP/Cバリアントと「小」のQP-nanoバリアントがあります。これらの用語はであり、数字のないはありません。the QP-nano pageは、カーネルタイプ&の標準サイズを持っています。たとえば、(最小値が示されています)典型的なRTOS、10K ROM、10K RAM、 QP/C - 8K ROM、1K RAM、 QP-nano - 2K ROM、100バイトのRAM。

良いことは、すべてのコードが利用できることです。&を試してみてください。&自分で見てください。

+0

ありがとうございます。 – Rego

2

QNX - チャンスではありません! QNXは、カーネルレベルのスケジューリングだけでなく、ファイルシステム、フォールトトレラントネットワーキング、POSIX API、GUIなどを提供する、MMU搭載の32ビットデバイス用の比較的大きく洗練されたOSです。最も重要な機能は、独自の仮想メモリセグメントでは、適切なハードウェアをサポートしているデバイスでのみ動作します。

OSにはどんな機能がありますか? 8ビットデバイスでは、基本優先順位に基づくプリエンプティブスケジューリングとIPCを期待するのが妥当です。ネットワーキング、ファイルシステム、USBなどの他のサービスは、通常、RTOSベンダーのアドオンであるか、サードパーティのコードから統合する必要があります。

あなたがお金を使いたくないのならば、明らかな選択はFreeRTOSです。 APIレベルではかなり一般的であっても、アーキテクチャー的にはいくつかの点では異例のことですが、competentです。 ARMのテストでは、他のカーネルと比較してコンテキスト切り替え時間が遅くなりました。テストした他のカーネルと比較しましたが、AVRではそうではないかもしれません。また、リアルタイム応答時間が数マイクロ秒。 AVRにはかなり大きなレジスタセットがあるため、コンテキストスイッチは通常どんな場合でも高価です。

AtmelにはRTOS(http://www.atmel.com/products/AVR/thirdparty.asp#)を含むサードパーティのサポートリストがあります。

  • CMXシステムズ社::CMX-RTX、CMX-タイニー+(アドオン:CMX-MicroNetの、CMX-FFS)
  • FreeRTOS.org:FreeRTOS
  • Micriμm、株式会社彼らは、以下のリスト:μC/ OS-II
  • Nut/OS:PosixのようなAPIを備えたRTOSとTCP/IPスタック。
  • SEGGER:embOS

私は個人(のdsPIC上)CMX-タイニー+の経験、(ARM上)embOS、および(ARM上)FreeRTOS、とのuC/OS-IIを持っています。それらはすべて有能であり、uC-OS-IIは各優先レベル(ラウンドロビンスケジューリングなし)で1つのタスクしか許さないというマイナーな制限がありますが、結果としておそらくコンテキスト切り替えが速くなります。 embOSの場合、サードパーティのファイルシステムとUSBコードを正常に統合しましたが、ベンダーには独自のアドオンがあります。

0

あなたの質問に直接答えは出ていませんが、リソースが限られている8ビットコントローラなので、OSレイヤーにコミットする前に、OSレイヤの利点は、プロジェクトが主要なサブシステムコードを作成して元気に保つのが面倒です。

ほとんどのサプライヤは統合開発環境と標準ライブラリを提供しているため、C、C++などの高水準言語でコードを記述することができます。自分のフレームワークははるかに管理しやすくなります