Thanks to visit codestin.com
Credit goes to github.com

Skip to content

antoniogiacomelli/RK0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RK0 - The Real-Time Kernel '0' image


Know it

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

  • See the RK0 Docbook for a thorough design description and usage examples.
  • Check the RK0 Blog for some quick reads.

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


RK0 Main Features (0.8.0-dev)

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

  • Synch Pack:

    • Semaphores (Counting/Binary)
    • Mutexes with fully transitive Priority Inheritance for nested locks
    • Condition Variables
    • Direct Task Notifications
  • 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, Periodic Sleeps and Application 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)


Use it


System Architecture

If no more details are to be provided, the kernel has a top and a bottom layer. On the top, the Executive manages the resources needed by the application. On the bottom, the Low-level Scheduler works as a software extension of the CPU. Together, they implement the Task abstraction — the Concurrency Unit that enables a multitasking environment.

In systems design jargon, the Executive enforces policy (what should happen). The Low-level Scheduler provides the mechanism (how it gets done). The services are the primitives that transform policy decisions into concrete actions executed by the Scheduler.


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) 2025 Antonio Giacomelli | All Rights Reserved | www.kernel0.org | 📫