Monday 13 July 2020

Developing & Delivering KnowHow

Home > Training > FreeRTOS Real-Time Programming

F2F trainingFreeRTOS Real-Time Programming ONLINE

Standard Level - 5 sessions

view dates and locations

PLEASE NOTE: This is a LIVE INSTRUCTOR-LED training event delivered ONLINE.

It covers the same scope and content as a scheduled face-to face class and delivers comparable learning outcomes. Daily sessions comprise 4-6 hours of class contact time.

Real-Time Operating Systems (RTOSes) are operating systems developed for embedded microprocessors or controllers. These systems have the ability to immediately respond in a predetermined and predictable way to external events, so they must meet strict deadline constraints and handle different aspects of the application successfully.

A key feature of an RTOS is ensuring that most urgent operations are taken care of by assigning higher priorities. Real-Time systems also focus on the communication and synchronization between different tasks to achieve the objective of the application.

FreeRTOSThis course is based on FreeRTOS, the de facto and freely available standard RTOS for microcontrollers. Attendees will gain the knowledge and skills needed to develop and maintain applications running in a Real-Time environment.

Workshops comprise approximately 50% of class time, and are based around carefully designed Labs to reinforce and challenge the extent of learning.

The course is provided in partnership with embedded experts AC6.

What you will learn

  • Cortex-M4 architecture overview
  • Discover the concepts of Real-Time multitasking
  • Understand Real-Time constraints
    • Determinism
    • Preemption
    • Interrupts
  • Understand the FreeRTOS architecture
  • Discover the various FreeRTOS services and APIs
  • Learn how to develop FreeRTOS applications

Who should attend?

This course is designed for anyone interested in, or tasked with, the development of a resource constrained Real-Time system. For example - software engineers, field engineers and (project) managers.



  • No hardware is required. The course uses a QEMU emulated STM32F407-Discovery board (Cortex/M4) with System Workbench IDE running on a virtual machine in the cloud. Delegates get to keep a copy of the virtual machine.

Course materials

  • Soft PDF copies of the course materials are provided to each delegate.

This course is provided in partnership with embedded experts AC6.

Structure and Content


Cortex-M Overview
  • ARMv7-M Architecture
  • Cortex-M4 Architecture
  • Registers and Execution States
  • Privileges, Mode and Stacks
Exercise:  Create a new project
  • Reset Behavior
  • Exception and Interrupts
  • The System Timer
Exercise:  Interrupt Management
  • Memory Model
  • Power Management
  • STM32F407x Implementation Example


Real-Time Concepts
  • Embedded system architectures
  • Tasks and process
  • Real-Time
Exercise:  Context Switch

Introduction to FreeRTOS
  • The FreeRTOS Family
  • FreeRTOS+Ecosystem
  • Why use FreeRTOS
  • FreeRTOS Code Structure

  • Scheduler
  • Schedulability

Task Management (1st part)
  • Creating Tasks
Exercise:  Task Management
  • Task Priorities
  • Task States
  • The idle task
  • Delays
  • Changing Task Priority
  • Deleting Tasks
  • Suspending Tasks
Exercise:  Periodic Tasks
  • Kernel Structures
  • Thread Local Storage


Task Management (2nd part)
  • Kernel Interrupts on Cortex-M4
  • Scheduling Traces
Exercise:  Task Statistics

Memory Management in FreeRTOS
  • FreeRTOS Memory Managers
  • Out of Memory management
  • Stack overflow detection
Exercise:  Context Switch Measurement

Resource Management
  • Mutual Exclusion
  • Critical Sections
  • Mutexes
Exercise:  Resource Management
  • Gatekeeper Tasks
  • Lock-Free Data Structures


Synchronization Primitives
  • Queues
Exercise:  Queue Management
  • Queues Sets
  • Synchronization
  • Events and Event Groups
  • The Readers/writer problem
Exercise:  Readers Writer Problem

Interrupt Management (1st part) 2 hours
  • Tasks and Interrupts
  • FreeRTOS Binary and Counting Semaphores
Exercise:  Interrupt Management
  • Using Other Primitives within an ISR


Interrupt Management (2nd part)
  • Task Notifications
  • Stream Buffers
  • Message Buffers
  • Interrupt Nesting
  • Low Power Support
Exercise:  Tickless Mode

Software Timer
  • Software Timers
Exercise:  Implement Soft Timers
  • Deferred Interrupt Handling
Exercise:  Software Timer Management

Course Dates:
July 13th, 2020 ONLINE AmericasCourse has started
August 24th, 2020 ONLINE EurAsia Enquire
August 31st, 2020 ONLINE Americas Enquire
October 19th, 2020 ONLINE EurAsia Enquire
October 26th, 2020 ONLINE Americas Enquire
December 14th, 2020 ONLINE EurAsia Enquire
indicates CONFIRMED TO RUN courses.

Looking for team-based training, or other locations?

Complete an on-line form and a Doulos representative will get back to you »

Price on request

Back to top
Privacy Policy Site Map Contact Us