このページでは

C

はじめにSTM

概要

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

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

開発環境のセットアップ

Qt Creator IDEの設定

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

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.0 - 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.0 - 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_ROOTQUL_TOOLS は、以下のコマンドラインの例では、環境変数として設定されているかのように使用されています。例えば

Linux
export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.0
export QUL_TOOLS=$HOME/Qt/Tools/QtMCUs
set QUL_ROOT=C:\Qt\QtMCUs\2.12.0
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. ターミナルウィンドウを開き、以下のコマンドを実行する: ここで、は Cube Programmer ツールをインストールしたディレクトリです。
    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デバイスの初期化でエラーが発生しました。理由ST-LINKファームウェアのアップグレードが必要です。

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

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

サポートされるSTM ボード

現在サポートされているSTM ターゲットを以下に示します。Qt Quick Ultraliteでサポートされているすべてのターゲットの詳細については、サポートされているターゲット・ボードと開発ホストを参照してください。

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

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

階層 2: 検証済みターゲット

ハードウェアボードマイコンコンパイラオペレーティング・システム
STM32F769iディスカバリSTM32F769NIGNU 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 にコピーせずに、高速外部フラッ シュに保存できます(利用可能な場合)。


詳細はこちら。