其他分享
首页 > 其他分享> > Cortex-M3 双堆栈指针(MSP&PSP)

Cortex-M3 双堆栈指针(MSP&PSP)

作者:互联网

参考:https://www.cnblogs.com/utank/p/11264175.html

 

 

【双堆栈指针(MSP&PSP)】

【双堆栈指针在OS中的应用】
典型的OS环境中,MSP和PSP的用法如下:

 

【双堆栈指针的初始化】


【PSP指针在不同任务间切换】

 

 

 

所以内核是PSP还是MSP总结为:

1)不使用OS时: 只用到MSP(中断和非中断都使用MSP);
2)使用OS时(如UCOSII): main函数和中断使用MSP; 各个Task(线程)使用PSP(即任务栈);

当带操作系统从APP区跳转到BOOT区的时候需要将SP设置为MSP,否则在BOOT区中使用中断将会引发硬件错误!

如果在APP中打开了看门狗那么当跳转到BOOT中时也需要定时喂狗,否则会触发看门狗超时复位!

 

标签:SP,MSP,Cortex,M3,堆栈,PSP,OS,指针
来源: https://www.cnblogs.com/ben002/p/15902470.html