当前位置: 首页 > news >正文

Cortex M 系列mcu 中 MSP 和 PSP 的使用环境

MSP 和 PSP 的使用环境

即使不使用 RTOS,一定会用到 MSP,但通常不会用到 PSP

在不带操作系统的“裸机(Bare-metal)”环境下,MSP 和 PSP 的使用情况如下:


1. MSP 是必须使用的 (Always Used)

无论写多么简单的代码,只要是用 C 语言写的,MSP 就一直在工作。

  • 启动阶段:正如前面所说,硬件上电第一步就是加载 MSP。
  • main 函数:在裸机程序中,你的 main 函数、所有的局部变量、函数嵌套调用,默认全部都在使用 MSP
  • 中断处理:所有的中断服务程序(ISR)始终使用 MSP
  • 默认状态:Cortex-M 复位后,默认处于“特权级线程模式”,且默认指向 MSP。如果你不去特意修改控制寄存器(CONTROL register),CPU 永远不会自动切换到 PSP。

结论:在裸机开发中,MSP 是你唯一的堆栈指针


2. PSP 是通常不用的 (Usually Idle)

在裸机环境下,PSP 处于闲置状态。

  • 为什么不用? 因为裸机程序通常只有一个执行流(main 函数里的 while(1) 循环)。既然只有一个执行流,就没有必要把“系统栈”和“进程栈”分开,直接用 MSP 搞定一切更简单。
  • 什么时候会用? 除非你是一个高级开发者,想在裸机上实现一些类似“多任务”的黑科技(比如手写一个极简的协程库或者状态机切换),你才会手动通过汇编指令去设置并在 CONTROL 寄存器里开启 PSP。

3. RTOS 为什么要强行把它们分开?

为了对比,我们看看有了 RTOS 之后的变化:

特性 裸机 (Bare-metal) 有 RTOS (FreeRTOS/LiteOS)
main 函数使用 MSP MSP (启动阶段) -> 切换后不再使用
用户任务使用 (无任务概念) PSP (每个任务有独立的 PSP)
中断服务使用 MSP MSP (全系统共用一个 MSP)
堆栈隔离 无隔离,全家共用 MSP 任务用 PSP,内核用 MSP,实现安全隔离

RTOS 的逻辑是:

  1. MSP 专门留给中断。因为中断是无法预测什么时候发生的,给它一个独立的 MSP,可以保证不管任务栈(PSP)怎么折腾,中断永远有地方跑。
  2. 每个任务分配一个 PSP。任务切换时,RTOS 只需要把 R13 指向下一个任务的 PSP 即可。

小结

  • MSP:它是 MCU 的“底色”。没有它,C 语言跑不起来,中断进不去。裸机开发 100% 在用它。
  • PSP:它是给“多任务”设计的。它像是一个额外的工具,专门用来把“用户程序”和“系统程序(中断/内核)”的堆栈空间隔离开。裸机开发通常 0% 使用它。
http://www.jsqmd.com/news/133079/

相关文章:

  • 实用指南:基于 DevUI MateChat 搭建前端编程学习智能助手:从痛点到解决方案
  • B站视频下载终极指南:快速上手BilibiliDown下载工具
  • 2025年质量好的亚克力产品定制/异形亚克力产品定制厂家最新TOP排行榜 - 行业平台推荐
  • 23、提升Web安全:从表单防护到密码生成与CAPTCHA验证
  • Hourglass:Windows平台上最轻量级的免费倒计时工具完整指南
  • ModernFlyouts终极指南:让Windows系统提示界面焕发新生
  • 2025资质齐全的红木家具店TOP5权威推荐:老牌店甄选指南 - 工业品牌热点
  • GSE宏编译器终极指南:彻底解决魔兽世界操作难题
  • 我用3个月从零基础到上线鸿蒙应用,这是我的完整学习路线
  • Photoshop AI绘画插件实战指南:从零开始掌握智能创作
  • GitHub-MathJax终极指南:三步实现LaTeX公式在GitHub的完美渲染
  • 沪上金属材料实力供应商、沪上金属材料正规厂商排名 - mypinpai
  • Blender动漫渲染终极指南:Goo Engine完整使用教程
  • B站音频下载工具完整使用指南
  • Cortex-M 内存布局学习整理
  • 20、创建和实现外部内容类型及相关操作指南
  • VR-Reversal:3D视频转换与自由视角探索的终极指南
  • 如何快速使用HTML转Figma工具:网页导入设计的完整指南
  • 2025年评价高的UV光疗美甲灯/便携式美甲灯厂家最新TOP实力排行 - 行业平台推荐
  • 21、实现 .NET 程序集连接器及相关操作
  • 基于深度学习的野生动物视觉跟踪系统任务书
  • 22、在 Outlook 中使用外部列表的全面指南
  • SteamShutdown:告别下载等待的智能自动关机神器
  • Cursor试用限制全攻略:go-cursor-help一键重置技术方案深度解析
  • FAE医学影像分析平台:零基础快速掌握放射组学技术
  • Figma与HTML的完美对话:从设计到代码的智能转换艺术
  • GPT-SoVITS训练损失曲线解读:如何调参更有效?
  • 2025年口碑好的喷淋塔废气处理/废气处理净化塔高评分品牌推荐(畅销) - 行业平台推荐
  • 高效下载B站视频:开源工具BilibiliDown完整操作指南
  • BilibiliDown极速Hi-Res音频下载完整指南:一键获取无损音质