Update: December 3, 2020
ST is launching today a new version of STM32CubeIDE that further expands the STM32Cube Ecosystem. This latest release now supports FreeRTOS thread-aware debugging. Developers thus can isolate tasks, which makes it easier to pinpoint the source of a bug. Traditionally, when engineers start debugging their FreeRTOS application, the IDE halts the program. As a result, the system becomes idle, often clearing registers and resetting variables or call stacks in the process. Finding what’s wrong with a piece of code is, therefore, quite challenging. With thread awareness, it’s possible to show all the tasks the RTOS is running, even if the system halted them, which means that developers can monitor register values or call stacks, among other things.
The new version of STM32CubeIDE is also symbolic because it contains all the significant features previously found on Atollic TrueStudio. The ST IDE with STM32CubeMX built-in was the fruit of our Atollic acquisition in 2017. However, when we released STM32CubeIDE in 2019, we didn’t simply reuse the existing software. We weren’t interested in merely slapping a new coat of paint and adding new logos. Instead, we released an IDE that reflected our desire to build a more integrated STM32Cube Ecosystem. It led us to offer a new approach to programming with the inclusion of STM32CubeMX. With the latest release of our IDE, our community can now take advantage of all the features they used before the acquisition while also benefitting from our comprehensive approach that is shaping the STM32Cube Ecosystem.
Original Text: September 21, 2020
To improve the accessibility of our content, please find the audio version of this blog post.
We recently updated our STM32Cube ecosystem to offer STM32Cube expansion packages within STM32CubeMX. Among other things, we are also offering new tutorial videos from inside the configuration tool. The goal is to make the entire ecosystem more practical. Developers can start to work with expansion packages earlier, and the system scales more easily. Developers can apply the expansion package of their choice to jumpstart their projects. We are also launching STM32PackCreator to help teams bundle their custom STM32Cube packages. Hence, they can more easily share their solution with the rest of their company or even the STM32 community.
On-Demand Webinar: Watch our latest webinar on the new STM32Cube Ecosystem
STM32Cube Ecosystem: Growing Without Bloating
The STM32Cube ecosystem currently includes a variety of solutions. STM32CubeMX 6.0 is an MCU configuration tool. STM32CubeIDE is the first IDE to integrate STM32CubeMX to hasten developments. STM32CubeProgrammer assists developers flashing their MCU, debugs their code, or takes advantage of cryptographic features, among other things. Finally, STM32CubeMonitor enables developers to watch their MCU perform in real-time. Each microcontroller series has its STM32Cube MCU package that contains drivers, middleware, application examples, and source code. Additionally, STM32Cube expansion packages from ST (X-CUBE) bundle significant features like sensor management, or a Bluetooth layer, to facilitate their integration. Our partners can also offer their packages, which we denote by the prefix I-CUBE.
The challenge for a developer is to juggle all these tools at once. Some of them, like STM32CubeProgrammer or STM32CubeMonitor, have specific purposes. Engineers thus use them often independently from the rest of the ecosystem when they need to perform particular tasks. However, others depend on one another. A project usually starts in STM32CubeMX, which generates initialization source code and header files. Until now, these files had to go to an IDE before programmers selected relevant STM32Cube expansion packages. They would then find the relevant X-CUBE or I-CUBE, download it and unzip it. They would then add it to their project, write their app, then compile, and debug. Moreover, as projects change, teams may also decide to go back to STM32CubeMX to change settings.
Engineers may thus experience two points of friction. They may have a hard time finding and integrating the expansion packages they need. They may then have problems creating what they want. The latest updates to the ecosystem are answers that address these two issues.
STM32CUBE Ecosystem: More Intuitive Thanks to New Integrations
Integration of X-CUBE Packages Within STM32CubeMX
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, if an application uses specific pins or IPs, porting it from one MCU to the next isn’t always straightforward. 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 now 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 work to ensure that most of the upcoming STM32 expansion packages from ST will support this feature. By integrating these software packs within STM32CubeMX, users just 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.
Integration of Videos Within STM32CubeMX
Finding documentation can also be a source of friction. Developers know that scanning websites for literature is par for the course. ST is famous for its extensive documentation, and partners tell us that it’s one of the reasons they select our devices. Yet, we updated the STM32Cube ecosystem to transform the users’ first interactions. By integrating tutorial videos within STM32CubeMX, developers get a more intuitive first look into our tools and products. We will offer videos on how to configure the clock tree, the pins, or different software features, for instance. The list of videos is growing. Hence, programmers who are new to our tools can start their application quicker. It is, therefore, another solution to lower the barrier to entry and reduce friction.
STM32CUBE Ecosystem: More Openness Thanks to a New Package Creation Workflow
A Better Exposure
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, and 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. Partners that have I-CUBE packages on our website benefit a lot from this exposure. Nevertheless, we wanted to help other users more easily create highly sharable packages.
STM32CubePackCreator to More Easily Create Expansion 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 that they can add to STM32CubeMX. However, we will continue to 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 pack 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 has 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.