Skip to content
'Classic' FreeRTOS distribution. Started as Git clone of FreeRTOS SourceForge SVN repo. Submodules the kernel.
C C++ Assembly HTML Tcl XSLT Other
Branch: master
Clone or download

Getting started

The easiest way to use FreeRTOS is to start with one of the pre-configured demo application projects (found in the FreeRTOS/Demo directory). That way you will have the correct FreeRTOS source files included, and the correct include paths configured. Once a demo application is building and executing you can remove the demo application files, and start to add in your own application source files. See the FreeRTOS Kernel Quick Start Guide for detailed instructions and other useful links.

Additionally, for FreeRTOS kernel feature information refer to the Developer Documentation, and API Reference.

Getting help

If you have any questions or need assistance troubleshooting your FreeRTOS project, we have an active community that can help on the FreeRTOS Community Support Forum.

Repository structure

This repository contains the FreeRTOS Kernel, a number of supplementary libraries, and a comprehensive set of example applications.

Kernel sources

The FreeRTOS Kernel Source is located under FreeRTOS/Source

Hardware specific ports can be found under FreeRTOS/Source/portable

A number of Demo projects can be found under FreeRTOS/Demo

Supplementary library sources

The FreeRTOS-Plus/Source directory contains source code for some of the FreeRTOS+ components, as well as select partner provided libraries. These subdirectories contain further readme files and links to documentation.

FreeRTOS-Labs contains libraries and demos that are fully functional, but undergoing optimizations or refactorization to improve memory usage, modularity, documentation, demo usability, or test coverage. At this time the projects ARE A WORK IN PROGRESS and will be released in the main FreeRTOS directories of the download following full review and completion of the documentation.

Cloning this repository

This repo uses Git Submodules to bring in dependent components.

Note: If you download the ZIP file provided by GitHub UI, you will not get the contents of the submodules. (The ZIP file is also not a valid git repository)

To clone using HTTPS:

git clone --recurse-submodules

Using SSH:

git clone --recurse-submodules

If you have downloaded the repo without using the --recurse-submodules argument, you need to run:

git submodule update --init --recursive

Previous releases

Previous releases are available for download under releases.

You can’t perform that action at this time.