STM32CubeIDE errata 2.1.x

1. Warning

STM32CubeIDE uses gdbserver to connect to the target. Be aware that gdbserver does not have any built-in security. Do not run gdbserver connected to any public network. A GDB connection to gdbserver provides access to the target system with the same privileges as the user running gdbserver.

2. Limitations

ID Summary
133183 Unable to debug using FreeRTOS aware with a J-LINK Ultra+ in STM32CubeIDE 1.10.1.
138771 To start debugging in the NS zone when the product status is TZ-Closed for the STM32H5 using ST-Link GDBServer, add the following script to "Run Commands" in the debugging configuration.

set breakpoint always-inserted on

tbreak Reset_Handler

monitor reset

set breakpoint always-inserted off

si

For the "Reset & Restart" button to work:
  • Add the same script.
  • Select "None" as the type.
143485 Post-build commands are restored by using one of the following two options:
  • Restore the post-build command by applying a code generation.
  • Change the default behavior of the command "restore Defaults".
146043 On STM32H745 Cortex-M4 dual-core projects, the predefined breakpoint is maintained but not caught upon run.
152549 From GCC11, the build can be in error with some functions:

_close, fstat, _getpid, _isatty, _kill, _lseek, _open, _read, _write, _gettimeofday

This is due to the state definition using the system information. In main.c, add the following to address the issue:

__attribute__((weak)) void _close(void) {}

__attribute__((weak)) void _lseek(void) {}

__attribute__((weak)) void _read(void) {}

__attribute__((weak)) void _write(void) {}

166245 When using the STM32CubeMP13 bare-metal firmware and activating Azure® RTOS ThreadX, the STM32CubeIDE linker file must contain the following section to avoid compilation issues:

.stack  :

{

_stack_bottom = ABSOLUTE(.);

/* Allocate room for stack. This must be big enough for the IRQ, FIQ, and SYS stack if nested interrupts are enabled.*/

. = ALIGN(8);

. += 32768;

_sp = . - 16;

_stack_top = ABSOLUTE(.);

} >RAM

_end = .;

171852 The implemented toolchain allocates to an enum type only as many bytes as needed for the declared range of possible values.
174727 STM32CubeIDE cannot build the project automatically after changing the IP configuration. It cannot automatically control this configuration. The user must increase flash memory size manually when needed, depending on the configuration.
189888

213181

The "connect under reset" connection mode is not supported on STM32WB05, STM32WB09, STM32WL30, STM32WL31, and STM32WL33 microcontrollers. A hardware reset pulse is applied to connect and debug.
192219 For Cortex-M55 (like STM32N6), GCC12 and earlier versions detect warnings using when OFast and O3 optimizations level.

Workaround:

  • Install and build with GCC13 available through update site mechanism.
  • Compile without MVE extension, which can be done by passing argument "-mcpu=cortex-m55+nomve", in Settings > GCC compiler > Miscellaneous.
207895 When importing a project from STM32CubeMX to STM32CubeIDE while using macOS or Ubuntu, a pop-up message or failure can appear.
213261 For STM32WBA65I-DK, incremental flashing is not supported for external flash. Flashing is performed according to the legacy mode.
221619 While debugging STM32H7S78-DK and NUCLEO-H7S3L8 using OpenOCD, a failure can occur when reading memory. This does not block debugging.
221790/221794

221795/221798

221799/221803

221805/221816

221817/221820

228025

If GCC14 is used as the toolchain within STM32CubeIDE, some examples might have errors and warnings in compilation for the following families: STM32G0, STM32H5, STM32H7/H7RS, STM32N6, STM32WB/WB0, STM32WBA, STM32WL/WL3. To work around these errors GCC13 should be set as a default toolchain:

- Go to Window > preferences > STM32Cube > Toolchain manager- Once all GCC are listed, select GCC13.3.rel1 then click on install button the follow the update site installation steps

221438 Cmake projects are not supported for MPx product.
226196 After installing STM32CubeIDE on Fedora 43 using .rpm_bunle.sh installer, STM32CubeIDE must be started from its installation folder (/opt/st) in command line with sudo mode. This is mandatory to ensure that all build and debug operations are working as expected.
227546 For Cortex-M0, M0+, M33, and M55, core reset mode is not supported in STM32CubeIDE debug configuration.
227652 While debugging an RTOS project with rtos-proxy 0.18.0, the call stack displays only the active thread instead of all started threads.

3. Fixed issues

ID Summary
215781 The PXN field is missing when inspecting the MPU_RLAR_* registers in the system/peripheral register view in STM32CubeIDE for STM32N657X0HxQ.
215689 When changing variables from live expression and other areas during debugging, the error message "Failed to read all registers from target" appears.
215788 For Cortex-M55, the system/peripheral register view displays only the nonsecure MPU registers, such as MPU_TYPE_NS, which are defined with a 0x20000 offset and the _NS suffix in the SVD file.

When debugging in the secure context, these nonsecure MPU registers always display a value of 0 in STM32CubeIDE, making them unusable for secure debugging.

220120 If a disruption occurs during debugging, the user can modify the optimization level in the starm-clang.cmake toolchain file, which is located under ImportedCmakeProjectName/cmake/starm-clang.cmake.

Set the following flags:

  • set(CMAKE_C_FLAGS_DEBUG "-Og -g3")
  • set(CMAKE_C_FLAGS_RELEASE "-Oz -g0")
  • set(CMAKE_CXX_FLAGS_DEBUG "-Og -g3")
  • set(CMAKE_CXX_FLAGS_RELEASE "-Oz -g0")
222685 After importing a project, the interface might remain on the information center. This issue is observed in all types of projects except empty projects.
223135 When adding a linker folder to a project in STM32CubeIDE, avoid using path variables in the linked folder location, especially WORKSPACE_LOC and ECLIPSE_HOME. Otherwise, the linked folder is deleted after updating the project in STM32CubeMX by performing a new generate code operation on the same project.

Edit the linked folder location in STM32CubeIDE by using the absolute path of the linked folder instead of path variables before starting a new generate code operation in STM32CubeMX on the same project. To do this, follow these steps:

  1. In STM32CubeIDE, right-click the linked folder, select Properties, then Resource, and click the Edit button in the Location section. The Edit Link Location dialog appears.
  2. Click the Folder button in the dialog, browse to the absolute path of the linked folder, and press OK. Verify that the Location field contains the absolute path of the linked folder.
  3. Press Apply and Close to save the edit location operation.

4. Known issues

The known issues are split into general, STM32CubeCLT, OS-specific, and target-specific issues.

4.1. General issues

ID Summary
59435 Having a space or a non-ASCII character in the project or workspace path, or installation path, is not fully supported
68184 Hierarchical projects cannot be imported with the option Copy into workspace.
68440 Hierarchical projects cannot be renamed.
72498 To debug an STM32CubeIDE Make file Project, modify the build settings: right click on the imported project >properties >C/C++ Build > MCU settings > select the requested MCU and apply.
89454 Restart configuration works only for flash memory projects, not for RAM projects. The program counter register is not set correctly. Manual workaround: In Restart configuration, manually set the program counter to the ResetHandler() in RAM: set $pc = 0x20000xxx.
115928 Editing live expressions while target is running does not work with SEGGER J-Link.
124062 152549 GCC-10 is stricter regarding the declaration of global variables in header files. Read the GCC-10 porting guide; many warnings and errors result.
133183 STM32CubeIDE cannot debug using FreeRTOS-aware debugging with J-LINK.

Work-arounds, if: Reset strategy == Connect under reset, requires Initialization commands:

info threads

info threads

thread 2

Work-arounds, if: Reset strategy == None (attach mode), requires Initialization commands:

info threads

info threads

thread 2

stepi

156812 Missing string table in Build Analyzer when displaying the byte size of the .rodata section.
159507 Issues detected when updating STM32CubeIDE version from 1.9.0 to 1.13.1.

It is recommended to reinstall from scratch use the 1.13.1 version and use the old workspace.

162500 After programming a device in Run mode, STM32CubeIDE opens a new tab with the startup file and gives focus to that tab every time.
170279 Failure to compile embOS due to missing stack variable. A new section defining _stack_start__ and __stack_end__ must be added to the linker file when required by ThreadX.
183033 The restore default build configuration feature removes the build commands.
190493 When exporting a project, already imported, built and exported as Zip file, into different workspace, an error will occur while building it. The following workaround can be applied:
  • "Import -> Projects from Folder or Archive".
191504 The Reset chip and restart debug session button does not work as expected when debugging with STM32CubeIDE the Nucleo-N657X0-Q board. It should reset the debug stack to the main function. Issue can be avoided by adding the "load" command in "Additional commands" in Restart configurations.
199067 In STM32CubeIDE 1.17.0,  Hex files are not generated, setting a post build command:

arm-none-eabi-objcopy -O ihex "project_name.elf" "project_name.hex" is required.

200233 Compilation error when using toolchain GCC 12.3 with STM32CubeIDE 1.14.1.

As Workaround, GCC12 can be downloaded and load it from local by setting the toolchain

  • Name: GCC12
  • Prefix: arm-none-eabi-
  • Location: C:\ST\STM32CubeIDE_XXX\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_xxx\tools\bin
209826 if GCC’s fallthrough attribute are used they will be flagged as error.
213509 If a file is added by the user named main.c it would generate a build fail in the project. Such file naming should be avoided and replaced with mainUser.c for example.
220043 To be able to display data in “Static Stack Analyser” view for Cmake projects (with GCC or starm-clang), the user needs to add the compilation flags “-fstack-usage” in the toolchain file located under:
  • For GCC: ImportedCmakeProjectName/cmake/gcc-arm-none-eabi.cmake
  • For starm-clang: ImportedCmakeProjectName/cmake/starm-clang.cmake

Example: set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fdata-sections -fstack-usage -ffunction-sections")

To be able to display data in “Cyclomatic Complexity” view for Cmake projects with GCC toolchain, the user needs to add the compilation flags “-fcyclomatic-complexity”in the toolchain file located under:

  • For GCC: ImportedCmakeProjectName/cmake/gcc-arm-none-eabi.cmake

Example: set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fdata-sections -fstack-usage -fcyclomatic-complexity -ffunction-sections")

As for Cyclomatic Complexity view is not working for now for CMake with starm-clang toolchain because the flag “-fcyclomatic-complexity” is not yet recognized by st-arm clang.

220348 Debug is not possible with "Release" build type CMAKE_BUILD_TYPE=Release since the 'Release' mode is defined as '-Oz' in starm-clang.cmake using the LLVM Toolchain. In this case the release flag needs to be updated in the toolchain file.
220942 When importing an existing Cmake project with multicontext, the build operation will output all elf files (Secure, non-secure, other contexts...), so when starting a debug session on the root project (including all contexts), the user should select what elf file to debug (what is the project, secure or not secure or other because STM32CubeIDE cannot decide what is the application that user wants to debug.
221076 If GCC 14 toolchain is used, the startup assembly file may not be well formed, a quick fix is to declare symbols LoopCopyDataInit and LoopFillZerobss as functions.

Workaround:

  • .type LoopCopyDataInit, %function
  • .type LoopFillZerobss, %function
221275 After Importing project generated by STM32CubeMX [Using U385 TZ=1] in STM32CubeIDE and building it using UnixMakefiles, the build might finish unexpectedly if the following change is implemented: change Ninja" as the generator --> CMake Configure --> Delete and Reconfigure.
221435 Creating a CMake project with the static library Template, project generated incorrectly and compilation would fail, source files must be created.
221611 For STM32N6 family and if debug with semihosting feature is required the following needs to be added in the debug configuration startup tab in order to enable step Over and step into:

Workaround:

  • Right click on the project > debug as > debug configuration > double click on STM32 C/C++ Application > a new debug Configuration Tap will open startup > Initialization Commands >mon gdb_breakpoint_override hard
221739 Using Ubuntu 22.04 or MacOS 15, opening the .ioc file of the imported STM32CubeMX project might fail. In this case:
  • The default editor for .ioc needs to be defined:
  • Window > Preferences > General > Editors > File Associations, Add *.ioc and define STM32CubeMX as default editor or the ioc > Open with ... > Other >External Programs > Browse ... > select the STM32CubeMX > check the checkbox "Use it for all *.ioc files" if the same MX version could be used to open all ioc
221864 While using LLVM as toolchain, Static stack analyser view may not have any output unless "-fstack-usage" in compliation flags is added manually in toolchain file.

For Cyclomatic view and while using Cmake +GCC, the flag "-fcyclomatic-complexity" in the compilation flags needs to be added in GCC toolchain file. Cyclomatic view however is not supported while using LLVM.

227450 In versions of ST Arm Clang up to 21.1.1+st.6 (included), when using Picolibc as the C library and printing a floating-point value with a function of the printf family, the linker picks up the wrong implementation of printf if the `l` length specifier isn't used in at least one floating-point format, causing the printed value to be incorrect (0.000000 in most cases).

The following workaround can be used:

  • Add the `l` length specifier to at least one floating-point format in your code (e.g. `%f` -> `%lf`)

Disable the automatic selection of a lesser printf variant by adding `-Wl,--no-auto-printf-variant-selection` to the linker flags in cmake/starm-clang.cmake.

4.2. STM32CubeCLT issues

ID Summary
214938 For MacOs install, no paths for "CLANG_GCC_CMSIS_COMPILER" and GCC_TOOLCHAIN_ROOT.

Workaround:

  • Open terminal
  • Then source the file /etc/profile
  • Then re do the echo command on these two variables but we must use the same terminal

4.3. OS-specific issues

4.3.1. Linux®

ID Summary
175176 Using the generic Linux installer, the libncurses must be installed manually. Usage rpm_bundle.sh instead of deb_bundle.sh is recommended.

4.4. Target-specific issues

4.4.1. STM32H7

ID Summary
73552 Serial Wire Viewer configuration is not reset for STM32H7 devices on the next launch if it was terminated with record active when using ST-LINK GDB server.
79658 ST-LINK GDB server reports being suspended on address: 0x05F0001 when debugging STM32H7 dual-core devices and the core under debug goes to sleep.
81763 OpenOCD does not support debugging STM32H7 dual-core devices when the core under debug goes to sleep.
175966 For H7RS project on Ubuntu with ExtMemLoader context configured, Postbuild commands cannot be passed successfully when STM32CubeIDE is installed with sudo.

Workarounds:

  • Installing STM32CubeIDE on Ubuntu but without sudo. (add execute permission to the installer then install it without sudo permissions).
  • If STM32CubeIDE was installed with sudo permission, postbuild command needs to be performed manually by passing the sudo permission first in command line.
206638 While using GCC13 in STM32CubeIDE 1.17.0 or 1.18.0, errors or warnings can be encountered while importing some projects. GCC12 usage is recommended in this scenario.

4.4.2. STM32L0

ID Summary
201878 Errors will appear when building the imported project ADC_DMA_Transfer for NUCLEO-L010RB.

Workaround:

syscall.c file needs to be added to the project.

4.4.3. STM32MP1

ID Summary
73895 Debugging in production mode requires a network connection. If STM32CubeIDE is configured to use a network proxy, then the IP address of the STM32MP1 board needs to be added to the "Proxy bypass" list.
73896 The synchronization check between the IP-address entered in launch configuration and the IP-address of the target does not abort the launch in case of mismatch.
212122 For STM32MP135F-DK (Bare Metal) and while enabling FreeRTOS CMSIS_V2 and to avoid build errors, the RAM alias to DDR_BASE region needs to be assigned.

Workaround:

  • Open linker file STM32MP135FAFX_RAM.ld
  • Assign the RAM alias to DDR_BASE region by editing this line:REGION_ALIAS("RAM", SYSRAM_BASE); ==To ==> REGION_ALIAS("RAM", DDR_BASE);

4.4.4. STM32N6

ID Summary
192219 GCC12 and earlier versions detect warning using OFast and O3 optimizations level.

Workaround:

  • Use the default compiler (GCC14) or install GCC13 available through update site mechanism.
  • Compile without MVE extension, which can be done by passing argument "-mcpu=cortex-m55+nomve", in Settings > GCC compiler > Miscellaneous.
208549 If we use the “XSPI_PSRAM_MemoryMapped” example or any similar application, data stored in the external memory could not be viewed by the memory view in STM32CubeIDE.
208579 In order to read data stored in external memory map mode for STM32N6 family, memory view can be used with Hex rendering: in memory view, check the three dots then Table rendering preferences then switch from Automatic to Manual.
210446 If the Application context contains any break point even if it is disabled, the debug session will not start.

Workaround:

  • Any break point needs to be added while debugging and after the execution of this instruction “retr = MapMemory();
  • This is why we set the breakpoint at JumpToApplication instead of main in the startup configuration.

4.4.5. STM32WB0

ID Summary
180379 A false error could be detected on some BLE applications when is included some binary libraries.

The error should be: “missing .note.GNU-stack section implies executable stack” or “NOTE: This behaviour is deprecated and will be removed in a future version of the linker”

Workaround:

  • Use the linker option: -z noexecstack
  • More information: https://lists.gnu.org/archive/html/info-gnu/2022-08/msg00002.html
183143 An Error seems to be found once the ThreadX Option is activated for WB05/WB07/WB09.
189888 For STM32WB0x devices the connection Under Reset type is not supported.

5. Upgrades

ID Summary
BusyBox 1.31.0.st_20240131-1810
Eclipse and CDT Eclipse 2024-09

CDT 11.6.1

GCC binaries 14.3.rel1.20251027-0700
JRE Adoptium® Temurin™ 21.0.9+10 and JavaFX 21.0.9
Make 4.4.1_st_20231030-1220
CMake 3.28.1
Ninja 1.11.1
OpenOCD 0.12.0+dev-00645-g2306f32ee
RTOS Proxy 0.18.0
SEGGER J-Link 9.14a
STARM-Clang 21.1.1
ST-LINKGDBServer 7.13.0
STLink Server 2.1.2-1 (for MacOS installations)

2.1.1-2 (for others OS)

STM32CubeProgrammer 2.22.0

If you have any questions or requests concerning this wiki, or if you see any pages with mistakes, report them using ST Support Center or ST Community MCU Forum.

All rights reserved © 2026 STMicroelectronics