Free RTOS系统配置——按功能分类

系统功能

简介:系统功能部分的宏配置是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函数的编译选择“开关”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值