简介:系统功能部分的宏配置是FreeRTOS系统运行的基本要求,是必须要检查、配置的宏
·CPU相关
(4)设置CPU频率
configCPU_CLOCK_HZ在FreeRTOSConfig.h文件定义
根据CPU频率定义
(8)同优先级的CPU使用权
configIDLE_SHOULD_YIELD在FreeRTOS.h文件定义
定义为 1:同优先级空闲任务让出CPU使用权 0:不让出CPU使用权
·内存(堆栈)相关
(1)堆内存设置
configAPPLICATION_ALLOCATED_HEAP 在FreeRTOS.h文件定义
(5)对象RAM(内存)取向
configSUPPORT_DYNAMIC_ALLOCATION在FreeRTOS.h文件定义
定义为 1:从FreeRTOS的堆中动态选取内存 0:用户自行提供(另外开拓内存)
(12)任务名最大长度
configMAX_TASK_NAME_LEN在FreeRTOS.h文件定义
(13)最小任务堆栈大小(单位:字,一个字为四个字节)
configMINIMAL_STACK_SIZE在FreeRTOSConfig.h文件定义
(14)本地存储指针大小(长度)
configNUM_THREAD_LOCAL_STORAGE_POINTERS在FreeRTOS.h文件定义
(16)创建内核对象所指定RAM
configSUPPORT_STATIC_ALLOCATION在FreeRTOS.h文件定义
定义为 1:用户指定RAM 0:自动使用heap.h中的动态内存管理函数来申请RAM
(20)定时器任务堆栈大小
configTIMER_TASK_STACK_DEPTH在FreeRTOSConfig.h文件定义
·管理方式相关
(8)同优先级的CPU使用权
configIDLE_SHOULD_YIELD在FreeRTOS.h文件定义
定义为 1:同优先级空闲任务让出CPU使用权 0:不让出CPU使用权
(9)中断配置
configKERNEL_INTERRUPT_PRIORITY在FreeRTOSConfig.h文件定义
(10)协程优先级数
configMAX_CO_ROUTINE_PRIORITIES在FreeRTOSConfig.h文件定义
优先级为0~configMAX_CO_ROUTINE_PRIORITIES - 1(FreeRTOS中0是最低优先级)
(11)任务优先级数
configMAX_PRIORITIES在FreeRTOSConfig.h文件定义
定义为优先级总数(与协程优先级定义类似)
(22)设置系统节拍计数器变量类型
configUSE_16_BIT_TICKS在FreeRTOS.h文件定义
定义为 1:TickType_t为16位 0:TickType_t32位
(24)协程开关(节省开销但限制功能,建议关闭)
configUSE_CO_ROUTINES在FreeRTOS.h文件定义
定义为 1:启用 0:关闭
(30)选择下一个任务方式
configUSE_PORT_OPTIMISED_TASK_SELECTION在FreeRTOS.h文件定义
0:通用方式(效率低优先级数不限)1:特殊方式(效率高限制优先级数,需硬件支持)
(31)调度器模式
configUSE_PREEMPTION在FreeRTOSConfig.h文件定义
定义为 1:抢占式 0:协程
(39)时钟节拍中断是否对同优先级任务中断
configUSE_TIME_SLICING在FreeRTOS.h文件定义
定义为 1:允许对同优先级任务进行中断切换 0:不允许
·定时器相关
(17)系统时钟节拍频率
configTICK_RATE_HZ在FreeRTOSConfig.h文件定义
此频率就是滴答定时器的中断频率(为兼容ST最新HAL库,设置此为1000,周期即1ms)
(18)软件定时器命令队列长度
configTIMER_QUEUE_LENGTH在FreeRTOSConfig.h文件定义
FreeRTOS软件定时器API函数会通过命令队列向软件定时器任务发送信息
(19)软件定时器任务优先级
configTIMER_TASK_PRIORITY在FreeRTOSConfig.h文件定义
(20)定时器任务堆栈大小
configTIMER_TASK_STACK_DEPTH在FreeRTOSConfig.h文件定义
(22)设置系统节拍计数器变量类型
configUSE_16_BIT_TICKS在FreeRTOS.h文件定义
定义为 1:TickType_t为16位 0:TickType_t32位
简介:辅助功能的宏是可用可不用的宏,或者说可以保持默认设置对整体功能影响不大的宏。但要把FreeRTOS系统做到极致应该需要检查、配置或关闭辅助功能相关宏。
·信号量相关
(25)计数型信号开关
configUSE_COUNTING_SEMAPHORES在FreeRTOS.h文件定义
定义为 1:打开(相关API函数被编译) 0:关闭
(29)使用互斥信号
configUSE_MUTEXES在FreeRTOS.h文件定义
定义为 :1使用互斥信号量相关API函数会被编译
(30)选择下一个任务方式
configUSE_PORT_OPTIMISED_TASK_SELECTION在FreeRTOS.h文件定义
0:通用方式(效率低优先级数不限)1:特殊方式(效率高限制优先级数,需硬件支持)
·调试相关
(2)断言(参数有效性判断)
configASSERT(x)在FreeRTOSConfig.h文件定义
自行定义,判断x为错误值时进行一系列操作(如打印错误地方);不启用就注释掉
(3)堆栈溢出检查方法
configCHECK_FOR_STACK_OVERFLOW在FreeRTOS.h文件定义
定义为 0:不启用 1:快速检查(不能检查全部堆栈)2:全面检查(基本都能检测)
(15)可注册的队列和信号量的最大数(注册了的队列、信号量才能在调试器查看)
configQUEUE_REGISTRY_SIZE在FreeRTOS.h文件定义
不需要在调试器查看队列和信号量可以设置此宏为0
(35)任务通知功能(开启后每个任务多小号8个字节)
configUSE_TASK_NOTIFICATIONS在FreeRTOS.h文件定义
定义为 1:开启且相关API函数被编译
·任务相关
(11)任务优先级数
configMAX_PRIORITIES在FreeRTOSConfig.h文件定义
定义为优先级总数(与协程优先级定义类似)
(24)协程开关(节省开销但限制功能,建议关闭)
configUSE_CO_ROUTINES在FreeRTOS.h文件定义
定义为 1:启用 0:关闭
(30)选择下一个任务方式
configUSE_PORT_OPTIMISED_TASK_SELECTION在FreeRTOS.h文件定义
0:通用方式(效率低优先级数不限)1:特殊方式(效率高限制优先级数,需硬件支持)
(31)调度器模式
configUSE_PREEMPTION在FreeRTOSConfig.h文件定义
定义为 1:抢占式 0:协程
(35)任务通知功能(开启后每个任务多小号8个字节)
configUSE_TASK_NOTIFICATIONS在FreeRTOS.h文件定义
定义为 1:开启且相关API函数被编译
(39)时钟节拍中断是否对同优先级任务中断
configUSE_TIME_SLICING在FreeRTOS.h文件定义
定义为 1:允许对同优先级任务进行中断切换 0:不允许
·其他
(6)兼容V8.00版本
configENABLE_BACKWARD_COMPATIBILITY在FreeRTOS.h文件定义
定义为 1:兼容 其他:不兼容
(7)时间统计功能
configGENERATE_RUN_TIME_STATS在FreeRTOS.h文件定义
定义为 1:开启(且相关API函数编译,自行额外定义相关函数)0:关闭
(32)队列集功能开关(分多个队列以及信号进行监听)
configUSE_QUEUE_SETS在FreeRTOS.h文件定义
定义为 1:开启 0:关闭
(37)低功耗tickless模式
configUSE_TICKLESS_IDLE在FreeRTOS.h文件定义
定义为 1:开启 0:关闭
简介:函数功能的宏都是控制系统需不需根据功能需要启用或定义相关函数,或者激活钩子回调函数。具体是什么不做归纳,可以查看按字母排序的系统宏文件。
·钩子函数(Hook结尾的)
·部分API函数(系统已经定义好,经过宏决定是否编译)
·INCLUDE开头的宏也是API函数的编译选择“开关”