このページでは

C

はじめにSTM

概要

このトピックでは、Qt Quick UltraliteがサポートするSTM プラットフォームを使い始めるために必要なすべての情報を提供します。

注: 開発環境を設定する前に、すべての前提条件がインストールされていることを確認してください

開発環境のセットアップ

Qt Creator IDEの設定

Qt Creator IDEを使用してMCU向けの開発を行うには、MCUプラグインが必要です。Qt for MCUs SDKをインストールすると、Qt Online Installer によってデフォルトで有効になります。

MCU上でアプリケーションをビルドして実行するには、キットを作成する必要があります:

  1. Edit > Preferences > SDKs > MCU 」を選択します。

    注: 「MCU」タブが表示されない場合は 、「Help > About Plugins 」を選択し、 Qt for MCUs プラグインを有効にし、Qt Creator を再起動して変更を反映させてください。

  2. まだ設定されていない場合は、Qt for MCUs のインストールディレクトリへのパスを指定してください。

    Qt Creator を使用して STM ターゲット用の SDK を作成する。

  3. [ Target supported by the Qt for MCUs SDKを選択します。例: Qt for MCUs 2.12.2 - STM32H750B-DISCOVERY-BAREMETAL 32bpp
  4. Requirements 」セクションで、プラットフォーム固有の要件が満たされていることを確認してください。
  5. キットを自動的に作成するには、[Automatically create kits for all available targets on start ] を選択します。

    注: Create Kit 」および「Update Kit 」を使用して、キットを手動で作成または更新することもできます

  6. キットを自動的に作成する場合は、「Apply 」を選択し、「Qt Creator 」を再起動してください。

CMake変数の設定

コマンドプロンプトから開発環境を設定することも可能です。STM ボード向けのアプリケーション開発において、Qt Quick UltraliteとCMakeを併用する方法の詳細については、STM ボード用CMakeマニュアル』を参照してください。

あらかじめビルド済みのQt Quick Ultraliteライブラリを使用したアプリケーションのビルド

Qt Creator IDE を使用したアプリケーションのビルド

  1. ビルドしたい例のCMakeプロジェクトファイルを開きます。
  2. Configure Project 」ウィンドウで:
    1. 先ほど作成したキットを選択します。例えば、 Qt for MCUs 2.12.2 - STM32H750B-DISCOVERY-BAREMETAL 32bpp.
    2. Configure Project 」を選択します。

Qt Creator を使用して、STM ターゲット向けの MCU プロジェクトを設定する。

プロジェクトの設定が完了したら、「Run 」を選択するか、キーボードのCtrl+rキーを押して、バイナリをビルドし、ターゲットに書き込みます。

コマンドプロンプトを使用したアプリケーションのビルド

コマンドラインの設定

コマンドラインから作業を開始するには、System PATH に以下の変更を加えてください。

  • STM32CubeProgがデフォルトの場所にインストールされていない場合は、System PATH にインストールディレクトリを追加してください。
  • ST-LINK_gdbserver.exe ディレクトリを、あなたのSystem PATH
    <STM32_CUBE_IDE_INSTALL_PATH>\stm32cubeide_1.3.0\plugins\com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.win32_1.3.0.202002181050\tools\bin

    ここで、<STM32_CUBE_IDE_INSTALL_PATH> は Cube IDE のインストールパスです。

    注:STM32CubeIDEは オプションであり、オンチップデバッグを行う場合にのみ必要です。

コマンドプロンプトからの最小限のサンプルプログラムのビルド

コマンドプロンプトからアプリケーションをビルドすることもできます。以下の例では、STM32H750B ディスカバリーボード用の「minimal 」サンプルをビルドする方法を示します。

QUL_ROOT およびQUL_TOOLS は、以下のコマンドラインの例では、環境変数として設定されているかのように使用されます。例えば:

export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.2
export QUL_TOOLS=$HOME/Qt/Tools/QtMCUs
set QUL_ROOT=C:\Qt\QtMCUs\2.12.2
set QUL_TOOLS=C:\Qt\Tools\QtMCUs
cd $QUL_ROOT/examples/minimal
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=MinSizeRel -DQul_ROOT=$QUL_ROOT -DCMAKE_TOOLCHAIN_FILE=$QUL_ROOT/lib/cmake/Qul/toolchain/armgcc.cmake -DQUL_TARGET_TOOLCHAIN_DIR=$QUL_TOOLS/arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=$QUL_TOOLS/STM/STM32Cube_FW_H7_V1.12.1 -DQUL_PLATFORM=STM32H750B-DISCOVERY-baremetal
cmake --build .
cd %QUL_ROOT%\examples\minimal
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=MinSizeRel -DQul_ROOT=%QUL_ROOT% -DCMAKE_TOOLCHAIN_FILE=%QUL_ROOT%\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_TARGET_TOOLCHAIN_DIR=%QUL_TOOLS%\arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=%QUL_TOOLS%\STM\STM32Cube_FW_H7_V1.12.1 -DQUL_PLATFORM=STM32H750B-DISCOVERY-baremetal
cmake --build .

minimal のサンプルアプリケーションのビルドが正常に完了したら、次のコマンドを使用してフラッシュを行ってください:

cmake --build . --target flash_minimal

Qt Quick Ultralite でサポートされている他のSTM ボードについても、同様の手順が適用されます。

デバッグ

  1. ターミナルウィンドウを開き、次のコマンドを実行します:
    ST-LINK_gdbserver -d -cp "<STM32_CUBE_PROG_INSTALL_PATH>/bin"
    ST-LINK_gdbserver.exe -d -cp "<STM32_CUBE_PROG_INSTALL_PATH>\bin"

    ここで、<STM32_CUBE_PROG_INSTALL_PATH> は、Cube Programmer ツールをインストールしたディレクトリです。

    GDBサーバーは、デフォルトポートである61234 でTCP接続を待機しています。

    注: ST-LINK_gdbserver実際に 使用している TCP ポートは、gdbserver のコンソールに出力されます。

  2. 別のコンソールでarm-none-eabi-gdb を実行してください。
    $QUL_TOOLS/arm_gcc_12_3_1/bin/arm-none-eabi-gdb <PATH_TO>/your_app.elf
    %QUL_TOOLS%\arm_gcc_12_3_1\bin\arm-none-eabi-gdb.exe <PATH_TO>\your_app.elf
  3. arm-none-eabi-gdb コンソールの「gdbserver 」を使用して、以下のコマンドでターゲットに接続します。
    (gdb) target remote 127.0.0.1:61234

トラブルシューティング

ST-LINK_gdbserver には、最新のST-LINKファームウェアがインストールされている必要があります。次のエラーが表示された場合:

ST-LINK デバイスの初期化中にエラーが発生しました。原因:ST-LINK ファームウェアのアップグレードが必要です。

この場合は、STM32CubeProgrammer ツールを使用して、ファームウェアを最新バージョンにアップグレードする必要があります。

アップグレード後も問題が解決しない場合は、STのWebページ(ダウンロード)からST-LINK Upgrade ツールを使用して再試行してください。

STM でサポートされているボード

現在サポートされているSTM ターゲットは以下の通りです。Qt Quick Ultraliteがサポートするすべてのターゲットの詳細については、「サポート対象のターゲットボードおよび開発ホスト」を参照してください。

Tier 1: リファレンス・ターゲット

ハードウェアボードMCUコンパイラオペレーティングシステム
STM32H750B-DISCOVERYSTM32H750XBGNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40Bare Metal

Tier 2: 検証済みターゲット

ハードウェアボードMCUコンパイラオペレーティングシステム
STM32F769I-DISCOVERYSTM32F769NIGNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40Bare Metal, FreeRTOS

リソースキャッシュポリシー

デフォルトでは、アプリケーションのリソースデータは起動時にSDRAMにコピーされます。これらのリソースをフラッシュメモリに保持し、起動時にRAMに読み込まないようにするには、qmlprojectファイルに次のQmlProjectオプションを追加してください:

MCU.Config {
    resourceCachePolicy: "NoCaching"
}

あるいは、次のように個々の画像に対してのみ有効にすることもできます:

ImageFiles {
    files: [
        "big/button.png"
    ]
    MCU.resourceCachePolicy: "NoCaching"
}

注: ブレンド/ブリッティング操作に使用されるリソースは 、利用可能な場合、RAMにコピーすることなく高速外部フラッシュに保存できます。

特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。