概要
説明
特長
- µITRON4.0仕様に準拠
組み込み型制御用OSのアーキテクチャとして代表的なµITRON4.0仕様に準拠した設計の「RI600V4」をベースとし、µITRON4.0仕様保護機能拡張のメモリ保護機能を追加した製品です。 - 高速化を実現
メモリ保護機能は、RX600シリーズおよびRX200シリーズマイコンが持つMPU(Memory Protection Unit)を制御することで実現しています。システムへの影響も最小限とし、高速処理に対応しています。 - ROM化に適したコンパクトサイズ
実行環境に組み込んで使用することを前提としたリアルタイム・マルチタスクOSであるため、ROM化を意識し、コンパクトな設計が行われています。また、本OSが提供するサービスコールのうち、ユーザがアプリケーション・システム内で使用するサービスコールのみをシステム構築時にリンクすることができるため、コンパクトでありながらユーザのニーズに最適なリアルタイム・マルチタスクOSを構築できます。 - 統合開発環境CS+との連携 [詳細]
CS+上で以下の機能が利用できます:- OSビルドに必要なオプションを自動設定
- タスクやセマフォなどのOS管理オブジェクトの状態を表示 (リソース情報)
- FIT対応サンプルプロジェクト(CS+版)を提供 [詳細]
RI600PXのFirmware Integration Technology(FIT)対応サンプルプロジェクト(CS+版)を提供します。 ダウンロードタブより入手してください。 - メモリ保護機能対応 [詳細]
本OSではメモリデータが破壊されることはないため、システムは正常な動作を継続でき、信頼性の高いシステムの実現に貢献します。また、不正メモリアクセスの時点でそれが検出されるので、デバッグ効率が飛躍的に高まります。 - 対応コンパイラ:CC-RX(RXファミリ用C/C++コンパイラパッケージ)
- Learn More
リリース情報
ターゲットデバイス
設計・開発
詳細情報
連携ツール
- 対応コンパイラ:CC-RX
- 統合開発環境:CS+
メモリ保護機能対応
- 高信頼性システム
プログラムミスをプログラムデバッグ時に検出できず、システムが市場に出荷された後で不具合が発生する可能性に対して、本OSはシステムの高信頼性化を実現します。メモリデータ破壊が、特にOS等を格納しているメモリ領域で発生すると、システムの動作が異常になる等の危険な状態を招きます。しかし本OSではメモリデータが破壊されることはないため、システムは正常な動作を継続でき、信頼性の高いシステムの実現に貢献します。
- デバッグ支援
メモリプロテクションの無いシステムでは、一般にはポインタ不正などでメモリ内容が破壊されても、実際に不具合現象となってはじめて気付きます。バグの原因を特定するには、エミュレータのトレース機能などを元に解析するしかなく、それには多くの時間を費やす必要がありました。RI600PXでは、不正メモリアクセスの時点でそれが検出されるので、デバッグ効率が飛躍的に高まります。
RI600PXがサポートするメモリ保護機能を以下に示します。
- タスクによる不正アクセスの検出
タスクは、いずれかのドメインに所属します。一方、アドレス空間はメモリオブジェクトに分割されます。各ドメインについて、どのメモリオブジェクトにどのようなアクセス(リード/ライト/実行)が可能かを設定できます。タスクが許可されていない領域にアクセスした場合には、メモリアクセス違反ハンドラが起動されます。
なお、ハンドラはすべてのアドレス空間にアクセスできます。
- タスクスタックの保護
タスクは、他のタスクのスタックにはアクセスできません。他のタスクのスタックにアクセスした場合は、メモリアクセス違反ハンドラが起動されます。
- カーネルによる不正アクセスの防止
カーネルはハンドラと同様に全アドレス空間にアクセスできるため、サービスコールに不正なポインタパラメータが渡されると、カーネル自身が不正アクセスを行ってしまうことになります。このような事態を避けるため、カーネルはサービスコールを呼び出したタスクがそのポインタ領域をアクセスできるかをチェックします。違反を検出した場合には、サービスコールはエラーを返します。
機能
RI600PXカーネルは以下の機能モジュールから構成されています。個々のモジュールはその機能を実現する関数群(サービスコール)で提供されます。
- スケジューラ
優先度に基づいて複数のタスクの実行順序を管理します。 - タスク管理
実行・実行可能・待ち・強制待ちなどのタスク状態を管理します。 - 割り込み処理
割り込みハンドラからの復帰を行います。 - 時間管理
RI600PXカーネルで使用するシステムタイマの設定、ユーザの作成したアラームハンドラ、周期ハンドラの起動を行います。時間管理機能を利用する場合は、システム・コンフィグレーション・ファイルでRI600PX タイマ・テンプレート・ファイル (PDF | English, 日本語)を指定する必要があります。 - システム構成管理
カーネルのバージョン番号などの情報を報告します。 - 同期・通信
タスク間の同期・通信を行います。以下の4つの機能モジュールが用意されています。- イベントフラグ:カーネルが管理するフラグの状態により、タスク間の同期をとる機能です。
- セマフォ:カーネルが管理するセマフォカウンタ値により、タスク間の同期をとる機能です。
- メールボックス:タスク間でメッセージの送受信を行い、タスク間の同期をとる機能です。
- データキュー:タスク間で4バイトのデータ通信を行い、タスク間の同期をとる機能です。
- 拡張同期・通信機能
タスク間の同期・通信を行います。以下の4つの機能モジュールが用意されています。- メッセージバッファ:可変長のデータ通信によりタスク間の同期をとる機能です。
- ミューテックス:優先度逆転現象を回避するための優先度上限プロトコルにより、タスク間の同期をとる機能です。
- メモリプール管理
タスクが使用するメモリ領域を動的に獲得/解放します。これによりメモリを有効に利用できます。 - タスク例外処理機能
タスク例外の定義、起動などタスク例外の実行を制御します。
- 周期ハンドラ機能
周期的に起動されるハンドラの実行を制御します。 - アラームハンドラ機能
指定された相対時刻に起動されるハンドラの実行を制御します。 - メモリ保護機能
以下のメモリ保護機能をサポートします。- タスクによる不正アクセスの検出
- タスクスタックの保護
- カーネルによる不正アクセスの防止
仕様一覧
ターゲットMCU | MPU(Memory Protection Unit)を搭載した RXファミリ RX700シリーズ,RX600シリーズ,RX200シリーズ |
---|---|
最大タスク数 | 255 |
タスクの優先度数 | 255 |
サービスコール数 | 190 |
性能(wup_tskを発行してから 対象タスクの実行が始まるまでの時間) |
3.2マイクロ秒(RX630、100MHz) |
カーネルコードサイズ | 約6.3K~33.5Kバイト |
カーネルRAM 1タスクあたり | データ:20バイト スタック:44バイト |
製品構成
構成物 | 説明 | 備考 |
---|---|---|
カーネルソースプログラム | カーネル本体ソースプログラム | ソースコード付き量産契約の場合にのみ提供 |
カーネル本体ライブラリ | システム構築用カーネルライブラリ | - |
標準ヘッダファイル | ・ITRON共通定義ファイル ・カーネル仕様定義ファイル ・その他定義ファイル |
ヘッダファイルはC言語用を提供 |
コマンドラインコンフィギュレータ | テキスト形式で構築パラメータを記述したcfgファイルから、各種定義ファイルを出力します。 | - |
サンプルプログラム | ITRONを使用した簡単なプログラム | - |
CS+連携プラグイン - リアルタイムOS共通部 - RI600PX依存部 |
・カーネルの組み込みを容易にする機能 ・デバッグ時にOS状態を参照する機能 |
- |
マニュアル | ユーザーズマニュアル | - |
処理フロー
画像
メモリ算出ツール
RI600PXメモリ容量見積もりページで、以下のメモリを見積もることができます。
・RAMサイズ
・ROMサイズ
なお、無償提供ですので、本ツールを使用する場合もしくは使用することにより作成された成果物において不具合が発生した場合、第三者との係争が生じた場合、またはその他いかなる問題が発生した場合も、ルネサス エレクトロニクスは一切の責任を負いません。また、ご使用に関するサポートも一切提供しません。