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

#1588 in Embedded development

Download history 19/week @ 2024-03-11 17/week @ 2024-03-18 28/week @ 2024-03-25 43/week @ 2024-04-01 8/week @ 2024-04-08 10/week @ 2024-04-15 20/week @ 2024-04-22 60/week @ 2024-04-29 10/week @ 2024-05-06 23/week @ 2024-05-13 15/week @ 2024-05-20 23/week @ 2024-05-27 11/week @ 2024-06-03 16/week @ 2024-06-10 15/week @ 2024-06-17 18/week @ 2024-06-24

63 downloads per month
Used in 7 crates (6 directly)

MIT/Apache

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

~2.5–4.5MB
~83K SLoC