The relationship between Yocto Project and microcontrollers is nuanced. While Yocto is overwhelmingly used for more powerful Linux-capable Microprocessor Units (MPUs), its use with traditional Microcontroller Units (MCUs) is rare and specific.
Here’s a detailed breakdown.
The Short Answer
Very few traditional, bare-metal MCUs use Yocto directly. Yocto is designed to build a complete Linux distribution, which requires an Memory Management Unit (MMU) and significant resources (usually >100+ MHz clock speed and >16MB RAM). Most low-end MCUs lack these resources and run a Real-Time Operating System (RTOS) or no OS at all.
However, Yocto is the dominant build system for Linux-capable System-on-Chips (SoCs) and MPUs that are often used in complex embedded systems alongside MCUs.
The Detailed Explanation
To understand this, it's best to break it down by the type of processor.
1. Linux-Capable ARM Cortex-A Series MPUs/SoCs (The Primary Use Case for Yocto)
This is where Yocto shines. These are powerful processors that run a full Linux stack. While often called "application processors," they are the heart of deeply embedded systems. Yocto is used to create the custom Linux OS that runs on them.
Vendors & Chips that commonly use Yocto:
- NXP i.MX: One of the most popular families with Yocto. The official NXP BSP (Board Support Package) is delivered as a Yocto layer.
Chips: i.MX 8, i.MX 9, i.MX 7, i.MX 6 series.
- Texas Instruments Sitara: TI provides full Yocto support for their ARM MPUs.
Chips: AM62x, AM64x, AM65x, AM335x.
- STMicroelectronics STM32MP1: This is a key example that blurs the line. The STM32MP1 is a heterogeneous MPU with both Cortex-A cores (for Linux) and Cortex-M cores (for real-time tasks). Yocto is used to build the Linux system for the Cortex-A cores.
- Raspberry Pi: The official Raspberry Pi OS is not built with Yocto, but the community and commercial products heavily use Yocto to create custom, minimal distributions for the Pi's Broadcom SoC (e.g., BCM2711 on Pi 4).
- Xilinx / AMD Zynq-7000 & Zynq UltraScale+ MPSoC: These FPGAs with integrated ARM Cortex-A cores are almost always used with a Linux system built by Yocto or PetaLinux (Xilinx's tool, which is based on Yocto).
- Intel: For their low-power Quark and Atom E-series processors used in embedded and IoT.
2. Microcontroller (MCU) Families (The Rare & Specific Cases)
Traditional MCUs (like STM32F4, ESP32, nRF52) do not run Linux and therefore do not use Yocto. They use other frameworks:
- STM32CubeIDE / STM32CubeMX for STM32
- ESP-IDF for ESP32
- Arduino IDE / PlatformIO
- MBED OS
- Zephyr RTOS
However, there is one major and important exception:
Zephyr RTOS and Yocto
The Zephyr RTOS, a popular OS for resource-constrained devices, can be built and integrated as a package within a larger Yocto-built Linux system. This is a common pattern for heterogeneous architectures:
- The main application processor (Cortex-A) runs a Linux system built by Yocto.
- A separate, connected microcontroller (Cortex-M) runs a Zephyr application.
- Yocto can be used to build the Zephyr firmware for that MCU and then bundle it into the root filesystem of the main Linux image. This allows for a single, unified build process for the entire product.
So, you don't use Yocto to flash and run on the MCU directly, but you use it to manage the build of the MCU's firmware as part of a larger system image.
Summary Table
Conclusion
To answer your question directly: Don't look for a list of MCUs that "use Yocto." Instead, look for Linux-capable MPUs/SoCs.
If you are starting a project that requires a full OS, connectivity, and complex software stacks, you will be choosing a chip from the first category (like an NXP i.MX or STM32MP1), and you will almost certainly use the Yocto Project to build your software for it.


Top comments (0)