daedalus-os is a simple RTOS I'm developing mainly for learning purposes. The goal is to support the core features one would expect from an RTOS (preemptive scheduling, mutexes, semaphores, queues, etc) without introducing too much extra functionality or optimization tricks, in order for other beginners to more easily understand how an RTOS works. I am planning to target Cortex-M MCUs, but currently testing is being performed via OS threads (to simulate context switching on a desktop).
✔️ Preemptive scheduling
✔️ Round-robin scheduling for tasks of same priority
✔️ Mutexes
✔️ Mutex priority inheritance
✔️ Semaphores
✔️ Queues
✔️ Event groups
✔️ Fully static memory allocation
✔️ Desktop simulator (uses OS threads to simulate context switching)
❌ Task messages
❌ Low-power idle task
❌ Context switching
❌ ISR safe functions
Simply run make
. You may need to modify the make file to explicitly link pthreads if building with the USE_SIM flag.
If built with the USE_SIM flag (which is on by default), this can be ran from your desktop machine. Simply run daedalus
. You may experiment with app.c to test different OS functions.
daedalus-os is licensed under the MIT license and is completely free to use and modify.