Skip to content

A minimal preemptive RTOS for ARM Cortex-M microcontrollers.

License

Notifications You must be signed in to change notification settings

kurtjd/daedalus-os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

daedalus-os (In Development)

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).

Planned Features (X is yet to be implemented)

✔️ 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

Build

Simply run make. You may need to modify the make file to explicitly link pthreads if building with the USE_SIM flag.

Run

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.

License

daedalus-os is licensed under the MIT license and is completely free to use and modify.

About

A minimal preemptive RTOS for ARM Cortex-M microcontrollers.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages