慎重に取扱うべきコードをセキュア層に実装して動作確認が終われば、非セキュア層の開発では必要ありません。
非セキュア層からはセキュア層の関数を呼び出すだけで、非セキュア層の実行ファイルにリンクする必要はなし!
RTOS実行環境を持ったセキュア層なので、ドライバ内でシステムコールを使えます。
もちろん、タスク化されたドライバでも問題なくセキュア層に実装!
RTOSを意識することなく、セキュアゲートウェイやコールバックにより、タスクや例外ハンドラは自由にセキュア間を移行!
セキュア層から非セキュア層のオブジェクトに対して操作できる独自システムコールを用意!
非セキュア層の異常動作を検知した場合に、非セキュアに介入して問題を回避することも可能です。
セキュア層のみのシステムで設計し、非セキュアが必要になった時点で非セキュア層を起動することができます。
非セキュア層の起動は、セキュア層から任意の時点でシステムコールを呼び出すだけ!
MULCOS-MKのカーネルはセキュア層と非セキュア層のRTOSから構成され、独立したRTOS実行環境を前提に、 アプリケーションプログラムを設計することができます。(本製品では、RTOSの実行環境を層と表現します。)
カーネルは各層のRTOSのコードとRTOSの制御データから成り立ち、実際には上位のセキュア層にのみ配置されています。
そのため、制御データなどは下位の非セキュア層から保護され、セキュリティの面でも優れています。
(制御データとは、タスク制御ブロック(TCB)に代表される、RTOS以外はアクセスしないデータです。)
MULCOS-MKの非セキュア層には、カーネル部はすべてセキュア層に配置されるため、タスクと例外ハンドラなどの アプリケーションプログラムとして記述されるコードとデータのみが配置されます。
セキュアゲートウェイやコールバックにも対応し、タスクや例外ハンドラは、関数呼び出しによるセキュア間の自由な相互移行を可能にします。
セキュア層に移行した非セキュアタスクをセキュア移行タスクとし、非セキュア層に移行したセキュアタスクを非セキュア移行タスクとしますが、 移行しても所属が変わるわけではありません。つまり、セキュア移行タスクは、セキュア層を実行できますが、非セキュア層のタスクに変わりはなく、 非セキュアタスクのタスク優先度がそのまま使われます。そのため、移行タスクはシステムコールの呼出しで制約があります。
セキュア層と非セキュア層、及びタスクと例外ハンドラの優先順位は以下のようになっています。
割込みは、セキュア層が上位半分の割込み優先度を使用し、下位半分は非セキュア層が使用しています。
また、セキュアタスクのタスク優先度は、どの非セキュアタスクのタスク優先度よりも高い設定になっています。
これは、非セキュア層が全割込み禁止(ロック状態)にしても割込み優先度の下位優先度のみがマスクされ、
セキュア層の割込みには影響を与えないことを意味しています。例えば、タスク実行中に全割込み禁止にして長時間ループするなどした場合は、
通常は致命的な問題を引き起こします。しかし、非セキュアタスクがこのような状況を引き起こした場合でも、セキュア層に影響を及ぼしません。
セキュア層の初期化後の任意の時点で、システムコールにより、非セキュア層を生成し起動することができます。
例えば、初期の製品はセキュア層のみにして、開発ステージの途中から非セキュア層を追加するなどの柔軟な対応が可能です。
RTOSのシステムコールは、ITRON4.0仕様のサブセットを実装し、対応状況は以下のようになっています。
タスク管理機能 | ○ |
タスク付属同期機能 | ○ |
タスク例外処理機能 | × |
同期・通信機能 セマフォ | ○ |
同期・通信機能 イベントフラグ | ○ |
同期・通信機能 データキュー | ○ |
同期・通信機能 メールボックス | ○ |
拡張同期・通信機能 ミューテックス | ○ |
拡張同期・通信機能 メッセージバッファ | ○ |
拡張同期・通信機能 ランデブ | × |
メモリプール管理機能 固定長メモリプール | ○ |
メモリプール管理機能 可変長メモリプール | ○ |
時間管理機能 システム時刻管理 | ○ |
時間管理機能 周期ハンドラ | ○ |
時間管理機能 アラームハンドラ | × |
時間管理機能 オーバランハンドラ | × |
システム状態管理機能 | ○ |
割込み管理機能 | ○ |
サービスコール管理機能 | × |
システム構成管理機能 | ○ |
○:対応 ×:非対応
対応MPU | Renesas RA8 , RA6シリーズ STMicroelectronics STM32H5シリーズ |
---|---|
必要要件 | TrustZoneが実装されたARMv8-Mメインラインアーキテクチャのプロセッサ e2studio開発ツール(Renesas Electronicsのプロセッサ) STM32CubeIDE開発ツール(STMicroelectronicsのプロセッサ) |
その他 | TrustZoneが未実装のARMv8-Mメインライン、或いはARMv7-Mアーキテクチャの プロセッサでは、非セキュア層のみの一般的なRTOSとしての実行が可能 |