embOS-MPU:メモリ保護機能対応OS
Cortex-M、Cortex-A などのマイコンで実装されているMPU/MMU 機能に対応します。メモリ保護機能を持つことにより、OS と特権タスクはメモリ保護され、非特権タスクの悪影響から隔離されます。embOSと互換性のあるAPI 実装のため、embOSで開発されたアプリケーションも最小の工数でembOS-MPU に適合させることができます。
embOS-MPU は、ハードウェアのメモリ保護ユニット(MPU) と、embOS-MPU で実装されたソフトウェア機能により、1 つのタスクがシステム全体に影響を与えないようにします。これにより、あるタスクでバグが発生した場合でも、他のタスクやオペレーティングシステムが実行を継続することができます。
embOS-MPU では、特権タスクはメモリにフルアクセスできます。非特権タスクは、それぞれの個別のメモリ領域に対し、特定のアクセス権限を持ちます。また周辺機器にアクセスするため、追加のメモリロケーションとOS 制御構造、デバイスドライバ、特定のembOS API などを非特権タスクから呼び出すように設定も可能です。
ハードウェアのメモリ保護機能(MPU)対応
特権命令
特権状態で動作します。MPU 設定の初期化タスクやデバイスドライバを含みます。特権命令を使用するタスクは、完全な信頼性を確認する必要があります。
非特権命令
「非特権命令アプリケーション」は、特権のない状態で実行されるため、不具合が発生した場合においても、メモリ保護機能により、基本システムに影響を与えることはありません。
状態 | 説明 |
---|
特権状態 | メモリ、周辺デバイス、CPU機能にフルアクセス可能 |
---|
非特権状態 | 制限されたメモリへのアクセスだけで、周辺デバイスに直接アクセスできず、CPU機能も一部しかアクセスできない |
---|
embOS MPUサンプルコード