Default priority slots
The default configuration provides 16 priority slots and supports a configurable range of 2–256. Priority 0 is reserved for idle; larger numeric values represent higher priority.
Embedded focus
Designed for ARM Cortex-M and STM32-oriented firmware, with static task resources and a compact kernel model.
IPC primitives
Events, mutexes, bounded queues and semaphores. Mutexes use IPC priority-ceiling behavior.
How the pieces fit together
⚡ Scheduling
The current kernel selects eligible work through a ready bitmap and per-priority queues, with configured-priority scanning and periodic release checks. It is not advertised as O(1) independent of the configured priority range.
🧠 Memory model
Task resources are statically allocated. There is no fixed OS_KERNEL_MAX_TASKS configuration constant; practical task count is constrained by the implementation, task-ID representation and available memory.
🛡️ Safety & monitoring
Watchdog, MPU, CRC, bounded RAM integrity testing, task integrity, stack and deadline mechanisms are configurable features. The default configuration does not enable every safety mechanism.