stm32cubeide怎么添加代码(FreeRTOS配置页面中文注释)
stm32cubeide怎么添加代码(FreeRTOS配置页面中文注释)MINIMAL_STACK_SIZE 设置任务优先级的数量,如果这个定义的是 5,那么用户可以使用的优先级号是 0 1 2 3 4,不包含 5,对于这一点,初学者要特别的注意。这里默认为7,因为CMSIS-OS中对任务优先级的限制,就只有7个,使用cubemx配置的时候有7个选项可以配置?。TICK_RATE_HZ 此参数用于定义系统时钟节拍数,单位 Hz,一般取 1000Hz 即可。过高的的系统时钟节拍将使得 FreeRTOS 内核运行占用过多的时间,增加系统负荷。MAX_PRIORITIES
USE_PREEMPTION
enabled 使用抢占式 disabled 使用合作式调度
CPU_CLOCK_HZ
此参数用于定义 CPU 的主频,单位 Hz,不可修改
TICK_RATE_HZ
此参数用于定义系统时钟节拍数,单位 Hz,一般取 1000Hz 即可。过高的的系统时钟节拍将使得 FreeRTOS 内核运行占用过多的时间,增加系统负荷。
MAX_PRIORITIES
设置任务优先级的数量,如果这个定义的是 5,那么用户可以使用的优先级号是 0 1 2 3 4,不包含 5,对于这一点,初学者要特别的注意。这里默认为7,因为CMSIS-OS中对任务优先级的限制,就只有7个,使用cubemx配置的时候有7个选项可以配置?。
MINIMAL_STACK_SIZE
此参数用于定义空闲任务的栈空间大小,单位字,即 4 字节。STM32上设置100,实际堆栈大小为100*4=400字节。
MAX_TASK_NAME_LEN
定义任务名最大的字符数,末尾的结束符 '\0'也要计算在内。
USE_16_BIT_TICKS
系统时钟节拍计数使用 TickType_t 数据类型定义的。
如果用户使能了宏定义 configUSE_16_BIT_TICKS,那么 TickType_t 定义的就是 16 位无符号数,如果没有使能,那么 TickType_t 定义的就是 32 位无符号数。对于 32 位架构的处理器,一定要禁止此宏定义,即设置此宏定义数值为 0 即可。而 16 位无符号数类型主要用于 8 位和 16 位架构的处理器。
IDLE_SHOULD_YIELD
此参数用于使能与空闲任务同优先级的任务,只有满足以下两个条件时,此参数才有效果:
1. 使能抢占式调度器。
2. 有创建与空闲任务同优先级的任务。
配置为 1,就可以使能此特性了,实际应用中不建议用户使用此功能,将其配置为 0 即可。
USE_MUTEXES
配置为 1 使能互斥信号量
配置为 0禁能互斥信号量
USE_RECURSIVE_MUTEXES
配置为 1使能递归互斥信号量
配置为 0禁能递归互斥信号量
USE_COUNTING_SEMAPHORES
配置为 1使能计数信号量
配置为 0禁能计数信号量
QUEUE_REGISTRY_SIZE
通过此定义来设置可以注册的信号量和消息队列个数。
队列注册有两个目的,这两个目的都与内核调试有关:
注册队列的时候,可以给队列起一个名字,当使用调试组件的时候,通过名字可以很容易的区分不同队列。通过队列的相关信息,调试器可以很容易定位队列和信号量,能够定位信号量是因为 FreeRTOS 信号量也是基于队列实现的。
当然,如果用户没有使用内核方面的调试器,这个宏定义是没有意义的。
USE_APPLICATION_TASK_TAG
ENABLE_BACKWARD_COMPATIBILITY
配置为 1使能新版本对老版本的兼容特性,即向后兼容或者说向下兼容。
配置为 0禁止此特性。
USE_PORT_OPTIMISED_TASK_SELECTION
此配置用于优化优先级列表中要执行的最高优先级任务的算法。对 CM 内核的移植文件,默认已经在文件 portmacro.h 文件中使能。
通用方式---配置为 0:
所有平台的移植文件都可以配置为 0,因为这是通用方式。 纯 C 编写,比专用方式效率低。可用的优先级数量不限制。
专用方式---配置为 1:
部分平台支持。
这些平台架构有专用的汇编指令,比如 CLZ(Count Leading Zeros)指令,通过这些指令可以加快算法执行速度 比通用方式高效。有最大优先级数限制,通常限制为 32 个。
USE_TICKLESS_IDLE
此配置用于使能 tickless 低功耗模式
配置为 1使能 tickless 低功耗模式
配置为 0禁能 tickless 低功耗模式
USE_TASK_NOTIFICATIONS
配置为 1使能任务间直接的消息传递,包含信号量,事件标志组和消息邮箱。
配置为 0禁能此特性。
USE_IDLE_HOOK
配置为 1使能空闲任务的钩子函数
配置为 0禁能空闲任务钩子函数
USE_TICK_HOOK
配置为 1使能滴答定时器中断里面执行的钩子函数
配置为 0禁能滴答定时器中断里面执行的钩子函数
USE_MALLOC_FAILED_HOOK
当创建任务,信号量或者消息队列时,FreeRTOS 通过函数 pvPortMalloc()申请动态内存。
配置为 1使能动态内存申请失败时的钩子函数
配置为 0禁能动态内存申请失败时的钩子函数