Features Documentation Examples Repository Blog Contact

Features

This section elaborates on features of CMRX kernel and CMRX-based systems. CMRX is a microkernel operating system targeted towards microcontrollers without memory management unit, yet equipped with memory protection unit that offers always-on memory isolation. Following is a summary of features it offers:

  • Support for large variety of Cortex-M0+, Cortex-M3, Cortex-M4, Cortex-M7 devices
  • Automatically configured fine-grain memory isolation
  • Ability to isolate device drivers
  • Object-oriented RPC communication mechanism
  • POSIX-like threading
  • Mutexes
  • Notifications

Supported Hardware

Specification of hardware supported by CMRX microkernel.

Open Source Software

CMRX real-time operating system is released under MIT license.

Memory Protection

CMRX kernel provides fine-grain isolation of firmware components. This feature is always on and does not require deep knowledge of the target hardware to operate.

Microkernel Architecture

CMRX is designed around micro-kernel. This design minimizes the amount of code running with highest privileges and gives ability to remove all unnecessary features without affecting stability.

Process Management

A process is like a separate program running in its own protected workspace. Think of it like each app on your smartphone - they run independently and can’t interfere with each other.

Inter-Process Communication

Inter-Process Communication (IPC) is how separate programs talk to each other. Since processes in CMRX are isolated and can’t directly access each other’s memory, they need special ways to share information and work together.

Static Operation

Static operation means everything in your system is decided and allocated before your program starts running.

Kernel Tests

The kernel of the CMRX RTOS has its own automated test suite. This test suite ensures that the core functionality of kernel remains intact and works as intended.

Hosted Execution

CMRX kernel is able to run both bare metal AND hosted under another operating system, possibly on machine that has completely different organization than a typical low-power microcontroller.

64kB of protected memory ought to be enough for everyone.