C
STM32L4R9I-DISCO Setup Instructions
This topic helps you setup the development environment for STM's STM32L4R9I-Disco.
Board features
- STM32L4R9AII6 MCU featuring ARM® Cortex®-M4, 2-MBytes Flash, 640-kbytes RAM
- 1.2” 390x390 round Touch Display
- 16-Mbit PSRAM memory
- 512-Mbit Octo-SPI Flash memory
Setting up development environment
- Ensure that the common STM prerequisites are met.
- Install CubeL4 SDK 1.15.1 and create the
STM32Cube_FW_L4_SDK_PATH
environment variable (Download)- Download STMCubeL4 1.15.0 and Patch_CubeL4 1.15.1, and run them in that order
- Create the
STM32Cube_FW_L4_SDK_PATH
environment variable and set its value to:<STM32_CUBE_L4_INSTALL_PATH>\STM32Cube_FW_L4_V1.15.0
where, <STM32_CUBE_L4_INSTALL_PATH> points to the CubeL4 SDK install directory.
Prebuilt demos and examples
The package for STM32L4R9I_DISCO
board comes with a prebuilt watch demo binary. You can find it in the demos_images
directory.
See Flashing Instructions for ST boards, for information about flashing the device.
For this board, select MX25LM51245G_STM32L4R9I-DISCO as the external loader.
Demos and examples source code
Qt for MCUs provides the source code of several demos and examples. You can modify, build, and flash custom binaries onto the target device.
Source code for supported demos and examples is organized in the following directory structure:
- demos
- examples
- charts
- chess
- freertos_multitask
- image_cache
- interrupt_handler
- minimal
- redbutton
- styling
- translation
Note: Demos or examples that are highlighted in bold are the only ones supported on this board.
Building applications with prebuilt Qt Quick Ultralite libraries
The following example builds the watch
demo for this board:
cd %Qul_DIR%\demos\watch mkdir build cd build cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=%Qul_DIR%\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_PLATFORM=STM32L4R9I-DISCOVERY cmake --build .
Once you have successfully built the watch
demo, you can flash it from command line:
cmake --build . --target flash_watch
The same procedure applies to any other application.
Note: By default, the asset data for application is copied to RAM on application startup. In order to keep resources in external flash, and not load it to RAM on startup, use the QUL_COPY_TO_RAM cmake option with the value Never
when adding assets to the application with qul_add_resource.
Building Qt Quick Ultralite
If your license provides access to the Qt Quick Ultralite sources, build it with all of supported demos/examples. Run the following commands from the terminal window:
cd %Qul_DIR% mkdir build cd build cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=..\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_GENERATORS=..\lib\cmake\Qul\QulGenerators.cmake -DQUL_PLATFORM=STM32L4R9I-DISCOVERY
Once Qt Quick Ultralite is built successfully, you can flash the supported demos/examples from command line.
cmake --build . --target flash_<DEMO_OR_EXAMPLE_NAME>
Where, DEMO_OR_EXAMPLE_NAME
is the name of a supported demo/example.
Building applications using a custom built Qt Quick Ultralite
This section describes how to build an application, using a custom Qt Quick Ultralite build.
- First, you must set up the development environment as described earlier.
- Build Qt Quick Ultralite from the modified sources and install it to a custom location.
mkdir some\path\custom_builds\qul cd some\path\custom_builds\qul mkdir qul-build cd qul-build cmake <PATH_TO_INSTALLED_QT_SDK>\QtMCUs\<version> \ -G "Ninja" \ -DCMAKE_INSTALL_PREFIX=some\path\custom_builds\qul \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_TOOLCHAIN_FILE=<PATH_TO_INSTALLED_QT_SDK>\QtMCUs\<version>\lib\cmake\Qul\toolchain\armgcc.cmake \ -DQUL_PLATFORM=<PLATFORM_NAME> \ -DQUL_BUILD_TESTS=OFF \ -DQUL_BUILD_DEMOS=OFF \ -DQUL_BUILD_EXAMPLES=OFF \ -DQUL_GENERATORS=<PATH_TO_INSTALLED_QT_SDK>\QtMCUs\<version>\lib\cmake\Qul\QulGenerators.cmake \ ninja install
- Use the custom Qt Quick Ultralite to build your application, which is not part of the Qt Quick Ultralite source tree:
cd some\path\custom_builds mkdir app # Put your application here. You can use the redbutton example from the SDK. cd app mkdir build cd build set QUL_DIR=some\path\custom_builds\qul cmake .. \ -G "Ninja" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_TOOLCHAIN_FILE=some\path\custom_builds\qul\lib\cmake\Qul\toolchain\armgcc.cmake \ -DQUL_GENERATORS=<PATH_TO_INSTALLED_QT_SDK>\QtMCUs\<version>\lib\cmake\Qul\QulGenerators.cmake \ -DQUL_PLATFORM=<PLATFORM_NAME> \ ninja ninja flash_<YOUR_APP_NAME>
Reading debug messages
By default, the output of printf
calls are redirected to a virtual serial port, which is exposed on the host machine via USB.
Debugging
- Open terminal window and run the following command:
ST-LINK_gdbserver.exe -cp "<STM32_CUBE_PROG_INSTALL_PATH>\bin"
where,
<STM32_CUBE_PROG_INSTALL_PATH>
is the directory where you've installed the Cube Programmer tool.GDB Server is now listening for TCP connections on the default port,
61234
.Note: Actual TCP port used by
ST-LINK_gdbserver
is printed out on gdbserver's console. - Run
arm-none-eabi-gdb
in a separate console%ARMGCC_DIR%\bin\arm-none-eabi-gdb.exe <PATH_TO>\your_app.elf
- Connect to the target via the gdbserver in the
arm-none-eabi-gdb
console using(gdb) target remote 127.0.0.1:61234
Troubleshooting
ST-LINK_gdbserver
requires up-to-date ST-LINK firmware to be installed. If you see the following error:
Error in initializing ST-LINK device. Reason: ST-LINK firmware upgrade required.
you must upgrade the firmware to the latest version using the STM32CubeProgrammer tool.
If the problem persists after upgrade, retry with ST-LINK Upgrade
tool from the ST webpage ( Download ).
Known limitations
STM32L4R9AII6 MCU does not have double precision floating point support. Care should be taken to avoid using them.
Available under certain Qt licenses.
Find out more.