C
FreeRTOS アプリケーション構築プロセス
Qt Quick UltraliteFreeRTOS アプリケーションのビルドプロセスは、ベアメタルでビルドするときと同じですが、いくつか追加されています。FreeRTOS は独立したライブラリなので、自分でビルドしてリンクするか、あるいは app_commonヘルパーを使うこともできます。
FreeRTOS 。app_common
app_common は、サンプルやデモのOSニーズを統一するために使用されるヘルパーです。Qt Quick Ultraliteを正しいOS用に設定し、FreeRTOS ソースなどのOS固有のファイルをコンパイルし、プロジェクトにリンクします。
使用方法app_common
app_common は主にQt Quick Ultralite のサンプルとデモ用ですが、他のプロジェクトでも使用できます。app_common を使用するには、FREERTOS_DIR CMake 変数をインクルードディレクトリ、ポータブルディレクトリ、FreeRTOS ソースファイルが存在するディレクトリに設定します。
FreeRTOS ディレクトリを設定したら、次の行をプロジェクトのCMakeLists.txt に追加してください:
app_target_setup_os(<app_name>)
<app_name> はプロジェクトの実行ファイル名です。この関数は、プロジェクトにFreeRTOS 。
これで、プロジェクトはビルドされ、FreeRTOS とQt Quick Ultralite ライブラリにリンクされるはずです。ヒープアロケータやQt Quick Ultraliteが提供するFreeRTOSConfig.h を変更したい場合は、ヒープポリシーの変更と カスタムFreeRTOSConfig.hの使用を参照してください。
を使用せずにアプリケーションをビルドするapp_common
app_common を使用せずにFreeRTOS を使用するプロジェクトをビルドする場合、FreeRTOS を手動で設定、コンパイル、リンクする必要があります。FreeRTOS のビルド方法については FreeRTOS-project.html">Creating a New FreeRTOS Project.
Qt Quick Ultralite自身は以下のFreeRTOS ヘッダーと関数が必要です:
FreeRTOS.htask.hportable.hmemory.hvoid xPortSysTickHandler(void)void *pvPortMalloc(size_t xSize)void vPortFree(void *pv)
ヒープポリシーの変更
FreeRTOS ヒープポリシーの変更には様々なメモリ割り当て実装が含まれます(実装の詳細についてはFreeRTOS developer docs, Memory managementを参照してください)。デフォルトでは、Qt Quick Ultralite サンプル・アプリケーションは、heap_4 を使用します。これは「断片化を避けるために隣接する空きブロックを合体させます。絶対アドレス配置オプションを含む。"しかし、状況によっては、FreeRTOS で提供されている実装よりも、他のカスタム実装の方が好ましい場合もあります。プロジェクトのCmakeLists.txt ファイルに以下の呼び出しを追加することで、実装を変更することができます:
set_property(TARGET <app_name> PROPERTY QUL_FREERTOS_HEAP_POLICY "<heap_implementation>")
ここで、<app_name> はプロジェクトの実行ファイル名、<heap_implementation> はファイル名の拡張子を除いた実装名です。例えば、heap_1.c を使いたい場合は、heap_1 と記述します。
注: スクリプトは、FreeRTOS' メモリー・マネージャー実装が存在するFreeRTOS MemMang ディレクトリからヒープ・ポリシーを見つけることを期待します。
カスタム FreeRTOSConfig.h の使用
FreeRTOSConfig.hは、プロジェクトのビルド中にFreeRTOS を設定するために使用されるヘッダーファイルです。FreeRTOSConfig.h は、プラットフォームパッケージによって提供されます。 QUL_PLATFORM_TARGET_DIR CMake変数は、FreeRTOSConfig.h の場所を決定するために使用されます。