embOS
リアルタイムOS"embOS"
embOSは、組込リアルタイムアプリケーションの開発で使用されるように設計されたリアルタイムオペレーティングシステムです。 マイクロコントローラの限られた資源を常に念頭に置き、RAMおよびROMの両方で最小のメモリ消費量だけでなく、高速性と汎用性のために最適化されたゼロ割り込みレイテンシ、高性能なRTOSです。 embOSの内部構造は、さまざまな業界のニーズに合わせて、異なる顧客との種々の用途に最適化されています。 embOSは、異なるCPUへのアプリケーションの移植が容易になっており、プラットフォーム(8/16/32ビット)に完全にソース互換性があります。その高度なモジュール構造は、非常に小さなROMサイズを維持し、必要とされる機能のみがリンクされていることを保証します。 タスクを簡単に作成することと、セマフォ、メールボックス、イベントなどのメカニズム一式を使用して相互に通信することができます。 割り込みサービスルーチン(ISR)も、これらの通信の仕組みを利用することができます。ピラオリティの高い割り込みは、embOSで無効にされることはありません。
リアルタイムOS”embOS”の特徴
-
プリエンプティブスケジューリング:READY状態のすべてのタスクのうち、最もプラオリティが高いものが優先順位の逆転が適用されるような状況を除いて、実行されることを保証
-
同一の優先順位を持つタスクはラウンドロビンスケジューリング
-
プリエンプションは、タスク全体またはプログラムのセクションのために無効にすることが可能
-
ローカルストレージのサポート
-
安全なシステムライブラリのサポート
-
設定は一切必要なし
-
無制限の優先事項:全てのタスクが個々の優先度を有することができる=>タスクの応答を正確にアプリケーションの要件に応じて定義することができます。
-
(使用可能なメモリによる制限はありまうが基本は)タスクの数は無制限。
-
イベントフラグの数は無制限
-
(使用可能なメモリによる制限はありまうが基本は)セマフォの数は無制限
-
(使用可能なメモリによる制限はありまうが基本は)メッセージ・キューの数は無制限
-
(使用可能なメモリによる制限はありまうが基本は)メールボックスの数は無制限
-
メッセージのサイズと数を自由に定義可能
-
(使用可能なメモリによる制限はありまうが基本は)ソフトウェアタイマーの数は無制限
-
完全な優先度継承とミューテックス
-
時間分解能ティックは自由に(デフォルトは1msである)を選択可能
-
高分解能時間測定(ティックよりも正確)
-
電源管理:未使用のCPU時間は、自動的に消費電力を最小限に抑え、停止モードで消費可能
-
フル割り込みサポート:ほとんどのAPI関数が割り込みサービスルーチン(ISR)の中から使用可能
-
ゼロは待ち時間を中断
-
ネストされた割り込みが許可
-
簡単に開始するためのアプリケーションおよびプロジェクト(のBSP)を起動
-
デバッグビルドは、開発を簡素化し、実行時チェックを実行
-
タスクのプロファイルごとに高精度
-
リアルタイムカーネルビューア(embOSView)が利用可能
-
非常に高速かつ効率的なスモールコード
-
最小RAM使用量
-
コアは、アセンブリ言語で記述
-
すべてのAPI関数は、C / C ++ /アセンブリから呼び出すことが可能
-
ソースとして、マイクロコントローラのハードウェアの初期化
-
同じCPUでサポートされていないハードウェア用のBSPは、ユーザによって容易に記載加納
embOSリソース使用
-
カーネルサイズ(ROM):1100〜1600byte*
-
カーネルのRAM使用量:18~25byte*
-
1msで、カーネルのCPU使用率が10MHzのM16Cと割り込み:0.3パーセント未満
-
RAM使用量のメールボックス:9~15byte
-
RAM使用量のバイナリとカウンティングセマフォ:3byte
-
RAM使用量のリソースセマフォ:4~5byte
-
RAM使用量タイマ:9~11byte
-
RAM使用量イベント0
-
基本的な時間単位(1ティック)デフォルト1ms、100ms(M16C@ 10MHz)*
-
ゼロの独立したタスク起動時
-
ゼロ割り込みレイテン
-
タスクの数:無制限(利用可能なRAMによってのみ)
-
メールボックスの数:無制限(利用可能なRAMによってのみ)
-
セマフォの数:無制限(利用可能なRAMによってのみ)
-
S / Wタイマ数:無制限(利用可能なRAMによってのみ)
-
アンリミテッド:優先順位
-
同一の優先順位を持つタスクの(ラウンドロビンスケジューリング):無制限
*使用されるCPU、コンパイラとライブラリのモデルによって、パフォーマンスが変わります。上記は、目役です。
リアルタイムOS"embOS"対応CPUコア(コンパイラ)
-
ARM 7/9/11、Cortex-A5 / A8 / A9(IAR)
-
ARM 7/9/11、Cortex-A5 / A8 / A9(GCC)
-
RM 7/9/11(ARM)
-
ARM Cortex-M(IAR)
-
ARM Cortex-M(GCC)
-
ARM Cortex-M(サイプレス PSoC5)
-
ARM Corex-M(ARM)
-
AVR(IAR)
-
AVR 32UC/AP(GCC)
-
C16x(Keil)
-
ColdFire V1(CodeWarrior)
-
ColdFire V2/V3/V4 (Code Warrior)
-
ColdFire V1/V2/V3/V4(IAR)
-
CR16C(IAR)
-
F2MC-16LX、F2MC-16FX(Spansion)
-
FR30、FR50、FR70(Spansion)
-
H8/H8S(HEW)
-
HSC12(CodeWarrior)
-
M16C/R8C(IAR)
-
M16C/R8C(HEW)
-
M16C/R8C(Tasking)
-
M32C(IAR)
-
MSP430(IAR)
-
MSP430(TI CodeComposer)
-
BUIS(GCC)
-
PIC18(Microchip)
-
PIC24F、PIC24H、PIC30、dsPIC33(Microchip)
-
PIC32(Microchip)
-
R32C(HEW)
-
R32C(IAR)
-
R8C(GEW)
-
RL78(UIAR)
-
RX(CCRX)
-
RX(IAR)
-
RZ(KPIT GCC)
-
SH2(HEW)
-
SH2A(IAR)
-
SH2A(HEW)
-
ST7(Cosmic)
-
STM8(IAR)
-
V850(IAR)
-
V850(GreenHills)
-
Z180(IAR)
-
65180(IAR)
-
78K5(IAR)
-
8051(IAR)