This article explains how to create, build and debug a static library linked with a Linux® user space application for STM32 MPU.
1. Create a user space static library project[edit source]
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 User space project wizard shortcut](/stm32mpu/nsfr_img_auth.php/8/8d/UserSpaceShortCut.png)
Here, the Static Library project type, in C language, is selected.
Note that the user space project uses by default the SDK version associated to the Cortex®-A7 sub-project.
![User space project creation wizard User space project creation wizard](/stm32mpu/nsfr_img_auth.php/7/7c/CubeIDEUserSpaceStaticLibCreation.png)
2. Build[edit source]
- Select your project, right-click and then Build Project.
![Static Library Build Static Library Build](/stm32mpu/nsfr_img_auth.php/a/ae/CubeIDEUserSpaceStaticLibBuild.png)
3. Update myExe project sources and properties to use myStaticLib[edit source]
Hereafter is an updated code for main() to call myStaticLib function say_hello().
You must also reference myStaticLib project inside myExe properties: C/C++ General > Paths and Symbols > References as depicted below.
![Executable source & properties update Executable source & properties update](/stm32mpu/nsfr_img_auth.php/5/59/CubeIDEUserSpaceStaticLibExeBuild.png)
4. 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.
In order to check network connection, start the Target Status widget in the bottom right corner of the window.
![Target Status - green Target Status - green](/stm32mpu/nsfr_img_auth.php/2/2b/CubeIDE-UserSpace-Debug1.png)
Check also How to set up proxy and P2P Ethernet connection with STM32CubeIDE if you are in that case.
5. Set Debug Configuration[edit source]
Select your project, right-click Debug as... > Debug Configurations, then select STM32 Cortex-A Remote Application'.
![Debug configuration shortcut Debug configuration shortcut](/stm32mpu/nsfr_img_auth.php/2/27/CubeIDEUserSpaceDebugShortCut.png)
The default connection proposed is "MPU SSH", corresponding to the target IP address discovered by the Target Status widget. The default destination directory is /home/root.
![User space debug configuration - main tab User space debug configuration - main tab](/stm32mpu/nsfr_img_auth.php/e/ed/CubeIDEUserSpaceDebugMainTab.png)
6. Debug: stepping into myStaticLib[edit source]
Click Debug :
- Executable is downloaded to the target,
- GDBServer is launched on the target,
- GDBClient is launched on the workstation and can exchange via the network with GDBServer.
![User space static library debug User space static library debug](/stm32mpu/nsfr_img_auth.php/a/a9/CubeIDEUserSpaceStaticLibDebug.png)