Skip to content
/ IntrOS Public

Free cooperative operating system (OS) for microcontrollers

License

Notifications You must be signed in to change notification settings

stateos/IntrOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0a894bb · Apr 23, 2024
Oct 20, 2022
Apr 23, 2024
Mar 18, 2023
Mar 8, 2021
Mar 29, 2021
May 5, 2021
May 5, 2021
Mar 8, 2021
Mar 9, 2021
Mar 23, 2021
Jul 28, 2022
May 5, 2021
May 5, 2021
May 5, 2021
May 5, 2021
May 5, 2021

Repository files navigation

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