C
はじめにSTM
概要
このトピックでは、Qt Quick UltraliteがサポートするSTM プラットフォームを使い始めるために必要なすべての情報を提供します。
注: 開発環境を設定する前に、すべての前提条件がインストールされていることを確認してください 。
開発環境のセットアップ
Qt Creator IDEの設定
Qt Creator IDEを使用してMCU向けの開発を行うには、MCUプラグインが必要です。Qt for MCUs SDKをインストールすると、Qt Online Installer によってデフォルトで有効になります。
MCU上でアプリケーションをビルドして実行するには、キットを作成する必要があります:
- 「Edit > Preferences > SDKs > MCU 」を選択します。
注: 「MCU」タブが表示されない場合は 、「Help > About Plugins 」を選択し、 Qt for MCUs プラグインを有効にし、Qt Creator を再起動して変更を反映させてください。
- まだ設定されていない場合は、Qt for MCUs のインストールディレクトリへのパスを指定してください。

- [ Target supported by the Qt for MCUs SDKを選択します。例: Qt for MCUs 2.12.2 - STM32H750B-DISCOVERY-BAREMETAL 32bpp。
- 「Requirements 」セクションで、プラットフォーム固有の要件が満たされていることを確認してください。
- キットを自動的に作成するには、[Automatically create kits for all available targets on start ] を選択します。
注: 「Create Kit 」および「Update Kit 」を使用して、キットを手動で作成または更新することもできます 。
- キットを自動的に作成する場合は、「Apply 」を選択し、「Qt Creator 」を再起動してください。
CMake変数の設定
コマンドプロンプトから開発環境を設定することも可能です。STM ボード向けのアプリケーション開発において、Qt Quick UltraliteとCMakeを併用する方法の詳細については、『STM ボード用CMakeマニュアル』を参照してください。
あらかじめビルド済みのQt Quick Ultraliteライブラリを使用したアプリケーションのビルド
Qt Creator IDE を使用したアプリケーションのビルド
- ビルドしたい例のCMakeプロジェクトファイルを開きます。
- 「Configure Project 」ウィンドウで:
- 先ほど作成したキットを選択します。例えば、 Qt for MCUs 2.12.2 - STM32H750B-DISCOVERY-BAREMETAL 32bpp.
- 「Configure Project 」を選択します。

プロジェクトの設定が完了したら、「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/QtMCUsset QUL_ROOT=C:\Qt\QtMCUs\2.12.2
set QUL_TOOLS=C:\Qt\Tools\QtMCUscd $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_minimalQt Quick Ultralite でサポートされている他のSTM ボードについても、同様の手順が適用されます。
デバッグ
- ターミナルウィンドウを開き、次のコマンドを実行します:
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のコンソールに出力されます。 - 別のコンソールで
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 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-DISCOVERY | STM32H750XB | GNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40 | Bare Metal |
Tier 2: 検証済みターゲット
| ハードウェアボード | MCU | コンパイラ | オペレーティングシステム |
|---|---|---|---|
| STM32F769I-DISCOVERY | STM32F769NI | GNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40 | Bare Metal, FreeRTOS |
リソースキャッシュポリシー
デフォルトでは、アプリケーションのリソースデータは起動時にSDRAMにコピーされます。これらのリソースをフラッシュメモリに保持し、起動時にRAMに読み込まないようにするには、qmlprojectファイルに次のQmlProjectオプションを追加してください:
MCU.Config {
resourceCachePolicy: "NoCaching"
}あるいは、次のように個々の画像に対してのみ有効にすることもできます:
ImageFiles {
files: [
"big/button.png"
]
MCU.resourceCachePolicy: "NoCaching"
}注: ブレンド/ブリッティング操作に使用されるリソースは 、利用可能な場合、RAMにコピーすることなく高速外部フラッシュに保存できます。
特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。