1. Mastering the FreeRTOS™ Real Time Kernel
  2. List of Abbreviations
  3. Getting Started
  4. Preface
    1. Multitasking in Small Embedded Systems
    2. Included Source Files and Projects
  5. The FreeRTOS Kernel Distribution
    1. Introduction
    2. Understanding the FreeRTOS Distribution
    3. Demo Applications
    4. Creating a FreeRTOS Project
    5. Data Types and Coding Style Guide
  6. Core Kernel Concepts
  7. Heap Memory Management
    1. Introduction
    2. Example Memory Allocation Schemes
    3. Heap Related Utility Functions and Macros
    4. Using Static Memory Allocation
  8. Task Management
    1. Introduction
    2. Task Functions
    3. Top Level Task States
    4. Task Creation
    5. Task Priorities
    6. Time Measurement and the Tick Interrupt
    7. Expanding the Not Running State
    8. The Idle Task and the Idle Task Hook
    9. Changing the Priority of a Task
    10. Deleting a Task
    11. Thread Local Storage and Reentrancy
    12. Scheduling Algorithms
  9. Kernel Objects and Communication
  10. Queue Management
    1. Introduction
    2. Characteristics of a Queue
    3. Using a Queue
    4. Receiving Data From Multiple Sources
    5. Working with Large or Variable Sized Data
    6. Receiving From Multiple Queues
    7. Using a Queue to Create a Mailbox
  11. Software Timer Management
    1. Chapter Introduction and Scope
    2. Software Timer Callback Functions
    3. Attributes and States of a Software Timer
    4. The Context of a Software Timer
    5. Creating and Starting a Software Timer
    6. The Timer ID
    7. Changing the Period of a Timer
    8. Resetting a Software Timer
  12. Interrupt Management
    1. Introduction
    2. Using the FreeRTOS API from an ISR
    3. Deferred Interrupt Processing
    4. Binary Semaphores Used for Synchronization
    5. Counting Semaphores
    6. Deferring Work to the RTOS Daemon Task
    7. Using Queues within an Interrupt Service Routine
    8. Interrupt Nesting
  13. Resource Management
    1. Chapter Introduction and Scope
    2. Critical Sections and Suspending the Scheduler
    3. Mutexes (and Binary Semaphores)
    4. Gatekeeper Tasks
  14. Event Groups
    1. Chapter Introduction and Scope
    2. Characteristics of an Event Group
    3. Event Management Using Event Groups
    4. Task Synchronization Using an Event Group
  15. Task Notifications
    1. Introduction
    2. Task Notifications; Benefits and Limitations
    3. Using Task Notifications
  16. Advanced Topics
  17. Low Power Support
    1. Power Saving Introduction
    2. FreeRTOS Sleep Modes
    3. Functions and Enabling Built-in Tickless Idle Functionality
    4. Implementing portSUPPRESS_TICKS_AND_SLEEP() Macro
    5. Idle Task Hook Function
  18. Developer Support
    1. Introduction
    2. configASSERT()
    3. Tracealyzer for FreeRTOS
    4. Debug Related Hook (Callback) Functions
    5. Viewing Run-time and Task State Information
    6. Trace Hook Macros
  19. Troubleshooting
    1. Chapter Introduction and Scope
    2. Interrupt Priorities
    3. Stack Overflow
    4. Use of printf() and sprintf()
    5. Other Common Sources of Error