We are launching today the STM32MP1, our first series of microprocessors (MPU). It’s also our first heterogeneous system architecture (HSA) as it combines one or two Cortex-A7 alongside a Cortex-M4, thus inaugurating the use of a Cortex-A in an STM32 product. It is a groundbreaking component because it enables developers to use the same software as STM32 MCUs and our popular development tools to work on real-time code while also creating applications for an open-source Linux environment that will run on the more powerful cores.
Building a gateway mixing high processing tasks on Linux and real-time applications with or without a graphical user interface is now easier than ever. Additionally, this launch testifies of our increasing commitment to the open-source Linux community with the availability of the OpenSTLinux Distribution, which uses open source software, and with software layers compatible with Android and other application frameworks.
The STM32MP1: An STM32 MPU with a One or Two Cortex-A7 and a Cortex-M4
Arm architectures are increasingly popular to the point of even encroaching on x86 territories. However, we didn’t have servers and PCs in mind when we built the STM32MP1, but IoT makers that want more than a microcontroller. Traditionally, embedded products use an MCU, which has the wonderful property of integrating the RAM, storage, and power management IC to dramatically simplify designs. When moving to a microprocessor, developers enjoy the significant bump in performance but must deal with widely different technical considerations. Programming for a Cortex-M4 that runs an RTOS (Real-Time Operating System) and for a Cortex-A7 that uses Linux are two very different things. Engineers must also work with additional components on the PCB. It was thus crucial for ST to offer solutions to both of these issues to make the transition from an MCU to an MPU as smooth and straightforward as possible.
Engineers familiar with embedded systems will enjoy the presence of an MCU, more precisely a Cortex-M4 with all its I/Os, hardware features, and software tools. It’s essential because it signifies that they don’t have to relearn everything but can rely on their current expertise in embedded systems for a large chunk of the creation process. They will also have more time to work on the Cortex-A7 side of the STM32MP1 and the fact that the component offers a graphics accelerator with OpenGL ES 2.0 interface, and a crypto-core for the models ending with the letter C. Hence, one of the STM32MP1’s biggest strength is our approach to its silicon design which marries an STM32 Cortex-M MCU with one or two Cortex-A7. As a result, engineers have three reasons to adopt the new part: flexibility, accessibility, and the STM32 ecosystem.
Reason 1: The Most Flexible MPU with an STM32 MCU and Mappable Peripherals
Our architectural approach to the STM32MP1 allows developers to reuse the code that they wrote for their STM32 Cortex-M4 systems. Engineers will obviously need to take into account certain technical considerations, such as the fact that the MCU in the new model has 448 kB of RAM and that the boot and display systems are on the Cortex-A7/Linux side of the component. This means that if the customer code and data fit within the 448 kB, the only changes they will need to make will be to the boot and display software, which will save a tremendous amount of time. Because we use a traditional Cortex-M4 MCU, developers can reuse large chunks, if not their entire existing code, and it will run just fine on the MCU part of the STM32MP1.
The ease-of-use and flexibility of our architecture were one of our top priorities very early on in the project, which explains why it is possible to map, at boot, almost all peripherals in the connectivity and analog units in the block diagram above to either the Cortex-M4 or the Cortex-A7. Developers can tailor how they use each core and optimize their system. It also means that the Cortex-M4 isn’t a weak link or crutch, but a full MCU capable of running critical real-time applications that can benefit from a large pool of peripherals. There are just a few exceptions to this rule, such as the GPU and the parallel display interfaces that are always on the master boot core (i.e., Cortex-A7/Linux).
Reason 2: The Most Accessible MPU with the Smallest Package Ever and Open Source Software
Another record-breaking aspect of the STM32MP1 is that we offer the smallest package for a dual Cortex-A general purpose MPU in a 10 mm x 10 mm pitch 0.5 mm TFBGA257. Moreover, we provide more packaging options than the competition and two of them, including the TFBGA257, are compatible with a four-layer Plated Through Hole (PTH) PCB. We even offer PCB layout examples to engineers so they can replicate them and save a tremendous amount of time. Cost is an important factor, especially when building IoT products, and a four-layer PTH PCB can make a world of a difference for designs that would benefit greatly from simplicity. The STM32MP1 series thus distinguishes itself from the rest of the industry with its four packages and free-to-use layouts to enable the creation of small and cost-effective solutions.
Beyond the traditional STM32Cube firmware for the Cortex-M4, we are also offering our OpenSTLinux Distribution that only uses software from the Linux community. It relies on the Trusted Firmware-A specifications, the bootloader U-Boot, and the Linux Kernel 4.19 LTS, which was just made available at the end of 2018 and is the latest long-term maintenance kernel release at the moment. Moreover, we leveraged our ecosystem of partners to ensure that our application framework will support Android at a later time. We are also part of the Yocto Project, an open source endeavor that ensures the creation of a custom Linux system. As a result, our STM32MP1 is a lot more accessible and reliable since companies can depend on drivers and software that live in the open source Linux community.
Reason 3: The STM32 Ecosystem with STM32CubeMX, Development Boards, and Active Partners
People familiar with our STM32 ecosystem will appreciate that we are also shipping an update to STM32CubeMX, a fundamental tool to program your MCU and now your MPU. We enhanced it to support peripherals allocation to either Cortex-A or Cortex-M cores, to generate Linux device Tree, and to configure STM32MP1’s DRAM controller.
We will also showcase an Evaluation board (STM32MP157A-EV1) and a Discovery board (STM32MP157C-DK2) at Embedded World 2019, which will take place in Germany at the end of the month. Both use an STM32MP157 and a USB-C port. The former has 1 GB of DDR3L, a Gigabit Ethernet interface, 4 GB of storage, and a 720p 5.7″ display. The latter integrates 512 MB of RAM, a Wi-Fi 4 (802.11n) / Bluetooth module, as well as Raspberry Pi and Arduino connectors. Both boards will be available for purchases in a few weeks.
20 ST partners will also have hardware or software demos running on the new MPU at Embedded World 2019. Enthusiasts, makers, and large corporations will be able to see third-party System on Module (SoM) and Linaro 96Boards that use the new members of the STM32 family as well as talk to engineers that worked on the first Linux applications that take advantage of this new architecture. We, therefore, invite you to the ST booth to see for yourself what the next generation of IoT products will look like and what is now possible thanks to our new STM32MP1.
- Learn more about the STM32MP1
- Download OpenSTLinux Distribution
- See our STM32MP1 Discovery Board (STM32MP157C-DK2)
- Find out more about our STM32MP1 Evaluation Board (STM32MP157A-EV1)
- Check out our STM32 Community
- Visit the STM32 MPU Wiki
- For an overview of the STM32MP1 announcement, please see our Press Release