上图:
今天试着在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位的通知值。