内容纲要
感谢同学 @伟亿 的提问
Q:任务直接使用MSP是不是能省掉两行汇编代码?
A:你指的是任务也使用MSP作为栈指针? 这样会有个问题哈,因为异常发生时也是使用MSP为作栈指针的。那么每个任务的栈空间可能要预留多点,给异常处理中的代码用。这样存储资源的开销就大了。 当然,你可能会想为异常单独配一个栈,在异常发生时,切换到这个栈,返回时再切换回来,这样又太复杂了。
所以,建议将PSP用作任务栈指针,使得任务栈和系统的异常处理栈空间分开。当然了,这样也会让任务运行于用户级模式。
如果你一定要使用MSP的话,也是可以的。