Introduction

Author: Eira Mørch-Thoresen, Microchip Technology Inc.

FreeRTOS is a real-time operating system kernel for embedded devices. It is designed to be small and simple, and thus, does only consist of a few files written mostly in C.

Microcontrollers are often used for real-time embedded applications, meaning that the embedded system must be able to respond to certain events within a strictly defined amount of time. To ensure that the system meets these deadlines, the RTOS has a scheduler that decides which task to run at any instance of time.

The FreeRTOS provides features for tasks, task communication, and scheduling, and has become the de facto standard real-time operating system (RTOS) for microcontrollers. The primary design goals of FreeRTOS are robustness, ease of use and a small footprint.

This document starts by describing how FreeRTOS can be configured and then goes on to explain blocking functions, inter-task communication schemes, and scheduling. A section about debugging is included as well, before the section about the demo code. The application note also provides UML diagrams for each of the tasks in the demo.