• Stars
    star
    170
  • Rank 223,357 (Top 5 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 9 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Free real-time operating system (RTOS) for microcontrollers with advanced c++ wrapper and support for std::thread

StateOS

StateOS is free, extremely simple and very fast real-time operating system (RTOS) designed for deeply embedded applications.

Targets

ARM Cortex-M, STM8.

Inspiration

StateOS 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 (task function).

Documentation

All documentation is contained within source files, in particular header files.

Gettin started

Building an application for a specific compiler is realised using the appropriate makefile script.

Features

  • kernel can operate in preemptive or cooperative mode
  • 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, protect, ignore)
  • barriers
  • semaphores (binary, limited, counting)
  • mutexes with configurable type, protocol and robustness
  • fast mutexes (error checking)
  • condition variables
  • read/write locks
  • memory pools
  • raw buffers
  • message queues
  • mailbox queues
  • event queues
  • job queues
  • timers (one-shot, periodic)
  • hierarchical state machine
  • cmsis-rtos api
  • cmsis-rtos2 api
  • nasa-osal support
  • c++ wrapper
  • support for std::thread
  • all documentation is contained within source files, in particular header files
  • examples and templates are in separate repositories on GitHub
  • archival releases on sourceforge

Supported stdc++ features

  • std::thread, std::jthread, std::stop_callback, std::this_thread, ...
  • std::mutex, std::shared_mutex, std::condition_variable, ...
  • std::binary_semaphore, std::counting_semaphore, ...
  • std::lock_guard, std::unique_lock, std::shared_lock, ...
  • std::future, std::promise, std::assync, ...
  • std::barrier, std::latch, ...
  • std::chrono, ...
  • thread local storage (thread_local)
  • and more ...

License

This project is licensed under the terms of the MIT License (MIT).

More Repositories

1

IntrOS

Free cooperative operating system (OS) for microcontrollers
C
41
star
2

DemOS

Free, simple, extremely lightweight, stackless, cooperative, co-routine system (OS) for microcontrollers
Makefile
18
star
3

StateOS-STM8SDiscovery

Free real-time operating system (RTOS). Template for STM8S-Discovery board.
Shell
6
star
4

IntrOS-ATtiny817-Xplained-Mini

Free cooperative operating system (OS). Template for ATtiny817-Xplained-Mini board.
Shell
5
star
5

IntrOS-STM8SDiscovery

Free cooperative operating system (OS). Template for STM8S-Discovery board.
Shell
3
star
6

DemOS-x86-x64

Free quasi operating system (OS). Template for x86/x64 CPU.
CMake
2
star
7

StateOS-STM32F3Discovery

Free real-time operating system (RTOS). Template for STM32F3Discovery board. NOT TESTED!
C
2
star
8

StateOS_cpp11

RTOS designed for microcrocontrollers using std::thread. TEMPLATE.
C
2
star
9

StateOS-STM32F4Discovery

Free real-time operating system (RTOS). Template for STM32F4Discovery board.
C
1
star
10

IntrOS-LM4F120XL

Free cooperative operating system (OS). Example designed for EK-LM4F120XL board.
C++
1
star
11

StateOS-LM4F120XL

Free real-time operating system (RTOS). Example designed for EK-LM4F120XL board.
C++
1
star
12

IntrOS-STM32F0Discovery

Free cooperative operating system (OS). Template for STM32F0Discovery board.
C
1
star
13

StateOS-STM32F0Discovery

Free real-time operating system (RTOS). Template for STM32F0Discovery board.
C
1
star
14

common

Common submodule for embedded applications
C
1
star
15

DemOS-ST72334N4

Free quasi operating system (OS). Template for ST72334N4 uC.
C
1
star
16

StateOS-STM32F746G-Disco

Free real-time operating system (RTOS). Template for 32F746GDiscovery board. NOT TESTED!
C
1
star
17

IntrOS-STM32F746G-Disco

Free cooperative operating system (OS). Template for 32F746GDiscovery board. NOT TESTED!
C
1
star
18

IntrOS-STM32F4Discovery

Free cooperative operating system (OS). Template for STM32F4Discovery board.
C
1
star
19

IntrOS-STM32F3Discovery

Free cooperative operating system (OS). Template for STM32F3Discovery board. NOT TESTED!
C
1
star