C
NXP IMXRT1170-EVKB でFreeRTOS を使用する。
互換性のあるバージョン
Qt Quick Ultralite forFreeRTOS はFreeRTOS 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 ディレクトリから正しいパスを確認してください。
ディレクトリには、少なくとも以下が含まれている必要があります:
includeFreeRTOS ヘッダー ファイルを含むディレクトリ。MCUXpresso SDK 2.6 以前から を使用している場合、インクルードは親ディレクトリから検索されます。FreeRTOSportableディレクトリMemMangportableの下のディレクトリ。このディレクトリには、 用のメモリマネージャ実装が含まれている必要があります。FreeRTOSheap_4.cportable/MemMangの下のファイル。これは Ultraliteがデフォルトで使用するメモリアロケータ実装です。 を提供できない場合、または独自の実装を使用したい場合は、 target プロパティを設定して実装を変更してください。Qt Quickheap_4.cQUL_FREERTOS_HEAP_POLICYヒープポリシーの変更を参照してください。- 使用するツールチェーンによって、以下のファイルが必要です:
- Arm GCCツールチェーンの場合:
port.cportable/GCC/ARM_CM4F。fsl_tickless_systick.cMCUXpresso SDK 2.6以前からFreeRTOS を使用している場合は、portable/GCC/ARM_CM4Fの下にあるファイル。
- IARツールチェーンの場合:
port.cportable/IAR/ARM_CM4F。portasm.sportable/IAR/ARM_CM4F。fsl_tickless_systick.cMCUXpresso SDK 2.6 以前からFreeRTOS を使用している場合は、portable/IAR/ARM_CM4Fの下のファイル。
- Arm GCCツールチェーンの場合:
event_groups.clist.cqueue.ctasks.ctimers.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.htask.hportable.hmemory.hvoid xPortSysTickHandler(void)void *pvPortMalloc(size_t xSize)void vPortFree(void *pv)
app_common なしでプロジェクトをセットアップする方法については、 app_common なしでアプリケーションをビルドするを参照してください。
FreeRTOS プロジェクトのフラッシュ
FreeRTOS を使用するプロジェクトでも、点滅プロセスは同じです。点滅の詳細な手順については、このページを参照してください。