このページについて

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_WIDTH480画面のデフォルトの幅(ピクセル単位)。現在はデスクトップバックエンドでのみ使用されています。
QUL_PLATFORM_DEFAULT_SCREEN_HEIGHT272画面の高さのデフォルト値(ピクセル単位)。現在はデスクトップバックエンドでのみ使用されています。
QUL_PLATFORM_DEFAULT_TEXT_CACHE_ENABLEDOFFターゲットプラットフォームにおけるテキストキャッシュのデフォルト値。詳細については、QUL_PLATFORM_DEFAULT_TEXT_CACHE_ENABLED を参照してください。
QUL_PLATFORM_DEFAULT_TEXT_CACHE_SIZE24*1024ターゲットプラットフォームにおけるテキストキャッシュのデフォルトサイズ。詳細については、QUL_PLATFORM_DEFAULT_TEXT_CACHE_SIZE を参照してください。
QUL_PLATFORM_DEFAULT_NUM_FRAMES_TO_PRESERVE_ASSETS0ターゲットプラットフォーム上でアセットを保持するフレーム数のデフォルト値。詳細については、QUL_PLATFORM_DEFAULT_NUM_FRAMES_TO_PRESERVE_ASSETS を参照してください。
QUL_PLATFORM_REQUIRED_IMAGE_ALIGNMENT1ターゲットプラットフォームにおける画像データに必要な最小アライメント。詳細については、QUL_PLATFORM_REQUIRED_IMAGE_ALIGNMENT を参照してください。
QUL_PLATFORM_REQUIRED_PIXEL_WIDTH_ALIGNMENT1ターゲットプラットフォーム上では、画像の幅はこの値の倍数になります。詳細については、QUL_PLATFORM_REQUIRED_PIXEL_WIDTH_ALIGNMENT を参照してください。
QUL_PLATFORM_EXCLUDED_EXAMPLESビルドから除外すべき例のリストです。CMakeリスト形式で定義され、各値はセミコロンで区切られています。

次の例では、multitask およびimage_cache のサンプルを無効にしています:

set_target_properties(Platform
    PROPERTIES
        QUL_PLATFORM_EXCLUDED_EXAMPLES "multitask;image_cache"
)
QUL_PLATFORM_EXCLUDED_DEMOSビルドから除外すべきデモの一覧です。これは CMake リスト形式で定義され、各値はセミコロンで区切られています。

次の例では、automotive およびmotor_cluster のデモを無効にしています:

set_target_properties(Platform
    PROPERTIES
        QUL_PLATFORM_EXCLUDED_DEMOS "automotive;motor_cluster"
)
QUL_PLATFORM_EXCLUDED_TESTSビルドから除外すべきテストの一覧です。これはCMakeリスト形式で定義され、各値はセミコロンで区切られています。

次の例は、controls およびflickable のテストを無効にするものです:

set_target_properties(Platform
    PROPERTIES
        QUL_PLATFORM_EXCLUDED_TESTS "controls;flickable"
)

Infineon プラットフォーム固有のプロパティ

プロパティ名説明
QUL_PRIVATE_INFINEON_RESOURCE_GENERATORInfineon のSDKディレクトリ内にあるResourceGenerator.exe バイナリファイルへのパス。リソースをコンパイルするには、このプロパティを設定してください。

NXP プラットフォーム固有のプロパティ

プロパティ名説明
NXP_CHIP_NAMENXP チップファミリの名前(例:MIMXRT1052xxxxB )。ターゲットへのフラッシュを行うには、この変数を設定してください。
NXP_CONNECT_SCRIPTMCUXpressoIDE からの接続スクリプトの名前(例:RT1050_connect.scp )。フラッシュ対象に接続できるようにするには、この変数を設定してください。
NXP_RESET_SCRIPTMCUXpressoIDE にあるリセットスクリプトの名前(例:RT1170_reset.scp )。現在、この変数は、フラッシュ処理後にボードを正常に再起動するために、NXP RT1170 でのみ必要です。
NXP_PARTFILES_DIRXML形式の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 ライセンスの下で利用可能です。
詳細はこちらをご覧ください。