zoukankan      html  css  js  c++  java
  • 了解FreeRTOS源文件目录结构

    参考文献:

    从官网下载下来的FreeRTOS源文件包,对于每一个已经移植完成的处理器,都有一个与之对应的Demo应用程序可供参考。强烈建议新手首先从Demo开始去学习如何使用FreeRTOS.

    • 基本目录结构

    针对各个处理器所做的移植,以及其对应的Demo,数目如此多的文件,全部都存放在同一个压缩文件里。这样做极大地简化了FreeRTOS的发布过程,但是面对这么多的源文件,也很可能会令新手望而生畏。其实,FreeRTOS源文件包的目录结构非常简洁,更出人意料的是,FreeRTOS实时内核仅仅只包含3个文件(如果需要用到software timerevent group or co-routine功能,则还得包含其他文件)。

    解压FreeRTOS源文件包之后,可以看到两个子目录,FreeRTOS and FreeRTOS-Plus。如下图所示:

    +-FreeRTOS-Plus    Contains FreeRTOS+ components and demo projects.
    ¦
    +-FreeRTOS         Contains the FreeRTOS real time kernel source
                       files and demo projects


    FreeRTOS-Plus目录里是一些组件及其Demo,而FreeRTOS目录下,又包含如下两个子目录:
    FreeRTOS
        ¦
        +-Demo      Contains the demo application projects.
        ¦
        +-Source    Contains the real time kernel source code.

    与内核相关的文件仅有3个,它们分别是 tasks.cqueue.c 和 list.c. 它们位于FreeRTOS/Source目录之内。在这个目录下,还包含 timers.c and croutine.c 这两个文件,它们分别实现 software timer 和 co-routine 功能。

    对于每一种架构的处理器,都有与之相关的一部分RTOS代码,它们被称之为RTOS可移植层,位于FreeRTOS/Source/Portable/[compiler]/[architecture]子目录中,其中
    compiler为用户所使用的编译器,architecture是指具体某一种架构。举例如下:
      • 如果用户使用的是 TriCore 1782 架构的处理器和 GCC 编译器:

    那么,与 TriCore 相关的文件 (port.c),则位于 FreeRTOS/Source/Portable/GCC/TriCore_1782 目录下。 如此一来,所有 FreeRTOS/Source/Portable 目录下的子目录,除了 FreeRTOS/Source/Portable/MemMang 之外,其它的都可以一律删掉。

      • 如果用户使用的是 Renesas RX600 架构的处理器和 IAR 编译器:

    那么,与 RX600 相关的文件(port.c), 则位于 FreeRTOS/Source/Portable/IAR/RX600 目录下。 如此一来,所有 FreeRTOS/Source/Portable 目录下的子目录,除了 FreeRTOS/Source/Portable/MemMang 之外,其它的都可以一律删掉。

      • 其它类似...... 

     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

     对于每一种处理器架构和编译器,FreeRTOS源文件包里都有对应的Demo应用程序。大多数Demo应用程序共用的文件,位于 FreeRTOS/Demo/Common/Minimal 目录下。(FreeRTOS/Demo/Common/Full 目录下的文件无需理会,这些文件在将FreeRTOS移植至PC时才会用到)。

    FreeRTOS/Demo 目录下的其它子目录,每一个都对应某一处架构的处理器及编译器。这一点可以从其目录名可以看出来,举例如下:

      • 如果用户使用的是 Infineon TriBoard 硬件( TriCore 架构、 GCC 编译器):

              那么,与 TriCore 相应的Demo应用程序则位于 FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC 目录,如此一来,所有 FreeRTOS/Demo 目录下的子目录(除开Common子目录外)都可以被忽略或删除。

      • 如果用户使用的是 RX62N RDK 硬件(Renesas RX6000 架构、 IAR 编译器):

              那么,与 TriCore 相应的Demo应用程序则位于 FreeRTOS/Demo/RX600_RX62N-RDK_IAR  目录,如此一来,所有 FreeRTOS/Demo 目录下的子目录(除开Common子目录外)都可以被忽略或删除。

     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
    

     

    • 创建你自己的应用程序

    对于新手,建议首先运行相应的Demo,然后在此基础之上,逐步将Demo内的应用程序文件替换成自己的应用程序文件。

  • 相关阅读:
    2019 年年终总结
    Java/C# 中为何需要 Getter/Setter?
    使用 supervisord 设置应用开机启动
    Linux 性能监控与故障排查:主要性能指标说明及监控方法
    「Bug」Jenkins Slave 卡顿与僵尸进程
    HTTP/HTTPS 的监听方法,以及浏览器与服务器的协议协商机制
    查询主机公网ip
    Linux Server Swap 分区设置
    Kubernetes 常见错误
    Kubernetes 学习笔记(五):数据卷
  • 原文地址:https://www.cnblogs.com/outs/p/5382000.html
Copyright © 2011-2022 走看看