6 releases
0.1.4 | Nov 16, 2022 |
---|---|
0.1.3 | Aug 16, 2022 |
0.1.2 | Mar 30, 2022 |
0.0.1 | Jan 23, 2022 |
#1651 in Embedded development
Used in 7 crates
(6 directly)
800KB
14K
SLoC
r3_kernel
The original kernel of R3-OS.
-
Traditional uniprocessor tickless real-time kernel with preemptive scheduling
-
Implements a software-based scheduler supporting a customizable number of task priorities (up to 2¹⁵ levels on a 32-bit target, though the implementation is heavily optimized for a smaller number of priorities) and an unlimited number of tasks.
-
Provides a scalable kernel timing mechanism with a logarithmic time complexity. This implementation is robust against a large interrupt processing delay.
-
The kernel is split into a target-independent portion and a target-specific portion. The target-specific portion (called a port) is provided as a separate crate (e.g.,
r3_port_riscv
). An application combines them using the trait system.
Dependencies
~3.5–5.5MB
~103K SLoC