一.前言
FreeRTOSConfig.h文件中有许多宏定义,这些宏定义就像开关一样,为1就是开,为0就是关。里面宏定义挺多的。在这里就挑几个稍微重要一点的讲。其它的也有注释,可以去博主的资源里面下载。也是免费的。
二.宏定义
2.1 任务管理机制宏定义
我们知道FreeRTOS可以使用抢占式和协作式二种多任务管理机制。抢占式就说根据优先级来抢占。而协作式其实就是优先级相同,采用时间片来执行。(其实也就是轮流执行)。所以就是有二个宏。这里我选择都打开。
#define configUSE_PREEMPTION 1 //1使能时间片调度(默认式使能的) #define configUSE_TIME_SLICING 1
2.2 FreeRTOS时钟
FreeRTOS也有它自己的时钟,也就是整个系统的心脏。这里我们可以配置它的心跳。即RTOS系统节拍中断的频率。即一秒中断的次数,每次中断RTOS都会进行任务调度。这里我配置为 1s/1000=1ms。
#define configTICK_RATE_HZ (( TickType_t )1000)
2.3 FreeRTOS最大优先级
相较于中断优先级,数字越小,中断优先级越高。FreeRTOS是数字越大,优先级越高。这里有宏定义可以配置最大优先级是多少
#define configMAX_PRIORITIES (32)
2.4 FreeRTOS内存申请
任务创建可以使用动态创建和静态创建,我选择的是动态创建
//支持动态内存申请 #define configSUPPORT_DYNAMIC_ALLOCATION 1 //支持静态内存 #define configSUPPORT_STATIC_ALLOCATION 0 //系统所有总的堆大小 #define configTOTAL_HEAP_SIZE ((size_t)(36*1024))
FreeRTOS软件定时器
FreeRTOS也有软件定时器,这里也有一个宏定义进行开关。
#define configUSE_TIMERS 1
结语
这里也仅是挑了几个我认为比较重要的讲,其他的可以参考博主资源中的FreeRTOSConfig.h 文件。