A Preemptive Hard Real time kernel for embedded devices.
-
Static and Dynamic Priority Schedulers
- Preemptive Scheduling using a static priority scheduling class.
- An RMS (Rate Monotonic Scheduling) can be effective for use.
- Number of tasks at each priority level is 1.
- EDF (Earliest Deadline First)
- Limited Support for kernel services.
- Preemptive Scheduling using a static priority scheduling class.
-
Configurable Number of Tasks.
-
Lock/Unlock Scheduler.
-
Support Memory Management .
- Using a basic memory manager for fixed-sized allocatable objects in a memory partition (i.e region).
-
For Static Priority Scheduling
- Runtime Priority Change.
- Suspend/Resume Tasks.
- Mutex Support.
- Including OCPP ( Original Ceiling Priority Protocol ) to overcome priority inversion scenarios.
- Support Semaphores, Message Mailboxes and EventFlags .
-
Hooks APIs at Application and CPU port level.
-
Software based Tasks' stack overflow detection.
System | BSP / CPU Port | Notes |
---|---|---|
TI Stellaris LM4F120 | ✔️ | |
Linux machine | ✔️ | Requires POSIX.1b standards as minimal |
To add another port, Please read this porting guide first.
You include only a single header file pretty_os.h which contains the list of the public APIs with a proper description for each one.
Copyright © 2020 - present, Yahia Farghaly Ashour.
This project is MIT Licensed.