Login

RTXリアルタイム オペレーティング システム

RTXリアルタイム オペレーティング システム

Keil RTXは、ARMおよびCortex-Mデバイス用に設計された、ロイヤルティ フリーの確定的なリアルタイム オペレーティング システムです。 複数の関数を同時に実行できるプログラムを作成できるほか、より優れた構造で保守が簡単なアプリケーションの作成に役立てることができます。

製品の特長

  • ロイヤルティ フリーでソース コード付きの確定的なRTOS
  • 柔軟なスケジューリング: ラウンドロビン、プリエンプティブ、協調型
  • 低い割り込みレイテンシで高速リアルタイム操作を実現
  • リソースに制約があるシステムに適した小さなフットプリント
  • それぞれが 254 の優先レベルを持つ無制限のタスク数
  • 無制限のメールボックス、セマフォ、ミューテックス、タイマ
  • マルチスレッドおよびスレッドセーフな操作をサポート
  • MDK-ARMでのカーネル対応デバッグ サポート
  • µVision コンフィギュレーション ウィザードを使用したダイアログベースのセットアップ

RTOSがなくても(スーパーループで1つまたは複数の関数を実行することにより)リアルタイムのプログラムを作成することは可能ですが、スケジューリング、保守、タイミングなど数々の問題があります。Keil RTXのようなRTOSでは、これらの問題を解決することができます。 RTOSとスーパーループの比較に関する詳細は、RTOSを利用するメリットについてご覧ください。

 
 


機能
マルチタスク
ラウンドロビン ○
プリエンプティブ ○
協調型 ○
タスクの指定
タスクの定義(最大) 無制限
アクティブなタスク 250
タスクの定義(最大) 無制限
ユーザ優先度 1 - 254
スタック チェック ○
コンテキスト切り替え時間 < 300サイクル
割り込みロックアウト時間 -
タイマ/シグナル
タイムアウト ○
インターバル ○
ユーザ タイマ 無制限
シグナル/イベント タスクあたり 16
タスク間通信
イベント(最大) 無制限
シグナル/イベント タスクあたり 16
セマフォ(最大) 無制限
ミューテックス(最大) 無制限
メールボックス(最大) 無制限
メールボックス サイズ 無制限(デフォルト20)

  • 無制限とは、RTXカーネルによる数値制限がないことを意味します。 ただし、使用可能なシステム メモリ リソースによって、作成できる項目数が制限されます。
  • Cortex™-M3/M4用のRTXライブラリでは割り込みは無効になりません。 割り込みレイテンシは、RTXカーネルを使用していない場合と同じです。 Cortex™-M0/M1の割り込みレイテンシは < 20サイクルです。

性能
タスクの指定 パフォーマンス(サイクル)
割り込みレイテンシ n/a、備考を参照
システムを初期化し、タスクを開始 1,147
タスクを作成(タスク切り替えなし) 403
タスクを作成(タスク切り替え) 461
タスクを削除 218
タスク切り替え 192
イベントの設定 89
セマフォの送信 72
メッセージの送信 117

  • Cortex-MのRTXカーネル ライブラリでは割り込みは無効になりません。 ISRの割り込み応答時間は、RTXカーネルを使用していない場合と同じです。

メモリ要件
タスクの指定 性能
コード サイズ < 4.0キロバイト
カーネルのRAM領域 < 300バイト + 128バイトのユーザ スタック
タスクのRAM領域 TaskStackSize + 52バイト
メールボックスのRAM領域 MaxMessages*4 + 16バイト
セマフォのRAM領域 8 バイト
ミューテックスのRAM領域 12 バイト
ユーザ タイマのRAM領域 8 バイト
ハードウェア要件 SysTick タイマ

  • このテストのRTXカーネルは、10タスク、10ユーザ タイマでスタック チェックを無効にして設定されています。
  • RAM要件は、同時実行中のタスク数によって異なります。
  • コードとRAMのサイズはMicroLibランタイム ライブラリを使用して計算されました。
  • 詳細については、こちらを参照してください。

利点

Keil RTXリアルタイム オペレーティング システムでは、他のベンダのRTOS製品では提供されていない高度な機能が多数提供されています。 RTOSを選択する場合は、次の点を考慮してください。

  • RTXはMDK-ARMに含まれている - フル機能の商用RTX(ソース コードを含む)がKeil MDK-ARM開発ツールの一部として提供されています。 これは評価版ではありません。 完全にコンフィグレーション可能で、制限もありません。 このため、MDKを開発目的で使用する場合、RTXは無料になります。
  • RTXはロイヤルティ フリー - RTXはロイヤルティ フリーで提供されます。 ライセンスを供与されたら、RTXを使用して作成した製品を追加料金や継続コストなしに出荷できます。
  • 市場をリードするRTOS - RTXは常に、エンベデッド アプリケーションで使用される主要RTOSの1つであり続けています(TechInsights Embedded Market Study、2010年調べ)。 自信を持ってアプリケーションにRTXを使用できます。
  • 柔軟なスケジューリング - RTXでは3つの異なるカーネル スケジューリング オプションが提供されているため、アプリケーションに最も適したオプションを使用することができます。
    • プリエンプティブ - 各タスクには異なる優先度があり、優先度の高いタスクの実行準備が整うまで実行されます。 これは、ユーザから入力があるまで、デバイスがスタンバイ モードまたはバックグラウンド モードで動作するインタラクティブ システムでよく使用されます。
    • ラウンドロビン - 各タスクは、一定のCPUランタイム期間(タイム スライス)、実行されます。 データ ロガー/システム モニタでは通常ラウンドロビンのスケジューリングが採用されており、すべてのセンサまたはデータソースは、優先度なしで順番にサンプルされます。
    • 協調型 - 各タスクは、コントロールを別のタスクに渡すよう指示されるか、OS呼び出しによってブロッキングされるまで実行されます。 協調型マルチタスクは、一定順序の実行が必要なアプリケーションに見られます。
  • 確定的動作 - RTOSには確定的ではないものもあります。 RTXは完全に確定的な動作を提供するため、イベントと割り込みが事前定義された時間内(期限内)に処理されます。 アプリケーションは、一貫した既知のプロセス タイミングに頼ることができます。
  • エンベデッド システム用に設計 - RTXは、ARMとCortex-M MCUに基づくエンベデッド システム用に特別に設計されています。 大規模なオペレーティング システムや別のアーキテクチャから適合されたものではありません。 すばやく実行され、5KBほどのメモリ フットプリント(ROM)という最小のMCUリソースを使用します。
  • 使いやすい - 短い学習サイクルで、製品開発を加速化できます。 RTXはµVision IDE/デバッガ内でもサポートが徹底しています。Vision IDE/デバッガはRTXタスク対応ツールを使用して、アプリケーションですばやく簡単にRTXを設定およびデバッグすることができます。
  • ソース コード - RTXソース コードはすべてのMDK-ARMエディションに含まれています。 このことは、ソース コードが製品認証に必要な場合に便利です。
  • サポート - サンプル、ユーザ ガイド、印刷されたスタート ガイドなど、豊富なリソースが用意されています。 RTXはKeilによって完全サポートされています。

RTOSのメリット

単純なエンベデッド システムでは、通常、アプリケーションが各関数を一定の順序で実行する、スーパーループの概念が使用されます。 割り込みサービス ルーチン(ISR)は、処理時間が重視されるプログラム部分に使用されます。 このアプローチは、小規模なシステムには適していますが、もっと複雑なアプリケーションになると制限があります。

スーパーループの概念のデメリット

  • 処理時間が重視される演算を割り込み(ISR)内で処理する必要があります。
    • ISR関数が複雑になり、実行時間が長くなります。
    • ISRのネストによって、予期しない実行時間とスタック要件が生じることがあります。
  • スーパーループとISRの間のデータ交換が、グローバル共有変数によって行われます。
    • アプリケーション プログラマは、データの整合性を確保する必要があります。
  • スーパーループは、システム タイマと簡単に同期できますが、次の制限があります。
    • 複数の異なるサイクル時間がシステムに求められる場合、実装が難しくなります。
    • スーパーループ サイクルを超える、時間のかかる関数は分割されます。
    • ソフトウェア オーバーヘッドが生じ、アプリケーション プログラムでは理解が困難です
  • スーパーループ アプリケーションは複雑化して、拡張が難しくなります。
    • 単純な変更を加えるだけで、予期しない副作用が生じることがありますが、解析に時間がかかります。

このようなスーパーループ概念のデメリットは、リアルタイム オペレーティング システム(RTOS)によって解決することができます。

RTOSの概念

RTOSはプログラム関数を自己完結したタスクに分割し、オンデマンドの実行スケジュールを実装します。 Keil RTXのような高度なRTOSには、大きなメリットがあります。

  • タスクのスケジューリング - タスクは必要なときに呼び出されるので、プログラム フローとイベント応答が向上します。
  • マルチタスク - タスクのスケジューリングは、多数のタスクが同時実行されるような感覚を与えます。
  • 確定的な動作 - イベントと割り込みは、定義された時間内に処理されます。
  • ISRの短縮化 - より確定的な割り込み動作を可能にします。
  • タスク間の通信 - 複数タスク間でのデータ、メモリ、ハードウェア リソースの共有を管理します。
  • 定義されたスタック消費量 - 各タスクには一定のスタック消費量が割り当てられるため、メモリの使用量が予測できます。
  • システム管理 - リソースの管理(ハウスキーピング)ではなく、アプリケーション開発に集中することができます。

RTX の関数

タスク1と2は、アプリケーションの関数です。 RTXでは、メモリ プールやメールボックスを管理できるだけでなく、タスク間で使用される通信メカニズムも管理できます。

RTOSに関するリソース

RTXでは、すべてのRTOSリソースに簡単にアクセスするためのシンプルな構文で提供されています。


Maximise