Supported Hardware
Updated: Jan 2026
CMRX real-time operating system is designed to run on microcontrollers. Microcontrollers are low-power devices having limited amount of resources such as RAM and Flash memory. Microcontrollers also usually don’t contain memory management unit and it is not possible to run Linux or similar operating system there.
Supported CPU families
CMRX supports following microcontroller families:
- ARM Cortex-M0+
- ARM Cortex-M3
- ARM Cortex-M4 (both with and without FPU extension)
- ARM Cortex-M7
All ARM cores of ARMv6-M and ARMv7-M are supported as long as they are equipped with ARM Cortex MPU peripheral.
Supported MCU families
This is a brief list of microcontrollers with known level of support. This list is by no means complete and the fact that device is not present in this list does not mean that the microcontroller is not supported.
| Manufacturer | Model Family | CPU Core | SDK / HAL | Supported | Notes |
|---|---|---|---|---|---|
| Linus Torvalds | Linux | any | any | Yes | *6 |
| Microchip | PIC32CK | Cortex-M33 | MPLAB X | Yes | |
| Microchip | PIC32CM GV00 | Cortex-M0+ | MPLAB X | Yes | |
| Microchip | PIC32CM JHxx | Cortex-M0+ | MPLAB X | Yes | |
| Microchip | PIC32CM LX | Cortex-M23 | MPLAB X | Yes | |
| Microchip | PIC32CM MC | Cortex-M0+ | MPLAB X | Yes | |
| Microchip | PIC32CX | Cortex-M4 | MPLAB X | Yes | |
| Microchip | PIC32CZ | Cortex-M7 | MPLAB X | Yes | |
| Microchip | SAM 4 | Cortex-M4 | MPLAB X | Yes | |
| Microchip | SAM C | Cortex-M0+ | MPLAB X | Yes | |
| Microchip | SAM D | Cortex-M0+ | MPLAB X | Yes | |
| Microchip | SAM D5x | Cortex-M4 | MPLAB X | Yes | |
| Microchip | SAM E5x | Cortex-M4 | MPLAB X | Yes | |
| Microchip | SAM E7x | Cortex-M7 | MPLAB X | Yes | |
| Microchip | SAM G | Cortex-M4 | MPLAB X | Yes | |
| Microchip | SAM L21/L22 | Cortex-M0+ | MPLAB X | Yes | |
| Microchip | SAM L10/L11 | Cortex-M23 | MPLAB X | Yes | |
| Microchip | SAM S7x | Cortex-M7 | MPLAB X | Yes | |
| Microchip | SAM V7x | Cortex-M7 | MPLAB X | Yes | |
| Nordic Semiconductor | nRF51 | Cortex-M0 | nRF5 SDK | No | |
| Nordic Semiconductor | nRF52 | Cortex-M4 | nRF5 SDK | Yes | |
| Nordic Semiconductor | nRF53 | Cortex-M33 | nRF-Connect SDK | No | *4 |
| Nordic Semiconductor | nRF54 | Cortex-M33 | nRF-Connect SDK | Yes | *5 |
| Nordic Semiconductor | nRF91 | Cortex-M33 | nRF-Connect SDK | No | *4 |
| NXP | Kinetis | Cortex-M | any | No | *3 |
| ST Microelectronics | STM32C0 | Cortex-M0+ | CubeMX | Yes | |
| ST Microelectronics | STM32F0 | Cortex-M0 | CubeMX | No | |
| ST Microelectronics | STM32F1 | Cortex-M3 | CubeMX | Yes | |
| ST Microelectronics | STM32F2 | Cortex-M3 | CubeMX | Yes | |
| ST Microelectronics | STM32F3 | Cortex-M4 | CubeMX | Yes | |
| ST Microelectronics | STM32F4 | Cortex-M4 | CubeMX | Yes | |
| ST Microelectronics | STM32F7 | Cortex-M7 | CubeMX | Yes | |
| ST Microelectronics | STM32G0 | Cortex-M0+ | CubeMX | Yes | |
| ST Microelectronics | STM32G4 | Cortex-M4 | CubeMX | Yes | |
| ST Microelectronics | STM32H5 | Cortex-M33 | CubeMX | Yes | |
| ST Microelectronics | STM32H7 | Cortex-M7 | CubeMX | Yes | |
| ST Microelectronics | STM32L0 | Cortex-M0+ | CubeMX | Yes | |
| ST Microelectronics | STM32L4 | Cortex-M4 | CubeMX | Yes | |
| ST Microelectronics | STM32L4+ | Cortex-M4 | CubeMX | Yes | |
| ST Microelectronics | STM32L5 | Cortex-M33 | CubeMX | Yes | |
| ST Microelectronics | STM32N6 | Cortex-M55 | CubeMX | Not yet | *1 |
| ST Microelectronics | STM32U0 | Cortex-M0+ | CubeMX | Yes | |
| ST Microelectronics | STM32U3 | Cortex-M33 | CubeMX | Yes | |
| ST Microelectronics | STM32U5 | Cortex-M33 | CubeMX | Yes | |
| Raspberry Pi | RP2040 | Cortex-M0+ | Pico-SDK | Almost | *2 |
| Raspberry Pi | RP235x | Cortex-M33 | Pico-SDK | Yes | ARM mode only |
- Basic ARMv8-M architecture support is present. All Cortex-M23, Cortex-M33 and potentially Cortex-M55 MCUs are now supported. Entries marked previously as Not Yet in table above were changed to Yes.
- While the CPU itself is supported the way how Pico-SDK is organized and calls routines in BootROM makes the use of CMRX on this CPU complicated.
- Microcontrollers made by NXP are equipped with NXP-specific MPU which is not compatible with ARM Cortex-M MPU.
- nRF Connect SDK is essentially a distribution of Zephyr RTOS with Nordic Semiconductor drivers bundled. To our best knowledge this SDK does not contain necessary CMSIS headers and thus is not directly usable with CMRX.
- See also note 4 above. In August 2025 Nordic Semiconductor released Bare Metal version of the nRF Connect SDK for nRF54 devices which makes use of CMRX on these microcontrollers possible.
- The CMRX hosted environment runs on Linux. It was tested on x86_64 platform. As of now, this environment lacks support for memory isolation.
Additionally CMRX can be run on any auxiliary CPU core in SoCs which is Cortex-M0+ or better and supports ARM Cortex-M MPU.