このページでは

C

NXP のIMXRT1064-EVKにおけるFreeRTOS の使用

対応バージョン

Qt Quick FreeRTOS 向け Ultralite は、 IMXRT1064-EVK の公式サポートバージョンである v10.0.1 にて動作確認済みです。NXP FreeRTOS

注: NXP 用IMXRT1064-EVKの事前コンパイル済みプラットフォームライブラリを使用している場合 FreeRTOS のソースコードの一部はすでにそこに組み込まれています。FreeRTOS のバージョンを変更したい場合は、プラットフォームライブラリを再ビルドする必要があります。

サポートされているプラットフォームおよびFreeRTOS バージョンの一覧については、「サポートされているアーキテクチャ、プラットフォーム、およびFreeRTOS バージョン」を参照してください。

Qt Quick Ultralite 向けのFreeRTOS シンボルおよびライブラリの提供

プロジェクトで app_common を使用している場合は、FREERTOS_DIR というCMakeキャッシュエントリを設定して、Qt Quick Ultralite用のFreeRTOS ソースへのパスを指定してください。

注: MCUXpresso SDK 内のFreeRTOS ソースのディレクトリ名は変更される 可能性があります。rtos ディレクトリから正しいパスを確認してください。

このディレクトリには、少なくとも以下のものが含まれている必要があります:

  • include FreeRTOS のヘッダーファイルを含むディレクトリ。MCUXpresso SDK 2.6以前の を使用している場合、インクルードファイルは上位ディレクトリから検索されます。FreeRTOS
  • portable ディレクトリ
  • MemMang portable 配下のディレクトリ。このディレクトリには、 用のメモリマネージャの実装が含まれている必要があります。FreeRTOS
  • heap_4.c portable/MemMang 配下のファイル。これは、 Ultralite がデフォルトで使用するメモリアロケータの実装です。 を提供できない場合や、独自の実装を使用したい場合は、 ターゲットプロパティを設定して実装を変更してください。「Qt Quick heap_4.c QUL_FREERTOS_HEAP_POLICY ヒープポリシーの変更」を参照してください。
  • 使用しているツールチェーンに応じて、以下のファイルが必要です:
    • Arm GCC ツールチェーンの場合:
      • port.c portable/GCC/ARM_CM4F 配下のファイル。
      • fsl_tickless_systick.c MCUXpresso SDK 2.6 以前のFreeRTOS を使用する場合は、portable/GCC/ARM_CM4F ディレクトリ内のファイル。
    • IAR ツールチェーンの場合:
      • port.c portable/IAR/ARM_CM4F にあるファイル。
      • portasm.s portable/IAR/ARM_CM4F フォルダ内のファイル。
      • fsl_tickless_systick.c MCUXpresso SDK 2.6 以前のバージョンのFreeRTOS を使用している場合は、portable/IAR/ARM_CM4F フォルダにファイルを配置してください。
  • stream_buffer.c
  • event_groups.c
  • list.c
  • queue.c
  • tasks.c
  • timers.c

FreeRTOSConfig.h はプラットフォームライブラリによって提供されます。アプリケーションでは、プラットフォームライブラリのコンパイルに使用されたものと同じFreeRTOSConfig.h を使用する必要があります。独自のFreeRTOS 設定を使用するには、プラットフォームパッケージを再コンパイルする必要があります。

プロジェクトでapp_common を使用していない場合は、FREERTOS_DIR のCMakeキャッシュエントリを設定する必要はありません。ただし、Qt Quick Ultralite用に以下のヘッダーおよび関数を用意する必要があります(つまり、これらのヘッダーをプロジェクトに含める必要があります):

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

app_commonを使用せずにプロジェクトを設定する方法については、「 app_common を使用しないアプリケーションのビルド」を参照してください。

FreeRTOS プロジェクトのフラッシュ

FreeRTOS を使用するプロジェクトのフラッシュ手順は同じです。詳細なフラッシュ手順については、こちらのページを参照してください。

RLEの解凍

パフォーマンス上の理由から、不透明度が適用された不透明な RLE 画像は、SDRAM 内のフレームバッファに PXP を使用してブレンドされる前に、サイズが制限された中間バッファに展開されます。

platform_nxp.cpp 内の qul_scratch_buffer のサイズを大きくすることで、パフォーマンスをある程度向上させることができますが、その分 RAM 使用量が増加します。

特定の Qt ライセンスの下で利用可能です。
詳細はこちらをご覧ください。