瞭解FreeRTOS源文件目錄結構

參考文獻:html

 

從官網下載下來的FreeRTOS源文件包,對於每個已經移植完成的處理器,都有一個與之對應的Demo應用程序可供參考。強烈建議新手首先從Demo開始去學習如何使用FreeRTOS.架構

 

  • 基本目錄結構

針對各個處理器所作的移植,以及其對應的Demo,數目如此多的文件,所有都存放在同一個壓縮文件裏。這樣作極大地簡化了FreeRTOS的發佈過程,可是面對這麼多的源文件,也極可能會令新手望而生畏。其實,FreeRTOS源文件包的目錄結構很是簡潔,更出人意料的是,FreeRTOS實時內核僅僅只包含3個文件(若是須要用到software timerevent group or co-routine功能,則還得包含其餘文件)。app

 

解壓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 以外,其它的均可以一概刪掉。ui

    • 若是用戶使用的是 Renesas RX600 架構的處理器和 IAR 編譯器:

那麼,與 RX600 相關的文件(port.c), 則位於 FreeRTOS/Source/Portable/IAR/RX600 目錄下。 如此一來,全部 FreeRTOS/Source/Portable 目錄下的子目錄,除了 FreeRTOS/Source/Portable/MemMang 以外,其它的均可以一概刪掉。spa

    • 其它相似...... 

 

 FreeRTOS/Source 目錄樹以下所示:code

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時纔會用到)。
component

 

FreeRTOS/Demo 目錄下的其它子目錄,每個都對應某一處架構的處理器及編譯器。這一點能夠從其目錄名能夠看出來,舉例以下:htm

    • 若是用戶使用的是 Infineon TriBoard 硬件( TriCore 架構、 GCC 編譯器):

          那麼,與 TriCore 相應的Demo應用程序則位於 FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC 目錄,如此一來,全部 FreeRTOS/Demo 目錄下的子目錄(除開Common子目錄外)均可以被忽略或刪除。ci

    • 若是用戶使用的是 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內的應用程序文件替換成本身的應用程序文件。

相關文章
相關標籤/搜索