C

在 STM 上入门

概述

本主题提供了在 Qt Quick Ultralite 支持的 STM 平台上入门所需的所有必要信息。

注意:在设置开发环境之前,请确保已安装所有先决条件

设置开发环境

配置 Qt Creator IDE

要使用 Qt Creator IDE 为 MCU 开发,需要 MCU 插件。Qt 在线安装程序在安装 Qt for MCUs SDK 时默认启用此插件。

要构建和运行 MCU 上的应用程序,您必须创建一个套件

  1. 选择 编辑 > 首选项 > 设备 > MCU

    注意:如果您看不到 MCU 选项卡,请选择 帮助 > 关于插件,启用 McuSupport 插件,然后重新启动 Qt Creator 以应用更改。

  2. 如果尚未设置,请提供 Qt for MCUs 安装目录的路径。

    {MCU preferences}

  3. 选择一个 Qt for MCUs SDK 支持的目标。例如,Qt for MCUs 2.8.0 - STM32F469I-DISCOVERY-BAREMETAL 24bpp
  4. 要求 部分确保满足特定平台的要求。
  5. 选择 自动在启动时为所有可用目标创建套件 以自动创建套件。

    注意:您还可以使用 创建套件更新套件 手动创建/更新套件。

  6. 如果您选择自动创建套件,则选择 应用 并重新启动 Qt Creator。

配置 CMake 变量

您还可以从命令提示符设置开发环境。有关在为 STM 板开发应用程序时使用 CMake 与 Qt Quick Ultralite 的更多信息,请参阅STM 板 CMake 手册

使用预构建的 Qt Quick Ultralite 库构建应用程序

使用 Qt Creator IDE 构建应用程序

  1. 打开要构建的示例的 CMake 项目文件。
  2. 配置项目 窗口中
    1. 选择您之前创建的工具包。例如,Qt for MCUs 2.8.0 - STM32F469I-DISCOVERY-BAREMETAL 24bpp
    2. 选择配置项目

{MCU project configuration}

一旦项目配置完成,选择运行或按键盘上的Ctrl+r来构建并将二进制文件烧写到目标设备。

使用命令提示符构建应用程序

命令行设置

要从命令行开始,对系统PATH做以下更改。

  • 如果未在默认位置安装,将STM32CubeProg安装目录添加到系统PATH中。
  • ST-LINK_gdbserver.exe目录添加到您的系统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是可选的,仅在芯片调试时需要。

从命令提示符构建最小示例

您也可以从命令提示符构建应用程序。下面的例子说明了如何为STM32F469I发现板构建最小示例。

QUL_ROOTQUL_TOOLS在下面的命令行例子中被用作环境变量。例如

export QUL_ROOT=$HOME/Qt/QtMCUs/2.8.0
export QUL_TOOLS=$HOME/Qt/Tools/QtMCUs
set QUL_ROOT=C:\Qt\QtMCUs\2.8.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_F4_V1.28.0 -DQUL_PLATFORM=STM32F469I-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_F4_V1.28.0 -DQUL_PLATFORM=STM32F469I-DISCOVERY-baremetal
cmake --build .

成功构建最小示例应用程序后,使用以下命令将其烧写到设备

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 Server现在正在默认端口(code translate="no">61234)上监听TCP连接。

    注意:实际使用的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控制台连接到目标:
    (gdb) target remote 127.0.0.1:61234

故障排除

ST-LINK_gdbserver需要安装最新的ST-LINK固件。如果您看到以下错误

初始化ST-LINK设备错误。原因:需要升级ST-LINK固件。

您必须使用STM32CubeProgrammer工具将固件升级到最新版本。

升级固件后问题依旧,请从ST网页(下载)尝试使用ST-LINK Upgrade工具重试。

支持的STM板

第1级:参考目标

硬件板MCU编译器操作系统(s)
STM32F769I-DISCOVERYSTM32F769NIGNU Arm GCC 12.3.rel1,IAR Arm V9.40构建工具裸机,FreeRTOS
STM32H750B-DISCOVERYSTM32H750XBGNU Arm GCC 12.3.rel1,IAR Arm V9.40构建工具裸机

第2级:验证目标

硬件板MCU编译器操作系统(s)
STM32F469I-DISCOVERYSTM32F469NIGNU Arm GCC 12.3.rel1,IAR Arm V9.40构建工具裸机

资源缓存策略

默认情况下,应用程序的资源数据在启动时被复制到SDRAM。为了保留这些资源在闪存内并在启动时不在RAM中加载,请在您的qmlproject文件中添加以下QmlProject选项

MCU.Config {
    resourceCachePolicy: "NoCaching"
}

或者,也可以仅为此类单个图像启用。

ImageFiles {
    files: "big/button.png"
    MCU.resourceCachePolicy: true
}

注意:请在 ImageFiles.files 条目之前设置这些CMake选项。

注意:如果可用,用于混合/块复制操作的资源可以存储在高速外部闪存中,而不需要将其复制到RAM。

在特定Qt许可证下可用。
了解更多信息。