實際使用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的話堆內存可以由用戶自行設備