
* Add a daemon socket listener so that the process loop will only execute if data is available on the socket. * Set process loop timeout to 0 so that other commands do not have to wait for a process loop that isn't doing anything. * Add an additional publisher task to show multiple tasks publishing simultaneously. * Clarify what is meant by "synchronous" and "asynchronous" publishes. * Fix possible race condition in task notification waits. * Move task notification wait loop to its own function. * The prvMQTTConnect function was doing more than just connecting, so it was split into more functions. * Minor name changes for clarity. * Add macros for AWS IoT metrics
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. Please also refer to FAQ for frequently asked questions.
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 https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules
Using SSH:
git clone git@github.com:FreeRTOS/FreeRTOS.git --recurse-submodules
If you have downloaded the repo without using the --recurse-submodules
argument, you need to run:
git submodule update --init --recursive
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 in FreeRTOS/FreeRTOS-Kernel repository, and it is consumed as a submodule in this repository.
The version of the FreeRTOS Kernel Source in use could be accessed at ./FreeRTOS/Source
directory.
A number of Demo projects can be found under ./FreeRTOS/Demo
directory.
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.
Previous releases
Previous releases are available for download under releases.