以下内容 来自Cortex™-M4 Devices Generic User Guide
Cortex-M4 包含两种 处理器模式:线程模式(Thread mode)和处理器模式(Handler mode)。
线程模式用于执行应用代码,当处理器退出复位后会进入此模式;
处理器模式用于处理异常,当处理器处理完所有异常后会退回到线程模式。
对于软件执行又包括两种特权级别:特权级和用户级。
用户级限制:
有限制的使用MSR和MRS指令,不能使用CPS指令;
不能访问系统定时器,NVIC和系统控制模块;
有限制的访问存储器和外围模块。
特权级别:能够使用所有指令,访问所有资源。
在线程模式,寄存器CONTROL控制着软件运行于哪种特权级别,在处理器模式,软件一直运行于特权级别。
只有特权级的软件能够在线程模式下写CONTROL寄存器,更改特权级别,用户级软件能够通过使用SVC指令申请异常进入特权级代码。
注:MSR 移动通用寄存器的值到特殊功能寄存器
MRS 移动特殊功能寄存器的值到通用寄存器
SVC 引发一个supervisor call (SVC)异常
CONTROL的位0 nPRIV定义了线程模式的特权级别:0特权级别,1用户级别