FreeRTOS源码组织(翻译)

本文深入剖析FreeRTOS源码组织结构,介绍了实时操作系统内核源文件、演示项目及处理器特定代码的位置与作用。通过理解目录布局,开发者能更高效地创建和修改基于FreeRTOS的应用。

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目录中包含的项目文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值