FreeRTOS: Programming for Real Time Operating Systems Training Course

Course Code



7 hours (usually 1 day including breaks)


  • Familiarity with embedded systems
  • Basic experience with C programming


  • Engineers
  • Engineering students
  • Anyone interested in learning FreeRTOS
  • Anyone interested in embedded systems


FreeRTOS is a cross platform real-time operating system (RTOS) kernel for embedded devices such as microcontrollers and small microprocessors.

In this instructor-led, live training, participants will learn how to code using FreeRTOS as they step through the development of a simple RTOS project using a microcontroller.

By the end of this training, participants will be able to:

  • Understand the basic concepts of real-time operating systems.
  • Learn the environment of FreeRTOS.
  • Learn how to code with FreeRTOS.
  • Interface a FreeRTOS application to hardware peripherals.

Format of the course

  • Part lecture, part discussion, exercises and heavy hands-on practice


  • Participants are expected to provide their own hardware for this course (any STM32 board).

Course Outline


Understanding Real-Time Operating Systems (RTOS)

Learning the Concept of Multitasking in Embedded Systems

Overview of the FreeRTOS Kernel

Overview of the STM32 MCU Board

Setting Up the Development Environment

  • Downloading and Installing All Required Software
  • Setting Up the STM32 Firmware and Hardware

Understanding Task Management in RTOS

  • Understanding Stack Memory and Task Stack Size
  • Creating Your First Tasks
  • Using Task Parameters
  • Implementing Task Priorities
  • Exploring Task States
  • Implementing Delays
  • Using the Idle Task Hook
  • Deleting Tasks

Communicating Between Tasks

  • Managing Queues
    • Overview of Queues
    • Using a Queue
  • Managing Interrupts (Semaphores)
    • Overview of Interrupts and Semaphores
    • Writing an Interrupt Handler on FreeRTOS
    • Using Semaphores to Synchronize Tasks with Interrupts
    • Queuing within an Interrupt Service Routine

Managing Resources

  • Using Mutexes
  • Using Binary Semaphores
  • Using Counting Semaphores

Managing Memory and Time

Learning the Internals of FreeRTOS    

  • Debugging and Performance Tools
  • Kernel Internals

Creating a Blinking Board Using FreeRTOS

  • Learning the GPIO pins on STM32
  • Using Tasks to Blink an On-Board LED
  • Turning the LED On/Off Using Queueing
  • Turning the LED On/Off Using Interrupts


Closing Remarks



Related Categories

Related Courses

Course Discounts

Course Discounts Newsletter

We respect the privacy of your email address. We will not pass on or sell your address to others.
You can always change your preferences or unsubscribe completely.

Some of our clients

is growing fast!

We are looking for a good mixture of IT and soft skills in Italy!

As a NobleProg Trainer you will be responsible for:

  • delivering training and consultancy Worldwide
  • preparing training materials
  • creating new courses outlines
  • delivering consultancy
  • quality management

At the moment we are focusing on the following areas:

  • Statistic, Forecasting, Big Data Analysis, Data Mining, Evolution Alogrithm, Natural Language Processing, Machine Learning (recommender system, neural networks .etc...)
  • Hibernate/Spring, Scala, Spark, jBPM, Drools
  • R, Python
  • Mobile Development (iOS, Android)
  • LAMP, Drupal, Mediawiki, Symfony, MEAN, jQuery
  • You need to have patience and ability to explain to non-technical people

To apply, please create your trainer-profile by going to the link below:

Apply now!

This site in other countries/regions