C
プラットフォーム設定ファイルの作成
platform\<BOARD_MANUFACTURER_NAME>\<YOUR_PLATFORM>\CMakeLists.txt は、プラットフォームの主要な設定ファイルです。このファイルには、プラットフォームに必要なすべてのソース、インクルードディレクトリ、コンパイル定義、およびその他のパラメータが指定されます。CMakeの構文に関する詳細については、CMakeのドキュメントを参照してください。また、platform\boards\qt\example-baremetal\CMakeLists.txt を基に、プラットフォーム用のCMakeLists.txt を作成することもできます。
注: プラットフォームのソース、インクルードディレクトリ、その他の属性を定義する際は 、これらの定義のターゲットとして `Platform ` を指定する必要があります。
プラットフォームプロパティの設定
プラットフォーム関連の設定は、ターゲットプラットフォームの `CMakeLists.txt ` ファイル内で、Platform ターゲットのプロパティとして設定されます。すべてのプロパティの一覧、デフォルト値、および説明を以下の表に示します。
共通プロパティ
| プロパティ名 | デフォルト値 | 説明 |
|---|---|---|
QUL_PLATFORM_DEFAULT_SCREEN_WIDTH | 480 | 画面のデフォルトの幅(ピクセル単位)。現在はデスクトップバックエンドでのみ使用されています。 |
QUL_PLATFORM_DEFAULT_SCREEN_HEIGHT | 272 | 画面の高さのデフォルト値(ピクセル単位)。現在はデスクトップバックエンドでのみ使用されています。 |
QUL_PLATFORM_DEFAULT_TEXT_CACHE_ENABLED | OFF | ターゲットプラットフォームにおけるテキストキャッシュのデフォルト値。詳細については、QUL_PLATFORM_DEFAULT_TEXT_CACHE_ENABLED を参照してください。 |
QUL_PLATFORM_DEFAULT_TEXT_CACHE_SIZE | 24*1024 | ターゲットプラットフォームにおけるテキストキャッシュのデフォルトサイズ。詳細については、QUL_PLATFORM_DEFAULT_TEXT_CACHE_SIZE を参照してください。 |
QUL_PLATFORM_DEFAULT_NUM_FRAMES_TO_PRESERVE_ASSETS | 0 | ターゲットプラットフォーム上でアセットを保持するフレーム数のデフォルト値。詳細については、QUL_PLATFORM_DEFAULT_NUM_FRAMES_TO_PRESERVE_ASSETS を参照してください。 |
QUL_PLATFORM_REQUIRED_IMAGE_ALIGNMENT | 1 | ターゲットプラットフォームにおける画像データに必要な最小アライメント。詳細については、QUL_PLATFORM_REQUIRED_IMAGE_ALIGNMENT を参照してください。 |
QUL_PLATFORM_REQUIRED_PIXEL_WIDTH_ALIGNMENT | 1 | ターゲットプラットフォーム上では、画像の幅はこの値の倍数になります。詳細については、QUL_PLATFORM_REQUIRED_PIXEL_WIDTH_ALIGNMENT を参照してください。 |
QUL_PLATFORM_EXCLUDED_EXAMPLES | ビルドから除外すべき例のリストです。CMakeリスト形式で定義され、各値はセミコロンで区切られています。 次の例では、 | |
QUL_PLATFORM_EXCLUDED_DEMOS | ビルドから除外すべきデモの一覧です。これは CMake リスト形式で定義され、各値はセミコロンで区切られています。 次の例では、 | |
QUL_PLATFORM_EXCLUDED_TESTS | ビルドから除外すべきテストの一覧です。これはCMakeリスト形式で定義され、各値はセミコロンで区切られています。 次の例は、 |
Infineon プラットフォーム固有のプロパティ
| プロパティ名 | 説明 | |
|---|---|---|
| QUL_PRIVATE_INFINEON_RESOURCE_GENERATOR | Infineon のSDKディレクトリ内にあるResourceGenerator.exe バイナリファイルへのパス。リソースをコンパイルするには、このプロパティを設定してください。 |
NXP プラットフォーム固有のプロパティ
| プロパティ名 | 説明 |
|---|---|
| NXP_CHIP_NAME | NXP チップファミリの名前(例:MIMXRT1052xxxxB )。ターゲットへのフラッシュを行うには、この変数を設定してください。 |
| NXP_CONNECT_SCRIPT | MCUXpressoIDE からの接続スクリプトの名前(例:RT1050_connect.scp )。フラッシュ対象に接続できるようにするには、この変数を設定してください。 |
| NXP_RESET_SCRIPT | MCUXpressoIDE にあるリセットスクリプトの名前(例:RT1170_reset.scp )。現在、この変数は、フラッシュ処理後にボードを正常に再起動するために、NXP RT1170 でのみ必要です。 |
| NXP_PARTFILES_DIR | XML形式のNXP パーツファイルが含まれるディレクトリへのパス。ターゲットへのフラッシュ中にこれを使用できるようにするには、この変数を設定してください。 |
STM プラットフォーム固有のプロパティ
| プロパティ名 | 説明 |
|---|---|
| STM32_EXTERNAL_LOADER | 外部メモリへのフラッシュを行うために必要な、STM32外部ローダーファイルへのパス。 |
プラットフォーム「CMakeLists.txt 」で設定されたプロパティの例:
set_target_properties(Platform
PROPERTIES
NXP_CHIP_NAME "MIMXRT1052xxxxB"
NXP_CONNECT_SCRIPT "RT1050_connect.scp"
# variables cannot be expanded that's why there is "\" before "$". It will be later evaluated at CMake runtime using
# qul_private_evaluate_path_from_target_property() function
NXP_PARTFILES_DIR "\${QUL_PLATFORM_TARGET_DIR}/../mimxrt1050-evk-common/cmake"
QUL_PLATFORM_EXCLUDED_DEMOS "automotive;motor_cluster"
QUL_PLATFORM_EXCLUDED_EXAMPLES "freertos_app_switch;imagedecoder;layers;multiscreen;map"
QUL_PLATFORM_EXCLUDED_TESTS "layers;layers_with_shapes;layer_transparency;resource_storage_section"
QUL_PRIVATE_USE_PLATFORM_CONFIGURATION_HEADER ON
EXPORT_PROPERTIES "NXP_CHIP_NAME;NXP_CONNECT_SCRIPT;NXP_PARTFILES_DIR;QUL_PLATFORM_EXCLUDED_DEMOS;QUL_PLATFORM_EXCLUDED_EXAMPLES;QUL_PLATFORM_EXCLUDED_TESTS"
)ソースファイル
プラットフォームの移植を実装するには、プラットフォームライブラリを使用してソースコードを記述し、ビルドする必要があります。移植用のコードを記述する過程で、Platform ターゲットにソースファイル、インクルードディレクトリ、およびコンパイラ定義を追加できます。
以下は、example-baremetal プラットフォーム用のCMakeLists.txt ファイルです:
target_sources(Platform PRIVATE
examplelayerengine.cpp
examplepath.cpp
examplestroker.cpp
examplequeue.cpp
example_custom_input.cpp
platform_context.cpp
devicelink.cpp
mem.cpp
${PLATFORM_COMMON_SRC_DIR}/singlepointtoucheventdispatcher.cpp
${PLATFORM_COMMON_SRC_DIR}/platform.cpp
# Add platform source files here
)
target_include_directories(Platform PRIVATE
# Add platform specific include directories here
)
target_compile_definitions(Platform PRIVATE
# Insert platform specific compile flags here
# e.g. APPLICATION_ADDRESS=0x90000000
)ベンダーSDK固有の設定の指定
BSPConfig.cmake には、GPIOや割り込みハンドラなど、ベンダーSDKの関数を使用するために必要なすべての設定が含まれています。これらは通常、特定のボード向けのコンパイラ定義やインクルードパスです。
これらの設定は、CMake においてインターフェースライブラリターゲットとして利用可能となり、プラットフォームライブラリの外でボード SDK の関数を使用する必要があるアプリケーションも、これらのオプションを継承できるようになります。
「Platform SDK の設定」を参照してください。
target_compile_definitions(PlatformBSPConfig INTERFACE
# Platform SDK specific compile definitions
USE_HAL_DRIVER
)
target_include_directories(PlatformBSPConfig INTERFACE
# Platform SDK specific include directories
# eg. ${QUL_BOARD_SDK_DIR}/Drivers/BSP/STM32F769I-Discovery/
)特定の Qt ライセンスの下で利用可能です。
詳細はこちらをご覧ください。