- Download the latest release here
- Download the latest User Manual
QuarkTS is an operating system that provides a modern environment to build stable and predictable event-driven multitasking embedded software. The OS is built on top of a cooperative quasi-static scheduler and its simplified kernel implements a specialized round-robin scheme using a linked-chain approach and an event-queue to provide true FIFO priority-scheduling.
- Prioritized cooperative scheduling.
- Time control (Timed tasks and software timers)
- Inter-Task communication primitives, queues, notifications and event-flags.
- State-Machines ( hierarchical support )
- Co-routines.
- AT Command Line Interface (CLI)
QuarkTS is developed using a formal and rigorous process framed in compliance of the MISRA C 2012 and CERT coding standard guidelines and complemented with multiple static-analysis checks targered to safe critical applications.
QuarkTS is not intended to replace o compete with the other great and proven RTOS options already available today, for example FreeRTOS or MicroC/OS-II, in fact, you should check these options first. The design goal of QuarkTS is to achieve its stated functionality using a small, simple, and (most importantly) robust safety implementation to make it suitable on resource-constrained microcontrollers, where a full-preemptive RTOS may become an overkill and ends up adding unnecessary complexity to firmware development.
Their modularity and reliability make this OS a great choice to develop efficiently a wide range of applications in low-cost devices, including automotive controls, monitoring and Internet of Things.
Make sure to use the recursive flag to fetch the kernel submodule into src/os
git clone https://github.com/kmilo17pet/QuarkTS.git --recursive
git submodule add -b kernel_only https://github.com/kmilo17pet/QuarkTS.git <destination path>
Then, run the initialize command to fetch the code for the first time:
git submodule update --init
git submodule update --remote
curl https://raw.githubusercontent.com/kmilo17pet/QuarkTS/master/src/config/qconfig.h -o <destination path>/qconfig.h