Skip to content

Releases: Raymon-Research-Team/ZenOS-RTOS

ZenOS RTOS v1.1.0

Choose a tag to compare

@Raymon-Research-Team Raymon-Research-Team released this 22 Sep 07:09

A simpler, clearer and more reliable Cortex-M RTOS

ZenOS RTOS v1.1.0 focuses on making the kernel easier to configure, easier to understand, and more reliable in real embedded projects.

This release also updates the documentation to match the current implementation and removes several outdated or misleading configuration descriptions.


✨ Highlights

🧩 Simpler Configuration

ZenOS configuration is now documented around a simple principle:

Every configurable option has a clear default, allowed range, and hardware requirement where applicable.

Important examples:

  • Kernel priorities

    • Default: 16 slots

    • Supported: 2–256 slots

    • Priority 0 is reserved for the Idle task.

    • Application priorities can therefore range from 1 to 255 when 256 slots are configured.

  • Kernel tick

    • Default: 100 µs

    • Supported: 100–1000 µs

    • The selected period must divide 1000 evenly.

  • Default task stack

    • Default request: 128 bytes

    • Minimum request: 64 bytes

    • Effective allocation floor: 256 bytes

    • Practical limits depend on the target's available RAM and toolchain/linker constraints.

  • Boolean configuration options consistently use:

    • 0 = disabled

    • 1 = enabled

  • Hardware-dependent features such as MPU, CRC and IWDG are explicitly documented with their hardware requirements.

The goal is to make configuration predictable instead of forcing developers to search through multiple source files to understand what a setting actually means.


⚙️ Scheduler and Kernel Improvements

ZenOS continues to use a bitmap-based priority selection mechanism together with per-priority ready queues.

The priority system now has clearer documentation for both the default configuration and its full supported range.

Periodic tasks are also documented according to their actual scheduler behavior: a periodic task is released according to its configured period and next_run_time, rather than being described as simply "running every N ticks".


🛡️ Safety and Monitoring Configuration

Safety-related options now have explicit defaults and limits in the documentation.

This includes:

  • MPU protection

  • Hardware watchdog

  • Software watchdog

  • CRC integrity checking

  • RAM testing

  • Critical-section monitoring

  • Deadline monitoring

  • Recovery attempts

  • Error-log capacity

  • IEC 62304 target profiles

  • IEC 61508 SIL target profiles

Hardware requirements are also documented so that requesting an unavailable hardware capability results in a clear compile-time configuration error rather than an ambiguous runtime failure.


🐛 Bug Fixes and Reliability Work

This release includes reliability and correctness work across the kernel and its configuration/documentation layer.

Particular attention has been given to:

  • configuration inconsistencies between documentation and source;

  • incorrect or outdated default values;

  • incorrect descriptions of scheduler behavior;

  • misleading stack-size information;

  • incorrect IPC configuration descriptions;

  • outdated watchdog information;

  • hardware capability requirements;

  • configuration-range documentation;

  • consistency between English and Persian documentation.

The documentation has been checked against the current source implementation rather than relying on older descriptions.


📚 Documentation Improvements

The documentation has been substantially refreshed.

Updated areas include:

  • Configuration Guide

  • Safety Manual

  • Architecture documentation

  • Porting Guide

  • API documentation

  • HTML user guide

  • Current implementation information

  • STM32/RTOS guide

  • FAQ

  • Persian documentation

Configuration tables now emphasize:

Default → Allowed Range → Hardware Requirement → Actual Behavior

instead of showing only a default value.


🎯 Design Direction

ZenOS continues to focus on three core principles:

Simple

Keep the RTOS understandable and avoid unnecessary abstraction.

Fast

Use lightweight kernel mechanisms suitable for resource-constrained Cortex-M systems.

Safe

Provide optional monitoring and safety mechanisms while keeping them explicit and configurable.

ZenOS does not require HAL/LL for its core API.


🔧 Configuration at a Glance

Configuration | Default | Supported -- | -- | -- Kernel tick | 100 µs | 100–1000 µs Maximum priorities | 16 slots | 2–256 slots Default task stack request | 128 B | ≥64 B request Tickless idle | Enabled | 0 / 1 IPC tools | Enabled | 0 / 1 Monitoring | Disabled | 0 / 1 Deadline action | Reset task | 0–2 Error log | 16 entries | ≥1 Safety mechanisms | Mostly disabled | 0 / 1 Recovery attempts | 3 | ≥0 Software watchdog | 3000 ms | ≥0 ms Critical section limit | 1000 µs | ≥0 µs

Hardware-dependent options remain subject to the capabilities of the selected Cortex-M target.


🚀 Why This Release Matters

v1.1.0 is not only about adding features.

A major objective is reducing the amount of knowledge required to start using ZenOS correctly.

A developer should be able to look at the configuration, immediately understand:

  • what the default is;

  • what values are allowed;

  • what the limits are;

  • what hardware is required;

  • and what effect changing the option has.

That is the direction of ZenOS:

Less configuration complexity. More clarity. More predictable behavior.


⚠️ Important

Safety target profiles such as IEC 62304 and IEC 61508 are configuration and enforcement mechanisms inside ZenOS. Selecting a profile does not by itself constitute certification or product compliance.


📦 Release

Version: 1.1.0

Focus:
Configuration simplicity · Documentation accuracy · Kernel reliability · Safety configuration · Bug fixes

Target:
Cortex-M / STM32-class embedded systems


ZenOS

Simple. Fast. Safe.

BUSL-1.1
Raymon Research Team

ZenOS v1.0.0 — First Stable Release

Choose a tag to compare

@Raymon-Research-Team Raymon-Research-Team released this 04 Sep 20:03

⚡ ZenOS v1.0.0 — (Simplicity · Security · Speed)

First stable release of ZenOS, a real-time operating system for ARM Cortex-M
written in C++11.

🎯 What is ZenOS?
ZenOS is a lightweight, deterministic RTOS designed for safety-critical embedded
systems. Zero heap allocation, O(1) scheduler, and compile-time IEC compliance.

✨ Highlights

  • O(1) priority-bitmap scheduler — always deterministic
  • 100μs tick resolution (10× finer than FreeRTOS)
  • IPC primitives: events, mutexes, queues, semaphores with priority ceiling
  • Full C++11 RAII support — zero runtime overhead
  • No heap, no hidden allocations

🛡️ Safety Features (all enabled by default)

  • Stack canary + SP bounds checking
  • TCB integrity validation
  • Deadline monitoring
  • Hardware & software watchdog
  • Background RAM test (March C-)
  • Flash CRC verification
  • Per-task MPU protection

🏥 Standards Compliance

  • IEC 62304 — compile-time enforcement for medical devices
  • IEC 61508 — compile-time enforcement for industrial systems

🖥️ Supported Hardware

  • STM32F1 (M3), STM32F2 (M3), STM32F4 (M4), STM32F7 (M7), STM32H7 (M7+M4)
  • STM32G0 (M0+), STM32G4 (M4), STM32L0 (M0+), STM32L4 (M4), STM32WB (M4)

🧪 Tested on real hardware (STM32F103C8T6) with 22+ test suites

📖 Full API tutorial, safety manual, and Persian documentation included.

Built with ❤️ by Rahman Heidari — Raymon Research Team