User space static library project

< How to debug a user space application with STM32CubeIDE

This article proposes to manage a static library linked with a Linux user space application for STM32 MPU.

BackToNavigationTree button.png

1 Create a user space static library project[edit]

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

User space project wizard shortcut

We select here Static Library project type, in C language. Note that our user space project will use 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.
Static Library Build

3 Update myExe project sources & properties, in order to use myStaticLib[edit]

Hereafter is an updated code in order main() to call myStaticLib function say_hello().
You also have to reference myStaticLib project inside myExe properties: C/C++ General > Paths and Symbols > References; as depicted hereafter.

Executable source & properties update

4 Preparing Debug Configuration[edit]

Your target must be Linux booted and network connected. Please, start Target Status widget on the bottom right and check for the green light. Remember that Linux console cannot be shared outside STM32CubeIDE: butterfly icon.

Target Status - green

Please also check How to set up proxy and P2P Ethernet connection with STM32CubeIDE if you are in that case.

5 Debug Configuration[edit]

Select your project, right-click Debug as... > Debug Configurations, then 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

6 Debug: stepping into myStaticLib[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 network with GDBServer,
User space static library debug
Info.png in case of error; please stop any GDBServer running on the target before launching a new debug session.

BackToNavigationTree button.png