RTOS上下文保存

RTOS上下文切换通过PendSV异常实现,核心机制为"硬件自动保存 + 软件手动补栈"。

1. 硬件自动保存

CPU响应PendSV时,自动将调用者保存寄存器 (R0-R3、R12)以及返回地址(LR)、程序状态(xPSR)压入当前任务的进程栈(PSP)

2. 软件手动补栈

PendSV处理程序中,显式执行PUSH {R4-R11},保存被调用者保存寄存器,补齐完整上下文。

3. TCB锚定

将更新后的PSP值存入当前任务的任务控制块(TCB),实现栈与任务的绑定。

4. 恢复对称操作

从目标任务的TCB加载PSP,POP {R4-R11}恢复寄存器,异常返回时硬件自动弹出剩余上下文,任务无缝继续执行。


总结一句话就是::

上下文保存 = 硬件自动压栈(R0-R3,R12,LR,PC,xPSR) + 软件手动压栈(R4-R11),最终将 PSP 存入 TCB。

相关推荐
鸟电波几秒前
硬件笔记——示波器篇
笔记
Don.TIk9 分钟前
SpringCloud学习笔记
笔记·学习·spring cloud
cd11840511 小时前
AutoCAD Electrical 2020学习笔记
笔记·学习
Sarvartha2 小时前
递归、回溯与动态规划学习笔记
笔记·学习·动态规划
眼镜哥(with glasses)3 小时前
网络技术三级考试综合题笔记整理(第二题、第三题)
网络·笔记·智能路由器
半壶清水3 小时前
[软考网规考点笔记]-数据通信基础之差错控制编码技术
网络·笔记·网络协议·tcp/ip
左左右右左右摇晃3 小时前
Java List集合
笔记
OxyTheCrack3 小时前
【C++】详细拆解std::mutex的底层原理
linux·开发语言·c++·笔记
左左右右左右摇晃3 小时前
红黑树笔记整理
笔记
不想看见4046 小时前
Reverse Bits位运算基础问题--力扣101算法题解笔记
笔记·算法·leetcode