Note
This project was completed as part of the Embedded Operatiing Systems course during the Winter Term 2023/24 of our undergraduate studies, offered by Prof. Dr. Peter Raab at Coburg University. It was originally developed outside of GitHub and later partially migrated here, so some elements may be missing.
Important
This project is licensed under the MIT License.
Here you will find a run-to-completion scheduler that I implemented as part of the course "Embedded Operating Systems" at the university. I called it coburs. coburs is a partial blend (Coburg [name of a small city located in Bavaria in Southern Germany] + Run-to-Completion Scheduler ) Feel free to extend/adjust this project so that it meets your goals.
A simple API was developed for process management, which offers the following methods:
- create (to create new processes)
- destroy (for deleting processes)
Process and context switch can be carried out using pure assembler code as well as a combination of C and assembler (controllable by a macro). Project is heavily commented
and documented. You will find the documentation under documentation/html
(this directory contains an automatically documentation generated by Doxygen).
This project was implemented and tested for an Arm-based processor (Arm Cortex M4). A concurrent chaser light application (with 8 LEDs) was used for illustration and demonstration.
8 processes take care of 8 leds avaialble. There are several modes of operation which you see in the video below.