C
在 STM 上入门
概述
本主题提供了在 Qt Quick Ultralite 支持的 STM 平台上入门所需的所有必要信息。
注意:在设置开发环境之前,请确保已安装所有先决条件。
设置开发环境
配置 Qt Creator IDE
要使用 Qt Creator IDE 为 MCU 开发,需要 MCU 插件。Qt 在线安装程序在安装 Qt for MCUs SDK 时默认启用此插件。
要构建和运行 MCU 上的应用程序,您必须创建一个套件
- 选择 编辑 > 首选项 > 设备 > MCU。
注意:如果您看不到 MCU 选项卡,请选择 帮助 > 关于插件,启用 McuSupport 插件,然后重新启动 Qt Creator 以应用更改。
- 如果尚未设置,请提供 Qt for MCUs 安装目录的路径。
- 选择一个 Qt for MCUs SDK 支持的目标。例如,Qt for MCUs 2.8.0 - STM32F469I-DISCOVERY-BAREMETAL 24bpp。
- 在 要求 部分确保满足特定平台的要求。
- 选择 自动在启动时为所有可用目标创建套件 以自动创建套件。
注意:您还可以使用 创建套件 和 更新套件 手动创建/更新套件。
- 如果您选择自动创建套件,则选择 应用 并重新启动 Qt Creator。
配置 CMake 变量
您还可以从命令提示符设置开发环境。有关在为 STM 板开发应用程序时使用 CMake 与 Qt Quick Ultralite 的更多信息,请参阅STM 板 CMake 手册。
使用预构建的 Qt Quick Ultralite 库构建应用程序
使用 Qt Creator IDE 构建应用程序
- 打开要构建的示例的 CMake 项目文件。
- 在 配置项目 窗口中
- 选择您之前创建的工具包。例如,Qt for MCUs 2.8.0 - STM32F469I-DISCOVERY-BAREMETAL 24bpp。
- 选择配置项目。
一旦项目配置完成,选择运行或按键盘上的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_ROOT
和QUL_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板。
调试
- 打开终端窗口并运行以下命令:
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控制台中打印出来。
- 在另一个控制台中运行
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
控制台连接到目标:(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-DISCOVERY | STM32F769NI | GNU Arm GCC 12.3.rel1,IAR Arm V9.40构建工具 | 裸机,FreeRTOS |
STM32H750B-DISCOVERY | STM32H750XB | GNU Arm GCC 12.3.rel1,IAR Arm V9.40构建工具 | 裸机 |
第2级:验证目标
硬件板 | MCU | 编译器 | 操作系统(s) |
---|---|---|---|
STM32F469I-DISCOVERY | STM32F469NI | GNU 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许可证下可用。
了解更多信息。