IntrOS
Free, simple and tiny cooperative operating system (OS) designed for deeply embedded applications.
Target: ARM Cortex-M, STM8, AVR8.
It was inspired by the concept of a state machine.
Procedure executed by the task (task state) doesn’t have to be noreturn-type.
It will be executed into an infinite loop.
There’s a dedicated function for immediate change the task state.
Features
- kernel can operate in cooperative (non-preemptive) mode only
- kernel can operate with 16, 32 or 64-bit timer counter
- kernel can operate in tick-less mode
- implemented basic protection using MPU (use nullptr, stack overflow)
- implemented functions for asynchronous communication with unmasked interrupt handlers
- spin locks
- once flags
- events
- signals with protection mask
- flags (any, all)
- barriers
- semaphores
- mutexes
- condition variables
- read/write locks
- memory pools
- raw buffers
- message queues
- mailbox queues
- event queues
- job queues
- timers (one-shot, periodic)
- hierarchical state machine
- c++ wrapper
- all documentation is contained within the source files
- examples and templates are in separate repositories on GitHub
- archival releases on sourceforge
Targets
ARM CM0(+), CM3, CM4(F), CM7
License
This project is licensed under the terms of MIT License (MIT).