比較的シンプルな RTOS では、RTOS 自体が同じドメインで動作するアプリケーションと RTOS をリンクするライブラリのような役割を果たします。より高度な RTOS では、オプションのプロセス モード (VxWorks リアルタイム プロセス、Nucleus プロセス モデル、および QNX プロセスなど) を使用して Linux と同様のアプリケーションとカーネルのデカップリングが可能です。AMD は、Vitis 開発プラットフォームの一部として FreeRTOS BSP を提供しています。FreeRTOS BSP は、標準入出力やプロセッサ ハードウェア機能へのアクセスなどの基本機能を備えたシンプルなマルチスレッド環境を提供します。この BSP および付属のライブラリは非常に柔軟な設定が可能で、必要な機能を最小限のオーバーヘッドで提供します。FreeRTOS ソフトウェア スタックは、FreeRTOS ライブラリを含むこと以外は、ベアメタル ソフトウェア スタックと同じです。通常、スタンドアロン ライブラリに含まれるAMD デバイス ドライバーは、デバイスへのアクセスを要求するのがシングル スレッドであれば、FreeRTOS 内で使用できます。
重要:
AMD ベアメタル ドライバーは、オペレーティング システムを認識しません。クリティカル セクションを保護するためのミューテックスはサポートされず、同期中に使用するセマフォのメカニズムもありません。FreeRTOS カーネルでドライバー API を使用する際は、これらの点に注意が必要です。
次の図に、RPU の FreeRTOS ソフトウェア スタックを示します。
図 1. FreeRTOS ソフトウェア スタック
注記: APU の FreeRTOS ソフトウェア スタックは、ライブラリが APU 上で 32 ビットと 64 ビットの両方の動作をサポートすること以外は RPU のソフトウェア スタックと同じです。