freeRTOS为每个支持的处理器分支都提供了一个提前配置好的,包含必要的源代码及头文件的示例工程。强烈推荐以这些示例工程为基础创建用户自己的应用。这篇文档就是帮助如何去找到和理解这些示例工程。

目录结构

从官网下载的freeRTOS源代码中包含很多已经移植好的例程,虽然文件数量很多,但是其实freeRTOS的内核文件仅仅只包含3个文件(软件定时器、事件组、协程都是可选功能)。

下载文件的根目录下,包含两个子文件夹FreeRTOSFreeRTOS-Plus

  1. +-FreeRTOS-Plus 包含freeRTOS+和其组件及示例工程
  2. ¦
  3. +-FreeRTOS 包含freeRTOS的内核源代码及示例工程

FreeRTOS-Plus文件夹中包含很多描述内容的readme文件。本文档后面主要介绍freeRTOS的内核文件及示例,freeRTOS组织结构如下:

  1. FreeRTOS
  2. ¦
  3. +-Demo 包含的示例工程
  4. ¦
  5. +-Source freeRTOS的内核文件所在

RTOS的内核包含在三个文件里,分别是tasks.cqueue.clist.c``,这三个文件在路径FreeRTOS/Source下。相同路径下半酣另外两个可选的文件timers.ccroutine.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目录结构如下:

  1. FreeRTOS
  2. ¦
  3. +-Source 内核文件
  4. ¦
  5. +-include 内核文件的头文件
  6. ¦
  7. +-Portable 处理器特定的代码
  8. ¦
  9. +-Compiler x 所有支持编译器x的架构
  10. +-Compiler y 所有支持编译器x的架构
  11. +-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目录结构如下:

  1. FreeRTOS
  2. ¦
  3. +-Demo
  4. ¦
  5. +-Common 所有示例应用共用的代码
  6. +-Dir x 处理器x的示例应用代码文件
  7. +-Dir y 处理器y的示例应用代码文件

创建你自己的应用

详细请见“创建新的freeRTOS应用”章节

提供的示例程序都是提前配置好的,强烈推荐读者使用这些文件创建自己的应用,这样最节省时间和精力。