STM32CubeIDE 1.14.0 remains the best entry point to the STM32Cube ecosystem for teams looking for a free IDE that works intimately with the rest of the STM32Cube ecosystem. The new version updates the Eclipse platform it runs on, enabling developers to take advantage of some of its latest features. ST also continues to create new projects dedicated to our IDE, meaning that opening an ST source code, integrating it into an application, and compiling everything is increasingly accessible, even to those with a more rudimentary knowledge of the STM32 world. Additionally, since STM32CubeIDE comes with STM32CubeMX, it rewards developers with greater efficiency.
What’s New in STM32CubeIDE 1.14.0?
New MCU support
Just like STM32CubeMX and STM32CubeProgrammer, STM32CubeIDE is also receiving support for the STM32CubeMP13 package that brings RTOS support to the STM32MP13 MPU. Consequently, developers will be able to create and flash bare metal firmware onto the microprocessor’s Cortex-A7. In fact, demo projects in the new software package are already set up for STM32CubeIDE (project files are in an eponymous folder under each application). Users can thus rapidly import the source code to start creating a program or try a feature. Similarly, the free IDE is also receiving support for the STM32WBA54 and STM32WBA55 microcontrollers that we announced at the beginning of the year.
New GCC toolchain
The Toolchain Manager in STM32CubeIDE now supports the download of GCC 12. Too often, developers have to spend a lot of time installing a toolchain for their IDE to ensure everything runs properly. Some may even need to spend time in the documentation to figure out what flags to use or specific options to set up. The Toolchain Manager solves this by offering a UI that allows users to download and install a toolchain for STM32CubeIDE in just one click. This can be particularly interesting for developers evaluating which version works best for them. For instance, GCC 12 may offer greater safety but may generate larger binaries. Toolchain Manager thus encourages experimentation to help developers make the best decision.
What Is STM32CubeIDE?
An IDE
STM32CubeIDE is ST’s first integrated development environment, and it serves as a reference to developers working on STM32 microcontrollers. Many use a toolchain from a third-party vendor, and we work closely with IAR, Keil, and others to ensure they offer their users an exceptional experience. However, STM32CubeIDE enables us to offer a highly meaningful initiative because it provides enthusiasts and professionals with a free and feature-rich environment. The ST IDE offers flexible project formats, a toolchain selector, and advanced debug features. Moreover, the integration of tools like STM32CubeMX enables a more efficient workflow. STM32CubeIDE is available for Windows, macOS, and Linux, with a version specific for Debian/Ubuntu as well as Fedora, and a more general installer for other distributions.
One of the distinguishing features of STM32CubeIDE is that it comes with STM32CubeMX. Developers can use the latter to select their board or microcontroller and start a project after configuring the pinout and clock tree. As a result, users can far more easily switch from writing code to the configuration utility. If a project needs change or teams realize they must make adjustments, updating it becomes more straightforward. Moreover, besides the STM32CubeMX-based project types, which are ideal for prototyping and simple projects, STM32CubeIDE offers project formats that give users more control over their files and settings. Here are two examples:
- C or C++ Development Tool (CDT) managed projects. The format gives complete file control, but makefiles are auto-generated by the IDE.
- Makefile or CMake projects enable the user to manage both the makefile and all source code. Many choose this format because of its flexibility. It decouples the IDE from the build system, simplifying tool updates and making projects more portable, as one codebase can target multiple STM32 devices. However, it requires a more hands-on approach since the users don’t get the benefits of auto-generated makefiles.
A text editor
Regarding its text editor, STM32CubeIDE uses a system based on Eclipse. Developers can thus use Eclipse plugins to inspect their source code, find bugs, or manage teams using task management systems. As a result, developers get to use familiar tools, thus lowering the learning curve. As is traditional with text editors, STM32CubeIDE also includes a code-style formatting mechanism to increase readability. Additionally, the editor provides an autocomplete feature (keyboard shortcut CTRL+Space), which exposes functions and their parameters for smoother development. For instance, users can click on a function to call it into the text editor instead of memorizing it or constantly looking at reference documentation.
A debugger
The debugger in STM32CubeIDE supports single-core and multi-core devices. It can also manage TrustZone debug with full-stack unwinding and CTI-enabled (Cross Triggering Interface) breakpoint management. Relying on multiple debug configurations, the user can use different methods to launch debug sessions in various modes. For example, flashing only the internal flash when there are no code changes to the external flash can lead to tremendous time savings. The debugger also supports Serial Wire Viewer event-based tracing, thus allowing valuable run-time analysis and profiling. There is also support for RTOS tracing of Azure RTOS ThreadX and FreeRTOS with full multi-thread stack traces and kernel event object visualization.
Where Did STM32CubeIDE Come From?
Before STM32CubeIDE, developers used SW4STM32, a free version of System Workbench. It was popular among enthusiasts and campuses, such as the University of Michigan-Dearborn, that used the toolchain to write their driverless car application. STM32CubeIDE took over by supporting our microcontrollers and the STM32 MPUs but also offering STM32CubeMX. ST no longer supports SW4STM32, but the software is still available on OpenSTM32.org. For years, STM32CubeIDE has provided the ability to easily port projects from SW4STM32 to facilitate the transition to the new IDE. Consequently, the older solution is mostly used for legacy purposes.
One event that ultimately led to the arrival of STM32CubeIDE was ST’s acquisition of Atollic in 2017. The software company was famous for TrueSTUDIO, which helped many developers understand the inner workings of their applications. For instance, trace and profiling tools allowed users to trace data, events, memory history, and visualize variables in real-time, which was invaluable to grasping the code’s behavior without freezing its execution. After the acquisition, STM32CubeIDE got all these features and more. STM32CubeIDE also offered the ability to easily port projects from TrueSTUDIO to help users move from one to the other.
What are some of the historical features of STM32CubeIDE?
The first thing users notice is the Information Center, which houses multiple resources on STM32 development tools and hardware. For instance, reference manuals, user guides, and video tutorials are immediately available. Moreover, by featuring new functionalities and software in the Information Center, users can get further information on the latest updates faster. It’s also a place to bring older features to remembrance, such as the Azure RTOS TraceX export mechanism. In a nutshell, developers can export traces and analyze them in TraceX to hasten debugging operations.
STM32CubeIDE also aims to lower the learning curve for newcomers. For instance, there is a vast array of tutorial videos. Currently, most content focuses on the integrated development environment and STM32CubeMX, but more is coming. Once users click on a thumbnail, a link opens a browser window to YouTube. Developers starting an application around Bluetooth, GNSS, MEMS, NFC, and more can thus begin by first checking out the relevant video. Hence, the videos serve as a complement to the extensive user manual already available in STM32CubeIDE.
Better CMake intergration
One of the most prominent features of STM32CubeIDE is its integration with CMake, the open-source family of utilities designed to help developers build, test, and package their software. CMake is a popular tool amongst software engineers as it helps them build large multi-platform projects. Hence, many STM32CubeIDE users requested that we support CMake. The ST Community even had a step-by-step guide in 2020 that used an Eclipse plugin. Today, the new version of the free IDE makes things significantly more straightforward, and to help users further, we also published an application note to guide them in the process.
Project-less debug
Project-less debugging provides the ability to debug .ELF files without spending hours setting up or porting a project into the STM32CubeIDE format. Given the proliferation of text editors and multi-platform IDEs, it’s critical to adapt to developers rather than force them to use our tools. For instance, many companies allow software developers to use their preferred IDE, only requiring them to use a common build and compiler version. Moreover, ST has always adopted an agnostic approach to promote interoperability with the largest number of tools.
The challenge with IDE agnosticism is that no one can expect all third-party IDEs to support advanced STM32 debug capabilities. Consequently, some developers feel obliged to use a solution they may not favor simply because it lacks certain features. The project-less debug feature in STM32CubeIDE solves this issue. It allows the software developer to use any IDE or text editor, any build, and any compiler but rapidly open STM32CubeIDE to take advantage of specific debug features when needed. As a result, the ST IDE provides far greater flexibility and encourages STM32 developers to use what they are comfortable with rather than box them in a restricting environment.