このページでは

C

NXP IMXRT1170-EVKB でFreeRTOS を使用する。

互換性のあるバージョン

Qt Quick Ultralite forFreeRTOSFreeRTOS v10.4.3でテストされています。これはNXP IMXRT1170-EVKBの公式サポートバージョンです。

注: NXP IMXRT1170-EVKB用にプリコンパイルされたプラットフォーム・ライブラリを使用している場合、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がデフォルトで使用するメモリアロケータ実装です。 を提供できない場合、または独自の実装を使用したい場合は、 target プロパティを設定して実装を変更してください。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 の下のファイル。
  • event_groups.c
  • list.c
  • queue.c
  • tasks.c
  • timers.c

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

注意: カスタムのFreeRTOSConfig.hを使用する場合や、configTOTAL_HEAP_SIZE のデフォルト値を変更する必要がある場合は、configTOTAL_HEAP_SIZE を低くしすぎないことが重要です。テキストキャッシュ、テクスチャキャッシュ、ストロー クパスの中間構造、ユーザーアプリケーションの動的割り当てを考慮し て、十分なヒープ領域を確保する必要があります。configTOTAL_HEAP_SIZE の値が低いと、ヒープがオーバーフローしてアプリケーションがクラッシュする可能性があります。

プロジェクトで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 を使用するプロジェクトでも、点滅プロセスは同じです。点滅の詳細な手順については、このページを参照してください。


詳細はこちらをご覧ください。