Sample Source: rnk is a RTOS targeting ARM architecture.
Freernk is an RTOS targeting ARM architecture.
FreeFree tier
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.