# FreeRTOS Support Overview

FreeRTOS is a market-leading real-time operating system (RTOS) for microcontrollers and small microprocessors. Distributed freely under the MIT open source license, FreeRTOS includes a kernel and a growing set of libraries suitable for use across all industry sectors. FreeRTOS is built with an emphasis on reliability and ease of use.

C2000Ware SDK supports FreeRTOS on C28x and Cortex-M4(CM) cores.

## Features Supported

- FreeRTOS Kernel

    - Tasks, semaphores, mutex, queues, timers, list, heap, event groups

    - preemptive priority based scheduler

    - static and/or dynamic memory allocation mode

    - fpu32 and fpu64 support in the port

- Sysconfig Support

    - SysConfig can be used to configure kernel constructs along with the tick timer configuration

    - Available for c28x only

## Features NOT Supported

- Support for Port Optimised Task Selection in not available in c28x port

- Syscfg support is not available for CM examples

## Important files and directory structure

FreeRTOS source is distributed along with C2000Ware SDK and given below are some important files and folders related to FreeRTOS.

  - FreeRTOS kernel : <C2000Ware root>/kernel/FreeRTOS/Source

  - FreeRTOS C28x port : <C2000Ware root>/kernel/FreeRTOS/Source/portable/CCS/C2000_C28x

  - FreeRTOS CM port : <C2000Ware root>/kernel/FreeRTOS/Source/portable/CCS/ARM_CM4

  - FreeRTOS Demos: <C2000Ware root>/kernel/FreeRTOS/Demo

## Tool Chain Support

- Code Composer Studio™ IDE (CCS) v11.1.0 or newer

- C2000 Compiler v20.2.1.LTS or newer

- C2000Ware_3_01_00_00 or newer

- FreeRTOSv202112.00

## Additional references

Given below are some references to learn more about FreeRTOS. - Easy to read FreeRTOS book: https://www.freertos.org/Documentation/RTOS_book.html - FreeRTOS user docs: https://www.freertos.org/features.html - User API reference: https://www.freertos.org/a00106.html - FreeRTOS core kernel source code: https://github.com/FreeRTOS/FreeRTOS-Kernel - FreeRTOS core kernel example source code: https://github.com/FreeRTOS/FreeRTOS/tree/master/FreeRTOS