专栏名称: 21ic电子网
即时传播最新电子科技信息,汇聚业界精英精彩视点。
今天看啥  ›  专栏  ›  21ic电子网

RTOS任务切换过程中堆栈的使用情况

21ic电子网  · 公众号  · 半导体  · 2024-11-28 16:51
    

文章预览

我们知道 Cortex-M3 系列单片机内部有双堆栈机制。即 Cortex‐M3  拥有两个堆栈指针:主堆栈(MSP)和进程堆栈(PSP)。 任一时刻只能使用其中的一个。通过控制寄存器 CONTROL 中的选择位进行控制。 两个堆栈指针如下: 主堆栈指针( MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程) 进程堆栈指针( PSP):由用户的应用程序代码使用。 将RTOS 移植到 Cortex-M3 系列单片机上后,任务堆栈用的是 PSP,然而任务切换是在中断处理函数 PendSV() 中完成的。 那么在任务切换期间,MCU 在执行指令的过程中,是如何选择堆栈指针呢? 下面逐步进行分析。 堆栈的基本操作 堆栈操作就是对内存的读写操作,其地址由 SP 给出。寄存器的数据通过 PUSH 操作存入堆栈,以后用 POP 操作从堆栈中取回。 在 PUSH 与 POP 的操作中, SP ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览