User's manual
Note: The User’s Manual is currently work in progress.
RTOS
-
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
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
Clocks
- 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
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
Credits
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.