What is FreeRTOS?

What is FreeRTOS?

For microcontrollers and small microprocessors, FreeRTOS is a market-leading real time operating system (RTOS). FreeRTOS is freely distributed under the MIT open-source license and provides a kernel and an set of libraries. Suitable for use in all branches of industry. FreeRTOS is designed with a focus on accuracy and ease of use.

For networking, privacy, and over-the-air (OTA) updates, FreeRTOS includes libraries. Often, FreeRTOS contains Demo programs that show FreeRTOS functionality on boards.

An open-source project is FreeRTOS. You can download the source code, add changes or improvements, or report them on the GitHub platform.

What is a FreeRTOS port?

A FreeRTOS port is a board-specific implementation of APIs provided by your platform for the needed FreeRTOS libraries. The port allows the APIs to work on the board and implements the Integration with the machine drivers and BSPs provided by the provider of the platform. Any configuration variations (e.g., clock rate, stack size, heap size) that are needed by the board should also be included in your port.

No alt text provided for this image No alt text provided for this image

System requirements:

A microcontroller board that satisfies the following minimum specifications must be the computer that you port to FreeRTOS:

Processing Speed of 25MHz

64KB of RAM

Per executable image stored on the MCU, 128KB program memory. Porting FreeRTOS to your machine:

  • Download the latest version of FreeRTOS source code.
  • After downloading FreeRTOS source code, you need to configure some of the FreeRTOS download files and directories before you can start the porting process.
  • Follow these instructions to configure your FreeRTOS download directory structure to match your machine:

The vendors folder is organized as follows under the root directory (freertos):

No alt text provided for this image

vendor and board directories are template folders that we provide to make prototype and test projects easier to build. Their directory structure means that they provide a clear organization for all demo and test projects.

The folder aws_tests has the following structure:

No alt text provided for this image

All test projects include libraries of vendor-supplied drivers. Some vendor-supplied files are unique to a target development board, such as a header file that maps the GPIO output to an LED light. These files belong to the vendor_code folder.

Configuring directories for project files:

The projects folder under Freertos is organized as follows:

No alt text provided for this image

To set up the folders for the project-

  • Rename the ide folder to the name of the IDE you are using to create the test project.
  • Rename the vendor folder as the name of the vendor and rename the board directory as the name of the board.
Configuring FreeRTOSConfig.h:

Configure your board name in the FreeRTOSConfig.h configuration header file after you have configured the directory structure of your FreeRTOS download.

  • Open freertos/vendors/vendor/boards/board/aws_tests/config_files/FreeRTOSConfig.h.
  • In the line #define configPLATFORM_NAME "Unknown", change Unknown to match the name of your board.
Our FreeRTOS Experience:

We at Encoding Enhancers also understands the need of FreeRTOS for various processes in the industry. We have worked on heat controllers and leak detection devices which includes the use of FreeRTOS. We have developed products using several development boards from NXP, TI, ESP32, Arduino, etc. That includes full understanding of FreeRTOS, low level peripheral driver development and firmware development for our products. We are experienced in working with FreeRTOS and with its pros and cons. Along with this we have expertise in developing memory, power and speed optimized applications.


Seeing the role of operating systems in almost each field of the technology FreeRTOS becomes a must have option for the industries in present times as it serves the purpose of real time events management. This document shows how an FreeRTOS, can be ported to your development board.

Ready to discuss your project? Let's Talk Contact Us