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源文件以及编译器选项都正确。
评论
查看更多