FreeRTOS源码组织(翻译)
每个RTOS接口都带有一个预配置的演示应用程序,该程序已经构建了必要的RTOS源文件,并包含必要的RTOS头文件。强烈建议将所提供的演示用作所有基于FreeRTOS的新应用程序的基础。提供此页面是为了帮助定位和理解所提供的项目。
基本目录结构
FreeRTOS下载包括每个处理器接口和每个演示应用程序的源代码。将所有接口都放在一个下载包中大大简化了分发,但是文件的数量似乎令人生畏。但是目录结构非常简单,FreeRTOS实时内核只包含在3个文件中(如果需要软件定时器、事件组或协例程功能,则需要额外的文件)。
顶部目录
从顶部开始,下载被分成两个子目录;FreeRTOS FreeRTOS-Plus。如下图所示:
±-- FreeRTOS-Plus || 包含FreeRTOS+组件和演示项目。.
|
±-- FreeRTOS || 包含FreeRTOS实时内核源文件和演示项目.

FreeRTOS-Plus目录
FreeRTOS-Plus目录树包含多个readme文件,这些文件描述了它的内容。本页其余部分只涉及核心FreeRTOS内核源文件和演示项目,它们包含在另外两个子目录中,如下所示:
FreeRTOS
|
±–Demo 包含演示应用程序项目。 .
|
| ±–Source 包含实时内核源代码.


FreeRTOS/Source目录。
核心RTOS代码包含在三个文件,这是所谓的被称为tasks.c,queue.c和list.c.这三个文件都在FreeRTOS/Source directory。同样的目录包含两个可选的文件名为timers.c和croutine.c ,分别实现软件定时器和协同例程功能。
每个受支持的处理器体系结构都需要特定于体系结构的RTOS代码。这是RTOS可移植层,它位于FreeRTOS/Source/ portable /[compiler]/[architecture]子目录中,其中[compiler]和[architecture]分别是用于创建接口的编译器和接口运行的架构。
由于内存管理页面上所述的原因,样例堆分配方案也位于可移植层。各种样例heap_x.c文件位于FreeRTOS/Source/portable/MemMang目录中。
可移植层目录的例子:
- 如果使用GCC编译器的TriCore 1782接口:
特定于TriCore的文件(port.c)位于FreeRTOS/Source/Portable/GCC/TriCore_1782目录中。除了FreeRTOS/Source/Portable/MemMang之外的所有其他FreeRTOS/Source/Portable/ Portable子目录都可以忽略或删除。 - 如果使用Renesas RX600接口与IAR编译器:
RX600特定文件(port.c)位于FreeRTOS/Source/Portable/IAR/RX600目录中。除了FreeRTOS/Source/Portable/MemMang之外的所有其他FreeRTOS/Source/Portable/ Portable子目录都可以忽略或删除。 - 所有的接口都是如此…
FreeRTOS
|
±Source 核心FreeRTOS内核文件
|
±include 核心FreeRTOS内核头文件
|
±Portable 处理器特定的代码。
|
±Compiler x 编译器x支持的所有接口
±Compiler y 编译器y支持的所有接口
±MemMang 示例堆实现

FreeRTOS/demo目录:
FreeRTOS下载还包含每个处理器体系结构和编译器接口的演示应用程序。演示应用程序的大部分代码对所有接口都是通用的,并且包含在FreeRTOS/ demo / common / minimum目录中(FreeRTOS/ demo / common /Full目录中的代码是遗留的,仅供PC接口使用)。
其余的FreeRTOS/Demo子目录包含用于构建单个演示应用程序的预配置项目。这些目录的命名是为了指示它们所关联的接口。每个RTOS接口都有自己的web页面,详细说明了可以在其中找到该接口的演示应用程序的目录。
- 如果构建针对英飞凌三板硬件的TriCore GCC演示应用程序:
TriCore演示应用程序项目文件位于FreeRTOS/ demo /TriCore_TC1782_TriBoard_GCC目录中。FreeRTOS/Demo目录(公共目录除外)中包含的所有其他子目录都可以忽略或删除。 - 如果构建针对RX62N RDK硬件的Renesas RX6000 IAR演示应用程序:
IAR工作区文件位于FreeRTOS/Demo/RX600_RX62N-RDK_IAR目录中。FreeRTOS/Demo目录(公共目录除外)中包含的所有其他子目录都可以忽略或删除。 - 所有的港口都是如此…
FreeRTOS/Demo目录的结构如下所示。
FreeRTOS
|
±Demo
|
±Common 所有演示使用的演示应用程序文件。
±Dir x 接口x的演示应用程序构建文件
±Dir y 接口y的演示应用程序构建文件

创建自己的应用程序
[关于创建一个新的FreeRTOS应用程序页面提供了更多的细节]
提供预配置的演示应用程序,以确保项目已经存在,其中包含正确的RTOS内核源文件,并设置了正确的编译器选项,从而以最小的用户工作量构建。因此,强烈建议通过修改现有的预配置演示应用程序来创建新应用程序。要做到这一点,可以首先构建一个现有的演示应用程序,以确保可以实现一个干净的构建,然后用自己的应用程序源文件逐步替换FreeRTOS/ demo目录中包含的项目文件。
本文深入剖析FreeRTOS源码组织结构,介绍了实时操作系统内核源文件、演示项目及处理器特定代码的位置与作用。通过理解目录布局,开发者能更高效地创建和修改基于FreeRTOS的应用。
1万+

被折叠的 条评论
为什么被折叠?



