Skip to content

antoniogiacomelli/RK0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,286 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI Version Docs

RK0 - The Embedded Real-Time Kernel '0'image


Zero surprises: Not a minimal RTOS...

image

RK0 is centred on the idea that concurrency requirements are the major commonality accross real-time systems. It supports real-time application programmers by moving worst-case coordination mechanics into the kernel. Programmers express the dependency being created, and the kernel enforces the corresponding scheduling behaviour. This is important because real-time correctness is often lost in worst-case scenarios: priority inversion, blocked producers, nested ownership, timeout races, and delayed receivers, among others, are difficult to manage reliably at the application level.

  • Service Map: a must-read for developing

  • RK0 Docbook: compreehensive document with design internals, architecture, caveats and usage examples

  • RK0 Wiki: useful information such as setting up environment (VSCode/QEMU) (Linux/Win/MacOS), functional packages for Nucleo-boards (M0/M3/M4), some profiling metrics.

  • RK0 Blog: blogs about RK0 and systems programming in general


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=armv6m|armv7m 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

  • RK0 compiles only with ARM GCC.
  • The C code standard is C99.

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