1、MSP和PSP
1)control寄存器
CONTROL[1] 堆栈指针选择
0=选择主堆栈指针MSP(复位后缺省值)
1=选择进程堆栈指针PSP
在线程或基础级(没有在响应异常——译注),可以使用PSP。在handler模式下,
只允许使用MSP,所以此时不得往该位写1。
CONTROL[0] 0=特权级的线程模式
1=用户级的线程模式
Handler模式永远都是特权级的。
2)复位后缺省使用MSP。
3)中断为处理模式(handle),永远是特权级;非中断即为线程模式,可在中断中指定(control[0])为特权级或用户级。
4)处理模式始终使用MSP;线程模式可选使用PSP或MSP(有OS时,一般使用PSP),由EXC_RETURN控制。
2、进入中断: