FreeRTOS 源代碼結構
基本目錄結構
下載的FreeRTOS包含每種處理器體系的源代碼以及范例程序。把所有體系的源代碼打包可以方便分發,但是文件的數量可能會讓人感到畏懼。幸好目錄結構非常簡單,并且FreeRTOS的實時內核只包含在3個源文件中(如果使用co-routines會有4個)。
在最頂層,下載的文件被分為兩個子目錄:
FreeRTOS
|
+-Demo 包含范例程序
|
+-Source 包含實時內核源代碼
主要的內核源代碼包含在3個與平臺無關的源代碼中(如果使用co-routines則會有4個)。這些文件分別為:tasks.c、 queue.c 和 list.c,可以在Source目錄中找到。
每種處理器需要少量與體系相關的內核代碼。這些與處理器相關的代碼包含在Source目錄中一個叫Portable的目錄中。
下載的文件中也包含了每種處理器與編譯器移植的Demo程序。Demo下的Common文件夾中的文件為各個Demo程序公用文件,其他子目錄包含著各特定體系Demo程序的源文件。
FreeRTOS
|
+-Demo
| |
| +-Common 共用的文件
| +-Dir x 體系x的Demo程序文件
| +-Dir y 體系y的Demo程序文件
|
+-Source
|
+-Portable 特定處理器代碼
Source目錄
你必須在makefile中包含實時內核源文件才可以使用FreeRTOS,但并不需要修改它們或了解他們的工作原理。
實時內核的源代碼由3個公用的文件(如果使用Co-Routines則為4個)以及一個與你使用的平臺相關的文件。公用文件可以在FreeRTOS/Source文件夾中找到,與平臺相關的文件可以在FreeRTOS/Source/Portable目錄的子文件夾中找到。
例如:
如果使用MSP430與GCC編譯器:
MSP430平臺相關的文件(port.c)可以在FreeRTOS/Source/Portable/GCC/MSP430F449目錄中找到,而所有其他FreeRTOS/Source/Portable目錄中的子目錄均可以忽略
如果使用PIC18與MPLAB編譯器:
PIC18平臺相關的文件(port.c)可以在FreeRTOS/Source/Portable/MPLAB/PIC18目錄中找到,而所有其他FreeRTOS/Source/Portable目錄中的子目錄均可以忽略
其他平臺類似
FreeRTOS/Portable/MemMang包含了內存管理部分例子程序。
Demo目錄
Demo目錄樹包含各種平臺的Demo程序,Demo程序的大部分都是平臺無關的,這些代碼放在FreeRTOS/Demo/Common文件夾中,參考Demo程序部分獲取更多細節。與平臺相關的代碼,包括Demo程序項目文件,可以在FreeRTOS/Demo的子目錄中找到。
例如:
如果是構造MSP430 GCCDemo程序:
MSP430 Demo程序makefile可以在FreeRTOS/Demo/MSP430文件夾中找到,所有其他FreeRTOS/Demo目錄中包含的子目錄(Common目錄除外)指向的是其他體系的Demo程序,均可以忽略
如果是構造PIC18 MPLABDemo程序:
PIC18 Demo程序makefile可以在FreeRTOS/Demo/PIC18_MPLAB文件夾中找到,所有其他FreeRTOS/Demo目錄中包含的子目錄(Common目錄除外)指向的是其他體系的Demo程序,均可以忽略其他平臺類似 ...
創建你的程序
當你要寫自己的應用程序時,一個比較好的方式就是使用Demo程序的makefile(或工程文件)作為出發點。你可以讓Source文件夾中的文件保留在 makefile中,并且用你自己的程序文件替換Demo文件夾中的文件。這可以保證makefile中包含的RTOS源文件以及編譯器選項都正確。
評論
查看更多