Jump to content

Draft:QuarkTS

From Wikipedia, the free encyclopedia


QuarkTS is a real-time operating system kernel for embedded devices that uses a cooperative multitasking scheduler[1]. It is distributed under the MIT License.

Implementation

[edit]

QuarkTS [2]is designed for resource-constrained microcontrollers, featuring a small and simple kernel. It is primarily written in the C programming language for ease of portability and maintenance, though there is also a port written in C++11, as well as a library for Arduino. QuarkTS has no direct hardware dependencies, making it portable to a variety of platforms and C/C++ compilers.

The operating system is built on top of a real-time cooperative quasistatic scheduler[3] that implements a specialized round-robin scheme using a linked-chain approach and an event queue to provide true FIFO (First-In, First-Out) priority scheduling. This scheduling approach offers significant benefits over preemptive scheduling. Since tasks manage their own life cycle, fewer re-entrance problems arise. Tasks are not interrupted arbitrarily by other tasks but only at points defined by the programmer. This allows users to build stable and predictable event-driven multitasking embedded software without having to worry about common pitfalls of concurrent approaches, such as resource sharing issues, race conditions, and deadlocks.

The design goal of QuarkTS is to provide functionality using a small, simple, and robust implementation, making it ideal for resource-constrained microcontrollers. In such environments, a fully preemptive RTOS may be overkill, introducing unnecessary complexity in firmware development. Due to its size and feature set, QuarkTS is intended to bridge the gap between full-featured RTOSes and bare-metal programming. QuarkTS++ is tailored for embedded developers seeking more functionality than basic task schedulers offer, while avoiding the overhead and complexity of a full RTOS, yet still providing the robustness and safety typical of larger systems.

Key Features

[edit]
  • Prioritized cooperative scheduling.
  • Time control (Timed tasks and software timers)
  • Inter-Task communication primitives, queues, notifications and event-flags.
  • State-Machines ( hierarchical support )
  • Stackless Co-routines.
  • AT Command Line Interface (CLI)

QuarkTS also complies with most of the Motor Industry Software Reliability Association (MISRA) MISRA-C++:2008 and the SEI CERT C coding standards in order to provide a safe, reliable, and secure foundation for embedded applications.

Supported Architectures

[edit]

QuarkTS has no direct hardware dependencies, allowing it to be portable across many platforms and C compilers.

The following cores have successfully proved to run QuarkTS:

  • ARM cores(ATMEL, STM32, LPC, Kinetis, Nordic and others)
  • 8Bit AVR, 8051, STM8, RL78/Gxx
  • HCS12, ColdFire, MSP430
  • PIC (PIC24, dsPIC, 32MX, 32MZ)
  • Arduino support for all architectures (available from the Library Manager)

See also

[edit]

[edit]

References

[edit]
  1. ^ "OSRTOS - Top Open Source Real-Time Operating Systems (RTOS)". www.osrtos.com. Retrieved 2024-10-09.
  2. ^ G.C, J. Camilo (2024-10-08), kmilo17pet/QuarkTS, retrieved 2024-10-09
  3. ^ Cortés, Luis Alejandro; Eles, Petru; Peng, Zebo (2004-02-16). "Quasi-Static Scheduling for Real-Time Systems with Hard and Soft Tasks". Proceedings of the conference on Design, automation and test in Europe - Volume 2. DATE '04. USA: IEEE Computer Society: 21176. doi:10.5555/968879.969132. ISBN 978-0-7695-2085-8. {{cite journal}}: Check |doi= value (help)
[edit]