ZenOS 1.1.0 · Architecture · Cortex-M · Embedded

ZenOS RTOS for ARM Cortex-M and STM32

Compact C++11/C real-time operating system focused on predictable task scheduling, static task resources, lightweight IPC, runtime diagnostics and configurable safety mechanisms.

Explore documentationCurrent implementationSTM32 RTOS overview
16

Default priority slots

The default configuration provides 16 priority slots and supports a configurable range of 2–256. Priority 0 is reserved for idle; larger numeric values represent higher priority.

C++11

Embedded focus

Designed for ARM Cortex-M and STM32-oriented firmware, with static task resources and a compact kernel model.

4

IPC primitives

Events, mutexes, bounded queues and semaphores. Mutexes use IPC priority-ceiling behavior.

Kernel map

How the pieces fit together

Schedulerbitmap + queues
Tasksstatic resources
IPCevents / mutex / queue
DiagnosticsCPU / stack / errors

⚡ Scheduling

The current kernel selects eligible work through a ready bitmap and per-priority queues, with configured-priority scanning and periodic release checks. It is not advertised as O(1) independent of the configured priority range.

🧠 Memory model

Task resources are statically allocated. There is no fixed OS_KERNEL_MAX_TASKS configuration constant; practical task count is constrained by the implementation, task-ID representation and available memory.

🛡️ Safety & monitoring

Watchdog, MPU, CRC, bounded RAM integrity testing, task integrity, stack and deadline mechanisms are configurable features. The default configuration does not enable every safety mechanism.