Skip to content

antoniogiacomelli/RK0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,058 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RK0 - The Real-Time Kernel '0'image


About

RK0 is a lean, feature-rich, highly deterministic Real-Time Kernel for deeply embedded solutions.

Supported Architectures: ARMv6M (Cortex-M0/0+) and ARMv7M (Cortex-M3/4/7).

Documentation

  • The RK0 Docbook provides a comprehensive system description

  • RK0 Wiki details application structuring, QEMU setup, reference projects for download (Nucleo boards)

  • RK0 Blog provides some quick complementary reads.


RK0 Main Features (V0.9.11-dev)

  • O(1) Scheduler: priority preemptive (RMS)

  • Synch Pack:

    • Semaphores (Counting/Binary)
    • Mutexes with fully transitive Priority Inheritance
    • Conditional Critical Regions (Condition Variable/Monitor-like constructions)
    • Task Event Registers
  • Priority-aware message-passing

    • Message Queues (Mailboxes) for general asynchronous message-passing
    • Ports for client-server synchronous RPC, message-driven priority inheritance
  • Most-Recent Message Protocol

    • Asynchronous, Lock-Free, purpose-built for Real-time Control Loops
  • High-Precision Timers:

    • Minimal Tick Handling overhead for Bounded Waiting, Phase-locked Periodic Releases and Callout Timers.
  • Memory Partition:

    • Well-proven, deterministic memory allocator suitable for real-time systems.
  • Suits both procedural/shared-memory and message-passing paradigms

  • Highly Modular with clean and consistent API.

  • (And that wicked cool mascot)


Quick Start (QEMU)

Prerequisites:

  • ARM GNU Toolchain (arm-none-eabi-gcc, arm-none-eabi-gdb / gdb-multiarch (Debian))
  • QEMU for ARM (qemu-system-arm)

Build and run the RK0 demo on QEMU:

git clone https://github.com/antoniogiacomelli/RK0.git
cd RK0
make arch=<armv6/7m> qemu

Code Quality

RK0 source code compiles cleanly with the following GCC flags:

-Wall -Wextra -Wsign-compare -Wsign-conversion -pedantic

Static Analysis (Cppcheck) is clean with no warnings, errors, or style issues.


Dependencies

  • ARM-GCC, CMSIS-GCC

Copyright (C) 2026 Antonio Giacomelli | All Rights Reserved | www.kernel0.org | 📫