freeRTOS为每个支持的处理器分支都提供了一个提前配置好的,包含必要的源代码及头文件的示例工程。强烈推荐以这些示例工程为基础创建用户自己的应用。这篇文档就是帮助如何去找到和理解这些示例工程。
目录结构
从官网下载的freeRTOS源代码中包含很多已经移植好的例程,虽然文件数量很多,但是其实freeRTOS的内核文件仅仅只包含3个文件(软件定时器、事件组、协程都是可选功能)。
下载文件的根目录下,包含两个子文件夹FreeRTOS
和FreeRTOS-Plus
:
+-FreeRTOS-Plus 包含freeRTOS+和其组件及示例工程
¦
+-FreeRTOS 包含freeRTOS的内核源代码及示例工程
FreeRTOS-Plus
文件夹中包含很多描述内容的readme文件。本文档后面主要介绍freeRTOS的内核文件及示例,freeRTOS
组织结构如下:
FreeRTOS
¦
+-Demo 包含的示例工程
¦
+-Source freeRTOS的内核文件所在
RTOS的内核包含在三个文件里,分别是tasks.c
、queue.c
、list.c``,这三个文件在路径FreeRTOS/Source
下。相同路径下半酣另外两个可选的文件timers.c
和croutine.c
,分别实现了软件定时器和协程。
每中支持的架构都需要包含一些架构特定的代码,也就是RTOS的适配层(或移植层),他们在FreeRTOS/Source/Portable/[compiler]/[architecture]
子文件夹下,其中[compiler]
和[architecture]
是目标器件使用的编译器及其架构。
在适配层同样包含堆内存分配的示例代码,这些代码演示了如何进行内存管理。这些示例文件heao_x.c
位于路径FreeRTOS/Source/portable/MemMang
下。
适配层目录的例子:
- 如果使用GCC编译器和TriCore 1782
TriCore特定的适配文件(port.c)在路径FreeRTOS/Source/Portable/GCC/TriCore_1782
下。其它文件在FreeRTOS/Source/Portable
子目录下 ,目录FreeRTOS/Source/Portable/MemMang
,可以删除或者忽略
- 其它架构的使用方法相同
FreeRTOS/Source
目录结构如下:
FreeRTOS
¦
+-Source 内核文件
¦
+-include 内核文件的头文件
¦
+-Portable 处理器特定的代码
¦
+-Compiler x 所有支持编译器x的架构
+-Compiler y 所有支持编译器x的架构
+-MemMang 堆实现的示例程序
架构通用的主要代码在路径FreeRTOS/Demo/Common/Minimal
下,其中FreeRTOS/Demo/Common/Full
是PC特有的。
FreeRTOS/Demo
路径下的所有示例工程都是提前配置好的独立工程,子目录的名称可以看出示例工程所代表的处理器或架构,在官方网站上可以找到每个示例工程的详细信息。
例程目录的例子:
- 如果使用IAR集成开发环境建立瑞萨RX6000系列中的RX62N RDK的示例应用
IAR工作空间位于FreeRTOS/Demo/RX600_RX62N-RDK_IAR
,其它在路径FreeRTOS/Demo
下的子目录可以忽略或者删除。
- 其它开发环境下的示例应用程序使用方法相同
FreeRTOS/Demo
目录结构如下:
FreeRTOS
¦
+-Demo
¦
+-Common 所有示例应用共用的代码
+-Dir x 处理器x的示例应用代码文件
+-Dir y 处理器y的示例应用代码文件
创建你自己的应用
详细请见“创建新的freeRTOS应用”章节
提供的示例程序都是提前配置好的,强烈推荐读者使用这些文件创建自己的应用,这样最节省时间和精力。