User space project

< How to debug a user space application with STM32CubeIDE
Applicable for STM32MP13x lines, STM32MP15x lines

This article explains how to create, build and debug a Linux® user space application for STM32 MPU.

Warning white.png Important
This article has been written with the example of STM32MP15x lines More info.png. Nevertheless, it is applicable to any lines present in applicability field displayed on the top of this article

BackToNavigationTree button.png

1 Create a user space executable project[edit]

In the Cortex®-A7 sub-project context, named here MP157C-DK2_CA7, right-click and select Create a userspace Project...

User space project wizard shortcut

In the example, an executable project type in C language is selected.

Note that the user space project uses by default the SDK version associated to Cortex®-A7 sub-project.

User space project creation wizard

2 Build[edit]

  • Select your project, right-click and then Build Project.
Executable Build

3 Prepare Debug Configuration[edit]

You can check boot messages via Linux® console opened with butterfly icon (shown below), but remember this console cannot be shared outside STM32CubeIDE (minicom,...).


In order to debug user space application, your target must be Linux® booted and network connected.

To check network connection, start the Target Status widget in the bottom right corner of the window.

Target Status - green

Check also How to set up proxy and P2P Ethernet connection with STM32CubeIDE if you have some proxy problem.

4 Set Debug Configuration[edit]

  • Select your project, right-click Debug as... > Debug Configurations,
  • select STM32 Cortex-A Remote Application.
Debug configuration shortcut

The default connection proposed is "MPU SSH", corresponding to the target IP address discovered by Target Status. The default destination directory is /home/root.

User space debug configuration - main tab

5 Debug[edit]

Click Debug :

  1. Executable is downloaded to the target,
  2. GDBServer is launched on the target,
  3. GDBClient is launched on the workstation and can exchange via the network with GDBServer.
User space debug
Info white.png Information
In case of error, stop any GDBServer running on the target before launching a new debug session.

BackToNavigationTree button.png