在STMCubeIDE配置FreeRTOS的各种参数

本文档详细介绍了在STMCubeIDE中配置FreeRTOS各项参数的方法,包括任务调度器类型、中断频率、堆栈大小、任务名称长度等关键参数。此外,还涉及了任务通知、内存管理方案、钩子函数以及低功耗模式设置等高级选项,旨在帮助开发者更好地理解和优化FreeRTOS在STM32项目中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上图:

 

今天试着在IDE上面配置FreeRTOS,因为之前都是直接在keil上面移植裁剪系统,第一次在IDE上图形化配置导致很多参数都看不懂,很多需要配置的重要参数也找不到位置,所有我把所有可以配置的参数都翻译了一遍。(注:只做翻译,不详细叙述作用)

翻译按照上图中1、2、3、4的顺序

第一部分:Configure paremeters

USE_PREEMPTION        参数说明:设置为1时使用抢占式RTOS调度器,设置为0时使用合作式RTOS调度器。

TICK_RATE_HZ        取值范围为1~1000。参数说明:设置tick中断频率。取值为Hz。警告:最大值是1000,因为较大的值会产生编译错误(除以0) 

MINIMAL_STACK_SIZE        必须在64到768个单词之间。参数说明:设置分配给空闲任务的堆栈大小。该值是用字(这里是32位定的,而不是字节。警告:用户选择的值应该考虑线程数、总堆大小和系统堆栈大小。如果使用的堆栈总大小大于总堆大小,FreeRTOS将无法创建和管理任务。maxvalue=configTOTAL_HEAP_SIZE/4(当分配是动态的)maxvalue=MCUram大小/4(当分配是静态的) 

MAX_TASK_NAME_LEN        必须在12到255之间。参数说明:设置可用于任务名称的最大字符数。NULL结束符包含在字符计数中。

IDLE_SHOULD_YIELD        参数说明:如果有应用程序任务也以空闲优先级运行,则IDLE_SHOULD_YIELD控制空闲任务的行为。只有在使用抢占式调度程序时才有效果。如果IDLE_SHOULD_YIELD设置为0,则空闲任务永远不会让位于另一个任务,只在被抢占时才会离开运行状态。如果IDLE_SHOULD_YIELD设置为1,那么当有另一个空闲优先级任务处于Ready状态时,空闲任务将不会执行它定义的功能的不止一次迭代,而不会屈服于另一个任务。这确保当应用程序任务可以运行时,在空闲任务上花费的时间最少。

USE_MUTEXES        参数说明:使用CMSIS_RTOS_V2时强制为1(由于FW包中当前的cmsis_os2.c文件存在约束)。

USE_RECURSIVE_MUTEXES        诊断:使用CMSIS_RTOS_v2时强制为1参数说明:使用CMSIS_RTOS_V2时强制为1(由于FW包中当前cmsis_os2.c文件存在约束)。

USE_COUNTING_SEMAPHORES        诊断:当使用CMSIS_RTOS_v2时强制为1。参数说明:设置为1则包含构建中的计数信号量功能,设置为0则省略构建中的计数信号量功能。使用CMSIS_RTOS_V2时强制为1(FW包中当前cmsis_os2.c文件约束)。

QUEUE_REGISTRY_SIZE        必须在0到255之间。参数说明:队列注册表有两个目的,它们都与RTOS内核感知调试相关:它允许将文本名称与队列关联起来,以便在调试GUI中轻松识别队列。2.它包含调试器定位每个注册队列和信号量所需的信息。除非您使用RTOS内核感知调试器,否则队列注册表没有任何用途

USE_APPLICATION_TASK_TAG        参数说明:要使vTaskSetApplicationTaskTag功能可用,USE_APPLICATION_TASK_TAG必须定义为1。本功能仅供高级用户使用。可以给每个任务分配一个'tag'值。这个值仅供应用程序使用RTOS内核本身不会以任何方式使用它。FreeRTOS跟踪宏文档页面提供了一个应用程序如何使用该特性的好例子。

ENABLE_BACKWARD_COMPATIBILITY        参数说明:FreeRTOS.h头文件包括一组#define宏,将8.0.0版本之前的FreeRTOS版本中使用的数据类型的名称映射到FreeRTOS8.0.0版本中使用的名称。这些宏允许应用程序代码将其构建的FreeRTOS版本从8.0.0前版本更新到8.0.0后版本,而不需要修改。在FreeRTOSConfig.h中将configENABLE_BACKWARD_COMPATIBILITY设置为0将从构建中排除宏,这样做允许验证没有使用8.0.0版本前的名称。

USE_TICKLESS_IDLE        参数说明:通过设置configUSE_TICKLESS_IDLE,空闲任务将抑制节拍,处理器将尽可能长时间处于低功耗模式。当设置为1(内置功能启用),两个宏,configPRE_SLEEP_PROCESSING和configPOST_SLEEP_PROCESSING会在FreeRTOSConfig.h中生成,两个空函数,preleepprocessing和PostSleepProcessing会在freertos.c中生成(由用户代码完成)。当设置为2(用户定义功能启用),完成…

USE_TASK_NOTIFICATIONS        参数说明:每个RTOS任务都有一个32位的通知值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值