1.1 Nuttx のビルド構成とモード
Nuttx には 3 つの異なるビルド構成があります
Ø FLAT ビルド: このビルドでは、すべてのコードがパブリック アドレス空間に存在します。
1) アプリケーション、カーネル、およびボード ロジックはフラット アドレス環境にあります。
2) すべてのアドレス空間は同じ属性を持ちます。
Ø PROTECTED ビルド: このビルドは、メモリ保護ユニット (MPU) を使用して、メモリを OS の特権モードとすべてのアプリケーションの非特権モードに分離します。
1) アプリケーションはユーザー モードで動作します。
2) カーネル プログラムはカーネル モードで動作します。
3) メモリはカーネルとアプリケーション ヒープに分割されます。
Ø KERNEL ビルド: このビルドはメモリ管理ユニット (MMU) を使用して、OS をプライベート アドレス空間に配置し、タスク (またはプロセス) を独自の仮想アドレス空間に配置します。
1) アプリケーションはユーザー モードで動作します。
2) カーネル プログラムはカーネル モードで動作します。
3) メモリはカーネルとアプリケーション ヒープに分割されます。
4) ユーザープロセス間のさらなる分離により、各アプリケーションは独自のスペースで動作します。
PROTECTED ビルドと KERNEL ビルドの場合、アプリケーションは OS アドレス空間の外側に存在し、どちらのビルドでもアプリケーションは OS の内部リソースにアクセスできません。