argon-rtos
Argon RTOS is a lightweight, preemptive real-time operating system designed for efficient execution on Arm Cortex-M microcontrollers.
It features highly readable and maintainable code with minimal overhead, catering to embedded systems developers requiring a balance of performance and resource conservation.
Features
- Preemptive Multitasking: Offers preemptive task scheduling, which allows for a responsive system even under heavy load conditions.
- C and C++ APIs: Offers APIs in both C and C++ to provide flexibility for different programming preferences and scenarios.
- Kernel Objects: Includes thread management, semaphores, mutexes, queues, channels, timers, and run loops.
- Efficient Timers: Timers are managed efficiently by run loops, which allow for timers to be executed within specific thread contexts.
- Recursive Mutexes with Priority Inheritance: To avoid priority inversion, mutexes in Argon are recursive and support priority inheritance.
- Dynamic or Static Allocation: The number of kernel objects is unlimited, and they can either be dynamically allocated at runtime or statically allocated at compile time.
- No Mandatory Dynamic Memory: Use of dynamic memory (
malloc
) is not compulsory for kernel object creation, allowing for more predictable memory management. - Designed for Readability: The source code for Argon is written to be easy to understand and maintain, with extensive commentary.
- Active Development and Stable API: The RTOS is under active development with a stable API that has been well-tested in various applications.
- Interrupt Management: Exceptional handling of IRQs, designed to never disable IRQs for Cortex-M cores (with specific exceptions for Cortex-M0+).
- Comprehensive Documentation: Comes with thorough documentation that can be accessed online or generated locally using Doxygen.
- Open Source and BSD Licensed: Released under the BSD three-clause license, ensuring open-source collaboration and contributions.
Website: https://github.com/flit/argon-rtos
Source code: https://github.com/flit/argon-rtos
License: BSD 3-Clause "New" or "Revised" License
argon-rtos Platforms
- ARM