Sample Source: rnk is a RTOS targeting ARM architecture. logo

Sample Source: rnk is a RTOS targeting ARM architecture.

Free

rnk is an RTOS targeting ARM architecture.

FreeFree tier
Type
Open Source

About Sample Source: rnk is a RTOS targeting ARM architecture.

rnk is a real-time operating system (RTOS) designed specifically for ARM Cortex-M microcontrollers. It features preemptive scheduling, support for both static and dynamic applications via a custom file format (RFLAT), and memory protection using the MPU and privileged/unprivileged modes. The RTOS includes device tree support, a POSIX API, and integration with SEGGER SystemView for debugging. It is currently tested on STM32F4 and STM32L4 families. Build configuration uses Kconfig, and the project is written primarily in C with some assembly. The source code is available on GitHub under an MIT license.

Key Features

Targets ARM Cortex-M microcontrollers
Preemptive scheduling
Support for static and dynamic applications (RFLAT file format)
Isolation using MPU and privileged/unprivileged modes
Device tree support
POSIX API compatibility
SEGGER SystemView support for debugging and profiling
Kconfig-based build configuration
Supports STM32F4 and STM32L4 families

Pros & Cons

Pros
  • Open source under MIT license
  • Preemptive scheduling for deterministic task execution
  • Hardware isolation via MPU enhances safety and security
  • Device tree support simplifies hardware configuration
  • POSIX API eases porting of existing code
  • SEGGER SystemView integration aids debugging and performance analysis
Cons
  • Limited to ARM Cortex-M architecture only
  • Only supports STM32F4 and STM32L4 families currently
  • Small community (37 stars, 6 forks) – less support and fewer resources
  • No official releases or package management
  • Documentation primarily in a wiki, may lack comprehensive tutorials

Best For

Embedded systems requiring real-time performanceIoT devices with ARM Cortex-M processorsResource-constrained microcontrollers needing an RTOSProjects requiring memory isolation between applicationsDevelopment of portable embedded firmware with POSIX-like APIs

FAQ

What architectures does rnk support?
rnk targets ARM Cortex-M microcontrollers, specifically the STM32F4 and STM32L4 families.
Does rnk support dynamic loading of applications?
Yes, rnk supports static and dynamic applications using the custom RFLAT file format.
How do I build rnk?
Set the ARCH and CROSS_COMPILE environment variables (or use setup.sh), configure with make <board>_defconfig, then run make.
Is there memory protection?
Yes, rnk provides isolation using the MPU and privileged/unprivileged modes.
What is the license?
The project is licensed under the MIT license.