一、FreeRTOS官网压缩包文件介绍
大家可以从FreeRTOS官网下载最新版的FreeRTOS源码,下载以后解压缩文件如下。我们主要用到的是FreeRTOS文件夹,其他的文件以及文件夹可以先删掉。然后进入FreeRTOS文件夹进行介绍。官网下载文件解压后的文件如下:
FreeRTOS文件夹内容主要包含Demo(例程)、License(许可)、Source(源码)、Test(测试)、其他文件。我们主要关注Source(源码)文件夹,其他文件以及文件夹可以删掉。FreeRTOS文件夹内容如下所示:
Source文件夹主要分为三部分:include(头文件夹)、portable(内核链接文件夹)、源文件。portable(内核链接文件夹)中包含不同内核版本的链接文件,我们使用的是Keil平台、STM32硬件,所以只需要保留Keil文件夹、MemMang内存管理文件夹、RVDS文件夹。 Source文件夹内容如下所示:
二、FreeRTOS_demo工程文件介绍
STM32的FreeRTOS基础工程需要添加的内容共三个部分:freertos_demo.c、FreeRTOS_CORE、FreeRTOS_PORT 。STM32的FreeRTOS基础工程结构图如下:
freertos_demo.c:用户编写,用于freertos的控制。
FreeRTOS_CORE:包含官方给的freertos源码,在第一章中的FreeRTOS/Source文件下的所有.c文件。是FreeRTOS的API函数。
FreeRTOS_PORT:包含内存管理算法、内核链接文件。
heap_4.c在FreeRTOS\Source\portable\MemMang中,该文件夹内包含五种内存管理算法,本文用第四种。
port.c在FreeRTOSv202112.00\FreeRTOS\Source\portable\RVDS中,该文件包含STM32所有内核的链接文件,根据自己的硬件平台选择。本文用的是STM32F407系列,故使用\FreeRTOS\Source\portable\RVDS\ARM_CM4F文件夹下的port.c。
三、FreeRTOSConfig.h文件说明
FreeRTOSConfig.h用于配置FreeRTOS的功能、参数、以及API的使(失)能、中断。我这里使用的是正点原子提供的FreeRTOSConfig.h文件,也可以在官网解压缩包的Demo文件夹中的任意工程中找到。