參考文獻:html
從官網下載下來的FreeRTOS源文件包,對於每個已經移植完成的處理器,都有一個與之對應的Demo應用程序可供參考。強烈建議新手首先從Demo開始去學習如何使用FreeRTOS.架構
針對各個處理器所作的移植,以及其對應的Demo,數目如此多的文件,所有都存放在同一個壓縮文件裏。這樣作極大地簡化了FreeRTOS的發佈過程,可是面對這麼多的源文件,也極可能會令新手望而生畏。其實,FreeRTOS源文件包的目錄結構很是簡潔,更出人意料的是,FreeRTOS實時內核僅僅只包含3個文件(若是須要用到software timer, event 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.c, queue.c 和 list.c. 它們位於FreeRTOS/Source目錄以內。在這個目錄下,還包含 timers.c and croutine.c 這兩個文件,它們分別實現 software timer 和 co-routine 功能。
對於每一種架構的處理器,都有與之相關的一部分RTOS代碼,它們被稱之爲RTOS可移植層,位於FreeRTOS/Source/Portable/[compiler]/[architecture]子目錄中,其中
compiler爲用戶所使用的編譯器,architecture是指具體某一種架構。舉例以下:
那麼,與 TriCore 相關的文件 (port.c),則位於 FreeRTOS/Source/Portable/GCC/TriCore_1782 目錄下。 如此一來,全部 FreeRTOS/Source/Portable 目錄下的子目錄,除了 FreeRTOS/Source/Portable/MemMang 以外,其它的均可以一概刪掉。ui
那麼,與 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
那麼,與 TriCore 相應的Demo應用程序則位於 FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC 目錄,如此一來,全部 FreeRTOS/Demo 目錄下的子目錄(除開Common子目錄外)均可以被忽略或刪除。ci
那麼,與 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內的應用程序文件替換成本身的應用程序文件。