FreeRTOS配置笔记

来源:互联网 发布:王亚林扈华国现状知乎 编辑:程序博客网 时间:2024/05/22 00:39

版本:8.24

基本配置

configUSE_PREEMPTION   :1 = 使能抢占式调度器  0 = 失能  

configUSE_PORT_OPTIMISED_TASK_SELECTION:用于优化优先级列表中要执行的最高优先级任务的算法,默认在portmacro.h文件中使能。

通用方式:0  所有平台都可以配置为0,比专用效率低,可用的优先级数量不限制。

专用方式:1 部分平台支持,这些平台架构有专用的汇编指令比如CLZ指令,通过这些指令可以加快算法执行速度。最大有限制限制为32个。

configUSE_TICKLESS:使能tickless低功耗模式。1= 使能 0 = 失能

configCPU_CLOCK_HZ:用于定义CPU主频,单位Hz

configTICK_RATE_HZ:定义系统时钟节拍数,单位Hz,一般取1000Hz,过高会使FREERTOS占用过多时间。

configMAX_PRIORITIES:定义用户使用的最大优先级数。从0开始

configMINIMAL_STACK_SIZE:用于定义空闲任务的栈空间大小,单位字节。

configTOTAL_HEAP_SIZE:定义堆大小,FreeRTOS内核,用户动态内存申请,任务栈,任务创建,信号创建,消息队列创建都用这个空间

configMAX_TASK_NAME_LEN:定义任务名的最大字符数。包括\0

configUSE_16BIT_TICKS:系统时钟节拍计数使用TickTyper_t数据类型定义。如果使能该配置那么TickType_t是16位,否则是32位,32位架构的处理器一定要禁用。

configIDLE_SHOULD_YIELD:用于使能与空闲任务相同优先级的任务,满足1:使能了抢占调度器。2:存在于空闲任务同等级的任务时配置才生效,不建议使用此功能。

configUSE_RECURSIVE_MUTEXES:1 = 使能递归互斥信号。0 =失能

configUSE_COUNTING_SEMAPHORES:1 = 使能计数信号量,0=失能

configUSE_ALTERNATIVE_API:以后版本被删除,不使用

configQUEUE_REGISTRY_SIZE:设置可注册的信号量和消息队列个数。注册队列时给队列一个名字,调试时通过队列区分。

通过队列的相关信息能更容易定位队列和信号量。

configUSE_QUEUE_SET:1 = 使能队列消息。0 = 失能

configUSE_TIME_SLICING:1 = 使能时间片调度,0 = 失能,在FreeRTOS.h已经配置为1

configUSE_NEWLIB_REENTRANT:1使能每个任务创建时将分配Newlib的重入结构体。

configENABLE_BACKWARD_COMPATIBILITY:1 = 使能新版对旧版的兼容。

configNUM_THREAD_LOCAL_STORAGE_POINTERS:配置定义线程局部指针变量的个数


钩子函数:

configUSE_IDLE_HOOK:1=使能空闲任务的钩子函数

configUSE_MALLOC_FAILED_HOOK:创建任务,信号量或者消息队列时,FREERTOS通过pvPortMalloc()申请动态内存。

1 = 使能动态内存申请失败的钩子函数。

configUSE_TICK_HOOK:1 = 使能滴答(系统时钟)定时器中断里面执行的钩子函数

configCHECK_FOR_STACK_OVERFLOW:配置栈溢出的检测方法,2 = 使用检测方法2 。1 = 检测方法1 0 =禁止使用


任务运行信息获取配置:

configGENERATE_RUN_TIME_STATS

使能任务运行状态参数统计

configUSE_STATS_FORMATTING_FUNCTIONS

用户配置宏定义configUSE_TRACE_FACILITY和configUSE_STATS_FORMATTING_FUNCTIONS都为1的时候,将使能函数vTaskList()vTaskGetRunTimeStatus()。

合作式任务配置:

configUSE_CO_ROUTINES 1:使能合作式调度相关函数

configMAX_CO_ROUTINE_PRIORITIES

次参数用于定义可供用户使用的最大的合作式任务优先级。从0开始

软件定时器配置

configUSE_TIMERS 1 = 使能软件定时器

configTIMER_TASK_PRIORITY 配置软件定时器的优先级

configTIMER_QUEUE_LENGTH 配置软件定时器命令队列的长度

configTIMER_TASK_STACK_DEPTH 配置软件定时器任务栈的大小

断言配置

与标准C 的assert一样参数为0就吃法断言函数执行。

在FreeRTOSConfig.h中有断言的宏定义 

Include配置

主要的是指用户可以根据需要使能或者禁止在工程中使用相应的函数  

0 0
原创粉丝点击