实际使用FreeRTOS的时候,我们时常需要根据自己需求来配置FreeRTOS,而且不同架构的MCU在使用的时候配置也不同,FreeRTOS的系统配置文件FreeRTOSConfig.h可以完成FreeRTOS的裁剪和配置。FreeRTOSConfig.h分成两个部分,一个是INCLUDE_开始的宏,另一个是config开始的宏。
INCLUDE_开始的宏
INCLUDE_开头的宏用来配置FreeRTOS中的API函数,当配置为1时,表示使用该函数,配置为0表示不能使用。比如INCLUDE_vTaskPrioritySet=1,表示可以使用vTaskPrioritySet函数。
#if ( INCLUDE_vTaskPrioritySet == 1 )
void vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority )
{
TCB_t *pxTCB;
UBaseType_t uxCurrentBasePriority,
.....
}
#endif
FreeRTOS中的裁剪和配置就是用条件编译的方法来实现的,这样就可以根据需求来减少系统占用的ROM和RAM大小
config开始的宏
config开始的宏和INCLUDE_开始的宏一样,都是用来完成FreeRTOS的配置和裁剪的,config开始的是一些配置参数,比如说configAPPLICATION_ALLOCATED_HEAP,默认情况堆内存是由编译器分配的,将configAPPLICATION_ALLOCATED_HEAP定义为1的话堆内存可以由用户自行设备