查看: 1249|回复: 0

[技术交流] FreeRtos配置文件详解

[复制链接]

8

主题

10

帖子

28

积分

助理工程师

Rank: 1

积分
28
发表于 2019-3-13 17:21:30 | 显示全部楼层 |阅读模式
1、configUSE_PREEMPTION   
1  使能抢占式调度器0  使能合作式调度器
2、configUSE_PORT_OPTIMISED_TASK_SELECTION
此配置用于优化优先级列表中要执行的最高优先级任务的算法。 对CM内核的移植文件,默认已经在文件portmacro.h文件中使能。

1) 通用方式——配置为 0:
·所有平台的移植文件都可以配置为 0,因为这是通用方式。
·纯 C 编写,比专用方式效率低。
·可用的优先级数量不限制。

2) 专用方式——配置为 1:
·部分平台支持。
·这些平台架构有专用的汇编指令,比如 CLZ(Count Leading Zeros)指令,通过这些指令可以加快算法执行速度。
·比通用方式高效。
·有最大优先级数限制,通常限制为32个

3、configUSE_TICKLESS_IDLE
1  使能 tickless 低功耗模式
0  禁用 tickless 低功耗模式

4、configCPU_CLOCK_HZ  定义CPU时钟主频

5、configTICK_RATE_HZ
定义系统时钟的节拍数,单位是Hz,如配置为1000则表示1ms

6、configMAX_PRIORITIES
定义允许用户使用的最大优先级数

7、configMINIMAL_STACK_SIZE
定义空闲任务的栈空间大小

8、configMAX_TASK_NAME_LEN 定义任务名的最大字符个数

9、configUSE_16_BIT_TICKS
系统时钟节拍计数使用 TickType_t 数据类型定义的。如果用户使能了宏定义configUSE_16_BIT_TICKS,那么 TickType_t 定义的就是 16 位无符号数,如果没有使能,那么 TickType_t 定义的就是 32 位无符号数。32位处理器此定义设置为0,16位和8位处理器此定义设置为1。16位机上此位也可以置0,但是会影响处理效率。

10、configIDLE_SHOULD_YIELD
此参数用于使能与空闲任务同优先级的任务,只有满足以下两个条件时,此参数才有效果:
1. 使能抢占式调度器。
2. 有创建与空闲任务同优先级的任务。
配置为1,就可以使能此特性了,实际应用中不建议用户使用此功能,将其配置为0即可。

11、configUSE_TASK_NOTIFICATIONS
1  使能任务间直接的消息传递,包含信号量,事件标志组和消息邮箱。
0  禁能此特性

12、configUSE_MUTEXES 使能互斥信号量

13、configUSE_RECURSIVE_MUTEXES 使能递归互斥信号量

14、configUSE_COUNTING_SEMAPHORES  使能计数信号量

15、configQUEUE_REGISTRY_SIZE 通过此定义来设置可以注册的信号量和消息队列个数

16、configUSE_QUEUE_SETS 使能消息队列

17、configUSE_TIME_SLICING  使能时间片调度(FreeRtos.h中默认打开)

18、configUSE_NEWLIB_REENTRANT  1表示每个任务创建的时候将分配 Newlib 的重入结构体。

19、configENABLE_BACKWARD_COMPATIBILITY
使能新版本对老版本的兼容特性,即向后兼容或者说向下兼容。

20、configNUM_THREAD_LOCAL_STORAGE_POINTERS
此配置用于定义线程局部指针变量的个数。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表