Presented By:
Now you can earn IEEE Professional Development Hours by attending CEC courses.

Hands-On Develop an RTOS Application Using freeRTOS

February 22, 2016, to February 26, 2016
Continuing Education Center

Charles J. Lord

Charles J. Lord, PE is an embedded systems consultant and trainer with over 40 years' experience in system design and development in medical, military, and industrial applications. For the last... More

In previous CEC classes we have looked at some different Real-Time Operating Systems (RTOS) for microcontrollers. We have looked at a cross-platform commercial RTOS (uCOS) and a platform-specific free RTOS (MQX).


By popular request, this is a hands-on course that will teach you how to use freeRTOS, a free, open-source cross-platform real-time operating system. The online course will begin with a look at RTOS basics and work through an example, step-by step, of how to create an RTOS application from scratch. We will use the popular and inexpensive ARM-based STMicroelectronics’ STM32 Nucleo board and make use of an inexpensive Arduino shield (interface board) and the Atollic TrueStudio integrated development environment. Code will be provided so that attendees can follow along. We will use the STMVLDiscovery kit (, STM32L152 Nucleo board (, and optional SparkFun ProtoShield Kit ( All are available from Digi-Key.

February 26 - Day 5: Troubleshooting Our RTOS Design

Now that our code is written, we will need to test and debug it. In this final class, we will see how the debugger works with the RTOS to provide task-level debugging. The finished code will be available to help course students follow along and compare with their own code.
February 26, 2016 - 1:00pm EST

February 25 - Day 4: Defining and Running the Project

In this penultimate class, we will take what we learned so far and define the tasks of our project. We will look at some simple "lightweight" elements that we may choose for our project, such as messaging, events, semaphores, and mutexes.
February 25, 2016 - 2:00pm EST

February 24 - Day 3: Changing Processors & Making It Work

A common challenge of RTOS implementations is their limitation to certain chips, development boards, and toolchains. We will bring up our initial solution using the STM32F100 board and then look at how we will have to modify the code to work with our designated STM32 Nucleo processor and board.
February 24, 2016 - 1:00pm EST

February 23 - Day 2: RTOS System Development Setup

Our toolset will be an important part of making our project successful. We will install and investigate these tools, followed by learning how to set them up, consisting of the STMicro STM32 Nucleo and the Atollic TrueStudio IDE, in tandem with the freeRTOS download.
February 23, 2016 - 1:00pm EST

February 22 - Day 1: Introduction to freeRTOS / RTOS Refresher

In this leadoff class, we will review the basics of how a task-switching RTOS operates and the design criteria we need to begin our hands-on design project. We will look at the freeRTOS real-time operating system and the elements that we will be using in our project.
February 22, 2016 - 1:00pm EST
Subscribe to Hands-On Develop an RTOS Application Using freeRTOS