Running

September 1, 2026 ยท View on GitHub

CI Version Docs

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


Zero surprises: Not a minimal RTOS...

image

Interaction-oriented: an RK0ish application code describes how tasks interact rather than delegating to application code to compose generic services. Recurring coordination patterns for real-time applications are totally defined by the relationship between concurrency entities (Tasks) and optimised to handle worst-case scenarios.

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

  • Service Map: a must-read for developing

  • RK0 Wiki: misc of information: requirement matrix, design patterns, setting up VSCode/QEMU/GDB on Linux/Win/MacOS, profiling metrics.

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


Running

Quick Start: QEMU (this branch)

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

(QEMU Systems: ARM Cortex M3 (Texas Stellaris) / ARM Cortex M0 (micro:bit))

Real Hardware

  • ๐Ÿ”Œ Nucleo F103RB (ARM Cortex M3) Build Environment in the branch f103rb-flash

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.

make cppcheck
make cppcheck-report

Dependencies

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

Copyright (C) 2026 Antonio Giacomelli | All Rights Reserved | www.kernel0.org | ๐Ÿ“ซ