07/12/2023 | News release | Distributed by Public on 07/12/2023 05:53
ST recently released important updates to its STM32 MCU Developer Zone and introduced a new STM32 MPU Developer Zone to reflect how developers approach their applications. The Developer Zone improves the overall accessibility of the STM32Cube ecosystem and fulfills a new role as an essential hub for the STM32 community and as a starting point before teams use other tools like the STM32 Finder mobile application or STM32CubeIDE and STM32CubeMX. Since nearly all projects relying on STM32 use one or more of these tools, it was critical to improve how they interact and inform one another to serve our community better as it faces the challenges inherent to product development and project management, regardless of their role and experience.
The biggest novelty in the latest version of STM32CubeIDE is its better 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 have 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 simpler, and to help users further, we are also publishing an application note to guide them in the process.
Although not new in STM32CubeIDE 1.13.0, we are taking advantage of this blog post to first talk about project-less debugging, which provides the ability to debug .ELF files without having to spend hours setting up or porting a project into the STM32CubeIDE format. Indeed, 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 greatest 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 prefer 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.
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 will continue to work with IAR, Keil, and others to ensure that they offer an exceptional experience to their users. STM32CubeIDE is a highly meaningful initiative because it provides a free and uniquely feature-rich environment to enthusiasts and professionals. STM32CubeIDE offers multiple 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, 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 needs change or teams realize they must make adjustments, updating a project 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:
When it comes to 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. The editor also provides an autocomplete feature (keyboard shortcut CTRL+Space), which exposes functions and their parameters for smoother development. For instance, users can just click on a function to call it into the text editor instead of memorizing it or constantly looking at reference documentation.
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. As an example, flashing the internal flash if there are no code changes with respect to the external flash can lead to tremendous time savings. The debugger also features support for Serial Wire Viewer event-based tracing, thus allowing valuable run-time analysis and profiling. There is also support for RTOS tracing of both Azure RTOS ThreadX and FreeRTOS with full multi-thread stack traces and kernel event object visualization.
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 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.
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. For instance, the current page advertises CMake support and the new STM32H5. It's also a place to bring older features to remembrance, such as the Azure RTOS TraceX export mechanism. 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 on the way. 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.
The new version of STM32CubeMX introduces the Memory Management Tool, a graphical user interface that vastly facilitates the configuration of registers on STM32H5 and STM32U5 devices. Thanks to the new utility, setting a device to use TrustZone, a secure environment, or a memory protection unit is only a matter of a few clicks. Previously, developers had to figure out which registers governed what function. The new MMT removes a lot of the complexity to create a far more intuitive experience. We will continue to bring the MMT to other STM32 devices, with support for the STM32 H7 dual core coming by the end of this year.
The new release of STM32CubeMX also brings a new Boot Path Manager that facilitates the configuration of the new boot loader available on the STM32H5. The new mainstream MCU from ST supports an immutable root of trust (iRoT) and an updatable root of trust (uRoT). Developers can choose to use both, one, or none, depending on their security needs. STM32CubeMX makes this possible by helping users select their configuration from a menu, automatically generate the keys, and set up the boot path to secure the microcontroller. As STM32H5 development boards are increasingly available, we ensure that STM32CubeMX can help them take advantage of the new features.
Secure Manager is another critical feature announced in early 2023 that is now possible to use, thanks to the new version of STM32CubeMX. Secure Manager is our first Trusted Execution Environment. As part of the STM32 Trust initiative, it includes binaries and can help with certification at the system level. As a result, customers targeting a SESIL & PSA Level 3 Certification can vastly hasten their qualification process. In a nutshell, developers use STM32CubeMX to set up all the functionalities in Secure Manager, and the system then uses a scripting mechanism relying on the latest version of STM32CubeProgrammer CLI to configure the MCU.
ST also added pre- and post-flight scripting capabilities to automate various tasks. Put simply, users can ask STM32CubeMX to launch scripts before and after it performs a code generation to tailor to power users. For instance, a programmer could automatically copy files to a new folder or send them to GitHub before they are erased by the new files generated by the system. It would enable engineers to keep a history of their configuration in case they'd like to revert to a previous state. Similarly, a post-flight script could add the newly generated files to a project and launch an IDE.
Users familiar with STM32CubeMX will now notice that the software is requiring them to log in to their my.ST.com account before downloading a package. While users always had to enter their credentials when downloading a piece of software from ST.com, the new version slightly tweaks the experience so everything happens within the software for better cohesion. It's still possible to use STM32CubeMX without an account. However, by asking for a login and password, like on the website itself but from the software, users enjoy a more cohesive experience.
STM32CubeMX is a graphical tool that helps developers generate code that initializes a microcontroller and its application. Users get an interface to configure the MCU's pinout and resolve conflicts, as well as set up hardware peripherals and middleware. Users can also configure the clock tree and benefit from a wizard that automates specific calculations. Similarly, another utility sets up and tunes the DDR on STM32 MPUs. The tool also helps select MCUs or MPUs and download their software packages. Hence, it's very often the first point of contact with developers. The tool is available in STM32CubeIDE or as a standalone download.
STM32CubeMX also assists developers in other parts of their job. For instance, finding the right documentation can be tricky, especially with such a vast library. ST is famous for its extensive documentation, and partners tell us that it's one of the reasons they select our devices. Hence, we offer tutorial videos within the standalone version of STM32CubeMX to help developers search for information. We offer content on how to configure the clock tree, the pins, or different software features, for instance. Programmers who are new to our tools can thus start their application quicker, thus further lowering the barrier to entry and reducing friction.
Developers often use the standalone version of STM32CubeMX to select and initialize an STM32 microcontroller when working with an IDE from Keil or IAR, to name a few. One of our goals is thus to improve the search feature available in STM32CubeMX to help those who don't use STM32CubeIDE. We will also continue to ensure developers find additional X-CUBE and I-CUBE packages from the utility. Therefore, developers rely on STM32CubeMX to get all the middleware, header files, and other code they need without having to leave STM32CubeMX. Additionally, we keep adding example projects to jumpstart workflows. Users can thus get a complete configuration for a board or a device to start writing code faster.
Not everyone working with STM32 necessarily writes code or designs a PCB. For instance, a manager may plan for a project, or a decision-maker may want to know a component's specifications. In such a situation, having to download STM32CubeIDE or STM32CubeMX standalone would be cumbersome. As a result, we created STM32 Finder, ST's mobile application for smartphones and tablets. The tool includes an extensive search feature to find a device or a related development board rapidly. Users also get to download various documentation or rapidly access social media channels and community forums.
To improve the user experience, ST made STM32 Finder faster and added features for power users. The former came from overhauling the mobile version. By optimizing its code, we increased response times significantly. We are also adopting a responsive design to allow users to compare many devices at once, regardless of the display size. ST also changed the app's update system to only download changes to the database rather than an entirely new one. Hence, updates are more frequent and take far less time to install to ensure searches are up to date. The latest version also includes new links to various online outlets to find partners, ask questions, or learn what's new.
ST also reworked the search feature to make it vastly more customizable. For instance, users can now distinguish between packages. As a result, they can see how various models may influence thermal performance or prices, among other things. The application can also group categories of specifications. For example, users can search for a device by grouping UART, LPUART, and USART together. Hence, finding a device's total number of peripherals can help answer specific questions without digging into the datasheet. Developers could also use the new grouping system to search for devices with SPI and USART since the latter also serves as an SPI.
Increasingly, new markets are adopting embedded systems, and engineers must familiarize themselves with complex concepts. For instance, developers may need to quickly learn how to take advantage of AI on a microcontroller, write a low-power wireless application designed for harsh environments, or implement strong security safeguards to meet new regulatory requirements. It was thus important for ST to help teams make the right choices for their products faster. The STM32 MCU Developer Zone is already playing a significant role in our community and is ranked as the number one page on ST.com in customer satisfaction. It was thus normal to use this platform to serve STM32 developers better.
[Link]STM32 MCU Developer ZoneConsequently, while keeping the original spirit that made the Developer Zone successful, we felt it would help our community further by providing a new STM32 MPU Developer Zone. Additionally, we worked on a new application-based approach to complement the existing product or software selectors for tools like STM32CubeIDE. We also have a "Solutions" tab with sections on GUIs, motor controls, USB-C Power Delivery, and more, while "Developer Resources" will guide newcomers and experts alike by pointing them to relevant technical documentation. The website thus remains a quick way to find the right development board and software tools while guiding new engineers as they take their first steps.
[Link]The solutions in the STM32 MCU Developer ZoneIn our effort to reach more STM32 developers, we are thrilled to have launched the Chinese and Japanese versions of the STM32 MCU and MPU Developer Zone. The new sites became public in 202 and provide feature parity with the English site, thus offering a strong platform for our communities in Asia. Indeed, beyond simply translating the landing pages, we are making technical documentation available in those languages, such as our white paper on security. In a nutshell, the localized versions of the Developer Zone are another testament to our desire to reach engineers where they are and work with regions by providing solutions tailored to their needs and markets.
The STM32 Developer Zone will continue to receive frequent updates. For instance, we are working on releasing other solutions for the STM32U5 besides AzureRTOS in STM32CubeU5. Similarly, the STM32 Developer Zone will also promote an official Visual Studio Code extension. Developers will be able to flash their devices, track variables, and get error messages within their environment, thus vastly simplifying their workflow. Finally, the STM32 Developer Zone will also receive updates featuring software for the newly announced STM32H5 and for the new STLINK-V3PWR, which both launched at this year's STM32 Innovation Live.
Launched in mid-2014, the STM32Cube brand designates our solutions to help developers design products and applications. The software ecosystem relies on two pillars: embedded packages and software tools. There are two types of STM32Cube Packages: MCU Packages and Expansion Packages. The MCU Packages (STM32CubeF4, for instance) contain drivers, low-level APIs, and demo and example codes for Nucleo and Discovery boards. The STM32Cube Expansion Packages complement the MCU Packages by offering additional middleware or drivers, as we recently saw with X-CUBE-AI, the first package in the industry to enable the conversion of a neural network into the optimized code for STM32 MCUs.
The STM32Cube software tools for PCs assist in the design of applications. This blog post focuses on STM32CubeIDE, STM32CubeMX, and STM32 Finder, because they are often at the core of product development. It is common to hear partners say they rely on one of them or more for their project. And many of our tutorials use them to make our technologies more accessible. However, there are many other STM32Cube software tools. For instance, STM32CubeMonUCPD is a monitoring tool that works with all our USB-C PD interfaces and libraries to facilitate testing and implementation operations. And STM32CubeProgrammer is a programming tool that makes STM32 MCUs more accessible and efficient.
Over time, STM32CubeIDE will integrate other STM32Cube software tools. We will share more details as they become available, but, in the meantime, developers have the assurance that the toolchain will become a one-stop-shop for all their STM32Cube needs. Just as with STM32CubeMX, we will continue to release standalone versions of our STM32Cube tools for the developers that use other toolchains, ensuring that anyone can easily benefit from our STM32Cube ecosystem, whether engineers are looking for packages or software utilities. Our engineers and researchers will also be using STM32CubeIDE to improve it further.
Up to now, developers that wanted to use a STM32Cube expansion package had to find the right one, download it, and unpack it. That meant adding source files to an IDE or even exploring its source code. Additionally, porting it from one MCU to the next isn't always straightforward if an application uses specific pins or IPs. It may also be imperative to install drivers, libraries, or middleware. Until now, ST offered documentation and tutorials to help developers. When there were only a few expansion packages, things were much more straightforward. Now that the STM32Cube ecosystem is so large, frictions can significantly increase.
The solution comes from the integration of STM32Cube expansion packages within STM32CubeMX. Put simply, developers can select an X-CUBE package straight from the MCU configuration tool. It required that we update existing packages, and a list of compatible solutions is available. We will also continue to ensure that most upcoming STM32 expansion package from ST support this feature. By integrating these software packs within STM32CubeMX, users select the package, generate the files, and start coding. As a result, it lowers the barrier to entry for developers less familiar with our ecosystem.
Another issue that developers may encounter pertains to the ability to share their custom solutions. It is common for a company with specific needs to create its expansion package. Partners may also want to offer solutions to the community. For instance, we talked about embOS from Segger and Unison RTOS from Rowebots on the blog, but there are many others. These solutions, found under the I-CUBE initiative, help engineers add features and experiment with various technologies. However, sharing a custom package within a company or the community is not always obvious or easy. Hence, we wanted to help partners more easily create highly sharable packages.
To remedy this particular point of friction, ST is opening STM32CubeMX to I-CUBE packages. Put simply, the same integration we bring to our STM32 expansions (X-CUBE) is now available to all developers. Anyone can now create a package using STM32CubePackCreator to create a solution that can appear within STM32CubeMX. However, we'll curate what's visible by default within the MCU configurator tool. We offer documentation to guide developers in this process to ensure uniformity and compatibility within the STM32Cube Ecosystem. We are also offering STM32PackCreator. The utility, found within STM32CubeMX, facilitates the creation of a software package from scratch.
An expansion software observes the CMSIS-Pack (Cortex Microcontroller Software Interface Standard). Many will also be configurable within STM32CubeMX's GUI. To abide by the CMSIS-Pack specifications, developers must include a PDSC (Pack Description) file. Such a document uses XML and demands precise, specific, and detailed information on all the pack's content. Similarly, to make the X-CUBE or I-CUBE configurable within STM32CubeMX, STM32PackCreator uses a specific UI. It opens the door to a system that puts a wealth of options at a user's fingertips. Developers no longer have to configure everything manually by writing code. Put simply, STM32PackCreator removes friction by automatically generating the PDSC file. It also ensures the software components are configurable within STM32CubeMX.