The purpose of this project is to create a modern C++17 header-only interface to the FreeRTOS kernel API.
Goals of this project include:
The API documentation and examples are intended to mimic the kernel documentation and examples. Changes to references and examples are intended to reflect how one would use the C++ interface instead of the original interface.
├── cmake
├── examples
│ ├── config
│ ├── EventGroups
│ ├── Kernel
│ ├── MessageBuffer
│ ├── Mutex
│ ├── Queue
│ ├── Semaphore
│ ├── StreamBuffer
│ ├── Task
│ └── Timer
├── FreeRTOS-Cpp
│ ├── CMakeLists.txt
│ └── include
│ └── FreeRTOS
│ ├── EventGroups.hpp
│ ├── Kernel.hpp
│ ├── MessageBuffer.hpp
│ ├── Mutex.hpp
│ ├── Queue.hpp
│ ├── Semaphore.hpp
│ ├── StreamBuffer.hpp
│ ├── Task.hpp
│ └── Timer.hpp
├── FreeRTOS-Kernel
Directory that contains auxillary CMake modules. This is used to provide a CMake configuration for the FreeRTOS Kernel.
Directory that contains all of the examples in the the API documentation. There is a generic config file that's needed to ensure all of the examples correctly compile.
Directory that contains the interface library. This is the only directory that is needed to make use of this library.
Directory where the FreeRTOS kernel is cloned as a submodule from the official git repo. This version of the kernel is not required to use the project, but it is the version that is tested for compilation of examples.
The recommended way of using this project is to add it, or your fork of it, as a submodule in the desired project. Then simply add FreeRTOS-Cpp/include
as an include path in the project. A simple CMake configuration file is also provided.
This project makes use of C++17 language features, so be sure to enable C++17 features for your compiler.