[FreeRTOS]CubeMX中的配置

发布时间:2026/8/10 9:36:58

[FreeRTOS]CubeMX中的配置
首先打开Middleware标签选中其中的FREERTOS选项进入FREERTOS的配置页面。在Mode页面下选择Interface 的版本这里选择CMSIS_V2。CMSIS是由Keil 提供的 一套特殊的函数接口他对freeRTOS的功能函数进行了封装使其变得更加易用在使用 freeRTOS 时不需要再去直接调用freeRTOS的函数只需要调用CMSIS为我们提供的 函数即可目前CMSIS有V1和V2两个版本。FreeRTOS中CMSIS V1与V2的主要区别CMSISV1主要面向早期的Cortex-M3和Cortex-M4内核芯片提供基本的寄存器定义、系统初始化函数如SystemInit()和中断控制接口。CMSISV2随着Cortex-M55、M85等新型内核的推出CMSIS V2引入了更丰富的设备抽象层如core_sc300.h、core_sc55.h等增强了对新一代处理器的支持。项目CMSIS-RTOS V1CMSIS_V1CMSIS-RTOS V2CMSIS_V2头文件#include cmsis_os.h#include cmsis_os2.h标准老旧一代标准ARM 逐步停止维护新一代标准CMSIS-RTOS2持续更新对象句柄类型osThreadId、osSemaphoreId指针类型osThreadId_t、osSemaphoreId_t独立不透明类型类型安全更强内核启动流程自动初始化内核main 可直接创建任务隐式启动调度器强制显式两步osKernelInitialize() → osKernelStart()创建任务风格宏定义静态声明 osThreadDef()支持动态创建 静态创建使用属性结构体 osThreadAttr_t后面见到的所有os开头的函数都是CMSISOS提供的配置一、Kernel settings 内核基础设置最重要参数当前配置含义使用建议USE_PREEMPTIONEnabled抢占式调度Enabled高优先级任务就绪立刻抢占低优先级Disabled协作式任务主动让出 CPU工程几乎全部保持 Enabled只有极简低功耗项目才关CPU_CLOCK_HZSystemCoreClock内核时钟自动绑定系统时钟永远默认不要手动修改TICK_RATE_HZ1000系统滴答时钟频率1000 1ms 一个 tick系统时间片、延时基准最常用 1000 (1ms)低频低功耗可改为 10010msMAX_PRIORITIES56任务最大优先级数量优先级范围0 ~ MAX_PRIORITIES-1注意CMSIS-RTOS 优先级映射有转换常规项目 8/16 足够你现在 56 富余不要设置过大浪费 RAMUSE_MINI_LIST_ITEM1使用精简链表结构减少内存占用默认不动MINIMAL_STACK_SIZE128 Words空闲任务栈大小字1word4 字节空闲任务是系统必备任务一般保持 128空闲任务里做复杂逻辑需要加大MAX_TASK_NAME_LEN16任务名称最大字符长度默认 16 够用极少修改USE_16_BIT_TICKSDisabledtick 计数使用 16 位 / 32 位Disable32 位延时上限更长默认关闭不要开启16 位 tick 最大延时很短IDLE_SHOULD_YIELDEnabled同等优先级任务空闲任务主动让出 CPU默认即可一般不改USE_MUTEXESEnabled启用互斥锁用到互斥锁就打开现代工程基本常开USE_RECURSIVE_MUTEXESEnabled递归互斥锁同一任务可多次加锁需要嵌套上锁开启不用可以关掉节省少量资源USE_COUNTING_SEMAPHORESEnabled计数信号量生产者消费者场景常用大部分工程开启QUEUE_REGISTRY_SIZE8队列 / 信号量注册表调试器查看内核对象用调试用正式工程可减小默认 8 够用USE_TASK_NOTIFICATIONSEnabled任务通知重点轻量化信号量代替很多队列、信号量效率更高强烈保持开启日常大量使用ENABLE_BACKWARD_COMPATIBILITYEnabled兼容老版本 FreeRTOSAPI默认开启避免旧代码报错二、Memory management settings 内存管理参数当前配置含义使用建议TOTAL_HEAP_SIZE15360 BytesFreeRTOS 堆总大小任务、队列、信号量动态内存全部从这里分配重点配置根据任务数量调整太小会创建任务失败Memory Management schemeheap_4内存分配算法heap_1/2/3/4/5 区别heap4支持合并空闲块推荐日常使用CubeMX 默认 heap4绝大多数工程不用更换heap4 特点动态分配、碎片整理heap5 需要你划分多个内存区域。三、Hook function 钩子函数回调调试 / 拓展功能全部当前 DisabledUSE_IDLE_HOOK空闲任务钩子空闲循环执行USE_TICK_HOOK每个 SysTick 中断回调USE_MALLOC_FAILED_HOOK内存分配失败钩子调试神器USE_DAEMON_TASK_STARTUP_HOOK定时器服务任务启动钩子CHECK_FOR_STACK_OVERFLOW栈溢出检测使用建议 正式产品默认关闭节省开销调试阶段打开栈溢出检测、malloc 失败钩子排查崩溃上线关闭。四、Run time and task stats 运行统计GENERATE_RUN_TIME_STATS任务 CPU 占用率统计使用CLion调试时开启USE_TRACE_FACILITY开启 Trace 调试RTT、SystemView默认关闭性能调试的时候临时开启发布关闭采集统计占用 CPU五、Co-routines 协程USE_CO_ROUTINES Disabled协程是老旧轻量级方案现在基本淘汰不要使用保持关闭六、Software timer definitions 软件定时器高频使用模块参数配置含义建议USE_TIMERSEnabled开启 FreeRTOS 软件定时器项目用到定时器必须开不用则关闭释放资源TIMER_TASK_PRIORITY2定时器服务任务优先级 重要定时器回调执行快慢取决于这个优先级一般设置高于普通业务任务注意不要低于需要定时响应的任务TIMER_QUEUE_LENGTH10定时器命令队列深度默认 10大量启停定时器可加大TIMER_TASK_STACK_DEPTH256 Words定时器任务栈大小如果定时器回调函数复杂必须加大栈溢出常见坑七、Interruptnesting behaviour 中断优先级最容易踩坑参数配置含义建议LIBRARY_LOWEST_INTERRUPT_PRIORITY15FreeRTOS 可以管理的最低中断优先级数字越大优先级越低Cortex-M 分组前提下默认不动LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY5阈值重中之重优先级高于 5数字更小 的中断禁止调用 FreeRTOS API优先级≤5可以调用 xxx_FromISR 中断版函数日常保持默认 5不要随意修改所有外部中断、串口中断优先级配置不要高于这个数值否则会引发 HardFault 死机八、CMSIS-RTOS V2 flags全部 Enabled选择接口为 CMSIS_V2osThreadNew、osMessageQueueNew这类 API这些宏开启对应 CMSIS 接口支持。 只要使用 CubeMX 生成的 CMSIS API保持全部开启不用改动。经常需要修改的核心配置USE_PREEMPTION 抢占调度TICK_RATE_HZ 系统节拍MAX_PRIORITIES 任务最大优先级MINIMAL_STACK_SIZE 空闲任务栈TOTAL_HEAP_SIZE 系统堆大小Memory Management scheme 堆模型 heap4USE_TIMERS 软件定时器开关 TIMER_TASK_PRIORITY、TIMER_TASK_STACK_DEPTHLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 中断访问 FreeRTOS 阈值USE_MUTEXES / USE_COUNTING_SEMAPHORES / USE_TASK_NOTIFICATIONS 内核组件开关本章结束keysking相关文章https://docs.keysking.com/docs/stm32/freertos/cubeConfig

相关新闻

[CEOI 1997] 多米诺骨牌 题解

[CEOI 1997] 多米诺骨牌 题解

2026/8/10 9:36:58

[CEOI 1997] 多米诺骨牌 题解 题目传送门——请务必读好题目 这题让求点数和之差最小的旋转次数,因为这个差需要取绝对值,所以转移很难。 带绝对值转移难,那干脆把绝对值扔了! dpi,jdp_{i,j}dpi,j​ 表示前 iii 个骨牌&#xf…

哈夫曼树与编码:数据压缩的核心算法解析

哈夫曼树与编码:数据压缩的核心算法解析

2026/8/10 9:26:58

1. 哈夫曼树基础概念解析 哈夫曼树(Huffman Tree)是一种特殊的二叉树结构,由David A. Huffman在1952年提出。这种数据结构在数据压缩领域有着革命性的应用,特别是在文件压缩、图像编码等领域。它的核心思想是通过统计字符出现频率…

从零部署本地AI编程助手:Ollama+DeepSeek-Coder实战指南

从零部署本地AI编程助手:Ollama+DeepSeek-Coder实战指南

2026/8/10 9:26:58

在AI编程助手领域,Codex以其强大的代码生成和理解能力,正成为开发者提升效率的利器。然而,面对网络上零散的安装指南和碎片化的使用技巧,许多开发者,尤其是新手,常常在环境配置、功能调用和实际应用上遇到阻…

日志管理系统架构设计与实践指南

日志管理系统架构设计与实践指南

2026/8/10 10:37:01

1. 日志管理在核心配置体系中的关键作用日志管理是现代IT系统中不可或缺的基础设施组件。作为从业15年的系统架构师,我见证过太多因为日志管理不善导致的故障排查困难案例。一个设计良好的日志管理系统,能够帮助团队快速定位问题、分析系统行为&#xff…

Java后端字符串清洗实战:处理特殊字符与编码问题的健壮方案

Java后端字符串清洗实战:处理特殊字符与编码问题的健壮方案

2026/8/10 10:37:01

在实际项目开发中,我们经常需要处理一些非标准的、带有特殊字符或格式的字符串数据,例如从外部系统导入的文件名、用户输入的昵称,或是像“依旧噔↑噔↓噔↑噔↓噔↑噔↓噔(不排名)每日妈妈露露开头”这样包含上下箭头…

C++模板元编程递归终止条件设计:从原理到实战避坑指南

C++模板元编程递归终止条件设计:从原理到实战避坑指南

2026/8/10 10:37:01

1. 项目概述:为什么递归终止是模板元编程的“命门”?搞C模板元编程(Template Metaprogramming, TMP)的朋友,尤其是刚入门的,十有八九都卡在过递归终止条件上。你可能已经学会了用模板特化来做编译期计算&am…

2026年南京庭院养护还踩漏水坑?标准化工艺才是真相

2026年南京庭院养护还踩漏水坑?标准化工艺才是真相

2026/8/10 10:37:01

过去十年,南京的庭院市场经历了从野蛮生长到逐步规范的过程。早些年,业主想做个锦鲤池或者翻新院子,能找到的基本是三五人组成的施工队,报价全凭一张嘴,工艺全凭老师傅手感。那时候的鱼池,能不漏水就算运气…

AI应用工程化实战:从模型调用到高易用性服务封装

AI应用工程化实战:从模型调用到高易用性服务封装

2026/8/10 10:37:01

在AI技术浪潮席卷全球的今天,我们常常被各种突破性的模型发布和炫酷的Demo所吸引。然而,作为一名长期奋战在一线的开发者,我深刻体会到,将一项前沿的AI能力真正落地到产品中,让普通用户甚至非技术同事都能顺畅使用&…

Ubuntu 20.04 LTS下Docker安装与优化全指南

Ubuntu 20.04 LTS下Docker安装与优化全指南

2026/8/10 10:27:00

1. 为什么选择Ubuntu 20.04 LTS作为Docker运行环境作为长期支持版本,Ubuntu 20.04 LTS(Focal Fossa)在服务器和工作站领域保持着惊人的市场占有率。根据2023年W3Techs的统计数据,全球超过37%的Linux生产环境运行在这个版本上。选择…

比较好的亚太EMBA,问了6位校友师资差别真的挺大

比较好的亚太EMBA,问了6位校友师资差别真的挺大

2026/8/10 5:58:32

比较好的亚太EMBA核心差异先看什么?对于希望兼顾工作与系统管理能力提升的亚太区高管而言,筛选匹配度高的EMBA项目时,师资配置是决定学习体验与实际收获的核心要素之一。我们结合3-4个公开信息透明、办学历史较长的亚太区主流EMBA项目特点&am…

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

2026/8/10 7:54:12

备考海外游学的亚洲EMBA面试,核心要围绕项目国际化设计逻辑、个人跨文化管理经验匹配度两个维度准备,避免把游学模块等同于普通旅游参访的认知偏差。不少备考者花3个月对比6份资料,却容易忽略面试官对“国际视野落地能力”的考察——比如香港…

比较好的国内EMBA,问了二十位校友聊透人脉价值

比较好的国内EMBA,问了二十位校友聊透人脉价值

2026/8/10 7:19:21

比较好的国内EMBA核心差异体现在哪些方面?比较好的国内EMBA的核心长期价值,很大程度上依托于校友网络的连接质量与资源生态的活跃度,这也是不少高管在择校时优先考量的因素。我们结合3-4个市场关注度较高的项目公开信息,从课程、师…

Prometheus 监控体系深度部署:选型别只看功能清单

Prometheus 监控体系深度部署:选型别只看功能清单

2026/8/10 0:06:33

Prometheus 监控体系深度部署:选型别只看功能清单 选型场景:小规模集群直接部署 Thanos 的代价 如果为解决 15 天本地存储限制,直接部署 Thanos Sidecar、Store Gateway、Querier、Compactor、Ruler、Bucket Web 并接入 S3,就需…

ELK 日志分析平台与全链路追踪:代码评审该盯住哪些细节

ELK 日志分析平台与全链路追踪:代码评审该盯住哪些细节

2026/8/10 0:06:33

ELK 日志分析平台与全链路追踪:代码评审该盯住哪些细节 场景示例:一条 2MB 日志影响 Elasticsearch 写入 一个上传接口若执行 log.Info("Request dumped: ", r.Body),会将 2MB 的二进制 Body 写入日志。高并发下,这类超…

从零到一构建开源项目的完整历程:代码评审该盯住哪些细节

从零到一构建开源项目的完整历程:代码评审该盯住哪些细节

2026/8/10 0:06:33

从零到一构建开源项目的完整历程:代码评审该盯住哪些细节 项目进入稳定版本后,外部 Pull Request(PR)会带来新的协作成本。大范围改动混入风格重构,或修复局部问题时修改公共函数签名,都可能扩大评审和兼容…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/8 5:07:31

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/9 13:42:46

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/8 2:30:15

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…