CubeMX中FreeRTOS的配置项说明
API
FreeRTOS API
选择 FreeRTOS 的接口标准,可选择 CMSIS v1 或 CMSIS v2。 通常推荐使用 CMSIS v2,因为其结构更规范、可移植性更好。
Versions 版本
FreeRTOS version
例如:10.3.1 当前使用的 FreeRTOS 内核版本号。不同版本在特性与兼容性上可能略有差异。
CMSIS-RTOS version
例如:2.00 CMSIS-RTOS 层的版本号,决定了与 FreeRTOS 的接口封装方式。
MPU/FPU
ENABLE MPU
是否启用 MPU(Memory Protection Unit,内存保护单元)。 启用后,可对任务访问的内存区域进行限制,提高系统安全性和稳定性。 通常仅在需要任务隔离的安全型系统中启用。
ENABLE FPU
是否启用 FPU(浮点运算单元) 支持。 启用后,FreeRTOS 会在任务切换时保存/恢复浮点寄存器。 如果你的任务中使用了浮点运算(如 float、double),应启用此选项;否则可禁用以减少上下文切换开销。
Kernel settings 内核设置
USE_PREEMPTION
是否启用抢占式调度。
通常选择开启,启用后,高优先级任务会立即中断低优先级任务的执行,从而获得更高的实时性。
CPU_CLOCK_HZ
CPU 的时钟频率。用于计算时间片、延时及节拍定时器中断周期。 CubeMX中强制设为SystemCoreClock宏定义的值,通常无需修改。
TICK_RATE_HZ
系统节拍频率(例如:1000)。 表示每秒钟产生多少次系统时钟中断,即 1 tick = 1/TICK_RATE_HZ 秒。 常见配置:1000Hz(即1ms一个系统节拍)。
MAX_PRIORITIES
系统支持的最大任务优先级数量。 例如:56 表示可用优先级范围为 0~55。 设置得越大,任务优先级划分越细,但内核消耗的内存略增。
MINIMAL_STACK_SIZE
任务最小堆栈大小(以字为单位)。 例如:128 Words。 用于指定空闲任务或最小任务所需的堆栈空间。
MAX_TASK_NAME_LEN
任务名称的最大长度(字符数)。 例如:16 表示每个任务的名称最长为 16 个字符。
USE_16_BIT_TICKS
是否使用 16 位节拍计数器。 禁用时使用 32 位计数器,可支持更长的系统运行时间。 一般建议禁用,除非在资源极其有限的系统中。
IDLE_SHOULD_YIELD
空闲任务是否允许让出 CPU。 启用后,如果有相同优先级的就绪任务,空闲任务会主动让出 CPU。
USE_MUTEXES
是否启用 互斥锁(Mutex) 功能。 启用后可在任务间实现资源独占访问,防止竞争条件。
USE_RECURSIVE_MUTEXES
是否启用 递归互斥锁。 允许同一个任务多次获取同一互斥量,而不会造成死锁。
USE_COUNTING_SEMAPHORES
是否启用 计数型信号量。 用于控制多个资源的访问,或在多个事件发生后再触发任务。