C
リンカ・スクリプトのセットアップ
リンカ・スクリプトは、プラットフォームのメモリ・コンフィギュレーションに関する情報を含むファイルである。リンカ・スクリプトは、アプリケーション・コードとデータが存在する領域を指定します。リンカ・スクリプトは、ツールチェー ンのリンカによって使用され、最終的なバイナリのデータとコードを適切なメモリ・ アドレスに配置します。このセクションでは、Qt Quick Ultralite を動作させるために、リンカースクリプトでどのような設定が必要かを説明します。
リンカスクリプトの追加
cmake\<YOUR_COMPILER>\<YOUR_LINKER_SCRIPT> は、お使いのプラットフォームが使用するリンカスクリプトです。
リンカスクリプトは、LinkerScriptConfig.cmake で CMake が使用するように設定する必要があります。以下に、example-baremetal プラットフォームの例を示します:
# Copyright (C) 2025 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial
if(IAR)
qul_platform_add_default_linker_script("${QUL_PRIVATE_PLATFORM_BOARD_CMAKE_DIR}/${QUL_COMPILER_NAME}/example-platform.icf")
else()
qul_platform_add_default_linker_script("${QUL_PRIVATE_PLATFORM_BOARD_CMAKE_DIR}/${QUL_COMPILER_NAME}/example-platform.ld")
endif()関数の引数は、使用するリンカスクリプトを定義します。
リンカスクリプトの作成
以下の例は、platform\boards\qt\example-baremetal\cmake\armgcc\example-platform.ld からのスニペットです。また、platform\boards\qt\example-baremetal\cmake\iar\example-platform.icf には IAR リンカ用のものもありますので、参考にしてください。これらのファイルをプロジェクトにコピーして、独自のリンカ・スクリプトの基礎として使用する ことができます。ただし、独自のリンカ・スクリプトを作成し、ここで説明するメモリ・セクションを追加することを推奨します。
注意: 例では、GNUリンカ・スクリプトの構文を使用しています。ツールチェー ンのリンカ・スクリプトによって実装が異なる場合があります。リンカ・スクリプトの構文の詳細については、ツールチェー ンのマニュアルを参照してください。
プログラム・セクションをデバイスに割り当てるには、メモリ・レイアウトを 設定する必要があります:
MEMORY
{
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 2048K /* internal flash */
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K /* internal sram */
SDRAM (xrw) : ORIGIN = 0xc0400000, LENGTH = 6M /* external sdram memory */
SDRAM_PRELOAD (xrw) : ORIGIN = 0xc0a00000, LENGTH = 2M /* external sdram memory - preload */
QSPI (rx) : ORIGIN = 0x90000000, LENGTH = 64M /* external flash */
}このレイアウトには 5 つの領域があります:このレイアウトには、FLASH、RAM、SDRAM、SDRAM_PRELOAD、QSPI の 5 つの領域があります。
- RAM、SDRAM および SDRAM_PRELOAD には、実行、読み出し、書き込みの各アクセスがあります。
- FLASHとQSPIは読み出し専用フラッシュ・メモリであるため、読み出しと実行アクセスのみが可能です。
警告 バイナリをフラッシュしたり、デバイス上で実行しようとするとエラーが発生する可能性があります。お使いのデバイスのメモリ・レイアウトと適切なメモリ・アドレスについては、ターゲット・プラットフォームのマニュアルを参照してください。
この例では、リソース・データはQSPIフラッシュ・メモリ領域に格納されています。QulResourceData nameはハードコードされており、イメージ・リソースのデフォルト・セクションを表します。リソース・セクションを追加する方法については、リソースの管理 を参照してください。
QulFontResourceData name はハードコードされており、フォントファイル、グリフデータ、および翻訳データのデフォルトのセクションを表します。また、MCU.Config.fontFilesStorageSection、MCU.Config.glyphsStorageSection、MCU.Config.translationStorageSectionプロパティを使用して、各データ型のセクションを設定することもできます。
QulFontResourceData :
{
. = ALIGN(4);
*(QulFontResourceData)
} > QSPI
QulResourceData :
{
. = ALIGN(4);
*(QulResourceData)
} > QSPI特定の Qt ライセンスの下で利用可能です。
詳細はこちら。