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章“堆内存管理”。