User's manual

Last modified on Sat Jul 22 11:30:02 2023 UTC.   Improve this page

Note: The User’s Manual is currently work in progress.


Getting started with µOS++

Basic concepts



Thread event flags


Event flags


  • Overview
    • Normal mutexes
    • Recursive mutexes
  • Creating mutexes
  • Acquiring a mutex
  • Releasing a mutex
  • Multiple threads waiting on a mutex
  • Other mutex functions
  • Destroying mutexes
  • Priority inversion
  • Priority inheritance
  • Deadlock (or deadly embrace)

Condition variables

  • Overview
  • TODO

Message queues

  • Overview
  • Queue storage
  • Message priorities
  • Creating queues
  • Sending messages to queues
    • Sending messages from ISRs
  • Receiving messages from queues
  • Other message queue functions
  • Multiple threads waiting on message queues
  • Destroying queues

Fixed size memory pools

  • Overview
  • Pool storage
  • Creating memory pools
  • Getting a memory block
    • Getting a memory block from ISRs
  • Returning a memory block
  • Other memory pools functions
  • Multiple threads waiting on memory pools
  • Destroying memory pools

Software timers

  • Overview
  • Timer functions
  • Creating timers
  • Start a timer
  • Stop a timer
  • Other timer functions
  • Destroying timers


  • Overview
  • The system clock
  • The real time clock
  • The high resolution clock

Interrupts & critical sections

  • Overview
  • High/low priority interrupts
  • Interrupt nesting
  • Critical sections
  • Uncritical sections

Memory allocators

  • TODO

The scheduler

  • Scheduling points
  • The ready list
  • The scheduling algorithm
  • Waiting lists
  • The idle thread

Run-time statistics

  • Per-thread number of context switches
  • Per-thread number of CPU clocks used

Iterating threads


As the saying goes, “Books are written from books, and software from software”. As such, this manual too did not appear from nothing, but was influenced by the following manuals:

  • “Using the FreeRTOS Real Time Kernel”, by Richard Barry
  • “µC/OC-III The Real-Time Kernel - User’s Manual”, by Micriµm
  • “embOS & embOS-MPU - Real-Time Operating System - CPU-independent - User & Reference Guide”, by SEGGER

Other links:

Many thanks for their impressive work and for providing the inspiration.