FreeRTOS实时内核应用指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 创建FreeRTOS工程

修改提供的演示工程

每种FreeRTOS移植至少都有一个预先配置好的演示程序,构建时应该不会出现错误或警告。建议通过修改这些现成的工程来创建新的工程,这将使工程包含正确的文件,并安装正确的中断处理程序和设置正确的编译器选项。

要从现成的演示工程开始一个新的应用程序,步骤如下:

(1)打开提供的演示工程,并确保该工程能够按预期的方式构建和执行。

(2)删除定义演示任务的源文件。位于Demo/Common目录下的文件都可以从工程中删除。

(3)删除main()函数里的全部函数调用,除了API函数prvSetupHardware()和vTaskStartScheduler()之外,如清单1-1所示。

清单1-1 新的main()函数模板

(4)检查这个仍在构建中的工程。

按照这些步骤将创建一个包含正确的FreeRTOS源文件的工程,但没有定义任何功能。

从零开始创建新工程

如前所述,建议从现成的演示工程开始创建新工程。如果不希望这样做,则可以使用以下步骤创建新工程:

(1)使用选择的工具链,创建一个新工程,该工程尚未包含任何FreeRTOS的源文件。

(2)确保新工程可以被构建,可以下载到目标硬件并执行。

(3)确认已经有了一个工作工程后,将表1-1中详细介绍的FreeRTOS源文件添加到该工程中。

(4)从提供的用于移植的演示工程中,将FreeRTOSConfig.h头文件复制到该工程目录中。

(5)将以下目录添加到工程将要搜索的路径中以定位头文件。

• FreeRTOS/Source/include

• FreeRTOS/Source/portable/[compiler]/[architecture](其中[compiler]和[architecture]对于选定的移植要恰当)

• 包含FreeRTOSConfig.h头文件的目录。

(6)从相关演示工程中复制编译器设置。

(7)安装可能需要的FreeRTOS中断处理程序。在FreeRTOS官网上搜索那些和移植有关的描述网页,并参考为移植提供的演示工程。

表1-1 工程中要包含的FreeRTOS源文件

使用版本比V9.0.0更老的FreeRTOS的工程必须建立一个heap_n.c文件。

如前所述,从FreeRTOS V9.0.0版本开始,只有在将FreeRTOSConfig.h中的configSUPPORT_DYNAMIC_ALLOCATION设置为1,或者configSUPPORT_DYNAMIC_ALLOCATION未被定义时,才需要heap_n.c文件。更多信息请参考第2章“堆内存管理”。