User space CDT project

Revision as of 14:18, 13 March 2023 by Registered User
Applicable for STM32MP13x lines, STM32MP15x lines

This article proposes to create, build and debug a Linux® user space application for STM32 MPU, using the standard Eclipse® CDT™ wizard.

Warning DB.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" project[edit source]

  • Open the new C project wizard: File -> New -> Project... C Project.
New C project wizard

  • In the first window, choose OpenSTLinux SDK
New C project wizard

  • Then Next to set up configuration
New C project wizard

  • and Next to choose the SDK version
New C project wizard

  • To populate this project with file "main.c", first select project, then right-click New -> File -> main.c, and then fill it with some C code.

2. Build[edit source]

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

3. Prepare Debug Configuration[edit source]

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 How to set up proxy and P2P Ethernet connection with STM32CubeIDE if you have some proxy problem.

4. Set Debug Configuration[edit source]

  • Select your project, right-click Debug as... > Debug Configurations.
  • Then create an STM32 Cortex-A Remote Application debug configuration, and double-click on it.
C Project debug

5. Debug[edit source]

Click on 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 network with GDBServer.
C project debug
Info white.png Information
In case of error; check if GDBServer is still running on the target.

BackToNavigationTree button.png