Products
Downloads
Documentation
Articles
Licensing
Information
Products
RT
NIL
OSLIB
SB (new)
HAL
EX
ChibiStudio
Documentation
Documentation
Web Book - ChibiOS/RT
Articles and Guides
Licensing
Downloads
Contacts
Contact us
Request a Free License
Request a Quote
Community and Support
Support Forums
Play Embedded
SourceForge Page
GitHub Community Repository
Continuous Integration Server
Changes Review Server
OSDN Page (discontinued)
ChibiOS/RT
The Ultimate Guide
Updated to RT 6
Copyright (C) 2014..2020
Giovanni Di Sirio
all rights reserved
Chapter 1 - Introduction
Book Objectives
History
Background
Installation
Chapter 2 - Real Time Systems Concepts
Divide et Impera
Classification
What an RTOS is
What an RTOS is not
Chapter 3 - Embedded RTOSes
Priorities and Scheduling
Interrupts and Tasks
Interrupts
Tasks and Threads
Task Types
Synchronization
Critical Zones
Mutual Exclusion
Priority Inversion
Chapter 4 - ChibiOS General Architecture
System Requirement
Application Model
The Big Picture
Abstraction of Details
Chapter 5 - Introduction to the RT Kernel
Coding Conventions
Architecture
System States
API Classes
Thread Working Areas
Thread Functions
Chapter 6 - RT System Layer
Initialization
Abnormal Termination
Interrupts Handling
Critical Sections
Power Management
Realtime Counter
Chapter 7 - RT Time and Intervals
Global Settings
Definitions
System Time Counter
System Time API
Time Utilities API
Examples
Chapter 8 - RT Virtual Timers
One Shot Timers
Callbacks
Tickless Mode
Virtual Timers API
Examples
Chapter 9 - RT Scheduler
Global Settings
Scheduler Module
The System Class
The Ready List
Chapter 10 - RT Threading
Threads Declaration API
Threads Management API
Delays API
Threads References API
Threads Queues API
Priority Management API
Round Robin API
Examples
Chapter 11 - RT Counter Semaphores
Global Settings
Extensions
Counter Semaphores API
Examples
Chapter 12 - RT Mutexes, Condition Variables and Monitors
Global Settings
Mutexes
Mutexes API
Condition Variables
Condition Variables API
Monitors
Examples
Chapter 13 - RT Synchronous Messages
Global Settings
Client and Servers
Messages
Message Passing
Messages API
Examples
Chapter 14 - RT Events
Global Settings
Events
Operations
Simplified Events
Events API
Examples
Chapter 15 - RT Debug
Compile Time Checks
Runtime Checks
Kernel Statistics
System State Checks
Functions Parameters Checks
System Assertions
Trace Buffer
Stack Overflow Checks
Working Area Filling
Threads Profiling
Chapter 16 - The OS Library
Introduction
Requirements
Features Summary
Notes on Testing
Chapter 17 - OSLIB Memory Allocators
Global Settings
Allocator Types
The Core Allocator
Core Allocator API
The Pool Allocator
Pool Allocator API
The Guarded Pool Allocator
Guarded Pool Allocator API
The Heap Allocator
Heap Allocator API
Chapter 18 - OSLIB Binary Semaphores
Extensions
Binary Semaphores API
Examples
Chapter 19 - OSLIB Mailboxes
Global Settings
Description
Messages
Buffer
The Reset State
Mailboxes API
Examples
Chapter 20 - OSLIB Objects FIFOs
The Objects FIFO
Operations
Objects FIFOs API
Annex A - The ARMv6-M Port
Port Features
Preemption Modes
Port Features
Annex B - The ARMv7-M Port
Port Features
Assumptions
WFI Instruction Support
IRQ Priority Modes
MPU Stack Overflow Checking
MPU Context Switch Support
RTC Support
WFI Instruction Support
SVC System Call Support