[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] 多米诺骨牌 题解

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

2026/8/10 9:37:14 阅读更多 →
【VSCode】基于win10系统老版本和VSCode最新版本下出现的VSCode内置的终端窗口不能运行的问题的解决方案

【VSCode】基于win10系统老版本和VSCode最新版本下出现的VSCode内置的终端窗口不能运行的问题的解决方案

vscode不能启动终端,从而不能进行eide插件和keil assistant插件的编译功能 VS Code 在 Windows 上彻底抛弃了旧的终端后端(Winpty),强制换成了新的 ConPTY,但你的系统环境没能成功启动这个新后端。 一、解决方案一 升…

2026/8/10 9:37:14 阅读更多 →
终极指南:3分钟掌握浏览器EPUB编辑器,零代码创作专业电子书

终极指南:3分钟掌握浏览器EPUB编辑器,零代码创作专业电子书

终极指南:3分钟掌握浏览器EPUB编辑器,零代码创作专业电子书 【免费下载链接】EPubBuilder 一款在线的epub格式书籍编辑器 项目地址: https://gitcode.com/gh_mirrors/ep/EPubBuilder 还在为复杂的电子书制作软件而烦恼吗?EPubBuilder为…

2026/8/10 9:36:14 阅读更多 →

最新新闻

视频转文字原理是什么?实测4款AI工具后的使用总结

视频转文字原理是什么?实测4款AI工具后的使用总结

摘要: 随着短视频、在线课程、企业会议、访谈内容不断增加,如何快速将视频中的语音转换成可编辑文字,成为很多内容创作者和职场用户的刚需。传统人工听写不仅效率低,而且容易遗漏关键信息。本文从视频转文字技术原理出发&#xff…

2026/8/11 13:01:52 阅读更多 →
2026-08-11:距离至少为 K 的交替子序列的最大和。用go语言,给定一个整数数组和一个整数 k,你需要从中挑选一个下标严格递增的子序列。挑选时必须满足相邻两个下标之差至少为 k。同时,这些下标

2026-08-11:距离至少为 K 的交替子序列的最大和。用go语言,给定一个整数数组和一个整数 k,你需要从中挑选一个下标严格递增的子序列。挑选时必须满足相邻两个下标之差至少为 k。同时,这些下标

2026-08-11:距离至少为 K 的交替子序列的最大和。用go语言,给定一个整数数组和一个整数 k,你需要从中挑选一个下标严格递增的子序列。挑选时必须满足相邻两个下标之差至少为 k。同时,这些下标对应的数值必须构成一个严格交替的序列…

2026/8/11 13:01:52 阅读更多 →
3个核心技巧:如何在PC上流畅运行Switch游戏的完整指南

3个核心技巧:如何在PC上流畅运行Switch游戏的完整指南

3个核心技巧:如何在PC上流畅运行Switch游戏的完整指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 你是否曾经羡慕朋友玩Switch独占游戏,却不想购买游戏机&a…

2026/8/11 13:01:52 阅读更多 →
财务从入门到高手,必须吃透的8个核心指标!

财务从入门到高手,必须吃透的8个核心指标!

很多财务人员每天都在接触收入、成本、费用、利润、应收、库存和现金流,但真正到了经营分析会上,还是容易陷入一个问题:会算指标,却不会用指标发现问题。比如:收入增长了,究竟是销量增加、价格上涨&#xf…

2026/8/11 13:00:52 阅读更多 →
CentOS 7下源码编译安装Nginx 1.3.15指南

CentOS 7下源码编译安装Nginx 1.3.15指南

1. 项目概述 在CentOS 7环境下从源码编译安装nginx-1.3.15.tar.gz是一个典型的服务器环境配置任务。作为一款轻量级高性能的Web服务器,nginx以其出色的并发处理能力和低内存消耗著称,特别适合资源受限的生产环境。不同于直接使用yum安装预编译版本&#…

2026/8/11 13:00:52 阅读更多 →
RA-L2026 北京航空航天大学提出LAGCN框架:以空地协同实现未知环境语义导航

RA-L2026 北京航空航天大学提出LAGCN框架:以空地协同实现未知环境语义导航

痛点 在复杂未知环境中,传统无人车(UGV)的自主导航严重依赖激光雷达、深度相机等高成本多模态传感器。一旦感知受限或硬件受损,系统性能将显著下降,甚至完全失效。 当前产业与研究领域面临三大核心痛点: …

2026/8/11 13:00:52 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →