このページでは

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 を使用するには、CMake変数FREERTOS_DIR に、インクルードディレクトリポータブルディレクトリ、およびFreeRTOS のソースファイルが存在するディレクトリを指定してください。

FreeRTOS ディレクトリを設定した後、プロジェクトのCMakeLists.txt に次の行を追加してください:

app_target_setup_os(<app_name>)

ここで、<app_name> はプロジェクトの実行ファイル名です。この関数は、プロジェクトのFreeRTOS を設定します。

これで、プロジェクトがビルドされ、FreeRTOS およびQt Quick のUltraliteライブラリにリンクされるようになります。ヒープアロケータを変更したい場合や、Qt Quick が提供するFreeRTOSConfig.h を使用したい場合は、「ヒープポリシーの変更」および「カスタムFreeRTOSConfig.hの使用」を参照してください。

以下の機能を使用せずにアプリケーションをビルドするにはapp_common

app_common を使用せずにFreeRTOS を利用するプロジェクトをビルドする場合、FreeRTOS をプロジェクトに対して手動で設定、コンパイル、およびリンクする必要があります。FreeRTOS のビルド手順については、 FreeRTOS-project.html">Creating a New FreeRTOS Projectを参照してください。

Qt Quick Ultralite 自体には、以下のFreeRTOS のヘッダーおよび関数が必要です:

  • FreeRTOS.h
  • task.h
  • portable.h
  • memory.h
  • void xPortSysTickHandler(void)
  • void *pvPortMalloc(size_t xSize)
  • void vPortFree(void *pv)

ヒープポリシーの変更

FreeRTOS には、さまざまなメモリ割り当ての実装が含まれています(実装の詳細についてはFreeRTOS の開発者向けドキュメントの「メモリ管理」を参照してください)。デフォルトでは、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 ` の `MemMang` ディレクトリ内に、`FreeRTOS` のメモリマネージャ実装が格納されていることを前提としています。

カスタム FreeRTOSConfig.h の使用

FreeRTOSConfig.h は、プロジェクトのビルド時にFreeRTOS を設定するために使用されるヘッダーファイルです。FreeRTOSConfig.h はプラットフォームパッケージによって提供されます。CMake変数QUL_PLATFORM_TARGET_DIR を使用して、FreeRTOSConfig.h の場所を指定します。

特定の Qt ライセンスの下で利用可能です。
詳細はこちら。