1 FreeRTOS配置文件详解
作用:裁剪系统的功能。FreeRTOS 提供丰富的组件和功能,为了适应资源内存不同的处理器,所以要裁剪一些系统功能。
1.1 FreeRTOS与内核配置相关
通过宏的方式来操作,类似寄存器的操作。
uint32_t SystemCoreClock = SYSCLK_FREQ_72MHz; /*!< System Clock Frequency (Core Clock) */
#define configUSE_PREEMPTION 1 //1使用抢占式内核,0使用协程
#define configUSE_TIME_SLICING 1 //1使能时间片调度(默认式使能的)
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 //1启用特殊方法来选择下一个要运行的任务
//一般是硬件计算前导零指令,如果所使用的
//MCU没有这些硬件指令的话此宏应该设置为0!
#define configUSE_TICKLESS_IDLE 0 //1启用低功耗tickless模式
#define configUSE_QUEUE_SETS 1 //为1时启用队列
#define configCPU_CLOCK_HZ (SystemCoreClock) //CPU频率,单位Hz
#define configTICK_RATE_HZ (1000) //系统时钟节拍频率(系统调度的周期),这里设置为1000,周期就是1ms
#define configMAX_PRIORITIES (32) //可使用的最大优先级,用于抢占式任务来排个优先级
#define configMINIMAL_STACK_SIZE ((unsigned short)130) //空闲任务使用的堆栈大小
#define configMAX_TASK_NAME_LEN (16) //任务名字字符串长度,太大的话关系到内存使用利用率
#define configUSE_16_BIT_TICKS 0 //系统节拍计数器变量数据类型,
//1表示为16位无符号整形,0表示为32位无符号整形
#define configIDLE_SHOULD