0

過去2日間、前述のARM Cortex M3の単純なスケジューラーを探しましたが、いくつかのRTOSソリューションを見つけましたが、スタンドアロンのタスクスケジューラーは見つかりませんでした。

私のアプリケーションは必ずしも必要ではないので、あまり凝ったものは必要ありませんが、将来的に製品を保証するのに役立ちます(この最後のステートメントを炎上させないでください、私はそれの問題をよく知っています)。

編集:

@Cliffordが示唆したように、私は単純な意味がはっきりしていませんでした。コードが少なく、SRAMをあまり消費しないと思います。

4

2 に答える 2

4

最も単純なRTOSカーネルは、スケジューラーと、いくつかのタスク同期およびIPCメカニズムで構成されています。これらは通常ライブラリとして提供されるため、そのようなライブラリのスケジューラコンポーネントのみを使用する場合、他の何もコードにリンクされません。さらに、同期、タイマー、およびIPCを後で追加するオプションは、アプリケーション、または少なくともそのアーキテクチャをより真に「将来にわたって保証」します。

「単純なスケジューラ」の意味は明確ではありませんが、ほとんどのRTOSスケジューラは、同じ優先度のタスクに対してラウンドロビンスケジューリング(uC / OS-IIは注目すべき例外です)をサポートしています。すべてのタスクを同じ優先度にすると、それよりも簡単になることはありません。

また、ARMCMSISには非常に低レベルのRTOSAPIが含まれており、高レベルのオペレーティングシステムの基盤として使用されますが、スレッド制御((つまり、スケジューリング)。

RTOSを完全に回避したい場合は、QuantumLeapsのQPフレームワークでサポートされているようなステートマシンアーキテクチャが代わりになります。

于 2013-01-15T10:20:19.723 に答える
1

人気のあるRTOSのうち、ChibiOS / RTは非常に小さく、「静的」であると主張しています(通常の変数として使用するすべてのデータを割り当てる必要があり、malloc()などは呼び出されません)。一見すると、HALが含まれているため「大きく」見えるかもしれませんが、それを削除することもできます(;

于 2013-01-19T16:19:22.983 に答える