您的位置:首页 > 其它

FreeRTOS 源码结构说明

2016-04-04 23:06 197 查看
FreeRTOS 源代码结构

每个实时操作系统接口来自于已经建立了必要的源文件的RTOS和包含必要RTOS的头文件的预先设定好的演示应用程序。强烈建议一个新的FreeRTOS基础应用采用提供的演示例程来作基础。本网页可帮助你更好的设置和理解已提供的项目工程的。

基本目录结构

下载FreeRTOS包中包含了每一种处理器的接口和演示应用程序的源码。将所有的接口放在一个单一的下载文件中大大简化了配置。但同时文件的数目也多到让人畏惧。还好FreeRTOS的文件结构非常简单,FreeRTOS的实时内核也仅仅只包含3个文件(当需要软件定时器、事件组或者协同程序software timer、 event group o、 co-routine函数时则需要添加文件)。

在最顶层,下载文件被分为两个子目录:FreeRTOS 和FreeRTOS-Plus。如下所示:

+-FreeRTOS-Plus Contains
FreeRTOS+ components and demo projects.
¦
+-FreeRTOS Contains the FreeRTOS real time kernel source
files and demo projects
FreeRTOS-Plus包含FreeRTOS+的组件和演示项目

FreeRTOS包含FreeRTOS实时内核的源文件和演示项目

FreeRTOS-Plus目录树包含了多个自述文件。本页面下面将着重介绍核心的FreeRTOS内核源文件和演示程序。其包含在如下所示的两个子目录下:

FreeRTOS
¦
+-Demo Contains the demo application projects.
¦
+-Source Contains the real time kernel source code.
本核心实时操作系统内核包含在3个文件中,它们分别是tasks.c, queue.c , list.c三个文件,这三个文件在FreeRTOS/Source目录下。同时,该目录好包含了分别实现软件定时器和协同例程功能的timers.c 和 croutine.c两个可选文件。

每一款支持的处理器体系架构都需要少量的跟特定架构相关的RTOS代码。这是RTOS的移植层,这些代码放在FreeRTOS/Source/Portable/[compiler]/[architecture]子目录下面,[compiler] 和 [architecture] 分别为用来创建接口的编译器和接口所要运行的处理器架构体系。

如内存管理页面描述的,样本堆分配方案也位于移植层当中各种样本堆源文件heap_x.c (其中x为版本数字)位于FreeRTOS/Source/portable/MemMang目录下。

移植层目录举例:

l 如果采用TriCore 1782处理器的接口和GCC编译器

TriCore 的特定文件(port.c)在FreeRTOS/Source/Portable/GCC/TriCore_1782目录下。因此除了FreeRTOS/Source/Portable/MemMang以外,FreeRTOS/Source/Portable下其他所有的子目录均可忽略或者删除。

l 如果采用Renesas RX600 处理器的接口和IAR编译器:

RX600 特定文件(port.c)在FreeRTOS/Source/Portable/IAR/RX600 目录下,因此除了FreeRTOS/Source/Portable/MemMang以外,FreeRTOS/Source/Portable下其他所有的子目录均可忽略或者删除。

FreeRTOS/Source的目录结构如下所示

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
Source 包含了FreeRTOS内核的核心文件,include 包含了FreeRTOS内核的所有核心头文件,Portable 包含了处理器相关的特定代码,Compiler x 包含了x编译器支持的所有接口,Compiler
y 包含了y编译器支持的所有接口,MemMang 包含了所有样本堆的实现。

FreeRTOS的下载文件中也包好了每一种处理器架构和编译器接口的演示程序。大多数的演示程序的所有接口都是通用的,这些演示程序包含在FreeRTOS/Demo/Common/Minimal 目录下面(FreeRTOS/Demo/Common/Full目录下面的代码只使用于PC接口)

剩下的 FreeRTOS/Demo子目录包含用于构建个人演示程序的预配置项目。这些目录被命名为他们所关联的接口。每一种RTOS接口也有他们自己的详细的介绍其演示程序的网页。

演示目录举例:

l 如果要建一个针对Infineon TriBoard 硬件的TriCore GCC 演示程序:

TriCore 的演示程序在FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC目录下面,FreeRTOS/Demo的所有其他子目录(出了公共目录外)均可以忽略或者删除。

l 如果要建一个针对RX62N RDK 硬件的Renesas RX6000 IAR 演示程序:

IAR的工作文档在FreeRTOS/Demo/RX600_RX62N-RDK_IAR 目录下面,FreeRTOS/Demo的所有其他子目录(出了公共目录外)均可以忽略或者删除。

FreeRTOS/Demo 的目录结构如下所示:

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
创建自己的应用程序

预定配置的演示程序被用来确保已经存在的项目包含了正确的操作系统源文件,和正确的编译器设置选项,以及给用户建立最小的工程。因此强烈建议通过丢该已存在的预配置演示程序来创建新的应用程序。这可以通过首先建立一个已存在的演示程序来确保建立一个干净的应用程序,然后用自己的应用程序源文件逐步替换掉包含在FreeRTOS/Demo项目目录下的文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: