Homepage | FAQ

FreeRTOS FAQ - What is This All About?

This is a subsection of the full FAQ

What is a Real Time Operating System (RTOS)?
What is a Real Time Kernel?
What is a Real Time Scheduler?
How do I use FreeRTOS?
How do I get started?
Why use an RTOS?

This is a subsection of the full FAQ



What is a Real Time Operating System (RTOS)?

Reading the FreeRTOS Tutorial Book will go a long way to answering this question.

See the page "what is an RTOS" for a more detailed explanation than provided here.

A Real Time Operating System is an operating system that is optimised for use in embedded/real time applications. Their primary objective is to ensure a timely and deterministic response to events. An event can be external, like a limit switch being hit, or internal like a character being received.

Using a real time operating system allows a software application to be written as a set of independent tasks. Each task is assigned a priority and it is the responsibility of the Real Time Operating System to ensure that the task with the highest priority that is able to run is the task that is running. Examples of when a task may not be able to run include when a task is waiting for an external event to occur, or when a task is waiting for a fixed time period.



What is a Real Time Kernel?

See the page "what is an RTOS" for a more detailed explanation than provided here.

A Real Time Operating System can provide many resources to application writers - including TCP/IP stacks, files systems, etc. The Kernel is the part of the operating system that is responsible for task management, and intertask communication and synchronisation. FreeRTOS is a real time kernel.



What is a Real Time Scheduler?

See the page "what is an RTOS" for a more detailed explanation than provided here.

Real Time Scheduler and Real Time Kernel are sometimes used interchangeably. Specifically, the Real Time Scheduler is the part of the RTOS kernel that is responsible for deciding which task should be executing.



How do I use FreeRTOS?

Reading one of the FreeRTOS Tutorial Books will go a long way to answering this question.

FreeRTOS is supplied as source code. The source code should be included in your application project. Doing so makes the public API interface available to your application source code.

When using FreeRTOS your application should be written as a set of independent tasks. This means your main() function does not contain the application functionality, but instead creates the application tasks, then starts the RTOS kernel. See the main.c and project files (makefile or equivalent) included with each port for examples.

Much more information is provided on the Creating a New FreeRTOS Application page.



How do I get started?

See the FreeRTOS Quick Start Guide.



Why use an RTOS?

You do not need to use an RTOS to write good embedded software. At some point though, as your application grows in size or complexity, the services of an RTOS might become beneficial for one or more of the reasons listed below. These are not absolutes, but opinion. As with everything else, selecting the right tools for the job in hand is an important first step in any project.

In brief:


FAQ Top