From the top, the download is split into two sub directories; FreeRTOS and
FreeRTOS-Plus. These are shown below:
+-FreeRTOS-Plus Contains FreeRTOS+ components and demo projects.
|
+-FreeRTOS Contains the FreeRTOS real time kernel source
files and demo projects
The FreeRTOS-Plus directory tree contains multiple readme files that describe
its contents. The rest of this page relates only to the core FreeRTOS kernel
source files and demo projects, which are contained in a further two sub
directories as shown below:
FreeRTOS
|
+-Demo Contains the demo application projects.
|
+-Source Contains the real time kernel source code.
The core RTOS code is contained in three files, which are called called tasks.c, queue.c and list.c. These three files are in the FreeRTOS/Source directory. The same directory contains two optional files called timers.c and croutine.c which implement software timer and co-routine functionality respectively.
Each supported processor architecture requires a small amount of architecture specific RTOS code. This is the RTOS portable layer, and it is located in the FreeRTOS/Source/Portable/[compiler]/[architecture] sub directories, where [compiler] and [architecture] are the compiler used to create the port, and the architecture on which the port runs, respectively.
For the reasons stated on the memory management page, the sample heap allocation schemes are also located in the portable layer. The various sample heap_x.c files are located in the FreeRTOS/Source/portable/MemMang directory.
Examples of portable layer directories:
The TriCore specific file (port.c) is in the FreeRTOS/Source/Portable/GCC/TriCore_1782 directory. All the other FreeRTOS/Source/Portable sub directories, other than FreeRTOS/Source/Portable/MemMang, can be ignored or deleted.
The RX600 specific file (port.c) is in the FreeRTOS/Source/Portable/IAR/RX600 directory. All the other FreeRTOS/Source/Portable sub directories, other than FreeRTOS/Source/Portable/MemMang, can be ignored or deleted.
The structure of the FreeRTOS/Source directory is shown below.
FreeRTOS
|
+-Source The core FreeRTOS kernel files
|
+-include The core FreeRTOS kernel header files
|
+-Portable Processor specific code.
|
+-Compiler x All the ports supported for compiler x
+-Compiler y All the ports supported for compiler y
+-MemMang The sample heap implementations
The FreeRTOS download also contains a demo application for every processor architecture and compiler port. The majority of the demo application code is common to all ports and is contained in the FreeRTOS/Demo/Common/Minimal directory (the code located in the FreeRTOS/Demo/Common/Full directory is legacy, and only used by the PC port).
The remaining FreeRTOS/Demo sub directories contain pre-configured projects used to build individual demo applications. The directories are named to indicate the port to which they relate. Each RTOS port also has its own web page that details the directory in which the demo application for that port can be found.
Examples of demo directories:
The TriCore demo application project file is located in the FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC directory. All the other sub directories contained in the FreeRTOS/Demo directory (other than the Common directory) can be ignored or deleted.
The IAR workspace file is located in the FreeRTOS/Demo/RX600_RX62N-RDK_IAR directory. All the other sub directories contained in the FreeRTOS/Demo directory (other than the Common directory) can be ignored or deleted.
The structure of the FreeRTOS/Demo directory is shown below.
FreeRTOS
|
+-Demo
|
+-Common The demo application files that are used by all the demos.
+-Dir x The demo application build files for port x
+-Dir y The demo application build files for port y
The pre-configured demo applications are supplied to ensure projects already exist with the correct RTOS kernel source files included, and the correct compiler options set, and therefore build with the minimum of user effort. It is therefore highly recommended that new applications are created by modifying an existing pre-configured demo application. This can be done by first building an existing demo application to ensure a clean build can be achieved, and then incrementally replacing the files included in the project from the FreeRTOS/Demo directory with your own application source files.